跳到主要内容

3 篇博文 含有标签「agent」

查看所有标签

赛博时代的“公司组织架构”

在第 5.1 和 5.2 中,我们培养出了一名全能型士兵。它懂得调工具(Tool Calling),也会一边规划一边自我反省(Plan-and-Solve)。 但如果你是一家互联网公司的老板,你会让同一个人同时去干设计、敲代码、测试甚至去前台扫地吗? 全才=平庸。当系统里的任务规模大到几万行代码的层级时,即便是 GPT-4 这种怪物,把它全塞在同一个记忆池和上下文里,它也会出现“首尾不顾”的精神分裂。

解决之道非常熟悉:建公司、分发部门、多节点协作。 本章,也是 Agent 连载的最终回!我们将放眼目前业界最火热的两大尖端突破:

本章作为体系连载的最终回,我们将目光投向当下业界疯狂追逐的两大尖端突破:其一,是借助诸如 LangGraph 这样的状态机流转框架,硬生生把单兵作战组装成了有着严格上下游协作纪律的数字化特种部队;其二,是试图摆脱那些干巴巴的 API 接口参数束缚直接附着进屏幕里,用如同人类一样的识别力注视电脑 UI 界面,进而强行操控宿主键盘鼠标的末日兵器——GUI 智能体(Computer Use)


1. 让 AI 管理 AI:多 Agent 协作网络

当你向 AI 下令:“帮我爬取知乎的最新热帖,把文字提纯,然后写个爬虫网站部署上线”。 在一个成熟的多智能体(Multi-Agent)系统里,底层其实召唤了 4 个性格不同的“人”,且用的是 4 组完全不同的 System Prompt(系统人设)。

1.1 经典阵型:流水线 / 层级分遣队

目前主流的“AI 公司”组建方案,逃不出这三种兵团部署:

目前各大虚拟数字工场主要靠三种打磨得极其成熟的组织阵型维系日常运转:

  1. 单向流水线接力:如同最干瘪无趣的工厂作业,前端爬虫模型抓回噪声数据,连看都不看直接扔给下游的作家模型,作家写完再次长篇累牍发包给苛刻的主编模型挑刺打回。每个人只盯着上一层级输送的弹药专心干活。
  2. 跨领域并行作业:面临深度研报时,系统同时激活爬取财报、翻找研报、侦听全网情绪等三个独立的 Agent 并行冲锋。这三股线索数据最终在统一战区汇合,交由负责统筹的 Agent 一锅乱炖出绝世长文。
  3. Supervisor 分遣队首长指挥局:处于鄙视链的最顶端。最高位的节点(如 GPT-4o)绝对不下场干脏活,它的唯一功能是接收任务和无情发牌。面临模糊需求时,它随叫随停地指令绘画节点去画图,或让搜索节点去爬链接;只要手下人上交的格式偏了丝毫,首长也会用极其冷冽的态度把他们打回重练。

image-20260301210226737


2. 把大山连接成网:LangGraph / 状态机

你可能会问:这几个乱串的 Agent 怎么通讯?他们怎么知道上一个人有没有发癫陷入死循环?

这时候曾经统御大模型框架界的 LangChain 给出了它的杀手级进化答案——LangGraph。 (国内也有许多强力的对等平替平台,例如 Coze 的工作流、Dify 的蓝图)。

它的核心思维叫做:状态机 (State Machine) 与循环有向图。

2.1 不可篡改的大黑板 (Global State)

如果几个 AI 在一个屋子里聊天一定乱套。 LangGraph 设计了一块永远不会被单个 Agent 私自覆盖的“大黑板(State 对象)”。 不论是总结家还是代码工程师,每个人执行完动作后,只能往这块黑板上添加几句话。下一个人被唤醒时,读取黑板上的全量进度继续走。这就避免了任何一个角色丢失了全局上下文(类似于 Redux 数据流)。

2.2 定义边与死胡同救星 (Edges/Conditional Nodes)

通过写代码,你可以像画流程图一样死死限制这帮无法无天的语言模型:

