第 1 章 · Agent 的本质

从一个跨境卖家的日常说起

一个亚马逊卖家每天早上要做一件事:打开后台,看看昨天哪些产品的竞品改了价、哪些 Listing 的评分掉了、有没有需要回复的差评。这件事不难,但琐碎、重复、耗时。

他试过让 ChatGPT 帮忙。结果是:ChatGPT 能告诉他“你应该去后台查看竞品价格”,却查不了;能教他“差评应该礼貌回复并提供解决方案”,却回不了。它什么都懂,就是什么都做不了。

这位卖家真正需要的,是一个能替他把这套流程跑完的东西:自己登后台、自己抓数据、自己起草回复、把拿不准的差评标出来等他定夺。

能做到这件事的,才叫 Agent。这一章我们就把“能做事”和“只会说”之间的界线讲清楚。

会说话,和会做事

普通大模型本质是一个“文本函数”:给它一段文字,它还你一段文字。它的世界里只有文字,没有手、没有眼睛、也没有“做完一件事再看结果”的能力。

Agent 补上的,正是这三样:

  • 它有眼睛和手——能查数据、能调接口、能执行操作,接触到文字之外的真实世界。
  • 它有记性——记得住这次任务的目标,也记得住刚才每一步发生了什么。
  • 它会自己往下走——做完一步,看一眼结果,再决定下一步,不用你一句句喂指令。

把这几样合起来,就得到一个最朴素但准确的说法:

一个 Agent,是让语言模型在一个“做—看—再做”的循环里,借助工具去达成目标的系统。用业界常见的公式说,就是 Agent = LLM + 工具(Tools)+ 循环(Loop)。这里最要紧的不是“语言模型”,而是那个循环——它把“只能想一次”变成了“能想很多次、每次都基于新看到的事实”。

确定性软件 vs Agent

值得停下来对比一下 Agent 和我们熟悉的传统软件,因为它们的思维方式完全不同。

传统软件是你把规则写死的:库存低于 10 就补货,这条规则今天这么跑、明天还这么跑,一万次都一样。它的好处是可预测,坏处是死板——没预设到的情况它就不会处理。

Agent 反过来。你给它的是目标(“盯住库存,快没货了就想办法补上”),怎么达成由它临场判断。它这次可能先查供应商,下次可能先看历史销量。好处是灵活,能应对没预设过的情况;代价是结果不再完全可预测——所以我们后面要花大量篇幅讲怎么给它套上“缰绳”(预算、确认、隔离)。

传统软件:  固定输入 → 写死的规则 → 固定输出(每次都一样)
Agent:      一个目标 → 边想边做的循环 → 达成目标(路径可能每次不同)

从“你替它想好每一步”到“你只给目标、它自己想每一步”——这个转变,是理解本书后面所有内容的基础。

一个具体的例子:让 Agent 分析一个开源项目

抽象说完了,看具体的。给它一个任务:“帮我搞清楚 pi 这个开源项目的架构,写份说明。”

如果是聊天机器人,它只能凭训练时见过的(也许过时、也许根本没有的)印象编一段——内容很可能不准。

而一个 Agent 会真的动起来:

想:先得把项目弄到手,看看它的目录长什么样
做:git clone 这个仓库,然后 ls 看结构
看:拿到了——有 agent、ai、orchestrator 等几个包

想:光看目录名不够,读 README 搞清每个包干嘛的
做:读 README.md
看:agent 是运行时,ai 管多模型,orchestrator 管多智能体……

想:核心是那个运行循环,我得看源码
做:读 packages/agent 里的循环实现
看:(拿到真实代码)

想:材料齐了,可以动笔了
答:产出一份基于真实源码、而非凭空想象的架构说明

区别一目了然:它的每一句结论,背后都有一次真实的“去看了”。这就是“能把事做完”的分量——结论建立在行动和观察上,而不是记忆和猜测上

自主程度:L0 到 L5

“Agent”是个很宽的词,实际能力天差地别。业界常借用一套类似自动驾驶的 L0–L5 分级来描述 Agent 的自主程度——级别越高,你要盯它的力度越小。它不是严格的学术标准,但作为选型时的共同语言很好用:

级别自主程度你给什么它做什么典型例子
L0无自主每一步指令执行单个动作翻译按钮、计算器
L1辅助一问一答,不主动行动普通聊天机器人
L2部分自主一个明确请求自己调用工具完成“查这三个竞品今天的价”
L3有条件自主一个目标自己拆解、多步执行“分析竞品并给定价建议”
L4高度自主一个复杂目标多 Agent 分工协作调研+分析+写报告的团队
L5完全自主一个方向长期无人值守地运营、自我改进目前尚无可靠落地

对照理解:L0–L1 还称不上真正的 Agent(没有自主循环);L5 目前更多是愿景,营销话术里说的“全自主”多半要打折扣。

本书主要讲的是 L2–L4——它们既是今天技术能可靠做到的,也是真正能创造商业价值的区间。盯着这三档去设计,比追求“完全自主”实在得多。

什么活该交给它,什么活不该

