知识模块
🤖 Agent 知识模块
Agent Types

Agent 类型分类

Agent 世界丰富多彩,从简单的问答助手到复杂的多智能体协作系统。理解 Agent 的分类体系,是选型和设计的关键。


一、分类维度概览

Agent 可以从三个维度进行分类:

┌─────────────────────────────────────────────────────────────────┐
│                     Agent 分类三维模型                           │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│                         ┌─────────────┐                         │
│                         │  应用领域   │                         │
│                         │ (What)      │                         │
│                         └──────┬──────┘                         │
│                                │                                │
│          ┌─────────────────────┼─────────────────────┐          │
│          │                     │                     │          │
│          │                     │                     │          │
│   ┌──────┴──────┐       ┌──────┴──────┐       ┌──────┴──────┐   │
│   │ 架构复杂度  │       │   Agent     │       │  决策模式   │   │
│   │ (How Much)  │◄──────┤   核心      │──────►│ (How)       │   │
│   └─────────────┘       └─────────────┘       └─────────────┘   │
│                                                                 │
│   • 简单 Agent          • 代码助手              • 反应式 Agent  │
│   • 复杂 Agent          • 研究助手              • 慎思式 Agent  │
│   • 多 Agent 系统       • 智能客服              • 混合式 Agent  │
│                         • 数据分析                              │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

二、按架构复杂度分类

2.1 三层架构模型

┌─────────────────────────────────────────────────────────────────┐
│                   架构复杂度金字塔                               │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│                         ╱╲                                      │
│                        ╱  ╲                                      │
│                       ╱ 多  ╲     多 Agent 系统                  │
│                      ╱ Agent ╲    • 多角色协作                   │
│                     ╱  系统   ╲   • 分布式架构                   │
│                    ╱──────────╲  • MetaGPT, AutoGen             │
│                   ╱            ╲                                │
│                  ╱   复杂 Agent ╲   单 Agent 多组件              │
│                 ╱   (Complex)    ╲  • 多工具协作                 │
│                ╱                  ╲ • AutoGPT, BabyAGI          │
│               ╱────────────────────╲                            │
│              ╱                      ╲                           │
│             ╱      简单 Agent         ╲  单 Agent 单工具         │
│            ╱       (Simple)            ╲ • 快速响应              │
│           ╱                              ╲• Perplexity, Claude   │
│          ╱────────────────────────────────╲                     │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

2.2 简单 Agent(Simple Agent)

定义:单 LLM 核心 + 单一工具,专注单一任务的 Agent。

┌─────────────────────────────────────────────────────────────────┐
│                      简单 Agent 架构                             │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│   用户请求 ──→ ┌───────────────────────────────┐ ──→ 响应结果   │
│                │           简单 Agent          │               │
│                │  ┌─────────────────────────┐  │               │
│                │  │         LLM             │  │               │
│                │  │    (单一决策逻辑)        │  │               │
│                │  └───────────┬─────────────┘  │               │
│                │              │                │               │
│                │              ↓                │               │
│                │     ┌───────────────┐         │               │
│                │     │   单一工具     │         │               │
│                │     │  (搜索/查询)   │         │               │
│                │     └───────────────┘         │               │
│                └───────────────────────────────┘               │
│                                                                 │
│   特点:快速响应、低成本、易部署、能力有限                       │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

典型代表

  • Perplexity AI:搜索 + 总结
  • ChatGPT with Browsing:对话 + 网页搜索
  • Claude with Artifacts:对话 + 代码预览

代码示例

# 简单 Agent 实现
class SimpleAgent:
    """单一工具的简单 Agent"""
    
    def __init__(self, llm, tool):
        self.llm = llm
        self.tool = tool  # 单一工具
    
    def run(self, user_input: str) -> str:
        # 1. LLM 判断是否需要工具
        if self.needs_tool(user_input):
            # 2. 调用工具
            tool_result = self.tool.execute(user_input)
            # 3. LLM 基于结果生成回答
            return self.llm.generate(f"基于以下信息回答:{tool_result}")
        else:
            # 4. 直接回答
            return self.llm.generate(user_input)
    
    def needs_tool(self, input_text: str) -> bool:
        # 简单判断逻辑
        keywords = ["搜索", "查询", "最新", "实时"]
        return any(kw in input_text for kw in keywords)
 
# 使用示例
search_agent = SimpleAgent(
    llm=GPT4(),
    tool=SearchTool()
)
 
response = search_agent.run("今天北京的天气怎么样?")

适用场景

  • 信息查询(搜索引擎 + 总结)
  • 单一功能助手(翻译、摘要)
  • 快速问答场景
  • 成本敏感的简单任务

优劣势对比

维度优势劣势
开发成本低,几行代码即可实现能力有限,无法处理复杂任务
运行成本低,通常 1-2 次 LLM 调用无法执行多步骤任务
响应速度快,秒级响应无规划能力,只能被动响应
部署难度简单,单一服务无法自我纠错

2.3 复杂 Agent(Complex Agent)

定义:单 LLM 核心 + 多组件协作,具备规划、记忆、多工具能力的 Agent。

