四个自主 AI 智能体现在可以在不到一分钟的时间内发现软件故障、编辑有问题的代码并确认修复——这要归功于为 SigNoz 黑客松构建的一种全新的观测驱动工作流。
该系统被称为 AgentOps,它通过监控 SigNoz 的错误激增情况,获取相关的日志和链路 (traces),精确锁定导致问题的具体文件和行号,在沙箱中编辑源码,然后重放请求以证明 Bug 已被修复。每个完整的周期仅需 30-60 秒,且整个过程无需任何人工提示。
为什么观测性对 AI 智能体至关重要
传统的 SRE 实践将日志、指标和分布式链路视为服务的“眼睛”。当请求失败时,工程师会沿着链路追踪到有问题的组件。同样的原理现在也驱动着 AgentOps,只不过被观测的“服务”本身就是 AI 智能体。
智能体调用的每个工具——无论是语言模型调用、文件系统编辑还是测试运行器——都会在链路中创建一个 span。一个 span 会记录开始时间、持续时间和成功状态,因此智能体可以查看每个推理步骤耗时多久以及是否成功。通过将这些 span 连接起来,智能体可以构建出其自身思维过程的完整图景,就像人类手动调试时所做的那样。
关键的转变在于从“作为报告层的观测性”转向“作为感知能力的观测性”。AgentOps 将链路数据反馈给智能体,让它们能够实时对自己的行为进行推理。其结果是一个闭环:AI 不仅能生成假设,还能利用用于检测问题的同一套遥测数据来验证该假设。
四步工作流
- 监控 (Monitor) – 一个轻量级的观察器扫描 SigNoz 以发现新报告的错误。
- 诊断 (Diagnose) – 智能体获取相关的日志和链路,提取堆栈,并隔离触发故障的源文件和行号。
- 修复 (Fix) – 利用沙箱文件系统服务器,智能体在识别出的行编写补丁。沙箱执行严格的权限控制,如果编辑违反策略,则会自动回滚。
- 验证 (Verify) – 智能体针对修复后的代码重新发起原始请求。如果链路显示运行正常,则提交修复;否则,智能体将进行迭代。
所有步骤都由同一组智能体编排,每个智能体都作为一个自主的微服务运行。整个链条都可以通过与 OpenTelemetry 兼容的 span 进行观测,这些 span 由 SigNoz 摄取并可视化。
关于可靠性的宝贵经验
错误清晰度
通用的“失败”状态无法提供任何信息。团队增加了细粒度的失败原因——例如“假设错误”或“补丁破坏了进程”——以便下游智能体决定是重试、回溯还是中止。这模仿了人类在事后分析 (post-mortems) 中标记根本原因的方式。
数据延迟
遥测数据不会立即出现。智能体现在会包含一个短暂的停顿和一次完整性检查,以确保在断言修复成功之前,所需的日志已经送达。如果没有这一防护措施,智能体可能会根据不完整的数据采取行动,从而导致误报。
安全边界
允许 AI 编写代码存在权限提升风险。沙箱运行在专用的文件系统服务器之后,将写入范围限制在目标仓库内,并在测试失败时自动恢复到之前的状态。这种隔离模型将 AI 的权限控制在合理范围内。
Token 限制
大语言模型会消耗 API Token,每日配额可能会在调查过程中耗尽。AgentOps 会跟踪每次事件的 Token 使用情况,并在达到阈值时限制后续调用,从而防止在配额耗尽时出现连锁式的修复失败。
Demo 证明了什么
团队注入了一个代码库中从未出现过的新 Bug。AgentOps 检测到了异常,将其追踪到精确的行,生成了修正编辑,在沙箱中应用了补丁并验证了请求成功——这一切都没有任何手动代码更改或新的提示。端到端耗时保持在一分钟以内,与报告的 30-60 秒时长相符。
不同观点:自主性并非万灵药
后续值得关注的方向
- 与模型无关的遥测 – 随着越来越多的厂商提供与 OpenTelemetry 兼容的 span,这种方法可能会变得厂商中立,从而降低在异构技术栈中的采用难度。
- 策略驱动的防护机制 – 通过嵌入可配置的策略(例如规定 agent 可以编辑哪些文件,或在提交前必须通过哪些测试套件),将解决治理方面的顾虑。
- 成本感知的 Token 预算管理 – 根据事件严重程度进行动态 Token 分配,可以在防止配额耗尽的同时,保留处理高影响 Bug 的能力。
AgentOps 显示,Bug 修复周期可能需要 30-60 秒。该实验证明了一个概念验证,即可观测性可以被自主软件助手所使用。
