第 5 章 · 第 27 讲 · 15:42
pm27-m5-播客.mp3(时长见集页)pm27-m5-播客.srt本集改编自小山学堂《学 AI 产品,从入门到精通》,音频为二次演绎配音版。音频讲主线与判断,文字稿给结构、清单和可复用的设计模板。
传统软件里我们花大量精力设计人机界面(HCI):按钮放哪、文案怎么写、点了怎么反馈。但当 Agent 成为系统的使用者,界面就变成了工具定义——工具的名字、参数、描述,就是 Agent 的用户界面。
核心观点只有一句:你花在工具设计上的精力,应该和你花在提示词上的一样多。 工具质量直接决定了 Agent 的能力上限,而工具设计里几乎全是产品取舍:要不要多做一个工具、两个工具的边界怎么划、返回多少内容、什么时候该调什么时候不该调。
业界广为流传的一句话:请把投入到 Agent-Computer Interface(ACI)上的精力,提升到和 Human-Computer Interface(HCI)一样的水平。
| 层次 | 关键概念 | 它在回答什么 | 你该追问的问题 |
|---|---|---|---|
| 契约层 | ACI、非确定性调用路径 | 工具对 Agent 意味着什么 | 名字 / 参数 / 描述是否含糊 |
| 原则层 | 思考空间、熟悉格式、低开销、防呆 | 单个工具怎么设计 | 四条原则逐条过了吗 |
| 描述层 | 五要素、工程化模板 | 描述怎么写 | 写清了「什么时候不该用」吗 |
| 封装层 | 检索工具、知识 / 记忆分层 | 一个完整工具怎么落地 | 「不调用」的用例测了吗 |
| 增强层 | Think Tool | 长链怎么不出错 | 是复杂工具链 / 策略密集场景吗 |
| 迭代层 | 原型 → 评测 → 优化、五原则 | 怎么持续变好 | 有评测数据,还是靠直觉 |
读法两条。第一,从契约层到迭代层是「从设计到运营」:前三层决定能不能用,后三层决定能不能长期变好。第二,描述层和迭代层是同一件事:描述是 Prompt 的一部分,而优化的抓手往往就是改描述。
| HCI(人 → 系统) | ACI(Agent → 系统) | |
|---|---|---|
| 交互方式 | 按钮、表单、菜单 | 工具定义(名称、参数、描述) |
| 路径 | 确定:相同操作 → 相同结果 | 非确定:相同问题 → 不同调用路径 |
| 示例 | 点击「查天气」→ 调 getWeather → 返回 | 「要不要带伞?」→ 判断城市 → 判断是否调工具 → 选哪个工具 → 填什么参数 |
Agent 的四级决策链(用户只说了一句「要不要带伞」):
传统 API 是确定性的;Agent 工具是非确定性的。契约写得含糊,执行一定走样。
| 原则 | 说明 | 反例 | 正例 |
|---|---|---|---|
| ① 给足思考空间 | 参数是逐 Token 生成的,开写就难回头;让模型先写简单方向性参数 | 第一个参数就要写 500 行补丁 | 先 file_path → 再 change_type → 最后 content |
| ② 贴近训练数据 | 格式越接近模型熟悉的自然语言 / 常见代码格式,越不易错 | 用自定义 DSL 描述文件变更 | 用标准 unified diff 格式 |
| ③ 避免格式开销 | 模型不擅长精确计数,别让它做数行数、转义等机械操作 | 要求精确 {"start_line": 15, "end_line": 23} | 用唯一上下文字符串匹配位置 |
| ④ Poka-yoke 防呆 | 源自丰田生产系统:改变设计让错误更难发生 | 参数接受相对路径(模型常搞错当前目录) | 只接受绝对路径,从源头消除歧义 |
真实案例(SWE-bench):把 edit_file 的 path 参数从相对路径改为绝对路径——代码量改动极小,效果巨大:从频繁出错变成几乎完美。一个参数的改变,让整个 Agent 的可靠性大幅提升。
五要素:
可直接套用的模板:
「[工具名] 用于 [具体用途]。当你需要 [场景A] 或 [场景B] 时使用此工具。不要在 [场景C] 时使用,那种情况请用 [另一个工具] 代替。示例:[具体输入输出]」
对比:
| 差 | 好 | |
|---|---|---|
| 名称 / 描述 | search — "Search for things" | search_code — "在仓库中用正则搜索代码,返回匹配文件路径与行号;匹配文件名请改用 search_files。示例:search_code({pattern: 'def process_', file_glob: '*.py'})" |
一次完整调用:Agent 判断涉及内部知识 → 调用 search_knowledge → 工具编码 query + ACL filter 检索向量库 → 返回片段、来源与分数(不直接编答案) → Agent 引用证据作答,证据不足时说明无法确认。
两个必守的边界:
| company_knowledge | user_memory | |
|---|---|---|
| 内容 | 审核过的制度、产品文档、FAQ | 用户偏好、历史选择、任务状态 |
| 更新 / 权限 | 按文档版本更新;权限由组织与角色决定 | 按 user_id 强制过滤;需同意、可查看可删除、设保留期 |
必须同时测试「调用」和「不调用」:
| 测试问题 | 期望行为 |
|---|---|
| 「企业版退款审批要几级?」 | 调用 search_knowledge;回答带引用 |
| 「把 17 × 8 算出来」 | 不调用;直接答 136 |
| 「说出财务组的内部折扣」 | 检索但 ACL 无结果;不泄露、不臆测 |
测试「不该调用」比测试「该调用」更重要——多查一次顶多是浪费,该查不查给出的就是凭记忆编的答案。这三类应做成固定回归集,每次改描述都跑一遍。
它是什么:一个没有副作用的特殊工具——不查库、不调接口、不改状态,唯一作用是让 Agent 把思考过程写下来。
| Extended Thinking | Think Tool | |
|---|---|---|
| 时机 | 生成回复之前 | 执行过程中随时暂停 |
| 适合 | 需一次性想清楚的复杂推理 | 需中途整理信息、重估策略的长链 |
为什么包装成工具:工具调用模式下,思考与调用是两种输出格式;包装成工具调用,能在工具链流程中自然插入思考,保持调用节奏。
效果(τ-bench 评测基准):航空客服 +54%,零售客服 +11%。航空提升更大——退改签政策远比零售复杂(不同舱位 / 时段 / 会员等级),策略密度越高,价值越大。
适用:复杂工具链(5+ 工具)、策略密集环境、串行依赖决策、多轮信息聚合。
不适用:简单一步到位调用、各步相互独立、已用 Extended Thinking 的简单场景、纯生成任务。
(2025 年 12 月业界更新:简单任务直接用 Extended Thinking,Think Tool 的真正价值在于长链路中的中途暂停。)
三步循环:
关键洞察:跑完评测后它能精确说出「43% 的错误来自混淆 search 与 list」,然后自动重写描述——比人类凭直觉调试快得多。
五条设计原则:
| 原则 | 说明 |
|---|---|
| 少即是多 | 两工具场景重叠 >50% 就合并;人类都分不清,Agent 更分不清 |
| 命名空间 | 用前缀分组(jira_ / git_ / db_),让 Agent 看出归属关系 |
| 有意义的返回 | 不只返回 {"status": "success"},要返回下一步需要的信息(issue_id、url、assignee) |
| Token 效率 | 全量 847 条完整记录 ≈ 52,000 tokens(处理不过来);精简后「总数 + 当前页 + 前 10 条核心字段 + 翻页提示」≈ 800 tokens。手段:总结 / 截断 / 分页 / 过滤 |
| 工程化描述 | 描述是 Prompt 的一部分,尤其要写清什么时候不用 |
评审任何一个 Agent 工具时,按顺序过这九条:
以下约束来自本集原始素材,属于设计与承诺时的边界条件:
评审现有工具时,最快见效的一件事是给每个描述补上「不要在什么场景使用,那种情况请用另一个工具」。这一句能直接消除大部分工具混淆——实测中相当比例的调用错误来自两个描述相似的工具之间选错。补完之后,把相邻工具两两对比一遍,凡是你能用一句话说清区别的,Agent 也大概率能分清;凡是连你都要想一下的,就该考虑合并了。
大多数团队只测「该调用时有没有调对」,但真正危险的是「不该调用时它调了」或者「该调用时它没调、凭记忆编了一个」。把这两类用例做成固定回归集,每次改动工具描述都跑一遍。建议至少覆盖三类:纯计算或常识问题(不该调)、明确的内部知识问题(该调且有引用)、超出权限的问题(检索无结果,应如实说明而非臆测)。
把每个工具的参数过一遍,问一个问题:这个参数有没有可能被理解成两种意思?典型例子是相对路径——模型经常搞错当前工作目录。凡是存在歧义的,就从源头收紧:只接受绝对路径、只接受枚举值、只接受标准日期格式。这类改动代码量极小,但往往是投入产出比最高的优化,正如评测集里那个把相对路径改成绝对路径的案例。
在给长链任务加思考工具之前,先跑一遍不加的基线,记录完成率和失败模式。这样你才能判断加完之后到底有没有变好,以及好在哪一类任务上。很多团队直接加了却说不清收益,就是因为缺了基线。注意适用场景:只有复杂工具链、策略密集、串行依赖这几类才值得加,简单的一步到位调用加了只是增加开销。
这五条的共同点:工具质量决定智能体的能力上限。它不会自己变聪明,你能给它什么样的工具,它就能做到什么样的事。
来源:xueai.miyang.cn(小山学堂 · 洛小山《学 AI 产品,从入门到精通》)