模型提议,外部执行:工具调用的定义、两大收益与窄接口设计
「工具是模型借以调用外部程序的接口。」这句定义的要害在分工:模型只提议,外部软件决定执行。本篇沿 L2 p.2-12 夯地基:Extend 与 Facilitate 两大收益各治什么病,五类接口里 finish 为什么是控制调用而非工具,窄接口清单怎么从构建自己的 ChatGPT 倒推出来。后面的序列化、约束解码、注入攻防,全都以它为前提。
每个 agent 框架都在教模型调工具。可再追问一句定义,多数人的答案会卡壳。课程官方指定的第一篇入门读物 What Are Tools Anyway? 用一整篇综述,专门回答这一个问题。
本篇沿讲义 L2 p.2-12 走四步:一个定义、两大收益、五类接口、一套设计方法。
一、定义的关键不在「是什么」,在「谁做主」
课程的工作定义只有一句话(slides L2 p.2):工具(tool)是语言模型借以调用外部程序的接口(interface)—— 模型「提议」(propose)一次调用,外部软件「决定」是否执行、如何执行。
拆开看,主权分成两半。模型侧从头到尾不碰键盘,只产出一段结构化意图:调哪个工具、参数是什么。真正的动手方是 harness(运行器 / 脚手架)与外部程序,负责校验、执行、把观测回填。
具体形态五花八门:Search、Calculator、Browser、Python、API(slides L2 p.2-6)。但主权结构只有这一种。
What Are Tools Anyway? 的贡献是从语言模型视角给工具知识定了位:它不同于事实性知识与动作性知识,不在参数里,讲的是知道何时、借谁的手。该综述据此建立了覆盖工具创造、选择与使用的统一分析框架。
对这个主权分离最有用的读法:后面的一切机制细节都是它的派生。
- 参数为什么要按 schema 校验?
- 观测为什么会变成攻击面?
- call ID 为什么必须一一配对?
追到根,答案同一个:提议者与执行者不是同一方。
二、两大收益与场景矩阵:什么时候值得递工具
模型缺的东西只有两类,对应讲义的两大收益(slides L2 p.3-4):
取回参数化知识(parametric knowledge)之外的信息与动作:新鲜证据,比如今天的公告;私有状态,比如你的余额与订单。这些永远不在训练数据里,工具是唯一入口。
把任务委托给外部程序,更可靠也更高效:精确计算交给解释器一次做对,机械操作交给 API 不走样。模型并非不会,只是偶发失稳,这里省下的就是这份不稳。
落到场景就是一张矩阵(slides L2 p.5)。按你缺什么找工具,别拿工具找活:
| 你缺什么 | 典型问题 | 该递的工具 |
|---|---|---|
| 当前信息 | CMU 今天有什么公告? | search_web |
| 精确计算 | 这四个数的均值是多少? | calculator / execute_code |
| 私有状态 | 我账户还剩多少? | Account API |
| 外部动作 | 帮我下单、改配置 | browser / API |
不是每次都该调工具。原则只有一条:只在收益超过延迟、成本、失败与风险时调用(slides L2 p.6)。问加纳的首都是哪里,参数化知识张口就来,正确动作是一轮 finish 直接作答;先去搜索绕一圈,等于用一次网络往返买一条本来就知道的答案。
三、五类接口过一遍:finish 是控制调用,不是工具
教学 harness 的最小动作集只有五个(slides L2 p.7-12):四个真工具,加一个控制调用。最容易考错、也最容易写错的,是那个不算工具的 finish。
finish(text) 是控制调用(control call)。 模型提议它,接住它的却是 harness 本身:一收到 finish,循环终止,harness 用其中的文本作为最终答案向用户归纳。循环何时停也是模型决策的一部分,harness 并没有写死轮数。
问加纳首都那题的完整走法:先 search_web 取证,观测回填,再 finish("加纳的首都是 Accra。") 收束。
其余四个才是真正的工具:
search_web("site:cmu.edu 今日公告"):连搜索算子也是参数,site:前缀是写给搜索引擎的指令;execute_code("sum([18, 23, 41, 54])/4"):精确计算交给代码,一行算出 34,胜过模型千次心算;generate_image(query):生成能力整体外包;create_grocery_cart(items):作用于外部状态的典型,返回Cart C17 · 3 items · $31.42,世界被切实改变,模型再据此组织下一步。
把主权分离画进同一张图,五类接口各就各位:
在带 finish 的动作集里,观测足量之后若不显式 finish、只输出普通文本,循环并不终止。harness 会带着全量历史再跑一轮,token 一路烧到轮数上限。finish 的语义是「我决定停」,这句话必须说给 harness 听;写 harness 的人也必须为它单独分流,别把它派发给任何外部程序。
四、窄接口设计:从「构建 ChatGPT」倒推能力清单
讲义给了一个可复用的设计方法(slides L2 p.6):假设你要构建自己的 ChatGPT,倒推它需要哪些能力。
- 要答今天的新闻,就得有 search;
- 要算得准,就得有 execute_code;
- 要替用户下单,就得有账户 API。
倒推的终点,是一组精心收窄的窄接口(narrow interface):每个能力对应一个窄工具,而不是一个万能接口。
窄的好处直接长在定义里。接口越窄,模型提议越容易对:参数少而明确,何时调、调谁一目了然。harness 执行也越容易稳:校验、限流、审计都能按工具逐一设防。
课程把这条原则推到谱系另一端的故事,留给了伴读笔记第三节:与其递一箩筐细粒度函数,不如给模型一个 shell,让它用代码自己组合。
走到极致的真实样本是 mini-swe-agent,Princeton 与 Stanford、SWE-bench 原班人马出品,仍在活跃维护。它号称「100 行的 AI agent」,只用 bash 一个工具、没有独立的工具调用接口,SWE-bench Verified 上仍拿到 74%+。
窄接口把每个能力做成一个明确的开关,通用程序接口把全部能力收进一个终端。选哪端,是 code-vs-json 一节专门要辩的题。
想继续往下读,四篇读物各管一段:
- What Are Tools Anyway?:COLM 2024 的经典,官方指定第一篇读物,把工具的知识论说透。
- Tool Learning with Large Language Models: A Survey:Frontiers of Computer Science 已录用,给出任务规划、工具选择、工具调用、响应生成的四阶段工作流;截至 2026 年 10 月,仍是能找到的最新通用工具学习综述。
- Empowering Multimodal LLMs with External Tools:2025 年 8 月的多模态综述,
generate_image这类接口就落在它的领地。 - OpenAI Function Calling 指南:行业侧的事实标准,十分钟可读完上手。
与本讲的连接
本篇是伴读笔记第二节工具调用卡片的下钻层,对应概念卡 Tool Use 与 Function Calling 的正面,也直接服务讲次页 quiz 里 finish 与调用时机相关的题目。finish 分流漏写,agent 就永远停不下来,这坑等你动手写第一个 harness 时见。
往后四个衔接点,各管一段:
- react-trace:模型提议的调用在轨迹层怎么走,Thought/Action/Observation 与 call ID
- schema-trilogy:调用在词元层被写成什么,三套私语
- grammar-mask:格式怎么被硬保证,约束解码
- tool-learning:会用工具怎么训练进模型
资料卡三张各就其位:m-what-are-tools 是官方指定第一篇读物,m-tool-learning-survey 给全景地图,m-openai-fc-guide 是动手第一站。最后数一遍动作集:search_web、execute_code、generate_image、create_grocery_cart 四个真工具,一个 finish 管停,一共五个。
本节论文与规范
本节资料
- SWE-agent/mini-swe-agent 代码库入门官方指定
「100 行的 AI agent」:只用 bash 一个工具、不设工具调用接口、每步状态无关执行,却在 SWE-bench Verified 上拿到 74% 以上。反直觉的极简主义样本——工具面最小化照样成事,反过来印证课程「四个工具加一个 finish」的最小 harness 主张。官方指定读物。
- OpenAI Function Calling 指南 规范入门官方引用
tools=[{type:function,…}] 进请求、模型返回 tool_calls、以 call_id 配对回填结果的形状,已成行业事实标准。指南给出从定义工具 schema 到拿到结构化输出的完整链路,是动手第一站,本讲调用机制板块多次对照此文档。
- Tool Learning with Large Language Models: A Survey 论文2405.17935入门
给工具学习一幅统一叙事地图:为什么需要工具、工具从哪里发现与制造、四类训练方法、评测体系与文献地图。适合作为本讲的课后全景回顾。注意文献收录止于 2024 年,需与 ToolRL、Kimi K2 等新文互补阅读。
- What Are Tools Anyway? A Survey from the Language Model Perspective 论文2403.15452入门官方指定
从语言模型视角系统回答「什么是工具」:给出统一的形式化定义,把工具知识与事实性知识、动作性知识区分开,并建立覆盖工具创造、选择、使用的统一分析框架。本讲「工具定义」板块(p.3-5)的概念地基即出自此文,是官方指定的第一篇入门读物。
AI 生成 · 仅供参考,与课程方无关。选中正文里的任何一段也能直接问我(解释一下 / 举个例子)。
本详解以 CMU 11-768 AI Agents (Fall 2026) 课程大纲为参考框架独立撰写,AI 辅助起草、人工抽审。 涉及的官方课件、论文与课程材料版权归原所有方,讲义为站内镜像、其余外链原文出处; 观点与文字(除标注引用外)为作者原创。