💠 Aether:自主SRE代理
“自愈基础设施层。”
Aether是一个自主代理,旨在通过减少基础设施事件的平均解决时间(MTTR)来协助现场可靠性工程师(SRE)。它结合了 基于SQL的遥测分析 随着 基于Runbook的语义搜索 在没有人为干预的情况下诊断问题。
🏗️ 建筑
graph TD
User[👤 SRE User] -->|1. Incident Report| UI["💻 Aether Dashboard (Streamlit)"]
subgraph "Secure Enclave (Docker Container)"
UI -->|2. Sends Prompt| Agent[🧠 LangChain Agent]
Agent -->|3. Decision Loop| Router{Determine Tool}
Router -->|Need Metrics?| SQL[📊 SQL Tool]
Router -->|Need Knowledge?| RAG["📚 Vector Search (ChromaDB)"]
SQL -->|Raw Data| DB[(SQLite DB)]
RAG -->|Raw Text| VDB[(Runbooks)]
DB -->|4. Return Data| PII[🛡️ PII Redaction Layer]
VDB -->|4. Return Docs| PII
PII -->|5. Sanitized Data| Agent
end
Agent -->|6. Final Diagnosis| UI
style PII fill:#ffcccc,stroke:#ff0000,stroke-width:2px,stroke-dasharray: 5 5
style Agent fill:#e1f5fe,stroke:#01579b🚀 主要特点
- 🧠 自主推理循环: 使用思维链(CoT)来计划调查(图式检查→ 查询指标→ 搜索Runbook)。
- 🔭 完全可观察性: 集成 开放遥测 在Jaeger中跟踪以可视化代理的决策过程。
- 🛡️ PII Redaction中间件: 自定义基于regex的防火墙,在电子邮件、API密钥和SSN到达LLM上下文窗口之前拦截所有数据库输出以剥离它们。
- 📊 多模态调查: 将结构化时间序列数据(SQLite)与非结构化机构知识(ChromaDB)相关联。
- 🐳 生产就绪: 使用Docker进行完全容器化,以实现一致的部署。
🛠️ 工程优化和调整日志
Aether的开发涉及解决LLM试剂常见的关键生产挑战。以下是为确保可靠性和成本效益而实施的关键优化的日志。
1.架构模式:“准时制”(JIT)代理
- 问题: 全球背景中毒。对一个服务的查询(例如“Payment”)会渗透到对其他服务(例如“Kafka”)的后续查询中,导致代理产生错误的SQL连接幻觉。
- 解决方案: 实施a JIT代理工厂.
- 每个用户请求都会启动一个新的、无状态的代理实例。 - 这确保了零交叉请求污染和严格隔离的决策环境。
2.模式感知快速工程
- 问题: LLM经常不遵守数据库规范化(例如,试图找到
service_name在仅包含以下内容的度量表中service_id). - 解决方案: A. 动态系统提示 它将精确的用户查询注入到指令中。
- 我们用动态代数指令替换了静态少镜头示例(这会导致过拟合)。 - 技术: LIKE '%{extracted_service_name}%' 模式匹配迫使代理稳健地处理模糊输入(例如,“auth”与“auth Service”)。
3.代币和成本优化
- 问题: 大型Runbook已触发
429 Rate Limit错误和缓慢的响应时间。 - 解决方案:
- 安全帽: RAG输出的硬编码8000个字符限制。 - 截断: 实现了“头+尾”切片,以保留文档上下文,而不会炸毁令牌窗口。
4.性能缓存
- 问题: 重复的查询导致数据库锁定和演示缓慢。
- 解决方案: 集成
InMemoryCache在\<0.1s内提供相同的推理痕迹,大大改善了重复调试期间的用户体验。
5.可靠性工程
- 问题: 网络片状或LLM“提前停止”行为。
- 解决方案:
- 韧性恢复: 应用指数退避装饰器(@retry)以处理瞬态故障。 - 严格订购: 强制工具执行顺序(模式→ 指标→ Runbook)通过系统提示约束。
⚡ 快速入门(Docker)
运行Aether最快的方法是通过Docker。
1.克隆存储库
git clone
cd ops-sentinel2.塑造形象
docker-compose build --no-cache3.运行容器 *(确保你 .env 文件包含您的 OPENAI_API_KEY)*
docker-compose up4.访问仪表板 导航到 http://localhost:8501
🛠️ 技术栈
- 编排: LangChain(OpenAI工具代理)
- 接口: Streamlit(自定义CSS)
- 可观察性: OpenTetry(Jaeger Exporter)
- 数据库: SQLite(标准化模式)、ChromaDB(矢量存储)
- LLM GPT-4o/GPT-4o-mini
- 基础设施: Docker、Python 3.12
- 可靠性: Tenacity(检索),Pydantic(数据验证)
🔮 未来路线图(V2)
- \[ \] 循环中的人类: 执行写入操作(例如,重新启动Pod)之前的审批工作流。
- \[ \] 图RAG: 从SQL Joins迁移到图形数据库(ArangoDB)进行语义关系映射。
- \[ \] RBAC: 通过OAuth2进行基于角色的访问控制。
