深入解析,什么是Agent,Agent的 架构与设计模式

Agent = LLM + 记忆 + 工具 + 规划。从被动回答到主动行动的质变。


一、什么是 AI Agent

定义

AI Agent = 一个能自主感知环境、做出决策、采取行动、并根据反馈调整行为的AI系统。

与普通 ChatBot 的区别:

维度 ChatBot Agent
交互模式 一问一答 自主规划、多步执行
工具使用 调用外部工具/API
记忆 当前对话 短期+长期记忆
决策 被动响应 主动推理和规划
典型场景 聊天/问答 自动化任务/复杂工作流

Agent 核心循环

复制代码
         ┌──────────────────────┐
         │    Perceive (感知)    │ ← 接收用户输入/环境信息
         └──────────┬───────────┘
                    ↓
         ┌──────────────────────┐
         │    Think (思考)       │ ← LLM推理+规划
         │  • 分析当前状态       │
         │  • 决定下一步行动     │
         │  • 选择工具           │
         └──────────┬───────────┘
                    ↓
         ┌──────────────────────┐
         │    Act (行动)         │ ← 执行工具调用/生成输出
         └──────────┬───────────┘
                    ↓
         ┌──────────────────────┐
         │    Observe (观察)     │ ← 获取行动结果
         └──────────┬───────────┘
                    ↓
              循环 or 结束

二、Agent 设计模式

模式1:ReAct (Reasoning + Acting)

论文 :Yao et al., 2022
核心:推理和行动交替进行

复制代码
Thought: 用户想知道今天北京天气,我需要调用天气API
Action: get_weather(city="Beijing")
Observation: 北京今天晴,25°C,东南风3级
Thought: 已获取信息,可以回答了
Answer: 北京今天晴天,气温25°C,东南风3级,适合户外活动。

优点 :简单直观,最广泛使用
缺点:串行执行,没有全局规划

模式2:Plan-and-Execute(规划-执行)

核心:先制定完整计划,再逐步执行

复制代码
Task: 帮我做一份竞品分析报告

Plan:
1. 确定竞品列表(3-5家)
2. 收集各竞品的产品特性数据
3. 收集各竞品的定价策略
4. 分析差异点和竞争优势
5. 生成对比表格
6. 撰写分析结论和建议

Execute:
Step 1: [执行] → [结果]
Step 2: [执行] → [结果]
...
Replan (if needed): 根据中间结果调整计划

优点 :有全局视角,适合复杂任务
缺点:初始计划可能不准确,需要Replan能力

模式3:Reflexion(反思)

论文 :Shinn et al., 2023
核心:执行后自我评估,存储反思到记忆中,下次避免同类错误

复制代码
Attempt 1: 执行任务 → 结果不佳
Reflection: "我犯了什么错?上次我忽略了边界条件"
Memory: 存储反思 → "检查边界条件"
Attempt 2: 执行任务(参考反思记忆)→ 结果改善

优点 :持续自我改进
适用:代码生成、推理任务

模式4:Multi-Agent(多Agent协作)

核心:多个专业化Agent分工协作

复制代码
Orchestrator Agent(编排者)
  ├── Researcher Agent(研究员)→ 信息收集
  ├── Writer Agent(写手)→ 内容生成
  ├── Reviewer Agent(审核者)→ 质量检查
  └── Coder Agent(程序员)→ 代码实现

典型架构

  • 层级式:一个Boss Agent分配任务给子Agent
  • 对等式:多个Agent互相讨论达成共识
  • 流水线式:Agent A的输出是Agent B的输入

框架

框架 特点 适用
CrewAI 角色定义+任务分配,简单易用 内容生成/研究类
AutoGen (Microsoft) 多Agent对话,灵活 复杂推理/辩论
LangGraph 状态图,可控流程 生产环境工作流
MetaGPT 软件公司角色模拟 代码生成

模式5:Tool-Use Agent(工具使用型)

核心:LLM决定何时调用什么工具

复制代码
可用工具:
- search(query) → 搜索互联网
- calculator(expression) → 数学计算
- code_execute(code) → 执行代码
- database_query(sql) → 查询数据库

用户:上个月销售额同比增长多少?
Agent思考:需要查数据库获取本月和去年同期数据,再计算增长率
Action 1: database_query("SELECT SUM(amount) FROM sales WHERE month='2025-02'")
Action 2: database_query("SELECT SUM(amount) FROM sales WHERE month='2024-02'")
Action 3: calculator("(result1 - result2) / result2 * 100")
Answer: 上个月销售额同比增长23.5%

三、工具调用 (Function Calling / Tool Use)

原理

模型不是"执行"工具,而是生成工具调用的JSON描述,由外部系统执行后将结果返回模型。

复制代码
模型输入:用户问题 + 可用工具列表(JSON Schema)
模型输出:{"tool": "search", "arguments": {"query": "OpenAI revenue 2024"}}
系统执行:调用search API
系统返回:搜索结果文本
模型继续:基于结果生成最终回答

Function Calling 定义格式

json 复制代码
{
  "name": "get_weather",
  "description": "获取指定城市的当前天气信息",
  "parameters": {
    "type": "object",
    "properties": {
      "city": {
        "type": "string",
        "description": "城市名称,如'北京'"
      },
      "unit": {
        "type": "string",
        "enum": ["celsius", "fahrenheit"],
        "description": "温度单位"
      }
    },
    "required": ["city"]
  }
}

工具设计最佳实践

  1. 名称清晰:工具名和参数名要自描述
  2. 描述详细:description要告诉模型"什么时候用、怎么用"
  3. 参数精确:用enum限制取值范围,用required标记必填
  4. 粒度适中:不要太粗(一个工具干太多事)也不要太细(100个微工具)
  5. 错误处理:返回结构化错误信息,让模型知道失败原因并重试
  6. 幂等性:读操作幂等,写操作要谨慎

