运行 AI Agent 一年后的四条实战经验:别在提示词上死磕
过去一年,我把 AI Agent 接入了各种不起眼的工作流:邮件分类、部署检查、内容流水线。网上大部分建议都在讲"怎么构建 Agent",但几乎没人讲"怎么日复一日地运维它们"。以下是真正重要的四条经验。
一、任务简报比提示词更重要
在我的配置中,每一个可靠的 Agent 运行都从一个任务文件开始:目标、约束、停止条件、结果写入位置。
提示词在不断变化,但任务简报的格式在一年里几乎没变过。当一次运行出问题时,百分之九十的情况是任务简报写得含糊,Agent 自己猜了。这时候应该修简报,而不是调温度参数。
具体来说,一个好的任务简报应该包含:
- 明确的目标:用一句话说清楚要完成什么
- 约束条件:不能做什么、必须遵守什么规则
- 停止条件:什么情况下算完成、什么情况下应该中止
- 输出位置:结果写到哪里、格式是什么
把这些写清楚,比花几个小时调提示词有效得多。
二、审计日志比记忆系统更有用
花哨的记忆系统一次次让我失望。一个简单的追加式账本——CSV 或 Markdown,每个动作一行——表现超过了所有记忆系统。
Agent 在启动时读取自己的账本,人类在怀疑时用 grep 查账本,Git 历史同时充当时间线。朴素的方案反而最可靠。
为什么审计日志比记忆系统好?
- 可追溯:每一个动作都有记录,出了问题可以回溯
- 可搜索:用 grep 就能找到任何历史操作
- 不可篡改:追加式写入,不会被 Agent 意外覆盖
- 人类可读:不需要特殊工具就能查看
相比之下,复杂的记忆系统往往存在向量检索不准、上下文窗口有限、旧记忆被覆盖等问题。
三、给每个 Agent 独立的爆炸半径
独立的浏览器配置文件、独立的 token、独立的工作目录。
第一次有 Agent 删错文件夹时,那是我的文件夹——因为我偷懒没做隔离。从那以后再也没有发生过。一次糟糕运行后的清理工作应该是 rm -rf sandbox,而不是写事故报告。
具体的隔离措施包括:
- 独立的浏览器 profile:每个 Agent 有自己的 cookie 和缓存
- 独立的 API token:权限最小化,只授予必要的访问权限
- 独立的工作目录:Agent 只能在自己的沙箱目录中操作
- 独立的 Git 分支:代码修改在独立分支上进行,方便审查和回滚
隔离的成本很低,但收益巨大。一次事故就足以证明隔离的价值。
四、验证才是核心功能
一个声称成功的 Agent 毫无价值;一个能证明自己成功的 Agent 才无价。
我的系统中每个任务都以独立检查结束:curl 那个页面、数一下行数、diff 输出。如果检查无法自动化,那这个任务还没准备好交给 Agent。
验证的方式有很多种:
- HTTP 检查:curl 页面,检查状态码和内容
- 数据检查:数数据库行数、检查文件大小
- 差异检查:diff 输出与预期结果
- 语法检查:编译代码、运行 linter
- 端到端测试:运行完整的测试用例
关键原则是:不要相信 Agent 的话,要相信可验证的证据。Agent 说"部署成功了"不算数,只有 curl 返回 200 并且页面内容正确才算数。
总结
这四条经验的共同点是:把 Agent 当作一个需要被管理的执行者,而不是一个神奇的黑盒。
- 写清楚任务简报,而不是死磕提示词
- 用简单的审计日志,而不是复杂的记忆系统
- 做好隔离,控制爆炸半径
- 自动化验证,不要相信口头报告
这些做法都不花哨,但它们是让 AI Agent 真正能在生产环境中长期稳定运行的关键。最不 glamorous 的自动化任务,往往才是最值得做的。
原文链接:https://dev.to/arsentevai/four-lessons-from-a-year-of-running-ai-agents-on-boring-tasks-457n