┌─────────────────────────────────────────────────────────────────┐
│                      复杂 Agent 架构                             │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│   用户目标 ──→ ┌───────────────────────────────────────┐        │
│                │            复杂 Agent                  │        │
│                │                                         │        │
│                │  ┌─────────────────────────────────┐   │        │
│                │  │          规划器 (Planning)       │   │        │
│                │  │   任务分解 → 计划生成 → 优先级    │   │        │
│                │  └────────────────┬────────────────┘   │        │
│                │                   │                    │        │
│                │  ┌────────────────┴────────────────┐   │        │
│                │  │           LLM 核心               │   │        │
│                │  │       (推理与决策中心)           │   │        │
│                │  └────────────────┬────────────────┘   │        │
│                │                   │                    │        │
│                │  ┌────────────────┼────────────────┐   │        │
│                │  │                │                │   │        │
│                │  ↓                ↓                ↓   │        │
│                │ ┌──────┐    ┌──────────┐    ┌──────┐  │        │
│                │ │记忆库│    │  工具集   │    │执行器│  │        │
│                │ │(RAG) │    │(多工具)  │    │(沙箱)│  │        │
│                │ └──────┘    └──────────┘    └──────┘  │        │
│                │              │                        │        │
│                │              ↓                        │        │
│                │  ┌─────────────────────────────┐      │        │
│                │  │    反思机制 (Reflection)     │      │        │
│                │  │   验证 → 纠错 → 优化         │      │        │
│                │  └─────────────────────────────┘      │        │
│                └───────────────────────────────────────┘        │
│                              │                                  │
│                              ↓                                  │
│                        最终结果                                  │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

典型代表

  • AutoGPT:自主目标分解与执行
  • BabyAGI:任务驱动自主循环
  • LangChain Agent:工业级 Agent 框架
  • OpenAI Assistants API:官方托管的 Agent 服务

代码示例

# 复杂 Agent 实现(基于 ReAct 架构)
class ComplexAgent:
    """具备规划、记忆、多工具能力的复杂 Agent"""
    
    def __init__(self, llm, tools, memory):
        self.llm = llm
        self.tools = {tool.name: tool for tool in tools}  # 多工具
        self.memory = memory  # 记忆系统
        self.max_iterations = 10
    
    def run(self, goal: str) -> str:
        # 1. 从记忆库检索相关上下文
        context = self.memory.recall(goal)
        
        # 2. 规划任务
        plan = self.plan(goal, context)
        
        # 3. ReAct 循环执行
        iteration = 0
        while iteration < self.max_iterations:
            iteration += 1
            
            # Thought: 思考下一步
            thought = self.think(goal, plan, context)
            
            # Action: 决定行动
            action, action_input = self.decide_action(thought)
            
            if action == "FINISH":
                # 任务完成
                return self.generate_final_answer()
            
            # 执行工具
            observation = self.execute_tool(action, action_input)
            
            # 更新上下文
            context = self.update_context(thought, action, observation)
            
            # 存储到记忆库
            self.memory.store(f"Thought: {thought}\nAction: {action}\nObservation: {observation}")
        
        return "达到最大迭代次数,任务未完成"
    
    def plan(self, goal: str, context: str) -> list:
        """规划任务分解"""
        prompt = f"""
        目标: {goal}
        上下文: {context}
        
        请将目标分解为具体的执行步骤。
        """
        return self.llm.generate(prompt)
    
    def think(self, goal, plan, context) -> str:
        """思考下一步行动"""
        prompt = f"""
        目标: {goal}
        计划: {plan}
        当前状态: {context}
        
        思考下一步应该做什么?
        """
        return self.llm.generate(prompt)
    
    def execute_tool(self, tool_name: str, tool_input: str) -> str:
        """执行工具并处理错误"""
        try:
            return self.tools[tool_name].execute(tool_input)
        except Exception as e:
            return f"工具执行错误: {str(e)}"
 
# 使用示例
agent = ComplexAgent(
    llm=GPT4(),
    tools=[SearchTool(), CodeTool(), FileTool(), DatabaseTool()],
    memory=VectorMemory(embedding_model="text-embedding-3-small")
)
 
result = agent.run("帮我分析销售数据,生成报告并发送给团队")

适用场景

  • 复杂多步骤任务
  • 需要规划能力的场景
  • 需要长期记忆的场景
  • 需要自我纠错的场景

优劣势对比

维度优势劣势
任务能力能处理复杂多步骤任务开发和调试成本高
自主性具备规划和反思能力运行成本高(多次 LLM 调用)
容错性能自我纠错和重试响应时间长(分钟级)
扩展性可集成多种工具架构复杂,维护难度大

2.4 多 Agent 系统(Multi-Agent System)

定义:多个专业 Agent 角色协作,共同完成复杂任务的系统。

┌─────────────────────────────────────────────────────────────────┐
│                     多 Agent 系统架构                            │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│                     ┌─────────────────┐                         │
│                     │   用户/调度器    │                         │
│                     └────────┬────────┘                         │
│                              │                                  │
│          ┌───────────────────┼───────────────────┐              │
│          │                   │                   │              │
│          ↓                   ↓                   ↓              │
│   ┌─────────────┐     ┌─────────────┐     ┌─────────────┐      │
│   │  产品经理    │     │  工程师      │     │  测试工程师  │      │
│   │  Agent      │     │  Agent      │     │  Agent      │      │
│   │             │     │             │     │             │      │
│   │ • 需求分析   │     │ • 代码编写   │     │ • 测试用例   │      │
│   │ • 功能设计   │     │ • 架构设计   │     │ • 质量验证   │      │
│   └──────┬──────┘     └──────┬──────┘     └──────┬──────┘      │
│          │                   │                   │              │
│          └───────────────────┼───────────────────┘              │
│                              │                                  │
│                              ↓                                  │
│                     ┌─────────────────┐                         │
│                     │   共享工作空间   │                         │
│                     │  • 任务队列      │                         │
│                     │  • 共享记忆      │                         │
│                     │  • 消息通道      │                         │
│                     └─────────────────┘                         │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

典型代表

  • MetaGPT:软件公司模拟,多角色协作开发
  • AutoGen:微软多 Agent 对话框架
  • CrewAI:角色扮演式多 Agent 协作
  • ChatDev:虚拟软件公司

