Agent 定义与版本控制

笔记/AI编程/Agent Harness工程/Agent 定义与版本控制

背景与动机#

Agent 的行为由模型、系统提示、工具和环境共同决定。只要其中任何一项变化,输出就可能变化。因此 Agent 定义应该像代码一样版本化。

不要把 Agent 配置当成随手修改的后台表单。生产环境里,配置变化也应该能审查、回滚和追踪。

Agent 定义包含什么#

常见字段:

  • 名称。
  • 模型。
  • 系统提示。
  • 工具列表。
  • 默认参数。
  • 权限策略。
  • 输出格式。
  • 版本号。

这些内容共同决定 Agent 能力边界。

系统提示的四个维度#

一个稳定的系统提示通常包含:

角色:你是谁
能力:你能做什么
约束:你不能做什么
输出:你如何交付结果

示例:

你是代码审查 Agent。
你只指出 bug、回归风险和缺失测试。
不要重写代码,不要夸奖实现。
输出按严重程度排序,并附文件路径和行号。

这种提示比“帮我 review 一下”更稳定。

不可变版本#

img
img

推荐做法:

  • 新配置生成新版本。
  • 旧 Session 继续绑定旧版本。
  • 新任务默认使用最新稳定版本。
  • 出问题时可以回滚到上一版。

这样能避免一个正在运行的任务因为配置变化而行为突变。

配置即代码#

如果可能,把 Agent 配置放进版本库:

agents/
code-review.yaml
doc-writer.yaml
bug-triage.yaml

好处:

  • 可以 code review。
  • 可以看 diff。
  • 可以回滚。
  • 可以关联发布记录。

常见陷阱#

  • 直接在线修改系统提示,没有历史记录。
  • 多个 Agent 共用一个过于宽泛的提示。
  • 工具列表变化后不更新版本号。
  • Session 不绑定版本,导致复现困难。

Agent 配置变更流程#

修改 Agent 配置
生成新版本
跑最小回归测试
新 Session 使用新版本
旧 Session 继续绑定旧版本
出问题时回滚默认版本

这个流程比“直接改线上提示词”慢一点,但能换来可追踪和可复现。

一句话总结#

Agent 定义应该像代码一样管理:可审查、可版本化、可回滚,并且不要让运行中的会话被配置变更打断。

文章目录

文章目录