AI Agent 基础架构解析:从 LLM 到 ReAct 循环与 Harness 工程的工程化路径

AI Agent 基础架构解析:从 LLM 到 ReAct 循环与 Harness 工程的工程化路径
本文基于开源技术书《深入理解 AI Agent》第一章,系统梳理 AI Agent 的核心架构组件、运行机制和工程设计原则。该章从多个真实 Agent 产品出发,建立了对 Agent 的工程化理解框架,涵盖核心公式、ReAct 循环、Harness 工程以及从工作流到自主 Agent 的编排模式。
Agent 的工程公式:LLM + 上下文 + 工具
现代 Agent 的最小工程实现可以用一个公式表达:Agent = LLM + 上下文 + 工具。这三个组件不是抽象的理论概念,而是具体的工程组件:
- LLM 是大脑:决策内核,其能力来自预训练积累的世界知识与后训练固化的决策策略。
- 上下文是眼睛:Agent 在每个决策点收到并保留的信息表示,包括环境观察、用户记忆、领域知识和任务进展。
- 工具是手脚:Agent 用来感知或改变外部世界的接口。
在强化学习视角下,Agent 与 Environment 是闭环交互的两方。环境不断返回观察,Agent 根据上下文选择行动;行动改变环境状态,新状态产生下一次观察。这个闭环是理解所有 Agent 交互的最小结构。

图1-1 给出了两个抽象层次。外层是 Agent 与 Environment 的交互关系,内层是 Agent 的 Model-Harness 结构:Model 负责策略决策,Harness 是环绕模型的运行与治理层,负责构造上下文、暴露工具接口、维护循环和状态,并实施权限、验证与纠正。
观察空间与动作空间:能力扩展的核心杠杆
该章提出了一个关键的工程判断:在底层模型固定时,提升 Agent 任务表现最主要的系统工程手段,往往就是重新定义或扩展观察空间与动作空间。许多看似需要"更聪明模型"的问题,实际上只是接口问题——把任务所需的数据纳入上下文,或把完成任务所需的操作封装成工具,原本不可解的任务就可能变得可解。
以 Manus 和 OpenClaw 为例,两者的演进本质上都是观察空间和动作空间的扩展。Manus 把深度调研、代码生成和电脑操控三条原本独立的路线合并到同一个 Agent 中;OpenClaw 则通过 WhatsApp、Telegram 等消息渠道和本地 Gateway,把接口延伸到用户的整个数字生活。
五类工具体系
工具按 Agent 与外界互动的方向分为五类:
- 感知工具:让 Agent 访问信息(搜索引擎、文件系统、API)
- 执行工具:让 Agent 改变世界(代码执行、文件操作、系统命令)
- 协作工具:让 Agent 与其他 Agent 分工合作(委托子 Agent、请求人类确认)
- 事件触发工具:外部输入驱动 Agent 开始执行(新邮件、定时器、Webhook)
- 用户沟通工具:Agent 主动与用户传递信息(文字消息、语音通话、邮件)
工具调用(Tool Calling)的流程分四步:在上下文声明工具可用性、模型自主决定调用、框架执行工具、结果追加到上下文。开发者只需定义工具和执行工具调用,模型自主完成"要不要调用、调哪个、传什么参数"的决策。
ReAct 循环:Agent 的核心运行机制
Agent 执行任务的核心模式是 ReAct(Reasoning + Acting),包含三个环节:模型先思考当前该做什么,然后调用工具行动,再观察工具返回的结果并继续思考。这个"想-做-看"的循环不断重复,直到任务完成。
每次调用 LLM 时的完整上下文由两部分组成:静态前缀(系统提示词 + 工具定义)和轨迹(动态消息历史,包括用户消息、模型回复和工具执行结果)。这揭示了一个关键事实:Agent 的上下文 = 静态前缀 + 轨迹。

