什么是 Agent?从 LLM、Harness 和 Tools 理解智能体
理解 Agent,可以从一个公式开始:
Agent ≈ LLM + Harness + Tools
LLM 是大语言模型,负责理解和决策;Harness 是执行框架,负责组织上下文、管理状态和协调执行;Tools 是工具,负责读取信息和执行操作。
三个部分组合起来,让系统能够围绕一个目标,通过“决策 → 行动 → 反馈”的循环推进任务。这也是理解 Agent 的关键:除了看它由什么组成,还要看这些组成如何持续配合。
一、先从整体理解:Agent 如何完成任务
以“修复登录失败的问题”为例,系统需要找到相关代码,判断错误原因,修改文件,运行测试,再根据测试结果决定是否继续修复。
完成这件事,既需要模型的推理能力,也需要实际操作环境的工具,还需要一个框架把整个过程连接起来。
这三个部分分别对应:
这个公式是理解基于大模型的 Agent 的一种架构概括,并非严格的数学等式。
二、LLM:理解目标,决定下一步
LLM 承担理解、推理和生成的工作。它接收任务及相关信息,判断当前状况,再决定应该采取什么行动。
当用户提出“修复登录失败的问题”时,模型可能先选择搜索登录相关代码,也可能根据已有报错直接读取某个文件。获得代码后,它会分析原因,提出修改,并选择后续验证方式。
这里的“决定下一步”,既可以是生成一段回答,也可以是发出一个工具调用请求,例如读取文件或运行测试。
但模型生成了“运行测试”的请求,并不意味着测试已经发生。实际执行还需要框架和工具参与。模型负责提出行动,外部系统负责把行动落实。
三、Harness:组织并维持执行过程
Harness 可以理解为围绕模型运行的一套执行框架。它让一次次模型调用形成连贯的工作过程。
1. 组织上下文
模型每次决策时,都要知道用户的目标、适用的规则、之前做过什么,以及刚刚获得了哪些结果。
Harness 负责管理和传递这些信息,并在上下文过长时,通过摘要等方式保留必要状态。
2. 协调工具调用
模型请求读取文件后,框架将请求交给对应工具,再把文件内容交回模型。如果执行失败,错误信息也需要返回,供模型调整行动。
3. 落实执行边界
哪些目录可以访问、哪些操作被禁止、哪些操作需要用户批准,都需要在执行环节得到约束。
因此,Harness 直接影响 Agent 能否保持任务连续性、处理失败,以及在允许的范围内行动。
四、Tools:获取信息,执行操作
Tools 是 Agent 与外部环境交互的具体接口。
常见工具包括文件读取、代码编辑、终端命令、网页搜索、浏览器操作,以及访问业务系统的 API。不同工具决定了 Agent 可以获取什么信息、执行什么操作。
在修复登录问题的例子中:
搜索工具帮助定位代码。
文件工具提供实现细节。
编辑工具写入修改。
终端工具运行测试。
工具把模型提出的行动变成实际结果。
工具的设计也会影响后续决策。如果测试工具能返回清晰的错误位置和失败原因,模型就更容易选择有效的修复步骤。因此,工具除了要能执行操作,还应提供可供判断的反馈。
五、运行机制:决策、行动与反馈
把三个部分串起来,Agent 的运行过程就清楚了:
用户提出目标
↓
Harness 组织上下文
↓
LLM 分析并选择行动
↓
Harness 检查并调度工具
↓
Tools 执行,返回结果
↓
Harness 更新上下文
↓
LLM 根据反馈继续决策
↓
完成任务、请求帮助或停止这里的重点是反馈。模型读取代码后,获得了新的证据;修改代码后,需要验证;测试失败后,又会获得新的错误信息。下一步行动会随着这些反馈发生变化。
这个循环不保证任务一定成功。Agent 可能缺少必要信息、没有执行权限,也可能判断错误。一个可靠的执行过程,还需要允许用户介入,并在受阻时清楚说明情况。
六、目标、记忆和规划,应该放在哪里
讨论 Agent 时,经常还会出现目标、记忆、规划、环境等概念。它们都很重要,但不必全部作为独立项加入这个公式。
保留 LLM、Harness、Tools 三项,有助于看清职责,也避免把公式变成一个不断扩张的功能清单。
七、用组成和机制两个视角理解 Agent
从组成看:Agent ≈ LLM + Harness + Tools。
从机制看:Agent 围绕目标,通过“决策 → 行动 → 反馈”的循环推进任务。
前者解释系统有哪些部分,后者解释这些部分如何协作。评价一个 Agent 时,也应同时考察模型的判断能力、框架的执行能力,以及工具提供的操作范围和反馈质量。
评论