Skip to content

Agent 与 OpenClaw 相关概念

这部分先把 Agent 的基本概念说清楚。OpenClaw 可以看成一个实践场景,重点不是记某个平台的名词,而是理解 Agent 为什么能从“回答问题”走向“执行任务”。

Agent 的核心定义是:将大语言模型与工具结合,创建一个能够推理任务、决定使用哪个工具,并迭代寻找解决方案的系统。它不是只回答一句话,而是会根据任务状态持续判断下一步怎么做,直到完成用户指定任务,或达到停止条件。

可以把它拆成三个角色来理解:

大模型

系统的大脑,负责理解用户意图、分析当前状态,并规划下一步行动。

工具

系统的手和感官,负责执行具体动作,比如搜索、计算、读写文件、查询数据库或调用外部 API。

Agent

协调大脑和工具的自动化流程:选择工具、执行工具、观察结果,再继续推理。

Agent 核心组成

传统大模型调用更像“问一次、答一次”,Agent 更像“拿到目标后,自己规划步骤并推动任务完成”。

对比维度 传统大模型 / AIGC AI Agent
核心能力 内容生成 任务规划与自主执行
交互模式 被动响应,依赖提示词 主动规划,自主决策
输出结果 建议、方案、文本内容,通常还需要人工处理 可交付的最终结果,比如已整理的文件、已执行的操作、已生成的报告
外部交互 有限,主要通过文本 更强,可通过工具操作外部系统

一句话说:传统大模型主要产出内容,Agent 进一步负责把内容变成行动和结果

Agent 常见的工作模式是 ReAct,也就是 Reasoning + Acting:先推理,再行动;拿到行动结果后继续推理。

  1. 用户输入:用户向 Agent 提出问题或任务。

  2. 模型推理:大模型分析当前任务、上下文和可用工具,判断下一步该做什么。

  3. 工具调用:如果需要外部能力,Agent 让工具执行器调用对应工具。

  4. 观察结果:工具返回结果后,结果会进入上下文,作为下一轮推理依据。

  5. 继续迭代:模型基于新信息继续判断,可能再次调用工具,也可能认为信息已经足够。

  6. 最终输出:当任务完成、达到迭代限制,或触发停止条件时,Agent 返回最终结果。

工具调用容易混淆:模型并不是自己执行工具,而是先生成一个结构化的工具调用意图

更准确地说,LLM 在推理后会输出类似下面这样的结构化信息,里面包含工具名称和工具参数:

{
"name": "search",
"args": {
"query": "需要查询的问题"
}
}

这一步可以理解为意图识别后的结果:模型已经判断出“我要调用哪个工具,以及要传什么参数”。随后由 Agent 运行时或 Tool Executor 真正执行工具,工具返回值再以 ToolMessage / Observation 的形式放回消息列表,交给模型继续推理。

Agent 工具调用循环

概念 说明 关键点
Agent 模型 + 工具的工作流协调器 遵循 ReAct 循环,智能调度工具完成任务
模型 大脑,负责理解和推理 可以静态配置,也可以根据任务动态选择
工具 手和感官,负责执行动作 可以静态定义,也可以基于权限、状态动态过滤或注册
系统提示 角色设定与行为指南 可以固定设置,也可以根据上下文动态生成
状态 + 上下文 当前任务的短期记忆 包含消息历史,也可以扩展存储自定义信息
中间件 功能扩展插件 在执行不同阶段插入自定义逻辑,实现更细的控制
结构化输出 控制最终输出格式 让 Agent 的回答符合预定义结构,方便后续程序处理
Skills 可复用技能包 可以渐进式加载,让 Agent 按需加载要用的能力

这里要抓住一个重点:Agent 的能力不是只来自模型本身,而是来自 模型、工具、状态、规则和运行时控制 的组合。

Workflow 是更广义的 LLM 编排模式,表示把多个步骤按预设结构组织起来,比如串行、并行、路由、聚合等。ReAct Agent 可以看成一种典型的智能体模式,也可以作为 Workflow 里的一个组件,但 Workflow 不一定都需要 Agent。

Workflow 和 Agent 的区别

当任务是开放式的,执行路径不确定,需要系统自己判断“下一步做什么、调用哪个工具、结果是否足够”时,更适合使用 Agent。

例如:排查线上问题、自动整理多来源资料、根据结果继续追问和搜索、处理需要多轮工具调用的复杂任务。

简单来说:Workflow 是流程先定好,Agent 是边做边决定。如果步骤清楚,用 Workflow 更稳定;如果路径不确定,需要探索和判断,就让 Agent 参与。

复杂任务可以拆给多个子 Agent 协作完成。主 Agent 负责理解用户目标、拆解任务、分配子任务、收集结果并生成最终响应;子 Agent 则专注处理某一类任务。

主 Agent 与子 Agent 协作

这种结构适合任务跨度比较大的场景。比如一个主 Agent 负责“完成一份项目分析报告”,可以把资料检索、代码阅读、数据整理、内容撰写分别交给不同子 Agent,再统一汇总成最终答案。