代码示例

# 多 Agent 系统实现
from dataclasses import dataclass
from typing import List, Dict
 
@dataclass
class AgentRole:
    name: str
    role: str
    goal: str
    tools: List[str]
 
class MultiAgentSystem:
    """多 Agent 协作系统"""
    
    def __init__(self):
        self.agents: Dict[str, Agent] = {}
        self.shared_memory = SharedMemory()
        self.message_queue = MessageQueue()
    
    def add_agent(self, role: AgentRole):
        """添加专业 Agent"""
        agent = Agent(
            name=role.name,
            role=role.role,
            goal=role.goal,
            tools=self._init_tools(role.tools),
            memory=self.shared_memory  # 共享记忆
        )
        self.agents[role.name] = agent
    
    def run(self, task: str) -> str:
        """执行多 Agent 协作任务"""
        # 1. 任务分发
        subtasks = self.dispatcher.assign(task, self.agents)
        
        # 2. 协作执行
        results = {}
        for agent_name, subtask in subtasks.items():
            # Agent 执行子任务
            result = self.agents[agent_name].run(subtask)
            results[agent_name] = result
            
            # 广播结果给其他 Agent
            self.message_queue.broadcast(agent_name, result)
        
        # 3. 汇总结果
        return self.aggregator.summarize(results)
 
# 定义软件开发的 Agent 角色
software_team = MultiAgentSystem()
 
# 产品经理 Agent
software_team.add_agent(AgentRole(
    name="product_manager",
    role="产品经理",
    goal="分析需求,设计产品功能",
    tools=["doc_writer", "diagram_tool"]
))
 
# 工程师 Agent
software_team.add_agent(AgentRole(
    name="engineer",
    role="软件工程师",
    goal="根据需求编写高质量代码",
    tools=["code_editor", "debugger", "git"]
))
 
# 测试工程师 Agent
software_team.add_agent(AgentRole(
    name="qa_engineer",
    role="测试工程师",
    goal="编写测试用例,验证代码质量",
    tools=["test_runner", "coverage_analyzer"]
))
 
# 执行协作任务
result = software_team.run("开发一个用户登录功能")

适用场景

  • 软件开发(需求 → 设计 → 编码 → 测试)
  • 研究项目(文献调研 → 实验 → 分析 → 报告)
  • 企业级复杂业务流程
  • 需要多专业技能协作的任务

优劣势对比

维度优势劣势
专业分工每个 Agent 专注擅长领域系统架构极其复杂
协作能力能处理企业级复杂任务Agent 间通信开销大
可扩展性可动态增减 Agent调试和监控困难
容错性单 Agent 故障不影响整体成本高昂(多个 LLM 实例)

2.5 架构选型决策表

┌─────────────────────────────────────────────────────────────────┐
│                    Agent 架构选型决策树                          │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│                      任务是否需要多步骤?                        │
│                           │                                     │
│              ┌────────────┴────────────┐                        │
│              │ 否                      │ 是                     │
│              ↓                         ↓                        │
│        ┌──────────┐           是否需要多专业技能?               │
│        │简单 Agent│                  │                         │
│        └──────────┘       ┌──────────┴──────────┐              │
│                           │ 否                  │ 是            │
│                           ↓                     ↓               │
│                     是否需要规划能力?      ┌──────────┐        │
│                           │               │多 Agent  │        │
│                 ┌─────────┴─────────┐     │  系统    │        │
│                 │ 否                │ 是   └──────────┘        │
│                 ↓                   ↓                          │
│           ┌──────────┐        ┌──────────┐                     │
│           │简单 Agent│        │复杂 Agent│                     │
│           └──────────┘        └──────────┘                     │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘
任务复杂度推荐架构典型场景
(单步骤、单一能力)简单 Agent信息查询、简单问答、翻译
(多步骤、单一专业领域)复杂 Agent代码生成、数据分析、自动化流程
(多步骤、多专业领域)多 Agent 系统软件开发、研究项目、企业流程

三、按决策模式分类

3.1 决策模式对比图

┌─────────────────────────────────────────────────────────────────┐
│                     决策模式对比                                 │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  反应式 Agent              慎思式 Agent            混合式 Agent │
│  (Reactive)               (Deliberative)          (Hybrid)      │
│                                                                 │
│  ┌─────────────┐         ┌─────────────┐         ┌─────────────┐│
│  │ 感知 → 行动 │         │ 感知 → 规划 │         │ 感知 → 判断 ││
│  │             │         │             │         │             ││
│  │  无记忆     │         │  深度思考   │         │  简单→反应  ││
│  │  无规划     │         │  深度规划   │         │  复杂→慎思  ││
│  │  即时响应   │         │  执行执行   │         │             ││
│  └─────────────┘         └─────────────┘         └─────────────┘│
│                                                                 │
│  速度: ★★★★★            速度: ★★☆☆☆           速度: ★★★★☆ │
│  智能: ★★☆☆☆            智能: ★★★★★           智能: ★★★★☆ │
│  成本: ★☆☆☆☆            成本: ★★★★☆           成本: ★★★☆☆ │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

3.2 反应式 Agent(Reactive Agent)

定义:基于"感知-行动"循环,无内部状态,对环境刺激即时响应。