以一个多币种收入汇总任务为例,Agent 的执行过程展现了完整的 ReAct 轨迹:用户提出需求后,模型先思考需要将不同货币转换为统一单位,然后并行调用三次货币转换工具,获得结果后继续思考并调用代码解释器进行汇总计算,最后生成最终答案。整个过程只用了 3 次迭代、4 次工具调用。
消融实验:上下文组件的贡献差异
该章通过实验 1-1 的消融实验(Ablation Study)系统验证了上下文各组件的作用。实验从五个上下文组件中选取四个进行测试,结果揭示了一个重要洞察:各组件并不等价,衡量的标准是它承载的信息能否从别处重建。
- 工具定义是行动能力的基础,缺失它 Agent 无法调用工具——但模型仍会给出格式工整的答案,数据却来自参数记忆
- 工具执行结果是闭环控制的关键,缺失会让 Agent"盲目"执行,反复重试直到耗尽迭代预算
- 思考过程记录"为什么这么做",可以从工具结果重建时丢弃几乎无代价
- 历史消息防止冗余操作,避免重复犯错
这个实验的核心洞察是:上下文决定了 Agent 能看到什么,而 Agent 只能基于它看到的信息做决策。更值得警惕的是,“给出了回答"不等于"完成了任务”——上下文残缺时典型的失败不是报错退出,而是一个看上去毫无破绽的错误答案。
Harness 工程:模型之外的竞争力
从 Harness 工程视角看,可以把 LLM 抽象为核心组件 Model,把 Agent 边界内负责支撑模型运行的代码、配置和服务统称为 Harness。生产形态下的完整组成是:
Agent = Model + Harness
Harness = 上下文管理 + 工具接口 + 约束 + 验证 + 纠正
最小 Demo 只需 Model 和能构造上下文、暴露工具的 Harness;生产系统还要在同一边界内加入约束、验证和纠正。五个功能构成一个闭环:上下文与工具让 Agent"能做事",约束预防错误,验证发现偏差,纠正使闭环得以形成,三者共同让 Agent"不做错事"。
以 Claude Code 为例,其 Harness 中绝大部分代码都是约束、验证和纠正,而非上下文与工具。这些机制包括流程状态管理、多层上下文压缩、权限分类、熔断器和错误恢复机制。行业正在从"能做事"向"可靠地做事"转变,Harness 工程因此成为 Agent 系统的核心竞争力。
工程范式的演进
该章梳理了 AI 应用工程的演进弧线:
- 提示工程:优化输入指令提升输出质量
- 上下文工程:系统管理模型能看到的所有信息
- Harness 工程:扩展到 Agent 如何组织模型运行并与环境交互
- Loop 工程:从单次运行扩展到跨轮次持续自主运转
- Graph 工程:把 Agent 循环组织成显式的执行图
这五个阶段是层层包含关系,每一层都在前一层基础上扩展了工程师的关注范围。
构建有效 Agent 的三个原则
根据 Anthropic 的经验,成功的 Agent 系统遵循三个核心原则:
- 保持简单:从最简单的方案开始,只在确实必要时才增加复杂度
- 保持透明:明确显示 Agent 的规划步骤、执行日志和决策轨迹
- 设计好工具接口(ACI):从 Agent 视角设计接口,采用"防呆"(Poka-yoke)思路让错误无法发生
编排模式:工作流与自主 Agent
该章区分了两种编排模式。
工作流通过预定义的代码路径编排 LLM 和工具,执行路径是确定性的。其优势在于严格的流程控制和安全性——提示注入最多只能影响当前节点,无法让 Agent 跳到不该执行的分支。局限是缺乏变通性。
自主 Agent的执行路径不是预先定义的,而是根据环境反馈实时决定。它本质上是在一个循环中使用工具的 LLM,通过持续获取环境反馈推进任务。

实践中,两者常常混合使用:关键且需严格合规的流程用工作流,需要灵活决策的部分切换到自主模式。选择编排模式的关键不是框架本身的复杂度,而在于它能否用尽可能少的抽象层让你专注于业务逻辑。
护栏与安全性
该章建立了全书统一的分层安全骨架。护栏按被绕过的难度分为三层:
- 上下文层:管模型能看到什么,在内容进入上下文前拦截(相关性分类器、安全分类器、内容审核、规则保护)
- 执行层:管模型能做什么,在动作生效前验证(工具风险评级、沙盒隔离、人在回路、输出检查)
- 数据层:管世界最终能被改成什么样,由稳定的、经过人类审查的机制强制执行(数据库行级安全、约束与校验器)
一个结构性判断是:处在同一个上下文里的 Agent,很难判断自己是否已经被注入。因此上下文层只能降低攻击成功率,给不出保证——这正是必须有下面两层的原因。
五个贯穿全书的设计模式
该章命名了五个将在后续章节反复使用的设计模式:
- 提议者-审核者:产出与评判由两个不共享上下文的角色分别承担,成立前提是自审不可靠
- 渐进式披露:先给可检索目录,再按需加载细节,同时优化上下文预算与选择精度
- 只增不改:状态以追加方式演进,换来可缓存、可重放、可审计
- 边界集 + 保留集:任何修改都要在"应改变"和"不应影响"两组样本上验证
- 最小 diff + 可回滚:每次修改尽量小、带来源、可单独回滚
小结
第一章建立了理解和构建 AI Agent 的基础框架。其核心要点包括:Agent 的最小工程实现是 LLM + 上下文 + 工具;扩展观察空间和动作空间是模型固定时最有效的工程杠杆;ReAct 循环是串联三大组件的核心机制;Harness 工程(约束、验证、纠正)是模型能力商品化后的核心竞争力;从工作流到自主 Agent 的编排选择应遵循"从简单到复杂"的原则。这些框架为后续章节的具体技术展开提供了统一的概念参照坐标。
本文内容整理自开源技术书《深入理解 AI Agent》(bojieli/ai-agent-book),采用 Apache 2.0 许可证
更多推荐



所有评论(0)