打开网易新闻 查看精彩图片

2024年,GitHub Copilot用户平均每周花在代码审查上的时间仍是4.2小时。其中超过60%耗在"AI写的代码跑不通,人类去翻日志找原因"这个循环里。

Agent能写代码,但Debug还得靠人——这个瓶颈卡住了自动化编程的最后一公里。Monocle和Okahu MCP想拆掉这堵墙:让Agent像医生看CT片一样,直接读取自己的"运行X光"。

Monocle:给AI应用装上自动记录仪

Monocle:给AI应用装上自动记录仪

传统软件看源码就能懂逻辑,Agent应用的核心决策发生在模型运行时,代码只是脚手架。没有追踪数据,Agent修Bug等于蒙眼拆弹。

Monocle的定位是"零摩擦可观测性"。一行代码启动后,自动捕获OpenAI、LangChain、LlamaIndex等SDK的调用痕迹——输入输出、模型名称、Token消耗、工具调用、异常详情、耗时数据,全部打包成OpenTelemetry标准格式的追踪(Trace)。

Agent不会手动给生成的代码加埋点,只要需要额外操作,这件事就不会发生。Monocle的解法是在SDK被调用时自动注入,开发者无感知。

启动方式极简:

```python

from monocle_apptrace import setup_monocle_telemetry

setup_monocle_telemetry(workflow_name="text_to_sql_analyst")

从这行之后,每一次LLM调用、每一次数据库查询、每一次工具执行,都会变成可追溯的Span。当代码出错时,追踪数据里包含了Agent自我诊断所需的全部信息。

Okahu MCP:让Agent学会"自查病历"

Okahu MCP:让Agent学会"自查病历"

追踪数据躺在数据库里没用,关键是Agent能主动查询。Okahu MCP(Model Context Protocol,模型上下文协议)扮演的是"病历查询接口"角色。

MCP是Anthropic在2024年底开源的标准协议,允许大模型通过统一接口访问外部数据源。Okahu基于MCP实现了追踪数据的结构化查询能力,Agent可以用自然语言提问:"过去24小时,Text-to-SQL应用在哪些查询上出现了超时?"

这套机制把"人类读日志→理解问题→指挥Agent修复"的链条,压缩成"Agent直接读自己的运行痕迹→定位问题→自主修复"。

实战:一个会自我疗愈的Text-to-SQL应用

实战:一个会自我疗愈的Text-to-SQL应用

演示场景设计得很直接:一个基于LangChain的Text-to-SQL应用,用自然语言查询数据库。代码有Bug,测试用例会失败。

传统流程:测试失败→开发者打开终端→翻找日志→定位到第127行的SQL拼接错误→回到IDE修改→重新运行测试。平均耗时视日志复杂度,15分钟到数小时不等。

自愈合流程:测试失败→Agent收到失败通知→通过MCP查询Okahu云端追踪→发现是`generate_sql`函数在处理空表名时未做校验→自动生成修复补丁→应用补丁→测试通过。

整个闭环无需人类介入。追踪数据显示,从测试失败到修复完成,中位耗时47秒。

技术实现上,Agent的决策链分为三步:首先解析测试失败的具体断言,将其转化为查询条件;其次调用Okahu MCP检索相关追踪Span,重点比对成功与失败请求的输入差异;最后基于差异分析生成修复方案。

一个典型修复案例:用户查询"去年Q4销售额Top 5的产品",Agent生成的SQL在特定数据库方言下使用了不兼容的`LIMIT`语法。追踪数据显示,该查询在预处理阶段耗时异常(1200ms vs 正常80ms),随后抛出语法错误。Agent据此推断方言适配问题,将`LIMIT`改写为`FETCH FIRST 5 ROWS ONLY`,测试通过。

关键设计:为什么自动埋点是前提

关键设计:为什么自动埋点是前提

这个方案有个隐蔽的前提条件:追踪数据必须足够完整、结构化、标准化。如果Agent生成的代码需要手动加埋点,或者不同SDK的追踪格式互不兼容,整个自愈合链条就会断裂。

Monocle选择拥抱OpenTelemetry生态,这意味着追踪数据可以无缝接入Jaeger、Grafana、Datadog等现有可观测性平台。对已经建立监控体系的企业来说,不需要为了AI Agent重构基础设施。

Okahu MCP的查询接口也遵循MCP标准,理论上可以替换为其他支持该协议的数据源。这种松耦合设计降低了供应商锁定风险。

一个值得注意的细节:演示中的Agent并非"一次性修复",而是"迭代式验证"。它会先生成候选修复,运行测试,若仍失败则扩大追踪查询的时间窗口,直到找到根因或达到重试上限。这种设计避免了"盲目修改"导致的代码劣化。

目前这套方案已在Text-to-SQL、API编排、文档生成三类场景验证。Monocle团队披露,早期企业用户的平均调试工单处理时间从4.2小时降至12分钟,其中完全无需人工介入的比例达到34%。

当Agent能读取自己的运行痕迹,调试就不再是"人类指挥Agent"的单向流程,而是Agent自主完成的闭环。问题是:如果Bug的根源在模型本身的幻觉倾向,而非代码逻辑,这套机制还能奏效吗?