┌─────────────────────────────────────────────────────────────────┐
│                    反应式 Agent 工作流程                         │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│                    ┌─────────────────┐                          │
│                    │   环境输入/感知  │                          │
│                    └────────┬────────┘                          │
│                             │                                   │
│                             ↓                                   │
│                    ┌─────────────────┐                          │
│                    │   规则匹配引擎   │                          │
│                    │                 │                          │
│                    │  IF 条件 THEN   │                          │
│                    │     执行动作    │                          │
│                    └────────┬────────┘                          │
│                             │                                   │
│                             ↓                                   │
│                    ┌─────────────────┐                          │
│                    │   立即执行动作   │                          │
│                    └─────────────────┘                          │
│                                                                 │
│   特点:无需规划、即时响应、无记忆、规则驱动                     │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

代码示例

# 反应式 Agent 实现
class ReactiveAgent:
    """基于规则的反应式 Agent"""
    
    def __init__(self, llm):
        self.llm = llm
        # 预定义规则库
        self.rules = {
            "greeting": self._handle_greeting,
            "question": self._handle_question,
            "command": self._handle_command,
        }
    
    def perceive_and_act(self, input_text: str) -> str:
        """感知-行动循环"""
        # 1. 感知:识别输入类型
        input_type = self._classify_input(input_text)
        
        # 2. 匹配规则并执行
        action = self.rules.get(input_type, self._handle_unknown)
        
        # 3. 直接响应(无规划、无记忆)
        return action(input_text)
    
    def _classify_input(self, text: str) -> str:
        """快速分类(无深度思考)"""
        if any(word in text for word in ["你好", "hello", "hi"]):
            return "greeting"
        elif "?" in text or "什么" in text:
            return "question"
        elif any(word in text for word in ["帮我", "执行", "运行"]):
            return "command"
        return "unknown"
    
    def _handle_greeting(self, text: str) -> str:
        return "你好!有什么可以帮助你的?"
    
    def _handle_question(self, text: str) -> str:
        return self.llm.generate(text)  # 直接调用 LLM
    
    def _handle_command(self, text: str) -> str:
        return self.llm.generate(f"执行指令:{text}")
 
# 使用示例
agent = ReactiveAgent(llm=GPT4())
response = agent.perceive_and_act("今天天气怎么样?")  # 即时响应

典型场景

  • 智能客服(FAQ 自动回复)
  • 简单问答机器人
  • 实时监控系统(异常告警)
  • 游戏中的 NPC(非玩家角色)

优劣势对比

优势劣势
响应速度极快(毫秒级)无法处理复杂任务
计算成本低无规划能力
实现简单无学习能力
可预测行为无法处理未知场景

3.3 慎思式 Agent(Deliberative Agent)

定义:基于"感知-规划-执行"模型,具备内部世界模型,能够深度思考和规划。

┌─────────────────────────────────────────────────────────────────┐
│                    慎思式 Agent 工作流程                         │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│   ┌─────────────────┐                                          │
│   │   环境输入/感知  │                                          │
│   └────────┬────────┘                                          │
│            │                                                    │
│            ↓                                                    │
│   ┌─────────────────┐      ┌─────────────────┐                 │
│   │   更新世界模型   │◄────►│   知识库/记忆   │                 │
│   └────────┬────────┘      └─────────────────┘                 │
│            │                                                    │
│            ↓                                                    │
│   ┌─────────────────────────────────────────────────┐          │
│   │                 深度规划引擎                      │          │
│   │  ┌───────────┐  ┌───────────┐  ┌───────────┐   │          │
│   │  │ 目标分析   │→│ 任务分解   │→│ 路径规划   │   │          │
│   │  └───────────┘  └───────────┘  └───────────┘   │          │
│   └───────────────────────┬─────────────────────────┘          │
│                           │                                     │
│                           ↓                                     │
│   ┌─────────────────────────────────────────────────┐          │
│   │                 执行与监控                        │          │
│   │  ┌───────────┐  ┌───────────┐  ┌───────────┐   │          │
│   │  │ 执行动作   │→│ 观察结果   │→│ 调整计划   │   │          │
│   │  └───────────┘  └───────────┘  └───────────┘   │          │
│   └─────────────────────────────────────────────────┘          │
│                                                                 │
│   特点:深度规划、长期记忆、目标驱动、可处理复杂任务             │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

代码示例

# 慎思式 Agent 实现
class DeliberativeAgent:
    """具备深度规划能力的慎思式 Agent"""
    
    def __init__(self, llm, memory, tools):
        self.llm = llm
        self.memory = memory  # 长期记忆
        self.tools = tools
        self.world_model = {}  # 世界模型
    
    def run(self, goal: str) -> str:
        """慎思式执行流程"""
        # 1. 感知与理解
        perception = self.perceive(goal)
        
        # 2. 更新世界模型
        self.update_world_model(perception)
        
        # 3. 深度规划
        plan = self.plan(goal)
        
        # 4. 执行与监控
        return self.execute_and_monitor(plan)
    
    def perceive(self, goal: str) -> dict:
        """感知环境"""
        return {
            "goal": goal,
            "context": self.memory.recall(goal),
            "available_tools": list(self.tools.keys())
        }
    
    def update_world_model(self, perception: dict):
        """更新内部世界模型"""
        self.world_model["current_goal"] = perception["goal"]
        self.world_model["relevant_context"] = perception["context"]
    
    def plan(self, goal: str) -> list:
        """深度规划(使用 ToT - Tree of Thought)"""
        prompt = f"""
        目标: {goal}
        
        请使用思维树方法进行深度规划:
        1. 分析目标的多个可能路径
        2. 评估每个路径的可行性
        3. 选择最优路径
        4. 生成详细的执行步骤
        
        可用工具: {list(self.tools.keys())}
        """
        
        planning_result = self.llm.generate(prompt)
        return self.parse_plan(planning_result)
    
    def execute_and_monitor(self, plan: list) -> str:
        """执行并持续监控"""
        results = []
        
        for step in plan:
            # 执行步骤
            result = self.execute_step(step)
            results.append(result)
            
            # 检查是否需要重新规划
            if self.needs_replanning(result):
                # 反思并调整
                new_plan = self.replan(result)
                plan = self.merge_plans(plan, new_plan)
        
        return self.summarize_results(results)
 