四、Agent 记忆系统

四种记忆类型

类型 对标人类记忆 作用 实现方式
工作记忆 工作记忆(Working Memory) 当前任务的中间状态 当前对话上下文/Scratchpad
短期记忆 短时记忆 近期对话内容 对话历史(滑动窗口)
长期记忆 长时记忆 跨会话的用户信息/知识 向量数据库/文件系统
程序性记忆 程序性记忆 学会的技能/模式 Skills/Prompt模板/习得的规则

记忆管理策略

复制代码
                    ┌─────────────────┐
新信息 ──→         │  工作记忆         │  ← 容量有限(上下文窗口)
                    │  (当前任务)       │
                    └────────┬────────┘
                             │ 重要信息沉淀
                    ┌────────▼────────┐
                    │  短期记忆         │  ← 对话历史(摘要压缩)
                    │  (近期对话)       │
                    └────────┬────────┘
                             │ 跨会话持久化
                    ┌────────▼────────┐
                    │  长期记忆         │  ← 文件/数据库(永久存储)
                    │  (用户画像/知识)  │
                    └─────────────────┘

OpenClaw 的记忆架构(实例)

文件 记忆类型
IDENTITY.md 身份定义 程序性记忆(我是谁)
SOUL.md 思考框架+行为准则 程序性记忆(我怎么思考)
MEMORY.md 长期记忆库 长期语义记忆
memory/日期.md 每日记忆 情景记忆(发生了什么)
KNOWLEDGE-MAP.md 知识图谱索引 长期语义记忆
knowledge/*.md 专业知识文件 长期语义记忆
USER.md 用户画像 长期记忆(关于用户)

五、Agent 规划与推理

规划能力

策略 描述 适用
任务分解 将复杂任务拆成子任务 所有复杂任务
顺序规划 线性步骤执行 依赖关系明确的任务
并行规划 独立子任务并行执行 无依赖的信息收集
条件规划 if-then分支执行 需要根据中间结果决策
迭代规划 执行→评估→重新规划 不确定性高的任务

常见失败模式与对策

失败模式 原因 对策
无限循环 Agent重复相同动作 设置最大步数限制
工具误用 选错工具或参数错误 改进工具描述、增加示例
目标偏移 执行中偏离原始目标 每步检查与目标的对齐度
过度规划 花太多时间规划不执行 限制规划深度,快速迭代
幻觉行动 假装调用了工具实际没调用 严格验证工具调用结果

六、Agent 框架对比

框架 语言 核心理念 优势 劣势
LangChain Python/JS 组件化链式调用 生态丰富,社区大 抽象层过多,调试难
LangGraph Python 状态图驱动Agent 流程可控,适合生产 学习曲线陡
CrewAI Python 角色扮演多Agent 简单直观 功能相对单一
AutoGen Python 多Agent对话 灵活,微软背书 配置复杂
Semantic Kernel C#/Python 微软企业级AI框架 企业集成好 生态较小
Dify Python 低代码AI工作流平台 可视化编排 自定义受限
Coze 平台 字节跳动Bot平台 零代码快速搭建 灵活度低

选型决策

复制代码
你的需求:
├── 快速原型/Demo → Coze / Dify(零代码)
├── 内容/研究类Agent → CrewAI(角色扮演)
├── 复杂工作流/生产环境 → LangGraph(状态图)
├── 多Agent辩论/推理 → AutoGen
├── 需要最大灵活度 → 直接调API + 自己写循环
└── 企业级/C# → Semantic Kernel

七、Agent 评估

评估维度

维度 指标 衡量方式
任务完成率 成功完成任务的比例 自动化测试集
步骤效率 平均需要多少步完成 日志统计
工具调用准确率 是否选对工具和参数 日志审计
成本 每任务消耗的Token/API调用 监控面板
延迟 端到端响应时间 性能测试
安全性 是否执行了危险操作 红队测试
鲁棒性 面对异常输入的表现 边界测试

八、未来趋势

  1. Computer Use Agent:能操作电脑GUI(Claude Computer Use、Operator)
  2. 自主编程Agent:Devin、SWE-bench上的自主修Bug
  3. 具身Agent:连接机器人/IoT设备
  4. Agent-to-Agent通信:Agent之间用协议直接协作
  5. 长期自主Agent:7×24小时运行,自主学习和适应
相关推荐
小bo波9 小时前
用匿名内部类优雅地计算方法执行时间
java·设计模式·性能测试·模板方法模式·lambda·代码优化·匿名内部类
wb0430720110 小时前
仓库搬家不停业——从阿明的“在线换仓库“,看数据库迁移与 Schema 演进的实战方法论
数据库·adb·架构
小二·10 小时前
微服务架构设计与实践
微服务·架构·wpf
调试优选官10 小时前
2026上海GEO优化公司技术能力解析:从监测架构到知识库落地
架构·技术分享·geo·上海
半亩码田10 小时前
Claude Fable 5技术解析:Agent架构、定价策略与实测体验
架构
网安情报局10 小时前
AI Agent零信任安全体系解析:核心风险、分层架构与落地全流程
人工智能·安全·架构
预知同行10 小时前
ML Pipeline 架构深度解析:Feature Store + Model Registry + 编排引擎的三位一体设计
架构
百度搜知知学社10 小时前
抖音双模块架构:兼容全安卓版本并支持登录
android·架构·安卓·登录·兼容性·抖音
上海云盾第一敬业销售10 小时前
WAF架构解析与实战经验分享
网络协议·web安全·架构
写代码的小阿帆10 小时前
行为型设计模式之观察者(发布-订阅)模式
设计模式