Agent 不只是大模型:重新理解 LLM、上下文与工具
Agent 不只是大模型重新理解 LLM、上下文与工具第一卷分隔图从范式、Harness、循环和上下文安全建立共同工程语言。摘要很多 Agent 介绍从一句“Agent LLM 上下文 工具”开始却又把这句话误用成严格定义仿佛把三个组件放进框架就自动得到智能体。本文把它还原为一个有用但有边界的工程心智模型LLM 生成下一步决策上下文决定决策时可见的信息工具把结构化意图变成外部行动三者由 Harness 连接成可观测、可约束、可停止的闭环。我们还会从 ReAct 原论文走到当前工具调用协议并用上下文消融解释为什么 Agent 的成败不能只看模型榜单。关键词AI Agent智能体、大语言模型、上下文工程、工具调用、ReAct、Agent Loop、消融实验、HarnessCSDN 分类建议人工智能 / 大模型应用推荐标签AI Agent、LLM、智能体、大模型、Agent Engineering本文知识地图本文沿着两张图推进第一张回答“Agent 由什么协作而成”第二张回答“这些组件怎样循环”。先建立三要素边界再解释 ReAct 轨迹最后把消融、终止条件和安全校验纳入生产设计。图 1Agent 三要素与 Harness 闭环。来源作者依据 ReAct 论文和工具调用官方协议整理。读图重点不是三个方框而是两条边界模型可以提出客户端工具调用却不应直接获得底层权限工具结果必须作为新观测回到上下文否则行动没有闭环。由图可得的工程结论是模型能力相同校验器、执行器和轨迹管理不同最终系统可靠性也会完全不同。为什么一句公式容易被误读“现代 Agent LLM 上下文 工具”很适合做架构评审的第一张便签它迫使团队同时检查决策核心、信息供给和行动接口。但它不是数学等式也不是学术共同体唯一认可的形式定义。传统智能体可以用策略、观察与动作描述确定性工作流也可能调用 LLM 和工具却不一定拥有自主选择路径的能力。这里先立三种证据标签后文保持同一口径事实能够从官方 API 规范、标准或原始论文直接核验的陈述。工程经验在特定任务、模型和实现中常见的规律需要用评估验证不能自动外推。作者推断基于事实和经验给出的设计判断必须说明适用边界。因此本文把这句公式定义为用于拆解 LLM Agent 的工程心智模型。它能帮助发现缺项却不能单独判断系统是否自主、安全或完成了任务。三要素各自负责什么LLM策略生成器不是整个系统在一次循环里LLM 接收当前上下文生成文本、结构化工具调用或其他协议项。它擅长理解自然语言、分解目标和在不确定条件下选择下一步但它通常不直接执行客户端函数。Anthropic 的官方工具调用说明明确区分了客户端工具与服务端工具客户端工具由应用执行服务端工具才由供应商基础设施运行。事实Anthropic Tool Use把 LLM 称为“大脑”有直觉价值也有副作用团队很容易把权限控制、状态机、重试和验证也归因于模型。更准确的说法是LLM 是一个基于上下文产生候选决策的策略组件。它输出refund(order_id, amount)并不代表退款已经发生更不代表金额合法。上下文决策时可见的工作集上下文不只是用户刚输入的提示词。对工具型 Agent它通常包含开发者指令、用户目标、对话历史、工具定义、调用与结果、环境状态以及必要的外部知识。Anthropic 将上下文工程描述为在有限 token 预算下选择最可能产生期望行为的上下文配置。事实Context Engineering“眼睛”这个比喻也只能用一半。工具 Schema 不是外部环境画面却同样决定模型知道有哪些动作历史错误不是知识库却影响下一步是否换路。因此本文采用“工作集”一词上下文是当前决策真正可访问的信息集合而不是系统拥有的全部数据。工程上至少检查四类信息目标与成功条件做什么什么算完成权限与业务边界哪些动作禁止哪些需要确认轨迹与新鲜状态做过什么环境现在是什么工具契约名称、描述、输入 Schema、错误语义和副作用。缺少信息时强模型也只能猜塞入过量、陈旧或互相冲突的信息同样会降低表现。“上下文越多越好”不是结论“在决策点提供足够且相关的信息”才是可验证目标。工具受控动作空间而非一串函数名工具让 Agent 读取实时数据、执行代码或改变业务状态。模型看到的是工具契约真正的凭证、网络连接和操作权限应留在执行层。OpenAI 的 Function Calling 文档说明开启strict: true时Structured Outputs 可以保证生成参数匹配开发者提供的 JSON Schema。事实OpenAI Function Calling但“匹配 Schema”只回答结构问题。例如amount是数字并不证明它小于订单余额path是字符串也不证明用户有权删除该文件。工程经验是把校验分三层Schema 校验保证形状业务校验保证语义授权与风险校验决定能否执行。高风险或不可逆动作还需要幂等键、审计记录与人工确认。模型即 Agent以及三种“学习”不要混为一谈“模型即 Agent”描述的是一种产品形态模型服务已经原生接入搜索、代码执行或研究工具调用者只提交目标就能得到包含工具轨迹的结果。它能显著缩短应用代码却不等于部署系统只剩模型。工具权限、数据边界、供应商侧隐藏 Harness、结果验证和组织审计仍然存在只是责任被重新分配。判断这种形态时应问“谁执行工具、谁持有凭证、谁验证完成、谁能重放轨迹”而不是只看接口是否一行代码。Agent 语境里的“学习”至少有三种机制生命周期完全不同范式改变什么能否跨会话主要权衡实践建议后训练学习模型参数可以随模型版本发布数据与算力高回滚和归因较慢只把稳定、规模化且有评估信号的能力训练进模型上下文学习当前 prompt 中的示例与规则默认不可以上手快但占 token、受位置和上下文质量影响用少量代表性示例并记录提示版本避免把临时适配误叫参数学习外部化学习记忆、工作流、Skill、代码或工具可以由外部存储承载可审计可修改但会积累陈旧和冲突知识保存来源、适用条件、验证结果与淘汰规则再按需加载原书实验 1.2、1.3 用当时的 Kimi 与 GPT 原生能力说明“模型即 Agent”。这些产品名、版本和工具集具有时效性本系列保留实验方法而不保留“某模型天然更强”的结论固定任务和成功判据记录模型/API 日期、供应商托管工具、隐藏限制与最终证据再与自建 Loop 的成本、可控性和可观测性对照。无法重放供应商内部轨迹时结论只能落到端到端表现不能反推内部机制。ReAct把决策与环境反馈交错起来ReActReasoning and Acting原论文提出让语言模型交错生成推理轨迹与任务行动使推理可据环境反馈更新行动又能从外部知识源或环境获得信息。事实ReAct 原论文 这项工作在问答、事实核验和交互式决策基准上做了实验但论文结果不应被外推为“ReAct 对所有任务都优于其他编排方式”。对工程系统更稳妥的抽象是上下文 → 候选决策 → 校验 → 行动 → 观测 → 更新上下文 ↘ 最终答案或安全停止这里的“思考”不要求产品暴露模型的私有思维链。生产日志通常记录任务计划摘要、工具名、参数摘要、结果、错误码、耗时和状态变化就足以审计系统行为。将供应商内部 reasoning token 当成唯一可解释性来源既不通用也可能泄露敏感数据。图 2生产级 ReAct 状态流。来源作者依据 ReAct 与当前 Agent 工具循环整理。读图重点是两个过去常被 Demo 省略的分支校验失败也要形成观测达到轮次、时间或成本上限必须安全停止。由图可得的结论是ReAct 不是一个无限while True而是带预算、错误语义和完成判据的状态机。从轨迹理解 Agent 的“记忆”一次任务中的轨迹由用户消息、模型输出、工具调用、工具结果和状态更新组成。模型并不会神秘地“记得”外部工具发生过什么应用必须按供应商协议保留调用与结果的关联。Anthropic 的客户端工具流程用tool_use和tool_result块完成这一往返OpenAI 接口则使用自己的 function call 项与关联标识。协议形状不同工程不变量相同请求、结果与调用 ID 必须能对应。一个最小但更接近生产的伪代码如下forturninrange(max_turns):decisionmodel(context,tools)ifdecision.has_final_textandcompletion_check(decision,state):returndecision.final_textforcallindecision.tool_calls:verdictvalidate(call,policy,budget)observationexecute(call)ifverdict.allowedelseverdict.as_error()context.append(link(call.id,observation))raiseSafeStop(max_turns exceeded)这段代码故意没有绑定某家 SDK。它强调五个不变量轮次上限、完成检查、每次调用先校验、结果与调用关联、超过预算安全退出。真实系统还需要超时、取消、重试退避、幂等性和可观测性。上下文消融不要凭感觉判断组件价值消融实验是逐项移除或替换组件观察指标变化。对于 Agent可以至少设计五组完整基线、移除工具描述、隐藏工具结果、裁剪历史轨迹、移除任务状态摘要。指标不能只看“最后有没有一句答案”还应记录任务成功率、无效调用数、重复调用率、延迟、成本和高风险违规数。事实边界某次消融显示“隐藏工具结果导致循环”只能证明该任务、模型、模板和采样配置下存在因果影响不能证明所有 Agent 的每个组件都不可替代。比如确定性工作流可以在代码状态中保存进度不必把完整历史都发给模型某些任务不需要工具某些 API 提供服务端会话状态。建议使用如下记录表变体成功率重复调用P95 延迟成本风险事件完整基线作为参照作为参照作为参照作为参照作为参照无工具结果测量变化测量变化测量变化测量变化测量变化无历史摘要测量变化测量变化测量变化测量变化测量变化作者推断如果删除某组件后成功率不降、成本反而下降它可能不是“能力基石”而是冗余上下文。反之如果平均成功率不变但风险事件显著上升也不能删除。Agent 优化是多目标约束问题不是只追一条排行榜曲线。常见误区与修正误区一公式就是 Agent 的正式定义。修正把它当组件检查表自主程度、环境闭环和治理能力仍需单独描述。误区二工具调用等于工具执行成功。修正模型输出只是请求。执行器还要做参数、权限、业务规则与副作用校验并将可核验结果送回轨迹。误区三ReAct 就是公开完整思维链。修正ReAct 论文研究推理与行动交错生产可记录简明计划、动作和观测不依赖暴露私有 reasoning。误区四只要上下文够长模型就不会忘。修正可容纳不等于可正确利用。信息的相关性、位置、格式、新鲜度与冲突都会影响结果应用应做检索、压缩和状态提炼。误区五消融一次即可证明普遍规律。修正结论只对测试分布、模型版本和实现成立跨模型、跨任务重复并报告置信区间和失败样例。生产检查清单文档把三要素公式标为工程心智模型没有冒充形式定义。成功条件可由程序、外部环境或独立评估器验证而非模型自称完成。工具 Schema、业务规则、授权和风险评级分层校验。客户端工具凭证不暴露给模型高风险动作有人工确认或审批策略。调用 ID 与结果一一关联错误也以结构化观测返回。Loop 有最大轮次、时间、token、金额或调用预算。重试区分瞬时错误与永久错误并具备退避、幂等和熔断。轨迹日志记录决策摘要、动作、观测和耗时同时脱敏。用任务成功率、成本、延迟、重复调用和风险事件做消融。模型、提示、工具或策略变更后重新跑评估不沿用旧结论。本文小结LLM、上下文和工具解释了一个工具型 Agent 的最小协作关系模型提出下一步上下文提供决策工作集工具把结构化意图连接到环境。真正让它成为可用系统的是三者之间的闭环与 Harness校验后再执行、把结果写回轨迹、用可验证条件结束并在预算耗尽时安全停止。ReAct 提供了交错推理和行动的经典骨架上下文消融则提供了判断每个组件是否真的有用的方法。下一篇将把镜头从三要素移到模型外层系统拆解 Harness 的五项生产能力。延伸阅读与参考资料原始论文ReAct: Synergizing Reasoning and Acting in Language ModelsShunyu Yao 等ICLR 2023。V1-R001ReAct 项目页与代码入口ReAct 作者团队。V1-R002官方文档Tool use with ClaudeAnthropic。V1-R003Function Calling in the OpenAI APIOpenAI。V1-R004Effective context engineering for AI agentsAnthropic Applied AI。V1-R005系列导航上一篇深入理解 AI Agent从模型能力到生产级系统的完整路线图总目录深入理解 AI Agent从模型能力到生产级系统的完整路线图下一篇真正拉开 Agent 差距的 Harness 工程编排、护栏与模型选型ring.md)