ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

智能体为什么会出错?把计划、工具调用、记忆讲明白。

智能体为什么会出错?把计划、工具调用、记忆讲明白。 智能体为什么会出错把计划、工具调用、记忆讲明白。把智能体想成一位会先列步骤、再拿工具办事的实习同事它不是只会聊天也不是天然拥有所有权限。前端、后端、运维和 Web Coding 开发者今天就能从一条可回滚的接口联调检查开始只开放脱敏契约、测试结果和本地报告做到每一步有输入、结果和停点就足够看清问题。生产写入、代码合并、发版和对外发送仍由人确认。为什么“看起来都对”仍会出错智能体的错误常常不是一句话答错而是流程里某一环悄悄偏了。它可能把“核对订单状态”计划成“修改状态”把工具返回的字符串误当成成功或者在下一步引用了上一轮残留的记忆。页面和代码都能运行只说明入口通了不说明任务边界、工具契约和上下文已经对齐。下面的本地排查台故意保留一条可复现的失败目标是检查接口状态计划却包含写入动作工具返回字段名与计划假设不一致记忆里还留着旧版本的状态枚举。排查重点不是让模型“再想一遍”而是找出哪一个事实没有被验证。计划错在哪里先检查目标、步骤和完成条件计划是把自然语言目标变成可执行步骤的中间层。一个合格的计划至少写清四件事输入是什么、允许调用哪些工具、每步产出什么、什么情况必须停下。例如“核对接口状态”可以拆成读取脱敏的接口契约和最近一次测试结果。比对状态枚举、字段类型和异常响应。生成带来源的差异清单。发现写入、隐私数据或结论矛盾时暂停。如果计划里出现“直接修正生产字段”那不是模型能力强而是目标和权限没有分开。Anthropic 的工程文章把可控工作流与更自主的智能体区分开来并强调先用简单、可组合的模式验证任务边界。[1]工具调用错在哪里把参数、返回值和副作用对上工具是智能体触碰外部世界的接口。OpenAI Agents SDK 的工具指南把函数、托管、代理和本地运行工具作为连接外部能力的受控方式并要求开发者定义输入与结果形状。[2] 工具名写对不等于参数写对返回“已接受”也不等于业务动作已经完成。排查工具调用时逐项核对参数字段名、类型、枚举和默认值是否与契约一致。权限工具是否只读失败时是否会重试或产生副作用。结果返回值是否带版本、来源和错误码是否被下一步正确解析。重试网络超时后重试会不会重复提交或放大影响。本地运行记录把一次错误固定下来第一次调用用了旧字段statedone工具返回“枚举不存在”第二次调用改为读取契约并标记“待人工确认”没有写入任何数据。这里的英文只出现在代码字段中正文紧邻给出中文含义属于必要的代码例外。记忆错在哪里区分任务内事实和长期知识“记忆”至少有两层一次运行里为了避免重复读取而保存的任务事实以及经过审阅、可更新、可撤回的长期知识。OpenAI Agents SDK 的会话文档把会话历史视为可持久化的上下文边界开发者仍需决定保存什么、何时清理以及怎样隔离不同任务。[3]接口联调排查只需要记住本次输入版本、已执行的检查、每项结果和未确认差异。服务职责、状态枚举说明和回滚手册可以进入长期知识库但必须带版本与来源。不要把密码、令牌、个人信息、未脱敏日志或内部地址塞进“方便以后使用”的记忆。一条很实用的规则是记忆里的事实必须能回到来源记忆里的结论必须能被重新验证。当契约版本变更时旧枚举应标为过期而不是继续参与下一轮计划。怎样把三类错误串成一次可复查运行可以把一次低风险任务固定成“计划检查 - 工具试跑 - 记忆核对 - 结果交接”四步计划检查先列允许动作和停止条件拒绝把修复、发布混进只读目标。工具试跑用一份脱敏输入跑单次调用保存参数、返回值和错误码。记忆核对给每条上下文标注版本、来源和有效期清理过期事实。结果交接输出已核对事实、未知项、证据位置和下一位确认人。这条链的价值是让“出错”变成可定位的记录计划错了看任务卡工具错了看参数和返回值记忆错了看版本与来源。没有证据的推测要明确写成“未知”不要为了让流程看起来完整而补猜结论。Vibe Coding 生成了原型为什么还需要可控执行Vibe Coding 更擅长把自然语言想法快速变成页面、接口骨架和交互原型智能体要补的是另一段把目标拆成步骤连接受限工具保留上下文执行验证再生成交接记录。原型能跑是起点可控执行要求每一步都能解释、能停止、能回放。因此可以先让 Vibe Coding 生成一个排查台再让只读智能体读取本地契约和测试结果。它可以帮忙整理差异、标出旧字段、生成复现步骤但“是否改接口”“是否合并代码”“是否进入生产”仍必须由人决定。OWASP 的提示注入风险说明输入可能改变模型行为MCP 工具规范则明确建议始终保留能拒绝工具调用的人在回路说明工具边界与输入隔离不能只靠一句提示词。[4][5]人工确认点应该放在哪里只要动作会改变外部系统、影响用户或产生难以回滚的后果就把确认放在动作之前。至少保留以下停点修改生产数据、配置、权限或基础设施。合并代码、创建发布包、灰度或全量发布。对外发送工单、邮件、公告或客户回复。依据不完整、结果相互矛盾或输入包含隐私与安全风险。确认界面要让人看到“将要做什么、影响哪里、依据是什么、如何回滚”。智能体负责收集和解释证据人负责承担质量、业务和上线责任。今天就能做的只读实验选一个不会写生产数据、可以随时回滚的任务例如核对一条接口状态或整理一次构建失败。准备一张小任务卡目标、输入、允许工具、完成条件、停止条件各写一行。然后只运行一次本地检查保存计划、工具返回和记忆版本最后逐条人工核对来源。做到“错误能定位、证据能回看、动作有停点”就先停在这里不必急着接入多智能体或发布接口。趋势推断可回放记录可能成为智能体的基础设施这是趋势推断不是已经发生的行业结论。依据是Anthropic 的工程资料强调简单可组合的工作流[1] OpenAI Agents SDK 文档持续把工具、会话和人工介入作为显式能力[2][3]OWASP 对提示注入的风险说明与 MCP 工具规范对人审提示都把“可拒绝、可回看”放在工具调用附近。[4][5] 在任务可拆分、输入可脱敏、工具权限可限制、验证结果可保存且团队愿意复核的条件下可以推断开发团队可能更重视可回放记录而不只比较一次生成速度。不确定性仍然很大不同项目的契约质量、测试覆盖、上下文完整度、工具可靠性和人工审查成本差异明显。上述来源不能证明所有团队都会提效更不能推出智能体会取代开发者或自动承担上线责任。来源与事实边界[1] Anthropic Engineering《Building effective agents》2024-12-19。用于说明工作流与更自主智能体的差别以及先从简单模式验证边界的工程观点。[2] OpenAI Agents SDK《Tools》。用于核对智能体通过受控工具连接外部能力、工具需要明确输入输出的文档事实。[3] OpenAI Agents SDK《Sessions》。用于核对会话历史与上下文持久化边界不把会话历史等同于无限永久记忆。[4] OWASP GenAI Security Project《LLM01:2025 Prompt Injection》。用于核对提示注入会影响模型行为、需要输入隔离和防护的风险说明。[5] Model Context Protocol 规范《Tools》。用于核对工具调用应有清晰的用户界面、调用提示和能拒绝调用的人在回路。文中的排查台、终端输出和任务数据均为本地可运行的脱敏演示不是生产系统截图、故障实测结论或效率承诺。本篇为 AI 辅助创作。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进