一题一页 · 运行机制 · 也叫 function calling、函数调用

AI 为什么能操作软件?它到底是怎么「做事」的?

模型在回答里写出「我要用某个工具,参数是……」,由外面的程序真正去执行,再把结果送回给模型。模型只负责「提要求」。

先看懂

运行机制
工具调用(Tool use / Function calling)
模型提要求,程序去执行
模型自己一步都执行不了

此刻在看:静态解释,这一页的 3 个部分都是这一种。

主张依据 3 类:原始论文、公开报道与实践记录、编辑解释。

核实状态:这一页没有需要核实的结论,所以这一维是空的。

三个维度分别看:演示方式、主张依据、核实状态

演示方式

表示此刻展示方式,不是准确性等级。

  • 顶部三秒卡 静态解释
  • 举例与能/不能三栏 静态解释
  • 展开后的正文与关系说明 静态解释

主张依据

可多选,每种都有实际引用;「本站实验」需有记录。

  • 原始论文 ReAct: Synergizing Reasoning and Acting in Language Models
    builds_on 那条关系说明(论文里的「行动」一步是工具调用的雏形)指的是这篇论文;本站的记录说不出读到了它的哪一层。
  • 公开报道与实践记录 Function calling and other API updates
    这份发布公告支持的是本页指向「工具调用有了正式接口」那件事的关系;正文里「谁执行」的分工是本站按这个机制的定义写的。
  • 编辑解释
    本站自己写的,没有外部引用。
    「模型提要求,程序去执行」是本站为三秒卡写的说法。
    查北京气温那个例子与「它能」「它不能」五条,是本站按这个机制的定义写的界定;「不是对某个产品的实测」那句限定也是本站加的。
    「关键在于谁执行」整段是本站的解释。

核实状态

附范围、时间及必要原因,不等于全页绝对正确。

这一页没有需要核实的结论,所以这一维是空的——不会因为它挂着论文就替它标一个「已核对」。

举个例子

你问「北京现在几度」。模型写出「调用天气工具,城市=北京」。程序去查,把「23 度」送回去。模型再写「北京现在 23 度」。

它能
  • 让模型接触到它训练时没有的信息:实时数据、你的文件、网页
  • 让模型「做」而不只是「说」:发消息、改文件、下订单
它不能 / 不是
  • 模型自己不执行动作,真正去执行的是外面的程序;这是这个机制的定义使然,不是对某个产品的实测
  • 工具返回的结果是对是错,模型无法保证
  • 程序没提供的工具,模型再想用也用不了
想看细节再点开

关键在于谁执行

这个词最容易让人误解的地方是「调用」两个字。听起来像模型自己去调用了什么。实际上模型只是写了一段格式固定的文字,意思是「请帮我调用这个」。真正去执行的是外面的程序,也就是 harness。

这个分工决定了两件事。第一,模型能做什么,取决于程序给了它哪些工具。第二,安全和授权的关卡在程序那一层,而不在模型那一层。

它和其他概念的关系

谁指向了这个词

看它发生

教学脚本 约 3 分钟
AI 为什么能操作软件?它到底是怎么「做事」的?
模型只写字,程序才做事。
程序 模型 模型写「请调用工具」,程序真的去调用,再把结果送回模型
教学简化模型:场景按公开文档写成的剧本逐屏播放;真实软件还有鉴权、重试与并发,这里都略去了对话内容是编的。这个简化流程取自 harness 的公开文档,来源支持的是这套机制,不说明这段对话真在某个产品里发生过;方框和文字也不是模型内部的计算过程
你看到的
还没有消息
幕后:程序和模型之间
程序还没动
你说了一句话。它先到达程序,不是直接到达模型。
第 1 步 / 6

按暂停会把这一步的文字整段显示出来。这段字本来就是预先写好的,逐字出现只是展示方式,不是模型正在生成。 键盘:焦点在这个实验里时,← → 切换步骤,空格 播放或暂停。

这一段你自己走

亲手让它加一条待办

请求是固定的,页面不会自己开始。你按一次「下一步」它才走一步;其中两步是你的浏览器此刻真的在算。

固定请求 把「阅读 AI 入门」加入我的待办清单。

这一轮给了哪些工具

换一组条件会从头开始;上一组跑出来的结果不算这一组的结果。

当前步骤 第 1 步 / 6

你看到的你提了一个请求,清单里有 0 条

幕后这一轮开放了哪些工具已经摆好,还没有发生任何事

窄屏一次只展开一侧。这两个标签只决定下面看哪一侧,不会推进步骤,也不会重跑。

你看到的

把「阅读 AI 入门」加入我的待办清单。

你的待办清单

清单是空的

幕后:程序和模型之间
  1. 这一轮的工具配置
    开放的工具:addTodo

你的请求已经在这里,清单还是空的。按「下一步」自己往下走,这一页不会自己开始。

走到这一步为止,这一页一次工具都没有执行过

两组条件各自跑出来的实际记录

  • 这一轮给了模型一个能写待办清单的工具 还没运行

    把这一组从头走到最后一步,这一格才会填上它的实际记录;这里不会预先替你填一个结果。

  • 这一轮一个工具都没给 还没运行

    把这一组从头走到最后一步,这一格才会填上它的实际记录;这里不会预先替你填一个结果。

教学脚本 教学简化模型:模型那两段话按公开的工具调用格式预先写好;这一页从头到尾没有调用过任何模型

浏览器计算 教学简化模型:参数校验与写入清单是你的浏览器此刻真的在做,但工具只有一个,没有鉴权、没有重试、也没有并发「简化」说的是模型简化,这一块此刻仍然在真的算。

此刻在看:浏览器计算 + 教学脚本——3 个部分各自标着自己的那一种,没有一个徽章能概括整页。

