欧巴聊AI 26-05-07 20:56
微博认证:AI博主

Cursor 团队分享的这篇博客,干货太多了,细节太细了。

总结下涉及的技术细节:

1、上下文窗口管理

从静态防御转向动态按需,早期模型能力弱,框架需要做大量的上下文工程护栏,随着模型能力提升,现在的策略是移除大部分护栏,仅保留少量基础的静态信息,提供强大的工具接口,让智能体在工作流中动态拉取它需要的上下文。

2、评估智能体质量的北极星指标

除了传统的离线评估套件和公开基准,Cursor 还在线上 A/B 测试中引入了更贴近真实体验的业务指标。

- 代码保留率:跟踪智能体生成的代码在经过固定的时间后,有多大比例仍然保留在用户的代码库中,保留率低说明用户进行了大量手动重写或者让 AI 反复返工。
- 用户意图分析:用语言模型分析用户对 AI 输出的下一步反应,如果开始新功能,说明任务成功,如果用户直接粘贴了一段报错堆栈,则是强烈的失败信号。

3、错误处理与系统观测性

工具调用失败不仅浪费 Token,还会导致上下文腐坏,即历史记录中的错误会污染模型后续的推理质量,解决方案分为三方面。

- 错误分类学:将错误分为系统缺陷(未知错误)和预期错误。预期错误进一步细分为模型幻觉/上下文矛盾、第三方服务宕机、用户中止操作和超时。
- 基线异常检测:不同模型调用工具的出错率不同,因此为每个“模型-工具”组合设定独立基线。当预期错误激增突破基线时触发告警,以排查是工具性能衰退还是模型构造了低效查询(如在超大仓库中执行了糟糕的 grep 搜索)。
- AI 自动化运维:编写自动化脚本让 AI 每周自动排查日志、总结错误突增的根因,并直接在任务管理系统(如 Linear)中创建带调查上下文的工单。

4、针对不同模型的深度定制

- 工具接口的底层适配:不要用一套工具接口打天下。例如,OpenAI 模型在训练时习惯基于 Patch 格式修改文件,而 Claude 模型更习惯字符串替换。顺应模型直觉提供对应的工具格式,能显著节省推理 Token 并降低出错率。
- 提示词差异化:OpenAI 模型需要字面意义上极度精确的指令,而 Claude 更偏向直觉,对模糊指令的容忍度更高。
- 缓解上下文焦虑:团队发现某些模型在上下文即将填满时会拒绝执行任务(产生这个任务太大了的幻觉),这需要通过调整提示词来进行针对性缓解。

5、对话中途切换模型的工程挑战

- 上下文分布污染:切换模型后,新模型面对的是上一个模型生成的对话历史和工具调用记录(可能包含它根本没有的工具)。解决方案是注入自定义指令,明确告知模型它正在接管对话,并禁止调用不属于它工具集的历史工具。
- 缓存穿透问题:切换模型会导致提供商的提示词缓存全部失效,使得首轮响应变慢且成本飙升。
- 替代方案:相比于直接切换主对话模型,Cursor 更推荐并支持唤起一个子智能体,其拥有全新且干净的上下文窗口,能避开上述历史包袱和缓存问题。

AI 编程工具正在走向多智能体编排,系统将包含专门负责规划、编辑、调试的子智能体。

在这个趋势下,框架工程/驾驭工程,即系统如何判断调用哪个智能体、如何为特定模型适配工具、如何组装工作流,将比单一模型的优化更为重要。

传送门:cursor.com/cn/blog/continually-improving-agent-harness

#HOW I AI##程序员##ai编程#

发布于 北京