通过依靠传统后端工程师编写的代码节点,你可以像画 Visio 流程图那样,给这群智商爆表却又发散的大语言模型拴上项圈狗链。 比如在网状图的核心区域强行接上一根代码断言执行节点

  • 只要大模型把脚本代码写完,系统不再有商有量,而是直接把它拖进无情冰冷的沙盒环境当场编译试跑。
  • 它一旦抛出错来或是逻辑雪崩,这台主引擎系统就顺着名为条件判断的长途箭簇弧线,把这摊血淋淋的报错文本砸回到写代码模型脸上,强制它闭门思过重新思考。

这也是现代中枢彻底摆脱“AI 总是幻觉”等恶名的最深层原动力——人类利用了极度死板但千锤百炼的传统 if-else 工程脚手架做成了铁笼,生猛地约束和驯服了那一团团充斥着计算的野生神经元。

image-20260301210344181


3. 把双手按在桌面上:计算机接管与 GUI Agent

Agent 这个词虽然性感,但在 2024 年末之前,所谓的“工具调用 (Tool Calling)” 依然非常软骨头。 它的底层逻辑是:你必须已经把你要操控的软件后台包好了一个极其明锐的 JSON Web API 接口让大模型发过去。 但现实世界里,有几款应用开放了 API 呢?如果你想让它帮你去一个防爬极其变态的网页里点两下验证码、买两张电影票,或者打开你的 Adobe Photoshop 进行扣图,它就是个睁眼瞎。

直到多模态界的一道闪电劈下:视觉大语言模型(VLM)与 Computer Use

3.1 惊天巨变:能看懂屏幕的眼睛(如 OmniParser/UI-TARS)

各大研究所以及 Anthropic(Claude背后的母公司)等巨头破发了震撼全网的 计算机接管协议 (Computer Use)

它们怎么跨过没有 API 的物理世界的? 依靠多模态的“OCR + 像素拆解”!

这个横空出世的技术路线完全打破了次元壁。当你想要定一张从不开放接口的老旧航司系统机票时,挂载在本地的守护进程就会化身无情的连拍相机,每隔极短时间就把你当前的整个屏幕像素切下来截屏,一窝蜂发送给身处云端有着极强视觉解析力的大脑中枢。

这些在黑暗封闭的训练服务器中早被生吞硬啃过海量全操作系统的超级眼球,只要略加扫视分析,无论是微软复古的层级下拉栏还是被网页前端层层包裹的微缩勾选按钮皆被解构无余。它甚至利用专门的强力解析引擎,把原本属于人类主观世界认知里的“登录按键”、隐藏搜索输入框剥离得一干二净,并且自动且毫不留情地为所有热点打上了极具压迫感的红框以及整整齐齐的数字标签阵列。

3.2 下达坐标,直接接管

于是,此时的 Agent 不再回复 JSON 的 HTTP 请求调用,而是发出了冰冷的键盘键位坐标指令:

Action: 移动光标到像素位置 (120, 856),执行 Left_Click; Action: 输入 "给老陈的请假邮件",回车; Action: 滑动滚动条至按钮 [8] 并点击。

image-20260301210412923

这就是物理具身级别 Agent 的威力。 它就像是坐在你电脑桌前的一个看不见的幽灵雇员。这等同于终结了所有只提供网页界面但不提供接口的老旧公司闭源生态(比如各类复杂的私有财务系统、微信、甚至是一万年没更新过的内网 OA)。只要人在屏幕上能看得懂,能用鼠标点的东西,GUI 智能体就能踏碎虚空,强制跑通业务流。


4. 全世界的接口万众归一:MCP 协议

当 GUI Agent 依然处在昂贵且缓慢的前夜。为了在日常让更多的软件能够光速、无缝地接入像 Claude 或 ChatGPT 这样的聊天窗口,各大应用提供商还需要面对一个大麻烦:大家各自研发的开放接口文档、JSON 标准全都鸡同鸭讲,根本凑不到一盘。

这时候 Anthropic (又是它)推出了一个极具野心的开源底层契约:MCP (Model Context Protocol / 模型上下文协议)

它就像是充电插头里的 Type-C 接口