# 使用示例
agent = DeliberativeAgent(
    llm=GPT4(),
    memory=VectorMemory(),
    tools={"search": SearchTool(), "code": CodeTool()}
)
 
result = agent.run("设计并实现一个高性能的缓存系统")

典型场景

  • 复杂问题求解(数学证明、科学发现)
  • 战略规划(商业决策、项目规划)
  • 自主导航(机器人路径规划)
  • 游戏策略(围棋、国际象棋 AI)

优劣势对比

优势劣势
能处理复杂任务响应速度慢
具备规划能力计算成本高
有长期记忆实现复杂
能处理不确定环境可能过度规划

3.4 混合式 Agent(Hybrid Agent)

定义:结合反应式和慎思式的优点,根据任务复杂度动态选择决策模式。

┌─────────────────────────────────────────────────────────────────┐
│                    混合式 Agent 架构                             │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│                    ┌─────────────────┐                          │
│                    │   环境输入/感知  │                          │
│                    └────────┬────────┘                          │
│                             │                                   │
│                             ↓                                   │
│                    ┌─────────────────┐                          │
│                    │   复杂度评估器   │                          │
│                    └────────┬────────┘                          │
│                             │                                   │
│              ┌──────────────┴──────────────┐                    │
│              │                             │                    │
│        简单任务                        复杂任务                  │
│              │                             │                    │
│              ↓                             ↓                    │
│     ┌─────────────────┐          ┌─────────────────┐           │
│     │   反应式子系统   │          │   慎思式子系统   │           │
│     │                 │          │                 │           │
│     │ • 规则匹配      │          │ • 深度规划      │           │
│     │ • 快速响应      │          │ • 执行监控      │           │
│     │ • 低成本        │          │ • 反思调整      │           │
│     └────────┬────────┘          └────────┬────────┘           │
│              │                             │                    │
│              └──────────────┬──────────────┘                    │
│                             │                                   │
│                             ↓                                   │
│                    ┌─────────────────┐                          │
│                    │   统一输出接口   │                          │
│                    └─────────────────┘                          │
│                                                                 │
│   特点:兼顾效率与智能、动态模式切换、成本可控                   │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

代码示例

# 混合式 Agent 实现
class HybridAgent:
    """混合式 Agent:结合反应式和慎思式"""
    
    def __init__(self, llm, memory, tools):
        # 反应式子系统
        self.reactive = ReactiveEngine(llm)
        
        # 慎思式子系统
        self.deliberative = DeliberativeEngine(llm, memory, tools)
        
        # 复杂度评估器
        self.complexity_analyzer = ComplexityAnalyzer(llm)
    
    def run(self, input_text: str) -> str:
        """混合式执行"""
        # 1. 评估任务复杂度
        complexity = self.complexity_analyzer.analyze(input_text)
        
        # 2. 根据复杂度选择模式
        if complexity == "simple":
            # 简单任务 → 反应式处理
            return self.reactive.process(input_text)
        elif complexity == "complex":
            # 复杂任务 → 慎思式处理
            return self.deliberative.process(input_text)
        else:
            # 中等复杂度 → 两者结合
            return self.hybrid_process(input_text)
    
    def hybrid_process(self, input_text: str) -> str:
        """混合处理策略"""
        # 慎思式规划
        plan = self.deliberative.plan(input_text)
        
        results = []
        for step in plan:
            if self.is_simple_step(step):
                # 简单步骤 → 反应式执行
                result = self.reactive.execute(step)
            else:
                # 复杂步骤 → 慎思式执行
                result = self.deliberative.execute(step)
            results.append(result)
        
        return self.summarize(results)
 
# 复杂度分析器
class ComplexityAnalyzer:
    def __init__(self, llm):
        self.llm = llm
    
    def analyze(self, input_text: str) -> str:
        """分析任务复杂度"""
        # 基于规则的快速判断
        simple_keywords = ["你好", "几点", "天气", "翻译"]
        complex_keywords = ["设计", "实现", "分析", "规划", "构建"]
        
        if any(kw in input_text for kw in simple_keywords):
            return "simple"
        elif any(kw in input_text for kw in complex_keywords):
            return "complex"
        
        # 使用 LLM 进行深度判断
        return self.llm_classify(input_text)
 
# 使用示例
agent = HybridAgent(
    llm=GPT4(),
    memory=VectorMemory(),
    tools={"search": SearchTool(), "code": CodeTool()}
)
 
# 简单任务 → 反应式
response1 = agent.run("今天天气怎么样?")
 
# 复杂任务 → 慎思式
response2 = agent.run("设计一个分布式缓存系统")
 
# 中等任务 → 混合处理
response3 = agent.run("分析这份销售数据并生成报告")

典型场景

  • 智能助手(简单问答快速响应,复杂任务深度规划)
  • 自动驾驶(常规驾驶反应式,复杂路况慎思式)
  • 游戏智能体(简单操作反应式,复杂策略慎思式)
  • 企业服务系统(FAQ 快速响应,复杂工单深度处理)

优劣势对比

优势劣势
兼顾效率和智能架构最为复杂
成本可控需要准确的复杂度判断
适应性强两种模式切换可能有延迟
适用范围广开发和维护成本高

3.5 决策模式选型指南

任务特征推荐模式原因
实时性要求高、任务简单反应式响应快、成本低
任务复杂、需要规划慎思式能处理复杂任务
任务复杂度变化大混合式兼顾效率和智能
成本敏感反应式计算成本最低
质量敏感慎思式深度思考质量更高

