在人工智能领域,如何让智能体(Agent)从每一次交互中学习并持续改进,一直是开发者们追求的目标。近日,知名AI终端公司Warp分享了其构建自我改进型智能体的实战经验,通过两个技能文件与人类反馈的结合,成功让智能体在代码审查任务中不断沉淀知识,实现越用越聪明的效果。
Warp的代码审查智能体在初期表现并不完美,尽管第一轮输出能达到80%的正确率,但剩余的20%噪声却给工程师们带来了不小的困扰。这些噪声包括不相关的评论、对代码库惯例的误判以及低质量的修改建议,使得工程师们不得不在一堆无用评论中筛选有用信息,甚至比没有智能体时还要累。
面对这一问题,Warp团队最初尝试了手动修改提示词和改进AGENTS.md文件等方法,但效果并不理想。他们逐渐意识到,问题的根源在于智能体在每次对话结束后,所获得的反馈并未得到有效沉淀,导致下一轮对话时,智能体仍然无法避免重复犯错。
为了解决这一问题,Warp团队设计了一套基于两个技能文件的自我改进框架。内层技能文件(base skill)负责存储功能领域的知识和指令,为智能体提供审查代码的基础;外层技能文件(improver skill)则扮演观察者的角色,定期运行并分析人类反馈,提出对内层技能文件的最小、最聚焦的编辑建议。
人类反馈在这一框架中起到了至关重要的作用。Warp CEO Zach Lloyd强调,反馈不仅要明确指出问题所在,更要解释清楚期望的行为和原因。例如,当智能体建议重命名一个变量时,如果这一建议与代码库的命名惯例不符,人类反馈应详细说明代码库的命名规则,以便智能体能够真正理解并学会下次如何做出正确的建议。
这一框架之所以能够成功运行,得益于技能文件的纯文本特性。智能体擅长修改文件,而这些修改可以通过正常的PR/code-review流程进行人审、批准和合并,从而确保下一轮智能体运行时能够自动继承改进后的知识。Warp特别指出,这里使用的是技能文件而非记忆(Memory),因为技能文件是程序性的、稳定的做某件事情的规范,与单次运行无关,且改动是刻意的。
Warp的自我改进框架已经在其整个开源仓库上得到了应用,包括spec-writing、review、triage三类智能体各自带着自己的自我改进循环。以问题分诊智能体为例,当有人在GitHub上提出一个新问题时,GitHub Action会触发智能体分析问题的复杂度和可行性,并打上标签。如果智能体漏标了某个关键标签,如“ready to spec”,维护者可以在issue上留下详细反馈。外层improver skill会定期运行并分析这些反馈,提出对内层技能文件的编辑建议,最终通过PR流程将改进合并到技能文件中。
在构建自我改进智能体的过程中,Warp团队还总结出了六条宝贵的工程经验。他们强调,在编写技能文件时应注重原则而非规则,解释每条规则背后的原因,以便智能体能够推理而非死记硬背。同时,反馈应尽可能零摩擦,在人已经工作的地方捕获反馈,并自动发生。技能文件应保持小巧且引用资源文件和脚本,而非一次性倒入所有上下文。在质量方面,他们认为一位高级工程师的几条详细领域反馈可能比一百个点赞更有价值。最后,他们强调应重投入improver skill的开发,因为它具有高度可复用性。