MCP (Model Context Protocol / 模型上下文协议) 就像是充电插头里的 Type-C 接口

  • 服务端:不论你是私密的 GitHub 仓库、钉钉审批流接口,还是本地 MySQL 离线数据库,后端程序员只需花点功夫加个空壳,把数据入口包装成抽象统一的 MCP 服务端端点。
  • 客户端:市面上无论是硬核的 Cursor 客户端,还是普通的聊天界面,只需接入这一开源规范,便直接跨过了原本横亘人机之间极易崩溃的网络一对一适配泥沼。
  • 结果:这恰似一场物理融合革命——手持一把万能的 Type-C 线缆朝着隔离的系统群猛扎进去,建立起即插即用的神经链接。

这相当于终极的通用工具集市化。"带着满世界几十万个标准化 MCP 工具,在本地直接插上网线"。


5. 第5阶段 终曲与认知升华

第5阶段:Agent 体系大通关

当你读到这里,大模型早已不仅仅是你提问和解惑的被动百科字典了:

当你读到这里,大模型的定位早已发生了天翻地覆的扭转:在掌握了 ReAct 与强约束的 Tool Calling 后,它顺利在这个数字宇宙里为自己接上了孔武有力的网络触手。

  • 在认知上:由于检索阵列与长时仓库的支持,它长出了深邃的海马体;它懂得克制冲动去画里程碑甘特图,在一次次报错屈辱里完成自我鞭挞与纠错重建。
  • 在协同上:LangGraph 这个极权主义主控面板场,让一头头极其细分的专门模型在相互审判的网络战壕里搭建起了全自动的流水线。
  • 在物理接管上:遇上彻底焊死的应用孤堡,它暴虐地亮出多模态深空魔眼,在像素级别的屏幕监视里精准锁定所有的输入框轮廓,强制接管鼠标光标,将它与物理世界最后的隔离层彻底碾碎擦除。

但别忘了,驱动这个庞大躯体行动的中枢神经,依然是那些庞大且高度复杂的系统提示词(System Prompt)工程指令。 在它的执行失败、幻觉暴走、或者格式出错时,其实是你没有在这个中枢里写入最精准的纪律。

下一章预告: 我们将要把这台巨大的引擎拆回原型。回到一切“神级指令”产生的地方。 如何和它进行精神连接?如何用最科学的手法书写那些长达数千字的“神级系统指令(System Prompt)”,让其按照你规定好的逻辑(甚至以链式逻辑思考 CoT)执行一切?

欢迎正式迈入,对人类主宰者最重要的指挥棒驾驭学!第3阶段:提示工程(Prompt Engineering)


下一章: 提示工程

ai学习agentmulti-agentlanggraphcomputer-usemcp阅读需 11 分钟

走出温室:长线生存的考验

上一章我们讲了只要有 ReAct 循环Tool Calling,Agent 就长出了翅膀和手脚,能够接上第三方代码办点事了。 但在现实中,用户丢过来的宏观任务往往是海量的、跨日的:“帮我查下周去东京的机票和三家酒店,做个对比如果总价低于 1 万就帮我先订机酒,然后写一份游记贴草稿并在周五发到我邮箱”。

这是一场需要跑几十上百轮 API 工具交互的漫长战役。

在这场漫长的拉锯战中,首先面临的就是内存塞不下的窘境,因为无休止的工具返回日志和历史行动记录很快就会把大语言模型的上下文窗口彻底撑爆。其次则是规划灾难,如果一上来就两眼一抹黑疯狂随机调用工具,跑错任何一个环节就会导致后续全盘皆输。最致命的是系统极其脆弱,一旦遇到诸如 API 密钥过期或者节点找不到的报错,模型往往两手一摊直接卡死退出。

本章我们就要给这个“执行机器”装上真正的“认知引擎”海绵:从多级记忆链条、前瞻式规划,到出了问题能自己狠狠扇自己一巴掌的“反思”机制。


1. 大脑的缓冲池:三层记忆管理

人在思考时,有些刚发生的事记在脑子里,有些童年的记忆只能需要的时候去翻日记本。Agent 的记忆架构也是按照这套逻辑设计的。

1.1 短期缓冲记忆 (Short-Term Memory / Buffer)

这就是你平时用的 LLM 上下文,本质是最近几轮甚至几十轮的最直接原话:你对它说的废话、它干出的 Action、以及后端传回的 Observation(执行结果的原始 JSON)。 极限:即便现在流行 100K 甚至 128K 超长上下文(如 GPT-4o 或 LLaMA 3.1 128k),但当长尾内容一旦堆积,它的有效专注度也会剧烈下降。