四、按应用领域分类

4.1 应用领域全景图

┌─────────────────────────────────────────────────────────────────┐
│                    Agent 应用领域全景                            │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  ┌───────────────────────────────────────────────────────────┐ │
│  │                      开发与工程                            │ │
│  │  ┌────────────┐  ┌────────────┐  ┌────────────┐          │ │
│  │  │  代码助手  │  │  DevOps    │  │  测试助手  │          │ │
│  │  │  (Devin)   │  │  (运维)    │  │  (自动化)  │          │ │
│  │  └────────────┘  └────────────┘  └────────────┘          │ │
│  └───────────────────────────────────────────────────────────┘ │
│                                                                 │
│  ┌───────────────────────────────────────────────────────────┐ │
│  │                      研究与分析                            │ │
│  │  ┌────────────┐  ┌────────────┐  ┌────────────┐          │ │
│  │  │  研究助手  │  │  数据分析  │  │  科学发现  │          │ │
│  │  │(Perplexity)│  │  (报表)    │  │  (实验)    │          │ │
│  │  └────────────┘  └────────────┘  └────────────┘          │ │
│  └───────────────────────────────────────────────────────────┘ │
│                                                                 │
│  ┌───────────────────────────────────────────────────────────┐ │
│  │                      服务与交互                            │ │
│  │  ┌────────────┐  ┌────────────┐  ┌────────────┐          │ │
│  │  │  智能客服  │  │  个人助理  │  │  教育助手  │          │ │
│  │  │  (对话)    │  │  (日程)    │  │  (辅导)    │          │ │
│  │  └────────────┘  └────────────┘  └────────────┘          │ │
│  └───────────────────────────────────────────────────────────┘ │
│                                                                 │
│  ┌───────────────────────────────────────────────────────────┐ │
│  │                      创意与内容                            │ │
│  │  ┌────────────┐  ┌────────────┐  ┌────────────┐          │ │
│  │  │  写作助手  │  │  设计助手  │  │  视频制作  │          │ │
│  │  │  (文案)    │  │  (UI/UX)   │  │  (剪辑)    │          │ │
│  │  └────────────┘  └────────────┘  └────────────┘          │ │
│  └───────────────────────────────────────────────────────────┘ │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

4.2 代码助手 Agent

定义:辅助软件开发的 Agent,具备代码生成、调试、重构、测试能力。

┌─────────────────────────────────────────────────────────────────┐
│                    代码助手 Agent 架构                           │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│   开发者需求 ──→ ┌───────────────────────────────────┐          │
│                  │          代码助手 Agent            │          │
│                  │                                    │          │
│                  │  ┌──────────────────────────────┐ │          │
│                  │  │  代码理解引擎                 │ │          │
│                  │  │  • AST 解析                   │ │          │
│                  │  │  • 代码摘要                   │ │          │
│                  │  └──────────────┬───────────────┘ │          │
│                  │                 │                  │          │
│                  │  ┌──────────────┴───────────────┐ │          │
│                  │  │  核心能力                    │ │          │
│                  │  │  ┌────────┐ ┌────────┐      │ │          │
│                  │  │  │代码生成│ │代码审查│      │ │          │
│                  │  │  └────────┘ └────────┘      │ │          │
│                  │  │  ┌────────┐ ┌────────┐      │ │          │
│                  │  │  │调试修复│ │测试生成│      │ │          │
│                  │  │  └────────┘ └────────┘      │ │          │
│                  │  └──────────────────────────────┘ │          │
│                  │                 │                  │          │
│                  │  ┌──────────────┴───────────────┐ │          │
│                  │  │  工具集                      │ │          │
│                  │  │  Git │ IDE │ Terminal │ DB  │ │          │
│                  │  └──────────────────────────────┘ │          │
│                  └───────────────────────────────────┘          │
│                              │                                  │
│                              ↓                                  │
│                    代码交付 / Pull Request                       │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

典型代表

  • Devin:首个 AI 软件工程师
  • GitHub Copilot Workspace:GitHub 官方开发助手
  • Cursor:AI 原生代码编辑器
  • Amazon Q Developer:AWS 开发助手

核心能力

能力说明示例
代码生成根据需求生成代码"实现一个用户登录功能"
代码审查发现潜在问题和优化点检测安全漏洞、性能问题
调试修复定位和修复 Bug分析错误日志,定位问题
测试生成自动生成测试用例单元测试、集成测试
重构建议代码质量改进建议消除重复、优化结构
文档生成自动生成代码文档API 文档、注释生成

代码示例

# 代码助手 Agent 实现
class CodeAssistantAgent:
    """代码助手 Agent"""
    
    def __init__(self, llm, code_tools):
        self.llm = llm
        self.tools = code_tools  # Git, IDE, Terminal 等
    
    def develop(self, requirement: str) -> str:
        """开发流程"""
        # 1. 需求理解
        spec = self.analyze_requirement(requirement)
        
        # 2. 代码生成
        code = self.generate_code(spec)
        
        # 3. 代码审查
        review = self.review_code(code)
        
        # 4. 自动修复
        if review.has_issues:
            code = self.fix_issues(code, review.issues)
        
        # 5. 生成测试
        tests = self.generate_tests(code)
        
        # 6. 执行测试验证
        test_result = self.run_tests(tests)
        
        # 7. 提交代码
        if test_result.passed:
            self.commit_code(code)
            return "开发完成,代码已提交"
        
        return "测试未通过,需要修复"
    
    def debug(self, error_log: str) -> str:
        """调试修复流程"""
        # 1. 分析错误日志
        error_analysis = self.analyze_error(error_log)
        
        # 2. 定位问题代码
        problematic_code = self.locate_problem(error_analysis)
        
        # 3. 生成修复方案
        fix = self.generate_fix(problematic_code)
        
        # 4. 应用修复
        self.apply_fix(fix)
        
        return f"问题已定位:{error_analysis}\n修复方案:{fix}"
 