比技术更重要的,是别把 Agent 用错地方。判断标准其实很朴素——问自己三个问题:

  • 目标清楚吗? 你能说明白“做成什么样算完”吗?“把这批订单导成对账表”清楚,“帮我把生意做大”不清楚。
  • 能验证对错吗? 做完之后,你(或程序、或测试)能判断它做得对不对吗?写代码有测试兜底,所以适合;一段品牌文案好不好,没有客观标准,就难。
  • 错了要紧吗? 万一它做错,后果可承受、可回滚吗?整理一份草稿错了无所谓;未经确认就删库、就转账,错了要命——这类必须设人工确认(第 8 章)。

三个都是“是”,放心交给它;只要沾上“不可逆的高风险”,就务必在关键动作前留一道人工闸门。

用 pi 来讲:一个能承载 Agent 的运行时

本书自始至终用一个真实、开源、能读源码的项目来讲——pi。它是一个用 TypeScript 写的 agent 运行时(harness),把“跑一个 Agent 需要的零件”拆成了几块:

pi 的包管什么对应本书
pi-ai统一对接各家大模型第 34 章
pi-agent-core运行循环、工具调用、状态本章、第 3 章
pi-orchestrator多 Agent 编排(实验性)第 5 部分
pi-coding-agent面向编码的 Agent 命令行第 32 章
pi-tui终端界面接口层

为什么用它、而不是教你从零造一个?因为“运行循环、工具调用、上下文管理、多模型适配”这些是又难又琐碎的活,成熟的运行时已经替你做好了。你的价值不在重造这些轮子,而在于在它之上,接入你自己的业务、写你自己的规则——这是全书的主线,也是最后一章的落点。

这里要点明一件事:这个“运行时/harness”就是本书标题里的 Harness,也是全书的主角。 一个 Demo 级的 Agent,你在自己电脑上随手就能拼一个;但一个企业级的 Agent——要控成本、要留审计、要隔离风险、要崩溃能恢复、要多个用户互不干扰——靠的从来不是模型有多强,而是它底下这层 Harness 有多扎实。本书后半部分(第 7–9 部分)几乎都在讲这件事:如何把一个能跑的 Agent,借助 Harness 这层基础设施,推到“企业敢用”的标准。所以每次我们打开 pi 的某块源码,本质上都是在拆解“一个企业级 Harness 该长什么样”。

动手看看

读真实代码,比读十遍讲解都管用。花几分钟:

git clone https://github.com/earendil-works/pi
cd pi && cat README.md          # 先看整体有哪几块

然后打开 packages/agent 里的运行循环源码,别纠结细节,只找那个反复执行的循环结构,感受一下“调用模型 → 执行工具 → 再调用模型”的节奏。下一章我们会把它拆开细讲。

实战中的几个提醒

  • 别把插件式聊天机器人当 Agent。 给聊天机器人挂几个功能按钮,和 Agent 有本质区别——后者的核心是那个“自己决定下一步”的循环,前者只是被动响应。
  • 它是放大器,不是替代品。 现阶段最务实的定位,是让它接管重复劳动、把人腾出来做判断,而不是指望它全权做主。
  • 自主不是越多越好。 自主性和可控性是一对矛盾。越是高风险的场景,越该收紧它的自主权、加密人工确认,而不是放手。
  • 模型强 ≠ Agent 好。 模型只是大脑。工具设计、上下文管理、护栏、场景选择,每一样没做好都会让一个“聪明大脑”办砸事。

对比:其他框架

同样是“模型 + 工具 + 循环”,各家给你的抽象层次不同:

框架核心抽象定位
LangGraph把 Agent 画成状态图(节点是步骤、边是流转)控制流最显式,适合复杂、要精确把控的流程
CrewAI团队 + 角色,像组建一支有分工的小队多 Agent 协作上手最直观
PydanticAI类型安全 + 结构化输出,像写普通 Python适合“输出必须规整可靠”的场景
Agno功能齐全的应用框架,记忆/知识库/团队内置适合快速搭一个能用的助手
pi运行时视角,注册工具、写扩展,在其之上构建控制粒度细、能读源码

它们没有高下之分,只有场景之别。抓住“模型负责想、工具负责做、循环把两者串起来”这个内核,你看任何一个框架都不会迷路。

小结

  1. 会说话的模型和会做事的 Agent,差在那个“做—看—再做”的循环——它让结论建立在真实行动上,而非记忆猜测。
  2. Agent 靠眼手(工具)、记性(上下文/记忆)、自主(循环) 三样来做事,生产上还要加护栏。
  3. L0–L5 分级理解自主程度,本书聚焦 L2–L4(能独立完成请求、能自己拆解目标、能多 Agent 协作)这三档。
  4. 选对场景是关键,用三问判断:目标清楚吗、能验证吗、错了要紧吗;沾上不可逆高风险就设人工闸门。
  5. 别从零造运行时,在成熟运行时(如 pi)之上构建你的业务——这是全书的主线。

下一章,我们把这颗“循环”的心脏拆开,看它到底怎么一拍一拍地跳动——这就是 ReAct。