第 8 章 — 当一个模型不够:工具调用与智能体
LLM Primer I: How Generative AI Works 章节走读的第八篇。对很多任务来说,光一个模型不够。这一章我们进到模型长出手脚的那片地。
一个模型自己干不完的事
第 5 章里那几个毛病 — 幻觉、对时间没概念、算术弱、一致性抖 — 不是再多训点就能解决的。一个自然的应对是把模型扩到自己之外。不要试图在一次调用里把所有事情都修掉,而是给模型一条路通到别的工具:搜索、计算、数据库、代码执行。
一句话:既然模型是从上下文里抽下一个 token,那只要让外面来的东西 — 搜索结果、计算器答案、当前时间、数据库里的一行 — 流到上下文里,它能处理的事就会一下子展开。
函数调用 — 简单又有力的那一招
工具调用里最被广泛采用、效果也最稳的是函数调用。你在模型的上下文里描述"以下函数可用",模型给出形如"我想用这些参数调这个函数"的回答;系统截住这个意图,真去调那个函数,把结果塞回模型的上下文里;模型再继续。
有了这一件事,搜索、计算、用户数据,什么都能流进模型。模型本身没变,但它能解决的问题边界,随着函数数量一起扩展。
"智能体"和这有什么不同
如果说工具调用是单次出手,那"智能体"就是接连出手。模型走一步、看结果、把结果塞回上下文、再走一步,如此循环,直到任务完成。
这个循环能解决的事,比一次性请求宽多了。"做一份这份数据的分析" — 智能体自己决定从哪里取数、怎么洗、怎么展示,一步步推过去。
§8.6 — 2026 版新加的智能体模式
2026 版里我新开了 §8.6,专门讲智能体模式。不是再复述一遍"什么叫智能体",而是把实战里站住脚的那些格式整理一下。
ReAct.把"reason(想)"和"act(做)"轮替着来。模型在上下文里短短写一段"为什么我下一步要调这个工具"的理由,然后调,拿回结果,继续。
规划-执行(planner-executor).一个模型(或一次调用)先一次性把完整计划做出来;另一个模型(或另一次调用)按这个计划一步步执行。把"宽广的思考"和"精确的执行"分工开 — 在长任务上特别管用。
反思(reflection).模型先给一个初稿,然后让它再回头看自己 — 批评、打磨、改写。听起来朴素,但常常实打实地让最终质量上一个台阶。
智能体没解决的事
章后半我老实地说说它的边界。一旦步骤变多,任何一步出错都可能往后污染。一个工具返回错的结果,后面所有基于这个结果的推理都跟着歪。
真把智能体跑起来,需要把同样的注意力分给工具本身 — 它们的返回质量、校验、错误兜底,和模型本身一样重要。这跟运一个模型是两种不同的活。
第 8 章那条主线
这章留下的话是:不要试图在一个模型里头解决所有事。模型干它擅长的那部分,别的工具干它们擅长的那部分。正是这种分工,让整套系统作为一个整体可靠。
明天 — 第 9 章:RAG — 把新鲜信息缝进上下文。聚焦今天最常见的那种工具用法:语义检索。怎么用搜索补上模型的时间缺失和事实弱点,以及什么把一个还过得去的 RAG 和一个能扛规模的 RAG 区分开。