主张依据 3 类:官方文档、公开报道与实践记录、编辑解释。

部分核对 核实状态:部分核对 · 核于 2026-09-07。

三个维度分别看:演示方式、主张依据、核实状态

演示方式

表示此刻展示方式,不是准确性等级。

  • 分步场景:模型只写字,程序才做事 教学脚本
    教学简化模型:场景按公开文档写成的剧本逐屏播放;真实软件还有鉴权、重试与并发,这里都略去了
  • 待办实验 · 模型说的那两段话 教学脚本
    教学简化模型:模型那两段话按公开的工具调用格式预先写好;这一页从头到尾没有调用过任何模型
  • 待办实验 · 这一页真的做的那两步 浏览器计算
    教学简化模型:参数校验与写入清单是你的浏览器此刻真的在做,但工具只有一个,没有鉴权、没有重试、也没有并发
    「简化」说的是模型简化,这一块此刻仍然在真的算。

主张依据

可多选,每种都有实际引用;「本站实验」需有记录。

  • 官方文档 Agent harnesses
    「让智能体表现得像智能体的那个循环」这条定义取自官方文档
  • 公开报道与实践记录 Function calling and other API updates
    模型以结构化格式提出调用请求这一步,对照这份公开发布说明核过
    「模型以结构化格式写出工具名与参数」这个形状对照这份公开发布说明核过
  • 编辑解释
    本站自己写的,没有外部引用。
    屏幕上的每一句对话与每张纸条由本站编写,不说明这段对话真在某个产品里发生过
    工具请求那一段与两句回复都由本站写定,不代表真实模型一定会这样回答
    工具声明、必填参数与两组条件都是本站给定的教学设定,程序检查的是这一份声明,不是某个真实系统的授权

核实状态

附范围、时间及必要原因,不等于全页绝对正确。

  • 部分核对
    本站核对这条结论: 核的范围:「模型写请求、程序执行、结果回传」这套流程对照两条来源核过;屏幕上的对话与方框是编写的示意,没有对照任何一次真实运行
    「模型决定调用工具」指的是它生成了一段这样的文字,不是它有了意图
这个动画没有说的事
  • 对话内容是编的。这个简化流程取自 harness 的公开文档,来源支持的是这套机制,不说明这段对话真在某个产品里发生过;方框和文字也不是模型内部的计算过程
  • 「模型不记得上一轮」说的是模型这一侧不保存状态。程序每轮送什么、服务端有没有对相同开头做缓存,是另外两件事
  • 不同软件的具体步骤、授权方式和工具种类各不相同,这里只展示共同流程
  • 「模型决定调用工具」指的是它生成了一段这样的文字,而不是它有了什么意图
这一场戏的说明

这个单元把一个智能体完成任务的一个回合拆成六步。每一步都标出了这件事是做的、模型做的,还是程序做的。看完之后,你应该能说出:模型和程序各管什么。

这个实验解释了哪些词

查证据

这一场戏的结论

模型只会写字;真的去执行工具的是它外面那个程序。

成立条件
  • 这是按 harness 公开文档编写的简化流程,屏幕上的对话是编的
  • 不同软件的步骤、授权方式与工具种类各不相同
「AI 为什么能操作软件?它到底是怎么「做事」的?」的完整结论:必要条件、指标口径与已归档的旧结论

看完你应该能说出

模型只会写字。它写出「请帮我调用某个工具」,是外面的程序真的去执行,再把结果送回去。「做事」的是程序,「决定做什么」的是模型。

成立条件:少一条,上面那句话就不成立
  • 这是按 harness 公开文档编写的简化流程,屏幕上的对话是编的
  • 不同软件的步骤、授权方式与工具种类各不相同
这条结论的边界
  • 这一页没有测延迟、成功率,也没有测工具执行的可靠性
  • 「模型不记得上一轮」说的是模型这一侧不保存状态,程序每轮送什么是另一件事
核验
部分核对 · 本站核对这条结论: · 核的范围:「模型写请求、程序执行、结果回传」这套流程对照两条来源核过;屏幕上的对话与方框是编写的示意,没有对照任何一次真实运行(「模型决定调用工具」指的是它生成了一段这样的文字,不是它有了意图)
证据
  • 本站条目 sources/cloudflare-harness
  • 本站条目 sources/openai-function-calling-2023

它从哪来

档案目录

  1. 发布或实践记录英文

    openai-function-calling-2023

    Function calling and other API updates

    出版方/保存方
    OpenAI
    原页语言
    英文
    来源发布
    本站访问
    核对程度:没有记录,说不出读到哪一层没有记录具体读到哪一层,因此不能把这条记录当作全文核对。
    访问结果:正常取到

    模型以结构化格式提出“请调用某个函数”的接口正式化。

    打开原始来源
  2. 论文英文

    react-paper-2022

    ReAct: Synergizing Reasoning and Acting in Language Models

    出版方/保存方
    arXiv
    原页语言
    英文
    来源发布
    本站访问
    核对程度:没有记录,说不出读到哪一层没有记录具体读到哪一层,因此不能把这条记录当作全文核对。
    访问结果:正常取到

    把“想一步、做一步、看结果”写成一个循环的论文。

    打开原始来源
  3. 官方文档英文

    cloudflare-harness

    Agent harnesses

    出版方/保存方
    Cloudflare Docs
    原页语言
    英文
    本站访问
    核对程度:相关段落逐字核对

    harness 的定义那一句与它列出的职责;这一页其余章节与整套 Agents 文档没有读
    访问结果:正常取到

    对 harness 的定义:让智能体表现得像智能体、而不是一次模型调用的那个循环。

    打开原始来源