DC娱乐网

📌 题目 "你的工具调用成功率多少?" 我:大部分时候没问题。 "失败的时候是

📌 题目
"你的工具调用成功率多少?"
我:大部分时候没问题。
"失败的时候是什么原因?"
我:模型有时候参数给错。
"那你做了什么?"
我:在 prompt 里强调了一下格式。

他没再问了。我知道这轮完了。

❌ 我错在哪
我把它当成"模型不听话",用 prompt 去求它
但这是个可以工程化解决的问题,不该靠求

✅ 后来我做的四件事

1️⃣ 别自己解析,用原生 function calling
自己写正则从文本里抠 JSON,是最容易出问题的做法
主流模型都支持结构化输出/工具调用
让 API 层去保证格式,比 prompt 求它可靠一个数量级

2️⃣ 把参数空间收窄
能用枚举就不用自由字符串
能用布尔就不用枚举
模型在开放空间里犯错的概率,远高于在三个选项里选一个

举例:
❌ "city": string
✅ "city": 枚举(从你系统里真实存在的城市列出来)

3️⃣ 校验放在执行之前
拿到参数先用 schema 校验一遍
不通过就把具体的错误信息喂回给模型让它改
注意是具体错误——
"date 字段格式应为 YYYY-MM-DD,你给的是 2026年3月"
而不是"参数错误"

(这一点和第 1 篇的死循环是同一个道理:
错误信息里有没有信息增量,决定了它能不能自己修好)

4️⃣ 重试要有上限且要降级
重试 2 次还不行,就不要再试了
转成"我暂时处理不了这个请求"返回给用户
比无限重试烧钱强

💡 面试加分点
主动报一个数:
"上线前工具调用成功率大概 92%,
做完 schema 校验和参数枚举化之后到 99%,
剩下的 1% 走降级"

有 before/after 有数,这题就答满了

你们工具调用成功率多少?怎么提上去的?

大模型 AIAgent 面经 AI应用开发 秋招 干货 程序员