1.2 中期提纯记忆 (Summary Memory)

当短时对话的历史字数逼近甚至突破系统的警戒线时,Agent 框架在后台会偷偷唤醒一个专职负责压缩降维的“小弟模型”。这个角色会全盘扫描过去 50 轮互动中无比琐碎的 API 日志和人类口水话,大刀阔斧地将其总结成一段极度精简的进展陈述,比如仅仅留下一句“刚已查完天气和机票并拿到了前置票务”。随后系统冷酷无情地将这 50 轮原始文本从主脑的记忆区永久删去,只把那一小段精华摘要永久置顶在统领全局的提示词开头。这不仅腾出了天量的显存,也让模型永远清晰地知道自己当下的战略进度。

1.3 长期永久记忆 (Long-Term Memory / RAG)

如果 Agent 陪伴了你一年,他怎么记住你每个月去吃过的拉面店偏好? 这就必须使用我们在上一阶段学过的检索增强生成 (RAG) 甚至向量大模型技术。把你们一整年发生的互动事实,通通利用 Embedding(向量特征)固化到 Chroma / Pinecone 等向量数据库里。 当你要它定外卖时,它会主动通过相似度检索,到长期日记本中调取“张三不吃香菜和葱”的永久人设,再混入当次的短时思考中去。

image-20260301205935489


2. 把大象装进冰箱:自主规划 (Planning)

如果给它的指令太宏大(比如“写一个扫雷小游戏的 React 项目”),单纯用 ReAct 循环一次只能走一步,模型很容易在漫无目的的重试中迷失。 怎么办?**Plan-and-Solve(计划与解答)**机制应运而生。它是大模型能够进行长期多步推理的兵法核心。

如果此时模型的大脑独白是这样的,任务就成功了一大半。高阶模型在接到大体量要求时,会先按捺住冲动进入计划生成视野,它在独白中会冷静地把任务拆解:

  1. 纯控制台雷区算法层:先搞定没有界面的核心逻辑。
  2. React UI 渲染组件:铺排基础的视觉结构。
  3. 绑定左右键交互:处理插旗和挖开的逻辑。
  4. 游戏结束与弹窗结算:最后处理输赢界面。

计划一旦制定,它就会把这份巨型清单用图钉钉在记忆的小黑板上,强制自己退回局部视野只关注当前的一步。在敲打第一步核心算法时,它绝不浪费任何脑细胞去思考最后胜利动画长啥样。

这简直就是把活生生的**软件工程里程碑进度图(Gantt Chart)**给粗暴地注入了 AI 的工作流。 通过这一套预先列清单、然后一步一步抹去已完成项目的强制设定(包括鼎鼎大名的 TaskWeaver 或是 AutoGPT 思想),能成倍提高长任务抵达终点的概率。

image-20260301210033463


3. 把脸打肿也要走完:Self-Correction (自我纠错)

在没有纠错能力的普通流水线,如果生成代码后编译器报了 SyntaxError(语法错误),大模型直接就中断退出、举双手投降了。 但在高阶的认知架构中,我们赋予了它**三省吾身(Reflection)**的神奇被动技能。

3.1 怎么反思?

工程师在底层给它注入了这样一句话: “当你利用执行代码工具(Tool-call)发现终端给你丢回了长串报错堆栈(Traceback),你千万不要立刻中断去问用户。你必须深吸一口气,仔细阅读刚才抛出的错误代码,并写下针对这段错误的【错误归因反思】。写完归因后,你直接尝试换一种姿势重新写那行代码执行!你有 3 次试错机会。”

3.2 循环纠错战车

它的心理戏将变成这样:

  1. 初次尝试:信誓旦旦地尝试用 Beautifulsoup 按 CSS 类名去提取特定 HTML 区块的内容。
  2. 遭遇滑铁卢:终端冷冰冰地抛出了 'NoneType' 类型的红字异常报错。一般的低阶模型跑到这里直接就投降退出了。
  3. 进入反思 (Reflection):大佬模型看到异常日志的一瞬间进入自我反省。它意识到既然返回值为 None,说明撞上了反爬机制,或是该网站的 CSS 标签悄然改版了。它把这份深刻的反思当作检讨书记录入脑。
  4. 启动 B 计划重试:立刻原地生成了新方案——改用正则表达式强行切扫所有的中文字块,再次尝试冲出掩体。它会在这种自我打脸中循环往复,直到成功拿到文本。