# 使用示例
code_agent = CodeAssistantAgent(
    llm=GPT4(),
    code_tools={
        "git": GitTool(),
        "ide": IDETool(),
        "terminal": TerminalTool(),
        "test_runner": TestRunnerTool()
    }
)
 
# 开发新功能
result = code_agent.develop("实现用户注册功能,包含邮箱验证")
 
# 调试问题
fix = code_agent.debug("TypeError: Cannot read property 'id' of undefined")

4.3 研究助手 Agent

定义:辅助研究和信息收集的 Agent,具备搜索、整理、分析、总结能力。

典型代表

  • Perplexity AI:AI 搜索引擎
  • Consensus:学术研究助手
  • Elicit:科研文献助手
  • Semantic Scholar:学术搜索引擎

核心能力

  • 多源信息搜索与整合
  • 文献摘要与提取
  • 研究趋势分析
  • 引用管理与生成

4.4 智能客服 Agent

定义:处理客户咨询的 Agent,具备对话、知识检索、工单处理能力。

典型代表

  • Intercom Fin:AI 客服
  • Zendesk AI:智能客服系统
  • Klarna AI:电商客服助手

核心能力

  • 意图识别与分类
  • 知识库问答
  • 多轮对话管理
  • 工单自动创建与流转

4.5 数据分析 Agent

定义:执行数据分析任务的 Agent,具备数据清洗、分析、可视化能力。

典型代表

  • Julius AI:数据分析助手
  • Tableau AI:可视化分析
  • Microsoft Copilot for Excel:数据分析助手

核心能力

  • 数据清洗与预处理
  • 统计分析与建模
  • 可视化报表生成
  • 数据洞察与建议

4.6 应用领域对比表

领域核心能力技术重点典型场景
代码助手生成、调试、测试代码理解、AST软件开发、代码审查
研究助手搜索、整理、总结RAG、知识图谱学术研究、市场调研
智能客服对话、检索、工单NLU、知识库客户服务、售后支持
数据分析清洗、分析、可视化统计、可视化商业智能、决策支持
个人助理日程、提醒、执行任务管理、API日程管理、信息整理
写作助手创作、润色、翻译文本生成、风格迁移内容创作、文案优化

五、Agent 选型决策框架

5.1 选型决策流程

┌─────────────────────────────────────────────────────────────────┐
│                    Agent 选型决策流程                            │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  Step 1: 明确任务特征                                          │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │ • 任务复杂度:简单 / 中等 / 复杂                          │   │
│  │ • 实时性要求:低 / 中 / 高                                │   │
│  │ • 是否需要规划:是 / 否                                   │   │
│  │ • 是否需要多步骤:是 / 否                                 │   │
│  │ • 是否需要多专业技能:是 / 否                             │   │
│  └─────────────────────────────────────────────────────────┘   │
│                              │                                  │
│                              ↓                                  │
│  Step 2: 确定架构复杂度                                        │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │ 简单任务 + 单步骤        → 简单 Agent                     │   │
│  │ 中等任务 + 多步骤        → 复杂 Agent                     │   │
│  │ 复杂任务 + 多专业协作    → 多 Agent 系统                  │   │
│  └─────────────────────────────────────────────────────────┘   │
│                              │                                  │
│                              ↓                                  │
│  Step 3: 选择决策模式                                          │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │ 高实时性 + 简单决策      → 反应式 Agent                   │   │
│  │ 低实时性 + 复杂规划      → 慎思式 Agent                   │   │
│  │ 混合场景                 → 混合式 Agent                   │   │
│  └─────────────────────────────────────────────────────────┘   │
│                              │                                  │
│                              ↓                                  │
│  Step 4: 匹配应用领域                                          │
│  ┌─────────────────────────────────────────────────────────┐   │
│  │ 选择对应领域的成熟方案或框架                              │   │
│  └─────────────────────────────────────────────────────────┘   │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

5.2 选型对照表

任务特征架构类型决策模式推荐框架
简单问答、信息查询简单 Agent反应式LangChain SimpleAgent
代码生成、数据分析复杂 Agent慎思式AutoGPT, LangChain Agent
软件开发、研究项目多 Agent混合式MetaGPT, AutoGen
实时监控、告警简单 Agent反应式Custom Rule-based
智能客服复杂 Agent混合式Rasa, Dialogflow
个人助理复杂 Agent混合式OpenAI Assistants API

六、常见面试题

Q1: 单 Agent 和多 Agent 系统有什么区别?如何选择?

A:

核心区别

对比维度单 Agent多 Agent 系统
架构一个 Agent 完成所有任务多个专业 Agent 协作
能力边界受单一 LLM 能力限制可组合多种专业能力
复杂度简单,易于部署和调试复杂,需要协调机制
成本较低较高(多个 LLM 实例)
适用场景单一领域任务跨领域协作任务

选择标准

是否需要多种专业技能协作?
├── 否 → 单 Agent
│   ├── 任务简单 → 简单 Agent
│   └── 任务复杂 → 复杂 Agent
└── 是 → 多 Agent 系统

Q2: 反应式 Agent 和慎思式 Agent 的区别是什么?

A:

对比维度反应式 Agent慎思式 Agent
决策模式感知 → 行动感知 → 规划 → 执行
内部状态有(世界模型)
规划能力
响应速度快(毫秒级)慢(秒/分钟级)
适用场景实时响应、简单任务复杂任务、长期规划
代表系统游戏NPC、监控系统AutoGPT、机器人导航

Q3: 什么是混合式 Agent?它的优势是什么?

A:

混合式 Agent 是结合反应式和慎思式优点的 Agent 架构:

架构特点

  • 包含反应式和慎思式两个子系统
  • 根据任务复杂度动态选择决策模式
  • 简单任务用反应式(快速、低成本)
  • 复杂任务用慎思式(深度、高质量)

优势

  1. 兼顾效率和智能:简单任务快速响应,复杂任务深度处理
  2. 成本可控:避免对简单任务进行不必要的深度规划
  3. 适应性强:能处理各种复杂度的任务

Q4: 常见的 Agent 应用类型有哪些?各自的特点?

A:

应用类型核心能力技术重点典型代表
代码助手代码生成、调试、测试AST解析、代码理解Devin, Cursor
研究助手搜索、整理、总结RAG、知识图谱Perplexity, Elicit
智能客服对话、检索、工单NLU、知识库Intercom Fin
数据分析清洗、分析、可视化统计、报表生成Julius AI
个人助理日程、提醒、执行任务管理Siri, Alexa

Q5: 如何为特定场景选择合适的 Agent 类型?

A:

选型决策流程

def select_agent_type(task):
    # 1. 评估任务复杂度
    complexity = analyze_complexity(task)
    
    # 2. 评估实时性要求
    real_time = check_real_time_requirement(task)
    
    # 3. 评估是否需要多专业技能
    multi_skill = check_multi_skill(task)
    
    # 4. 决策
    if complexity == "simple" and real_time:
        return "简单Agent + 反应式"
    elif complexity == "complex" and not multi_skill:
        return "复杂Agent + 慎思式"
    elif multi_skill:
        return "多Agent系统"
    else:
        return "复杂Agent + 混合式"

关键决策点

  • 任务是否需要多步骤执行?
  • 是否需要规划能力?
  • 是否需要多种专业技能?
  • 实时性要求如何?

Q6: 多 Agent 系统中,Agent 之间如何协作?

A:

常见协作模式

1. 层级协作(Hierarchical)
   ┌─────────┐
   │ Manager │ ──── 决策、分配任务
   └────┬────┘

   ┌────┴────┐
   ↓         ↓
┌─────┐   ┌─────┐
│Agent│   │Agent│  ──── 执行具体任务
│  1  │   │  2  │
└─────┘   └─────┘

2. 对等协作(Peer-to-Peer)
┌─────┐ ←──────→ ┌─────┐
│Agent│          │Agent│
│  1  │ ←──────→ │  2  │
└─────┘          └─────┘
   ↑                ↑
   └──────→ ┌─────┐ ┘
            │Agent│
            │  3  │
            └─────┘

3. 黑板协作(Blackboard)
            ┌─────────┐
            │ 黑板    │ ←── 共享工作空间
            │(共享状态)│
            └────┬────┘

   ┌─────────────┼─────────────┐
   ↓             ↓             ↓
┌─────┐      ┌─────┐      ┌─────┐
│Agent│      │Agent│      │Agent│
│  1  │      │  2  │      │  3  │
└─────┘      └─────┘      └─────┘

协作机制

  • 消息传递:Agent 间发送结构化消息
  • 共享记忆:共享向量数据库或工作空间
  • 任务队列:统一的任务分发和结果收集
  • 投票机制:多 Agent 投票决定最终结果

Q7: Agent 类型的未来发展趋势是什么?

A:

发展趋势

  1. 从单 Agent 到多 Agent 协作

    • 行业趋势:MetaGPT、AutoGen 等多 Agent 框架兴起
    • 核心价值:专业分工,协作处理复杂任务
  2. 从反应式到混合式

    • 行业趋势:Claude Computer Use、GPT-4o 实时模式
    • 核心价值:兼顾效率和智能
  3. 从通用到垂直领域专精

    • 行业趋势:法律、医疗、金融等领域 Agent
    • 核心价值:更深的领域知识和更高的专业度
  4. 从被动执行到主动规划

    • 行业趋势:Agent 主动提出建议、发现问题
    • 核心价值:从"工具"到"伙伴"

Q8: 如何评估不同类型 Agent 的性能?

A:

评估指标体系

Agent 类型关键指标评估方法
简单 Agent响应时间、准确率延迟测试、准确率统计
复杂 Agent任务成功率、步数端到端任务测试
多 Agent 系统协作效率、通信开销协作完成率、消息统计
反应式 Agent响应延迟实时性压测
慎思式 Agent规划质量人工评估规划合理性
混合式 Agent模式切换准确率复杂度判断准确率

七、总结

Agent 类型分类总览表

分类维度类型特点适用场景
架构复杂度简单 Agent单工具、快速响应信息查询、简单问答
复杂 Agent多工具、有规划代码生成、数据分析
多 Agent 系统多角色协作软件开发、研究项目
决策模式反应式感知-行动、无规划实时监控、智能客服
慎思式深度规划、有记忆复杂任务、战略决策
混合式动态模式切换通用助手、个人助理
应用领域代码助手生成、调试、测试软件开发
研究助手搜索、整理、总结学术研究
智能客服对话、检索、工单客户服务
数据分析清洗、分析、可视化商业智能

选型核心原则

  1. 任务驱动:根据任务复杂度和特征选择
  2. 成本平衡:在能力和成本之间找到平衡点
  3. 渐进式:从简单开始,逐步增加复杂度
  4. 领域适配:选择与领域匹配的成熟方案

最后更新:2026年3月19日