Agent 频繁失败往往不是因为模型太笨,而是上下文管理混乱、工具调用缺边界、工作流断点缺失。解决方案是引入 MCP 协议、定向检索、状态持久化和严格验证,而不是反复改 prompt。
那天深夜,我盯着一个坏掉的 Next.js 和 Express 后端集成,满心以为我的 AI Agent 已经彻底失控了。原本应该是一个简单的 n8n 自动化流程,可每次一运行,它就会编造出根本不存在的包,中途还会把上下文全部丢光。
我的第一反应——直觉性的 System 1,立刻冒了出来:这个 LLM 就是不够聪明。我坐在那里,精疲力竭,准备第二十次重写 prompt。
激活 System 2
我强迫自己退后一步,激活分析性的 System 2 思维。我面对的问题不是模型不够智能,而是基础设施缺失。我运行着一个强大的人工智能模型,却没有任何护栏。没有持久化记忆,没有验证机制,只是把一整个 Mongoose schema 直接塞进 prompt,然后祈祷出现奇迹。
我本质上就是把一颗 F1 引擎装在了一块木制滑板上,然后纳闷为什么它在第一个弯道就失控了。
我不再执着于 prompt engineering,转而开始关注 Harness Engineering。模型只是引擎,而 harness 提供了底盘、方向盘和刹车。以下是我彻底重构 agentic 工作流的方式:
上下文管理:不再向上下文窗口倾泻原始代码库转储,我实现了精准检索。Agent 现在只看到当前任务所需的具体文件。
标准化工具:我集成了 Model Context Protocol (MCP) 服务器,赋予模型有限、安全的方式来执行操作,而不仅仅是生成文本。
持久化状态:如果一个长时运行的工作流暂停或失败,系统现在会对其进度设置检查点。它从上次中断的地方恢复,而不是从头开始。
严格验证:"看起来没问题"不再是可接受的输出。Agent 必须运行测试并验证 CLI 输出,才能宣布任务完成。
效果是立竿见影的。幻觉消失了,Agent 从一个脆弱的文本生成器变成了一个可靠的开发者。没有可靠的系统支撑,再聪明的模型也毫无用处。要实现真正的自主性,你必须学会打破最初信任的那个系统,然后工程化地构建一个更好的。
在复杂任务中,你让自动化 Agent 保持正轨所面临的最大挑战是什么?