只要你给的系统反馈栈足够充分(比如给它看代码编译报错的红字),它的自我反击和修正迭代能力,远远超越很多只会百度乱复制的初中级程序员。

image-20260301210114024


4. 谁在看大门:HITL (Human-in-the-Loop) 机制

虽然智能体能够自我打脸、反思调整、自动做庞大的百日计划……但你敢在睡觉时,让它拿着你只有 5 万余额的建设银行卡接口去“自主规划买基金套利”吗? 肯定不敢。万一它的反思抽风了,把钱全买了暴雷的 P2P 怎么办。

这时候就引入了最接地气的兜底安全防护门:人机协作回环 (Human-in-the-Loop)

遇到诸如实体资金转账、彻底清空云端网盘或者是摧毁重写主分支代码这类极其危险的禁忌行动时,成熟系统的底层强制会在 Tool Calling 组件内部插进一根拔不掉的“审核红线钉子”。

当大模型脑子一热觉得时机已到,大笔一挥向后端抛出了执行五千元付款动作的意图协议。这时候底层框架绝对不会照单全收,而是立马将进程悬停阻断

整个拦截流程如下:

  1. 挂起执行:Agent 在后台被暂停,真实资金账户保持安全。
  2. 弹窗请示:在你的协同办公软件或者终端屏幕里强弹出一个生死判定提示框,冷漠宣判:“您的 Agent 正申请向未知账户划拨重金”
  3. 陈述理由:下方还会贴上大模型试图说服你的理由,比如:"经过深度交叉比价,这是全网最后一台打三折的核心显卡,立刻入手收益最高。"
  4. 人类裁决:把放行或是直接将其驳回怒斥的选择权,交还到人类的手里。

    [同意执行 (Y)] / [打断中止并斥责它 (N)] / [输入纠正提示词重新想]

直到你点下 Y,资金才被允许扣除。 这是一种极其成熟、并被现代企业大面积采用的防 AI 暴走管控设计。


5. 总结与路线串联

认知引擎总结

总结来看,一套完整的现代认知架构彻底抹平了长线任务的短板。在内部运作上,记忆并不再是一本只增不减的流水烂账,过往废料很快被定期提纯压缩,用户的核心人设偏好也被 RAG 技术悄无声息地挂载固化了下来。而在行动展开之前,强制的前置规划法则帮助它切割出了清晰的步骤里程碑,并且即便在跋涉途中摔得头破血流,靠着从报红和系统警告反馈里翻找灵感的自我纠错本能,它依然能擦干血迹继续硬拼。到了万不得已之时,通过无可撼动的**人力介入审查红线(HITL)**这块免死金牌死死锁住资金和毁灭级权限,彻底杜绝了智能系统无意识作恶及蒸发资产的隐患。

现在,你拥有了一个拥有无限打怪意志力、并会总结错题本做计划的高级员工。 但如果我们要拍一部电影。一个人当导演、当演员、还当后期剪辑,真的能拍好吗? 如果你的任务复杂到了需要几万行代码的级联交互,何不召唤出多兵种、带编制的一支纯 AI 数字化特种部队

下一章预告: 这是 Agent 连载的最终回! 我们会把单一的 AI 组建为一个网状特种部队系统,看看 LangGraph 的节点跳跃是如何将几百个 AI 各司其职连接在一起的。最终一瞥正在席卷全网的“电脑刺客”——能够直接用肉眼看懂屏幕和鼠标接管的物理具身(GUI)智能体!


下一章: 5.3 前沿物种:多Agent协作与物理具身

ai学习agentmemoryplanningreflection阅读需 10 分钟

从被动解答到主动出击

在第 4 阶段的 RAG 体系中,我们已经见识了 AI 查阅资料的能耐。但它依然是个被动的书呆子:你提一个问题,它帮你查资料,最后总结成一段话给你。

