Agent基线建立教程:固定初始配置,让后续变更可对比
Agent 基线建立的核心,是在正式调优或上线前,把运行环境、模型参数、工具权限和一条标准任务固定下来,跑出可重复的初始结果。
之后任何改动都拿这份结果做对比,才能判断变更是变好还是变坏。
如果只备份配置文件而没有对应输出记录,基线就不完整。
先确定基线要固定哪些东西
基线不是一份配置文件,而是“配置 + 环境 + 输出记录”的组合。
建议至少固定下面四类内容:
- 运行环境:Python 版本、依赖包版本、操作系统和容器镜像标签。用
python --version、pip freeze > requirements.lock记录。 - 模型与推理参数:模型名称、温度、最大输出长度、超时时间。温度这类参数尤其要固定,否则同一输入每次结果都可能不同。
- 工具与权限范围:Agent 能调用哪些工具、能读写哪些目录、能否访问网络。权限范围本身就是基线的一部分,后续放开权限要作为一次变更记录。
- 标准任务集:选 3 到 5 条有代表性的任务,覆盖正常流程、边界输入和一条预期失败的任务,每条任务保留输入和期望输出。
如果 Agent 通过配置文件启动,建议把关键配置集中到一个文件,例如 agent.yaml:
model: your-model-name
temperature: 0
max_tokens: 1024
timeout_seconds: 30
tools:
- file_read
- http_get
allowed_paths:
- /data/agent/workspace
这样后续对比时,只需 diff 这个文件和锁文件,就能看出改了什么。
跑出第一份可对比的基线结果
配置固定后,用标准任务集跑一轮,把结果存下来。
建议按下面的顺序操作:
- 在干净环境中安装依赖,生成
requirements.lock。 - 用固定配置启动 Agent,确认启动日志中没有警告或降级提示。
- 逐条执行标准任务,记录每条任务的输入、完整输出、耗时和是否报错。
- 把输出统一存到一个目录,例如
baseline/2025-01-01/,目录内按任务编号命名结果文件。 - 在目录中放一份
meta.txt,写明模型名、参数、依赖锁文件哈希和运行时间。
示例记录方式:
mkdir -p baseline/run-001
pip freeze > baseline/run-001/requirements.lock
sha256sum agent.yaml > baseline/run-001/config.sha256
执行任务时把输出重定向到文件,例如 python run_task.py --task 01 > baseline/run-001/task-01.out 2>&1。
这样每条任务的结果独立可查,后续对比不会互相覆盖。
判断基线是否合格的标准
一份合格的基线至少要满足两个条件:可重复和可解释。
可重复是指同一配置连续跑两轮,标准任务的结果在关键点上一致。
如果温度不为 0,输出措辞可能不同,这时要比较结构化字段而不是逐字比较。
可解释是指每条任务的期望结果有明确依据,而不是凭感觉说“差不多”。
验证时可以做一次小规模重复运行:
for i in 1 2; do
python run_task.py --task 01 > baseline/check-$i.out 2>&1
done
diff baseline/check-1.out baseline/check-2.out
如果差异出现在关键字段上,先检查温度和随机种子是否固定,再检查工具返回是否包含时间戳等动态内容。
动态内容应在记录时剔除或标记,否则基线永远无法对齐。
配置漂移后怎么回到基线
基线建立后,最常见的失败是悄悄改了配置却没有记录。
比如临时调高了超时、给 Agent 多开了一个目录权限,之后问题复现时已经找不到原始状态。
应对方式是每次变更都走同一条路径:改配置前先复制一份当前基线目录,改完后用标准任务重跑,把结果和基线做 diff,确认差异符合预期再保留。
如果差异异常,直接用 config.sha256 和 requirements.lock 回滚:
sha256sum -c baseline/run-001/config.sha256
pip install -r baseline/run-001/requirements.lock
第一条命令校验配置文件是否被改动,第二条把依赖恢复到基线版本。
回滚后重跑标准任务,确认输出回到基线水平,才算恢复完成。
容易踩的几个坑
- 只存配置不存输出:配置文件一样,但模型服务端行为可能变化,没有输出记录就无法判断是本地改动还是外部变化。
- 标准任务太简单:全是正常输入,测不出权限或边界问题。至少保留一条预期失败的任务。
- 把动态内容写进基线:时间戳、随机 ID、临时路径会让每次对比都产生噪声,记录前应剔除。
- 权限变更不记录:给 Agent 增加目录或网络权限,等于扩大了执行范围,应作为一次正式变更并重跑基线。
常见疑问
基线需要每次代码提交都重建吗?
不需要。
基线只在运行环境、模型参数、工具权限或标准任务发生变化时重建。
普通业务代码改动可以用现有基线做对比,不必重新采样。
温度必须设为 0 才能建立基线吗?
不一定。
温度大于 0 时输出会有波动,此时应比较结构化字段和关键结论,而不是逐字 diff。
如果任务对确定性要求高,再考虑固定随机种子或降低温度。
基线结果应该存多久?
至少保留最近一次稳定版本和当前版本各一份。
历史基线可以按变更记录归档,但不要只保留最新一份,否则无法回退对比。
Agent 基线建立的关键不在工具多复杂,而在于配置、环境和输出三者同时固定。
先把这三点做到可重复,后续的调优、排错和权限调整才有可靠的参照点。