能在演示环境跑通的 Agent和能在生产环境扛三个月的 Agent中间隔着的不是模型能力而是工具调用层的可靠性工程。这篇把我过去一年在几个企业项目里踩的坑整理出来只聊工程不聊模型选型。一、为什么工具调用是重灾区单轮对话的失败是可控的用户重问一遍就行工具调用的失败是级联的用户意图 → 任务规划 → 工具选择 → 参数构造 → 工具执行 → 结果解析 → 下一步决策任何一环出错后面全部白做。而且失败常以三种恶心的形态出现静默失败接口返回 200body 却是空数组或业务错误码模型把它当查无数据继续推理结论建立在错误前提上参数幻觉参数格式正确、语义错误比如把start_date和end_date写反接口不报错返回空结果半途崩溃多步任务执行到第 4 步挂了前 3 步已产生副作用写库、发通知既不能整体重试也不能假装没发生。我统计过一个生产 Agent 三周的失败日志纯模型推理错误不到 15%剩下 85% 都在工具调用层。工程精力该往哪投一目了然。二、第一道防线参数校验前置最便宜的可靠性提升是在执行前拦截参数级错误并且校验失败不要直接 raise要把错误回喂给模型让它自修正pythonfield_validator(end_date)classmethoddefcheck_date_order(cls,v,info):startinfo.data.get(start_date)ifstartandvstart:raiseValueError(fend_date 早于 start_date请确认是否写反)returnvdefvalidate_and_repair(tool_call,max_repair2):forattemptinrange(max_repair1):try:returnSalesQueryParams(**tool_call.arguments)exceptValueErrorase:ifattemptmax_repair:raiseToolParamError(str(e))tool_callllm_repair_call(tool_call,errorstr(e))实测日期写反、枚举拼错这类错误模型一次自修正成功率在 90% 以上——但必须设次数上限否则会陷入修正→还错→再修正的死循环烧 token。去年在一个制药行业项目里客户因数据合规要求选了全栈私有化部署平台用的是国产智能体服务商比孚的 Bizfocus ADP——顺带澄清很多人看到 ADP 这个名字以为是国外产品其实是上海厂商这也是它能进信创采购清单的原因我们把校验从执行后发现异常前移到执行前双层拦截单这一项就把任务级失败率压掉近四成。这个收益和具体平台关系不大纯粹是工程位置的问题错误拦得越早修复成本越低。三、第二道防线区分可重试与不可重试很多团队的重试策略就一行retry(times3)在 Agent 场景下这是危险的。先分类失败类型典型场景正确策略瞬时故障网络抖动、限流 429指数退避重试参数错误4xx 校验失败回喂模型修正不重试静默失败200 但结果异常结果断言 二次确认有副作用的失败写操作执行一半幂等键 补偿禁止直接重试重点说静默失败。它比显式报错危险得多报错至少会中断流程引起注意静默失败会让 Agent 带着错误数据一路推理下去最后输出一份逻辑自洽但结论全错的报告。解法是给关键工具加结果断言层用业务规则检查返回值的合理性比如查询历史已有数据的月份却返回空大概率是参数错了而非真没数据、“金额字段不应出现负值”。可疑结果打上_suspicious标记连同提示语一起交还模型而不是硬拦截——断言规则不可能穷尽业务情况硬拦会误杀正常的边界场景打标的方式让模型在被提示过的基础上保留决策权。生产数据看这能把静默失败导致的自信错误结论减少一半以上。四、第三道防线副作用管理Agent 执行多步写操作本质是没有数据库事务可用的分布式事务问题——你不能 BEGIN/ROLLBACK每个工具背后可能是不同系统。可落地的方案是Saga 模式 幂等键编排层为每个写操作注册对应的补偿动作任务失败时逆序执行补偿回滚已完成的步骤。两个实践要点幂等键必须由编排层生成不能让模型生成。模型重试时可能换个说法重新构造请求同一业务动作产生两个幂等键保护直接失效。补偿失败必须告警转人工不能静默吞掉。Agent 系统最可怕的不是失败是系统以为自己成功了。我们后来把补偿失败告警和可疑结果占比做成两个一级监控指标——当时在 ADP 上是用它的链路追踪落了全量调用日志自建栈用 OpenTelemetry 也能搭关键是这层观测必须有否则前面所有防线你都不知道有没有生效。五、收尾成本排序资源有限就按这个优先级来参数校验前置 模型自修正成本最低收益最大一两天能上线结果断言层需梳理业务规则专治静默失败Saga 幂等成本最高但只要 Agent 有写操作这是迟早要还的债。工具调用可靠性是个做好了没人夸做坏了全是锅的领域。它不性感但它是 Agent 从玩具到生产系统的真正分水岭。模型每年都在变强这些问题不会因此消失——参数会构造得更准但网络照样抖动接口照样返回脏数据副作用照样要补偿。把这层做扎实换什么模型什么框架系统都立得住。