但如果你想要一个能自动帮你订机票、自动拉群发邮件、甚至自动跑代码修 Bug 的数字员工呢? 如果 AI 不长出“手”,它懂再多大道理也只是纸上谈兵。

如何让模型长出双手?如何让它在遇到复杂任务时不再盲目瞎猜,而是学会“遇到山峰就调出登山镐,遇到大河就调出皮划艇”? 这就是 Agent(智能体) 要解决的问题。

作为本系列的最核心连载,本章我们将拆解 Agent 的绝对底层发动机:ReAct 脑回路和 Tool Calling(工具调用) 协议。


1. 概念跨越:到底什么是 Agent?

如果你经常刷科技新闻,一定会觉得这个词被滥用了。似乎只要是个聊天框,厂商都叫它 Agent。

但在现代 AI 工程体系里,Agent 有极度严格的划分边界。

  • 普通的 LLM 聊天(ChatGPT):你输入 Prompt ➝ 它根据训练数据预测下一个词 ➝ 输出文本。结束。
  • RAG 搜索(Perplexity):你输入问题 ➝ 脚本去数据库搜索文本 ➝ 交给 LLM 组装 ➝ 输出文本。结束。
  • 真正的 Agent(Devin 或 AutoGPT):你下发一个抽象目标 ➝ 模型自己拆解目标 ➝ 决定要用什么工具 ➝ 看到工具的返回结果 ➝ 纠正路线 ➝ 继续决定下一个动作,直到任务彻底跑完。

Agent 的本质,就是把大语言模型从一个“答题机器”,降级成为了一个“小脑(控制器)”。而用来驱动这个小脑的核心操作系统指令,就叫 ReAct

image-20260301201553555


2. 大脑的齿轮:ReAct 循环

在真实世界里,人们是怎么完成一件复杂事情的? 假如让你去超市买一箱可乐。你首先会思考 (Thought):好渴需要买可乐,没带钱包得用手机。接着采取行动 (Action):走到小区超市。但到了之后你观察 (Observation)到超市关门了。于是你会再次陷入思考 (Thought):马路对面有个自动售货机。最后执行新的行动 (Action):过马路刷脸买到了可乐,顺利拿到结果。

2022年,普林斯顿大学的研究人员发表了著名的 ReAct 论文 (Reasoning + Acting)。他们发现,只要在给大模型的神奇 Prompt(系统提示词)里,教会它像人类一样交替进行“思考”和“行动”,模型就能在一连串的循环中完成极其复杂的推理任务!

2.1 ReAct 的系统长提示词模板

如果把目前市面上所有的 Agent 剥光,底层可能只是一段类似于下面这样的死磕 Prompt(也就是 Agent 框架为你封装好的核心循环):

你是一个智能助手,必须按照以下严谨的格式来不断循环,直到给出最终答案:

【思考】:你对于当前状况的推理过程。需要什么信息?目标还差多少?
【行动】:需要采取的动作,只能从 [搜索天气, 查计算器, 发送邮件] 中选择一个!并给出传入的参数。
【观察】:这个观察结果不是由你生成的。系统运行了你的行动后,会把真实的客观结果返回给你看。

当你觉得所有信息都收齐了,请输出:
【最终答案】:你的回答。

2.2 循环演示

有了这个紧箍咒,面对“北京明天适合穿短袖吗?”,Agent 的大脑中会自动开启一场充满闭环逻辑的自言自语,它会按步骤一步步执行:

  1. Thought(思考):用户问能不能穿短袖,我得先知道北京明天的天气。
  2. Action(行动):调用获取天气工具 get_weather(location="北京", date="明天")。此时大模型原地挂起等待。
  3. Observation(观察)(系统工程代码在外部查好后返回) 天气预报显示大风降温,最高温 10 度。
  4. Thought(思考):拿到结果了!10 度太冷,绝对不能穿短袖,收集的信息已经集齐。
  5. 最终答案:得出结论,一本正经地输出最终答案,告诉用户务必要穿冬装。

这就是 Agent 拥有“灵魂”的全部机密。 模型本身并没有去调接口,它只是在文本框里输出了一个名为“Action 1”的字符串。 是挂载在系统里的工程代码,截获了这个短语,跑去替它执行了 API,然后再把结果像喂饭一样,通过“Observation”塞回了上下文里让它继续读。

