Agentic AI 不是简单地让大语言模型多调用几个工具,而是把模型放进一个闭环系统:它能观察环境、拆解任务、选择动作、调用工具、接收反馈、更新记忆,并在失败时重新规划。
可以先区分两个常见概念:
| 概念 | 含义 | 关注重点 |
|---|---|---|
| LLM(Large Language Model,大语言模型) | 通过上下文生成文本、代码或结构化结果的模型 | 语言理解、生成、推理能力 |
| AI Agent(人工智能智能体) | 以模型为决策核心,能完成任务闭环的软件或硬件系统 | 工具调用、状态管理、环境交互 |
| Agentic AI | 让 AI 系统具备更强自主性、协作性和持续执行能力的技术范式 | 架构、学习、评估、安全、治理 |
一句话概括:LLM 更像“大脑”,AI Agent 是“大脑 + 记忆 + 工具 + 反馈”的任务执行系统,Agentic AI 则讨论这种系统如何设计、训练、评估和治理。
从语言模型到 Agent:能力是怎样叠出来的
Agentic AI 的出现并不是突然发生的。它建立在语言建模、神经网络、指令对齐、工具调用和多轮交互这些能力之上。
| 阶段 | 代表范式 | 主要能力 | 与 Agent 的关系 |
|---|---|---|---|
| 1990s | 统计 n-gram | 用概率预测词序列 | 只能做局部文本建模,几乎没有任务自主性 |
| 2000s | 神经嵌入 | 把词、句子映射到连续向量空间 | 语义表示变得可计算,为任务接地提供基础 |
| 2010s | RNN(循环神经网络)/ LSTM(长短期记忆网络) | 处理序列上下文和长短期依赖 | 多步推理和任务规划开始有雏形 |
| 2020s | Transformer + RLHF(基于人类反馈的强化学习) | 长上下文理解、指令跟随、多任务泛化 | 模型开始具备工具使用、规划、反思等 Agent 能力 |
| 2020s 后期 | Agentic AI | 闭环执行、长期记忆、多 Agent 协作、可验证行动 | 从“回答问题”转向“完成任务” |
语言模型到 Agent 的关键变化,不是模型参数变大这么简单,而是交互方式发生了变化。
传统 LLM 的典型模式是:
flowchart LR
A[用户输入] --> B[LLM 生成回答]
B --> C[用户阅读结果]
Agent 的典型模式是:
flowchart LR
A[用户目标] --> B[感知环境]
B --> C[推理与规划]
C --> D[调用工具或执行动作]
D --> E[环境返回反馈]
E --> F[验证结果]
F -->|成功| G[输出结果]
F -->|失败| C
F --> H[写入记忆]
H --> C
区别很明显:LLM 的输出通常是一次性的,Agent 的执行过程则会持续观察、行动和修正。只要任务需要跨步骤、跨工具、跨时间完成,就会进入 Agentic AI 的问题空间。
Agent 的核心循环:感知、推理、行动、记忆、验证
一个 Agent 系统通常包含五类组件:
flowchart TB
U[用户目标 / 外部任务] --> P[感知 Perception]
P --> R[推理与规划 Reasoning]
R --> A[行动 Action]
A --> T[工具 Tools / API / 代码 / 机器人]
T --> E[环境 Environment]
E --> O[观测 Observation]
O --> V[验证器 Validator / 批评家 Critic]
V -->|通过| OUT[任务结果]
V -->|失败或不确定| R
O --> M[记忆 Memory]
M --> R
可以把 Agent 抽象成一个五元组:
Agent = (πθ, M, T, V, E)
| 符号 | 含义 | 例子 |
|---|---|---|
| πθ | 策略核心,通常由 LLM 或 VLM(Vision-Language Model,视觉语言模型)承担 | GPT、Claude、Qwen、Llama、Gemini |
| M | 记忆系统 | 向量数据库、摘要记忆、任务状态、历史轨迹 |
| T | 工具集合 | API(应用程序编程接口)、搜索、代码解释器、数据库、浏览器、机器人控制器 |
| V | 验证器或批评家 | 单元测试、规则检查器、事实核验器、安全策略、人工审批 |
| E | 环境 | 网页、代码仓库、企业系统、物理世界、仿真平台 |
这里的关键点在于:πθ 不是孤立工作的模型,而是一个“策略函数”。它根据目标、记忆、工具结果和环境反馈来决定下一步动作。
一个最小化的 Agent 循环可以写成伪代码:
def agent_loop(goal, policy, memory, tools, validator, max_steps=10):
observation = None
for step in range(max_steps):
context = memory.retrieve(goal=goal, observation=observation)
action = policy.decide(
goal=goal,
context=context,
observation=observation,
available_tools=tools.list()
)
result = tools.run(action)
verdict = validator.check(
goal=goal,
action=action,
result=result
)
memory.write({
"step": step,
"goal": goal,
"action": action,
"result": result,
"verdict": verdict
})
if verdict.passed:
return result
observation = verdict.feedback
raise RuntimeError("Agent did not finish within max_steps")
工程上最容易出问题的地方也在这个循环里:模型可能选错工具,工具可能返回噪声,验证器可能过于宽松,记忆可能把错误信息保存下来,环境也可能在执行过程中发生变化。
ReAct:单 Agent 的基础工作流
ReAct 可以理解为 “Reason + Act”,也就是让模型在推理和行动之间交替进行。它不是只输出最终答案,而是把任务拆成一系列“思考—行动—观察”的小循环。
sequenceDiagram
participant User as 用户
participant Agent as ReAct Agent
participant Tool as 工具
participant Env as 环境
User->>Agent: 提交任务
Agent->>Agent: Thought:分析目标和下一步
Agent->>Tool: Action:调用工具
Tool->>Env: 查询或执行
Env-->>Tool: 返回结果
Tool-->>Agent: Observation:工具反馈
Agent->>Agent: 根据反馈继续推理
Agent-->>User: 返回最终结果
一个典型 ReAct 轨迹可能长这样:
Goal: 修复仓库中的一个测试失败问题
Thought: 需要先定位失败测试。
Action: run_tests()
Observation: test_user_service.py::test_create_user 失败。
Thought: 需要查看相关代码。
Action: read_file("services/user_service.py")
Observation: create_user 没有处理重复邮箱。
Thought: 应添加重复邮箱检查,并补充错误返回。
Action: edit_file(...)
Observation: 修改完成。
Thought: 运行测试确认。
Action: run_tests()
Observation: 所有测试通过。
Final: 已修复重复邮箱导致的测试失败。
单 Agent 的优势是结构简单、状态可控、调试成本低。问题也很集中:一旦模型在某个步骤产生幻觉或误解任务,后面的动作会沿着错误方向继续执行。
| 维度 | 单 Agent ReAct |
|---|---|
| 适合任务 | 简单工具链、代码修改、信息检索、网页操作 |
| 主要优点 | 架构简单,调用链短,日志容易追踪 |
| 主要风险 | 单点幻觉、长程任务误差累积、复杂任务规划能力不足 |
| 工程补救 | 加验证器、限制工具权限、强制小步执行、失败回滚 |
多 Agent:把复杂任务拆给不同角色
多 Agent 系统会把任务拆成多个角色,例如规划者、执行者、审查者、检索者、代码生成者等。每个 Agent 负责一部分工作,再通过消息协议和共享记忆协作。
flowchart TB
U[用户目标] --> S[协调者 / Supervisor]
S --> P[规划 Agent]
S --> R[检索 Agent]
S --> C[代码 Agent]
S --> K[审查 Agent]
P --> SM[(共享记忆)]
R --> SM
C --> SM
K --> SM
R --> T1[搜索 / 数据库]
C --> T2[代码仓库 / 测试工具]
K --> T3[规则 / 事实核验]
SM --> S
S --> OUT[整合结果]
多 Agent 的价值在于分工。复杂任务往往需要不同能力:有人负责制定计划,有人负责查资料,有人负责写代码,有人负责审查风险。如果全部交给一个 Agent,提示词会变得很长,状态也会混乱。
但多 Agent 并不是越多越好。角色越多,通信成本越高,误解也可能级联传播。
| 维度 | 单 Agent | 多 Agent |
|---|---|---|
| 协调成本 | 低 | 高,需要角色分配、消息协议和冲突仲裁 |
| 记忆方式 | 本地状态或向量库 | 共享知识池、任务黑板、事件日志 |
| 失败模式 | 单点幻觉 | 级联误解、重复劳动、互相等待 |
| 适合场景 | 简单工具链、短任务 | 审稿、谈判、创意生成、复杂企业流程 |
| 必要约束 | 工具权限、结果验证 | 通信规范、角色边界、最终裁决者 |
多 Agent 系统需要三个基础机制:
- 通信原语:角色之间如何发消息,消息包含目标、证据、置信度还是动作请求。
- 冲突仲裁:多个 Agent 给出不同结论时,由谁决定继续、重试或交给人工。
- 动态分治:任务规模变化时,系统能新增或合并角色,而不是固定一套流程跑到底。
如果没有这些机制,多 Agent 很容易变成多个模型轮流聊天,成本上升,结果却不可控。
三层学习策略:In-Context、IL、RL
Agent 能力的来源不只靠提示词。更完整的训练和优化体系通常分三层:上下文学习、模仿学习、强化学习。
flowchart TB
A[In-Context Learning 上下文学习] --> B[快速调整提示词、工具说明、策略规则]
C[IL Imitation Learning 模仿学习] --> D[从专家轨迹学习可执行行为]
E[RL Reinforcement Learning 强化学习] --> F[通过长期回报优化多步决策]
B --> G[Agent 系统行为]
D --> G
F --> G
| 层次 | 训练对象 | 数据来源 | 适合解决的问题 | 主要难点 |
|---|---|---|---|---|
| In-Context Learning(上下文学习) | 不改模型参数,只改提示词和上下文 | 工具描述、示例轨迹、规则模板 | 快速适配新工具、新流程 | 上下文长度有限,复杂任务稳定性不足 |
| IL(Imitation Learning,模仿学习) | 学习专家行为轨迹 | 人类演示、历史工单、成功执行日志 | 让 Agent 学会标准流程 | 专家数据贵,分布漂移会导致错误累积 |
| RL(Reinforcement Learning,强化学习) | 优化长期任务回报 | 环境反馈、奖励函数、自动评测 | 多步规划、工具选择、成本控制 | 奖励稀疏,探索成本高,安全边界难定义 |
上下文学习:把 Prompt 当作软程序
对于很多业务系统,最先落地的往往是上下文学习。它不需要重新训练模型,而是通过提示词、工具 schema、few-shot 示例和策略规则控制 Agent 行为。
一个工具调用模板可以这样设计:
{
"role": "system",
"policy": [
"每次只执行一个外部动作",
"调用工具前必须说明目标",
"涉及删除、付款、权限变更时必须请求人工确认",
"工具失败后最多重试两次"
],
"tools": [
{
"name": "search_ticket",
"description": "按关键词查询工单",
"input_schema": {
"keyword": "string",
"limit": "integer"
}
}
]
}
这种方式适合快速迭代,但提示词不是强约束。只要任务变长、状态变复杂,系统就需要更强的验证器和外部状态管理。
模仿学习:从专家轨迹学流程
模仿学习的目标是让 Agent 复现专家做事的步骤。比如企业客服 Agent 可以从历史工单中学习:如何判断问题类型、什么时候查询知识库、什么时候升级给人工。
常见做法是行为克隆:把专家轨迹整理成“状态 → 动作”的训练样本,让模型学会在相似状态下选择相似动作。
状态:用户反馈登录失败,错误码为 403
专家动作:查询权限变更记录
工具结果:用户所属角色昨日被移除
专家动作:提交权限恢复审批
行为克隆的风险是分布漂移。训练数据里可能都是“正确前一步”之后的状态,而真实 Agent 一旦走错一步,就会进入专家数据没有覆盖的状态。DAgger(Dataset Aggregation,数据集聚合)会让专家对 Agent 自己产生的状态继续标注,从而扩大训练分布。
强化学习:优化长程任务收益
强化学习更适合处理长程任务,例如自动修复代码、网页连续操作、机器人导航。因为这些任务的成败不取决于单次回答,而取决于一串动作是否最终达到目标。
强化学习要定义奖励:
| 任务 | 可能的奖励信号 |
|---|---|
| 自动编程 | 测试通过、代码改动小、没有引入新错误 |
| 网页操作 | 成功完成表单、点击次数少、没有触发危险操作 |
| 企业工单 | 解决率、人工接管率、处理时长、合规检查通过 |
| 机器人控制 | 到达目标、碰撞次数少、能耗低 |
困难在于奖励通常很稀疏。比如自动编程任务只有在跑完测试后才知道是否成功,中间每一步修改是否正确并不容易判断。这也是验证器、沙箱环境和可回放日志很重要的原因。
六类 Agent 系统:能力边界和风险不同
Agentic AI 覆盖的系统很广,不同类型的 Agent 需要不同的评估方式。
| 类型 | 典型场景 | 核心能力 | 主要痛点 |
|---|---|---|---|
| Generalist Agent | 编程、浏览器操作、企业工作流 | 跨工具完成通用任务 | 长程误差累积,成本难控 |
| Embodied Agent | 机器人、智能设备、自动驾驶辅助 | 感知物理环境并执行动作 | 实时安全边界要求高 |
| Sim-to-Real Agent | 游戏、仿真训练、WebArena 类网页环境 | 在仿真中学习,再迁移到真实环境 | 环境漂移导致策略失效 |
| Generative Agent | 故事生成、社会模拟、虚拟角色 | 多角色行为生成和一致性维护 | 角色记忆和世界状态容易漂移 |
| Knowledge & Logic Agent | 医疗、金融、法务、合规 | 证据检索、逻辑约束、可追溯推理 | 幻觉成本高,必须保留证据链 |
| LLM/VLM Backbone Agent | 多模态助理、AR/VR、复杂编排器 | 文本、图像、音频、动作统一调度 | 模态对齐和幻觉动作风险 |
设计 Agent 时不能只问“模型够不够强”,还要问:
- 任务失败的代价是什么?
- 是否允许自动执行真实动作?
- 是否需要人工审批?
- 是否必须给出证据来源?
- 是否需要长期记忆?
- 是否存在实时延迟约束?
医疗、金融、机器人控制这类场景不能依赖“模型看起来回答得不错”,必须引入权限控制、审计日志、事实核验和人工闸门。
工业场景中的关键设计模式
Agent 落地时,任务成功率只是一个指标。更重要的是能不能被监控、能不能回滚、能不能解释、能不能限制风险。
| 场景 | 关键设计模式 | 常用评测方式 |
|---|---|---|
| 自主编程 | 仓库级检索、小步 diff、单元测试、失败回滚 | SWE-bench、测试通过率、补丁大小 |
| 企业工单 | 策略即代码、角色权限、人工审批、审计日志 | 解决率、升级率、合规检查通过率 |
| 网页操作 | ReAct、DOM(Document Object Model,文档对象模型)观测、可恢复动作 | WebArena、任务完成率、点击步数 |
| 实时多模态 | 感知工具链、缓存、保守拒绝策略 | 延迟、幻觉率、误操作率 |
| 知识问答 | 检索增强、引用证据、答案验证 | 事实一致性、证据覆盖率、拒答准确率 |
自主编程:不要让 Agent 一次改太多
代码 Agent 最怕“大步修改”。更稳的方式是:
flowchart LR
A[读取 issue / 测试失败信息] --> B[检索相关文件]
B --> C[生成最小修改计划]
C --> D[应用小步 diff]
D --> E[运行测试]
E -->|通过| F[输出补丁]
E -->|失败| G[回滚或缩小修改范围]
G --> C
小步 diff 的好处很实际:测试失败时更容易定位是哪一步引入的问题,代码审查也更容易接受。
企业工单:权限比能力更重要
企业 Agent 会接触客户数据、内部系统和业务操作。它不应该拥有无限权限,而应该按任务类型拿到最小必要权限。
policy:
reset_password:
allowed_roles:
- support_agent
require_human_approval: false
refund_payment:
allowed_roles:
- finance_agent
require_human_approval: true
max_amount: 500
delete_customer_data:
allowed_roles:
- data_protection_agent
require_human_approval: true
require_audit_log: true
策略即代码的价值在于:权限规则不再散落在提示词里,而是能被测试、审计和版本管理。
网页操作:DOM 观测比截图更稳定
让 Agent 操作网页时,可以给它截图,也可以给它 DOM 结构。截图适合多模态理解,但按钮位置、样式变化会影响稳定性;DOM 观测能提供更明确的元素层级、文本和属性。
一个网页操作动作可以记录成结构化日志:
{
"step": 4,
"observation": {
"url": "https://example.com/settings",
"visible_text": ["Account", "Security", "Change password"]
},
"action": {
"type": "click",
"target": "button[text='Change password']"
},
"result": {
"status": "success",
"next_url": "https://example.com/settings/password"
}
}
这种日志能支持回放和错误分析。只保存自然语言对话,很难定位 Agent 到底点错了哪里。
评估 Agent:不能只看最终答案
传统问答评测通常关注答案对不对。Agent 评测要复杂得多,因为它涉及路径、成本、安全和可恢复性。
| 指标 | 说明 |
|---|---|
| 任务成功率 | 是否完成目标 |
| 步数和成本 | 调用了多少次模型、多少个工具、花了多少钱 |
| 延迟 | 用户等待时间是否可接受 |
| 可恢复性 | 工具失败或中间步骤错误时能否重试 |
| 证据可追溯 | 结论是否能追踪到数据来源 |
| 安全合规 | 是否越权、泄露数据、执行危险动作 |
| 人工接管率 | 多少任务需要人类介入 |
| 可复现性 | 同样输入是否能得到稳定轨迹 |
一个可审计的 Agent 系统至少要保留这些信息:
{
"trace_id": "agent-run-20260607-001",
"goal": "修复登录失败工单",
"model": "llm-policy-v1",
"tools_used": ["search_ticket", "query_user_role", "create_approval"],
"actions": [
{
"step": 1,
"tool": "search_ticket",
"input": {"keyword": "login 403"},
"output_hash": "sha256:...",
"verdict": "passed"
}
],
"permission_checks": [
{
"action": "create_approval",
"allowed": true,
"policy": "support_agent.create_approval"
}
],
"final_status": "handoff_required"
}
没有轨迹日志,Agent 系统很难进入严肃业务场景。因为一旦出错,团队需要知道它为什么做这个动作、用过哪些数据、有没有越权、是否应该由人工接管。
六个关键挑战
Agentic AI 要从演示走向稳定生产,需要解决六类问题。
1. 可验证规划
Agent 生成计划不难,难的是计划能不能被检查。可验证规划要求动作序列有明确前置条件、后置条件和失败处理。
动作:refund_payment(order_id, amount)
前置条件:
- order_id 存在
- amount <= 可退款金额
- 用户身份已验证
- 金额超过阈值时需要人工审批
后置条件:
- 退款记录写入数据库
- 用户收到通知
- 审计日志保存成功
如果计划只是自然语言描述,系统很难自动判断风险。把计划转成结构化动作,才方便验证器检查。
2. 实时可解释
链式思维不适合作为审计材料,因为它可能包含不稳定的推理文本,也可能泄露不该展示的信息。更实用的是“链式证据”:记录每个结论依赖哪些工具结果、规则和数据来源。
| 不稳定做法 | 更可控做法 |
|---|---|
| 展示模型完整思考过程 | 展示可验证证据和决策摘要 |
| 让模型自己解释为什么可信 | 用工具结果、测试结果、规则命中解释 |
| 只保存最终答案 | 保存动作、输入、输出、验证结果 |
3. 持续记忆
长期运行的 Agent 不能把所有历史都塞进上下文。更合理的记忆系统可以分三层:
| 记忆类型 | 内容 | 用途 |
|---|---|---|
| Episodic Memory(情节记忆) | 某次任务发生了什么 | 回放、追踪、个性化 |
| Semantic Memory(语义记忆) | 稳定事实和知识 | 检索、问答、规则匹配 |
| Procedural Memory(程序记忆) | 怎样完成某类任务 | 流程复用、策略优化 |
记忆写入必须谨慎。错误结论一旦进入长期记忆,后续任务可能持续受污染。工程上通常需要给记忆加来源、时间、置信度和过期策略。
4. 多 Agent 协议
多 Agent 需要比“互相发消息”更严格的协议。每条消息最好包含:
{
"sender": "critic_agent",
"receiver": "planner_agent",
"message_type": "risk_report",
"claim": "退款动作需要人工审批",
"evidence": ["policy.refund.max_amount", "order.amount"],
"confidence": 0.94,
"requested_action": "revise_plan"
}
结构化消息能减少误解,也方便协调者做冲突仲裁。
5. 绿色推理
Agent 往往会多轮调用模型和工具,成本可能迅速上升。绿色推理不是一句口号,而是具体的路由和缓存策略:
| 方法 | 做法 |
|---|---|
| 动态模型选择 | 简单任务走小模型,复杂规划走大模型 |
| 工具结果缓存 | 相同查询不重复调用外部工具 |
| 轨迹复用 | 相似任务复用成功步骤 |
| 早停机制 | 验证器确认成功后停止继续推理 |
| 稀疏上下文 | 只检索相关记忆,不把全部历史放入上下文 |
6. 治理基础设施
生产级 Agent 需要治理能力,尤其是涉及真实用户、资金、权限和隐私数据的系统。
治理基础设施至少包括:
- 权限即代码:所有高风险动作都有可测试的权限规则。
- 审计日志:每次工具调用、模型决策和人工审批都可追踪。
- 合规基准:针对行业要求设置自动检查。
- 沙箱执行:代码、网页、机器人动作先在隔离环境验证。
- 人工闸门:高风险动作必须由人确认。
- 数据最小化:Agent 只能读取完成任务所需的数据。
一个可落地的 Agent 设计清单
构建 Agent 系统时,可以按这张清单检查:
| 问题 | 设计要求 |
|---|---|
| 目标是否明确 | 把用户目标转成可执行任务和终止条件 |
| 工具是否可控 | 每个工具有 schema、权限和失败处理 |
| 记忆是否可靠 | 记忆有来源、时间、置信度和过期机制 |
| 行动是否可验证 | 高风险动作有规则检查和人工审批 |
| 失败是否可恢复 | 支持重试、回滚、降级和人工接管 |
| 成本是否可监控 | 记录模型调用、工具调用、延迟和费用 |
| 结果是否可审计 | 保存完整执行轨迹和证据链 |
Agentic AI 的核心不是让模型表现得更像人在聊天,而是让它在真实环境中以可控方式完成任务。模型能力决定上限,系统架构决定稳定性,验证和治理决定能不能进入生产环境。
参考资料
https://arxiv.org/abs/2601.01743
AI Agent Systems: Architectures, Applications, and Evaluation
https://arxiv.org/abs/2601.02749
The Path Ahead for Agentic AI: Challenges and Opportunities