image-20260301201822509


3. 长出双手:Tool Calling (Function Calling 工作流)

其实,老一代的 AI(比如 OpenAI 年初刚开放 GPT-3.5 接口时),都是强行用上面那种死板的 Text Prompt 来解析结果的(依靠正则大军强行切割它输出的字符 Action: xxx)。 但文字是极度暧昧的。万一模型哪天抽风,没按格式或者连着说了一大堆废话,后端的代码就会因为无法抽取指令而当场崩溃。

所以,OpenAI 在 2023 年底推出了一个碾压全行业的核武器级基建更新:Function Calling(目前各家开源模型也已拉齐,统称 Tool Calling 工具调用)。

3.1 JSON Schema:人机之间的铁血契约

不要指望这帮大模型懂什么叫代码。 在它的眼里,所谓的工具,只是你递给它的一本极其详尽的字典说明书 (JSON Schema)

当你发起对话时,你除了发送消息,还会顺带向大模型传送一个类似这样的护身符:

{
"name": "get_weather",
"description": "获取某个城市的当日天气情况",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "城市名称,例如:北京、上海"
},
"unit": {
"type": "string",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location"]
}
}

大语言模型(像 DeepSeek 或 GPT-4o)在训练阶段吃下过海量的此类契约。当它在判断这道题需要天气时,它在内部生成了隐藏的思考(Thought),然后在模型返回端,它拒绝生成普通的聊天文本(content为 null),而是直接吐出了一个机器可读的、百分百符合格式的指令参数块:

"tool_calls": [
{
"id": "call_123",
"type": "function",
"function": {
"name": "get_weather",
"arguments": "{\"location\": \"北京\", \"unit\": \"celsius\"}"
}
}
]

3.2 兵临城下:真实代码的执行

此时你的后台代码拿到了这个精准无比的 JSON:

  1. 解析意图:一切由虚转实,后台识别出模型想按天气按钮并抠出了“北京”这个关键参数。
  2. 执行代码:紧接着你的 Python 或 Node.js 脚本全面接管控制权,拿着企业秘钥向真实的第三方天气 API 发起跨网请求。
  3. 拿到结果:经过短暂的等待,生涩的接口数据 { "temp": 15, "desc": "多云" } 被成功拉取到了服务端内存中。

3.3 圆环闭合

  1. 投喂并回复:你再把这段冰冷的客观数据,贴上 role: tool 和刚才的 tool_call_id 面包屑作为观测结果,第三次塞回大模型的聊天记忆池里。 这下它终于满意了,拿着温度,生成了完美的自然人类语言回复。

image-20260301205753670


4. 总结

第一支柱总结
  • ReAct 的核心意义是一场架构上的降维打击。它不再奢求模型一次性就蒙对最终答案,而是强迫模型像人类一样走一步看一步,每次行动后必须停下来等待环境的真实反馈,真正赋予了模型解决多步长尾问题的根基。
  • Tool Calling 则是人机之间的格式契约。它彻底消解了自然语言的暧昧性,将其强行转化为百分之百精确的 JSON 传参。有了它之后,团队分工变得极度明确:AI 舒舒服服地待在云端长脑子当指挥官负责下发标准化的动作意图,而真正在泥地里干脏活累活跟外网交互的执行者,永远是你服务器上的那些函数代码。

一句话真理:任何再花哨的 AI 产品,只要它能查网页、发邮件、跑代码,把盖子掀开,底层全都是这套 Tool Calling + ReAct 在循环狂飙。

既然连入了工具集,具备了单独把一个任务干好的行动力。 那如果遇到超级庞大的跨日任务(比如:请你扮演客服,追踪帮我退一下这个月的机票然后重新预订),它应该怎么去记住之前的决策?它怎么在无数的小失误中自己把它掰正?

下一章预告: 当一只没有记忆力的鱼拥有了双臂,它依然无法造出大坝。 下一章,我们将为它引入 Agent 的认知与工作记忆! 探讨它的短期、长期海绵记忆,以及能让 AI 自我打脸救场的终极技能——反思(Reflection)与自校正(Self-Correction)。


下一章: 5.2 认知架构:记忆管理与自主规划

ai学习agentreacttool-calling阅读需 8 分钟