知识模块
🤖 Agent 知识模块
一、什么是 Agent

什么是 AI Agent

AI Agent(人工智能智能体)是基于大语言模型(LLM)的自主计算实体,能够感知环境、规划任务、调用工具、执行行动,是传统 AI 从"被动响应"到"主动执行"的重大飞跃。


一、Agent 定义与本质

1.1 Agent 是什么

Agent(智能体) 是一种能够自主感知环境、做出决策并执行行动的系统。在 AI 领域,AI Agent 特指以大语言模型(LLM)为"大脑",具备自主规划、工具调用、记忆存储能力的智能系统。

┌─────────────────────────────────────────────────────────┐
│                      AI Agent 架构                       │
├─────────────────────────────────────────────────────────┤
│                                                         │
│    用户输入 ──→ ┌─────────────────────────┐             │
│                 │     LLM(大脑/决策层)    │             │
│                 │  ┌─────┬─────┬─────┬─────┐│             │
│                 │  │规划器│记忆库│工具集│执行器││             │
│                 │  └─────┴─────┴─────┴─────┘│             │
│                 └───────────┬─────────────┘             │
│                             ↓                           │
│                      执行行动/返回结果                    │
│                             ↓                           │
│                       环境反馈                           │
└─────────────────────────────────────────────────────────┘

1.2 Agent 的四大核心特性

特性说明示例
自主性(Autonomy)无需人工干预,自主决策和执行自动拆解复杂任务、选择合适工具
反应性(Reactivity)感知环境变化并实时响应根据执行结果调整策略
主动性(Proactivity)主动采取行动实现目标发现问题主动修复、主动学习
社会性(Social Ability)与其他 Agent 或人类协作多 Agent 协作、人机对话

1.3 Agent 与传统软件的本质区别

┌────────────────────────────────────────────────────────────┐
│                    传统软件 vs AI Agent                     │
├──────────────────────┬─────────────────────────────────────┤
│       传统软件        │            AI Agent                 │
├──────────────────────┼─────────────────────────────────────┤
│  预定义流程(If-Else)│  自主决策(LLM 推理)               │
│  功能导向            │  目标导向                           │
│  被动响应            │  主动执行                           │
│  固定规则            │  适应环境变化                       │
│  需要详细指令        │  理解意图自动执行                   │
│  无法处理未知场景    │  可处理未见过的情况                 │
└──────────────────────┴─────────────────────────────────────┘

二、Agent 核心组件

2.1 四大核心组件概览

一个完整的 AI Agent 系统包含四个核心组件:

组件英文职责关键技术
规划器Planning任务分解、路径规划、决策制定CoT、ToT、ReAct
记忆库Memory存储历史信息、上下文管理向量数据库、RAG
工具集Tools扩展能力边界、连接外部系统Function Calling、API
执行器Action执行具体操作、获取反馈沙箱环境、安全执行
                    ┌─────────────┐
                    │   用户目标   │
                    └──────┬──────┘

    ┌──────────────────────────────────────────────┐
    │                  规划器(Planning)            │
    │  ┌────────────────────────────────────────┐  │
    │  │ 1. 理解目标                              │  │
    │  │ 2. 分解任务(Task Decomposition)        │  │
    │  │ 3. 生成执行计划                          │  │
    │  └────────────────────────────────────────┘  │
    └──────────────────────┬───────────────────────┘

    ┌──────────────────────────────────────────────┐
    │                  记忆库(Memory)             │
    │  ┌──────────┐  ┌──────────┐  ┌──────────┐   │
    │  │ 短期记忆  │  │ 长期记忆  │  │ 工作记忆  │   │
    │  │(上下文)   │  │(向量DB)   │  │(任务状态) │   │
    │  └──────────┘  └──────────┘  └──────────┘   │
    └──────────────────────┬───────────────────────┘

    ┌──────────────────────────────────────────────┐
    │                  工具集(Tools)              │
    │  ┌────────┐ ┌────────┐ ┌────────┐ ┌────────┐│
    │  │搜索工具│ │代码执行│ │数据库  │ │文件操作││
    │  └────────┘ └────────┘ └────────┘ └────────┘│
    └──────────────────────┬───────────────────────┘

    ┌──────────────────────────────────────────────┐
    │                  执行器(Action)             │
    │  ┌────────────────────────────────────────┐  │
    │  │ 1. 调用工具执行任务                      │  │
    │  │ 2. 获取执行结果                          │  │
    │  │ 3. 反馈给规划器进行迭代                  │  │
    │  └────────────────────────────────────────┘  │
    └──────────────────────┬───────────────────────┘

                    ┌─────────────┐
                    │   最终结果   │
                    └─────────────┘

2.2 规划器(Planning)

规划器是 Agent 的"大脑",负责理解目标、分解任务、制定执行计划。

# Agent 规划流程示例
class AgentPlanner:
    def plan(self, user_goal: str) -> list[Task]:
        """
        规划流程:
        1. 理解用户意图
        2. 分解为子任务
        3. 确定任务依赖关系
        4. 生成执行计划
        """
        # Step 1: 理解意图
        intent = self.llm.understand(user_goal)
        
        # Step 2: 分解任务
        subtasks = self.llm.decompose(intent)
        
        # Step 3: 规划顺序(考虑依赖)
        execution_plan = self.create_plan(subtasks)
        
        return execution_plan
 
# 示例:用户目标 "帮我分析上季度销售数据并生成报告"
# 分解结果:
# Task 1: 连接数据库,获取销售数据
# Task 2: 数据清洗和预处理
# Task 3: 统计分析和可视化
# Task 4: 生成报告文档

常用规划技术

技术全称说明
CoTChain-of-Thought思维链,逐步推理
ToTTree-of-Thought思维树,多路径探索
ReActReasoning + Acting推理与行动交替

2.3 记忆库(Memory)

记忆库负责存储和管理 Agent 的"知识"和"经验",解决 LLM 上下文窗口有限的问题。

# 三层记忆架构
class AgentMemory:
    def __init__(self):
        self.short_term = ShortTermMemory()   # 当前会话上下文
        self.long_term = LongTermMemory()     # 向量数据库持久化
        self.working = WorkingMemory()        # 任务执行状态
    
    def remember(self, info: str, memory_type: str):
        """存储记忆"""
        if memory_type == "short":
            self.short_term.add(info)
        elif memory_type == "long":
            self.long_term.store(info)
        else:
            self.working.update(info)
    
    def recall(self, query: str) -> str:
        """检索记忆"""
        # 优先从工作记忆获取
        if self.working.has(query):
            return self.working.get(query)
        
        # 向量检索长期记忆
        return self.long_term.search(query)

2.4 工具集(Tools)

工具集是 Agent 的"手脚",扩展 LLM 的能力边界,使其能够执行实际操作。

# 工具定义示例
from typing import Literal
from pydantic import BaseModel
 
class SearchTool(BaseModel):
    """搜索工具"""
    name: str = "web_search"
    description: str = "搜索互联网获取实时信息"
    
    def execute(self, query: str) -> str:
        # 调用搜索 API
        return search_engine.search(query)
 
class CodeExecutor(BaseModel):
    """代码执行工具"""
    name: str = "code_execute"
    description: str = "执行 Python 代码"
    
    def execute(self, code: str) -> str:
        # 在沙箱环境中执行
        return sandbox.run(code)
 
# 工具注册
tools = [SearchTool(), CodeExecutor(), DatabaseTool(), ...]

2.5 执行器(Action)

执行器负责实际调用工具、执行操作、获取反馈,并与规划器形成闭环。

class AgentExecutor:
    def execute(self, task: Task, tools: list) -> Result:
        """
        执行流程:
        1. 选择合适的工具
        2. 构造调用参数
        3. 执行并获取结果
        4. 错误处理和重试
        """
        # Step 1: 选择工具
        tool = self.select_tool(task, tools)
        
        # Step 2: 构造参数
        params = self.llm.generate_params(task, tool)
        
        # Step 3: 执行
        try:
            result = tool.execute(**params)
        except Exception as e:
            # Step 4: 错误处理
            result = self.handle_error(e, task)
        
        return result

三、Agent 工作流程

3.1 基本工作流程

┌─────────────────────────────────────────────────────────────┐
│                    Agent 工作流程(ReAct 模式)               │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  ┌─────────┐    ┌─────────┐    ┌─────────┐    ┌─────────┐  │
│  │ 用户输入 │───→│ 理解目标 │───→│ 规划任务 │───→│ 执行行动 │  │
│  └─────────┘    └─────────┘    └─────────┘    └────┬────┘  │
│                                                     │       │
│                    ┌────────────────────────────────┘       │
│                    ↓                                        │
│  ┌──────────────────────────────────────────────────────┐  │
│  │                     观察与反思                        │  │
│  │  ┌────────────┐  ┌────────────┐  ┌────────────┐      │  │
│  │  │ 执行成功?  │  │ 需要调整?  │  │ 任务完成?  │      │  │
│  │  └─────┬──────┘  └─────┬──────┘  └─────┬──────┘      │  │
│  │        │               │               │              │  │
│  │        ↓               ↓               ↓              │  │
│  │  ┌──────────┐   ┌──────────┐   ┌──────────┐          │  │
│  │  │ 继续执行  │   │ 调整策略  │   │ 返回结果  │          │  │
│  │  └──────────┘   └──────────┘   └──────────┘          │  │
│  └──────────────────────────────────────────────────────┘  │
│                                                             │
└─────────────────────────────────────────────────────────────┘

3.2 ReAct 循环详解

ReAct(Reasoning + Acting) 是最经典的 Agent 架构模式,将推理行动交替进行:

# ReAct 循环示例
def react_loop(agent, user_goal):
    """
    ReAct 循环:
    Thought → Action → Observation → Thought → ...
    """
    context = user_goal
    
    while not agent.is_finished():
        # Thought: 思考下一步
        thought = agent.think(context)
        print(f"Thought: {thought}")
        
        # Action: 决定执行什么动作
        action, action_input = agent.decide_action(thought)
        print(f"Action: {action}({action_input})")
        
        # Observation: 执行并观察结果
        observation = agent.execute(action, action_input)
        print(f"Observation: {observation}")
        
        # 更新上下文
        context += f"\nThought: {thought}\nAction: {action}\nObservation: {observation}"
    
    return agent.get_final_answer()

实际执行示例

用户: 帮我查一下北京明天的天气,并给出穿衣建议

Thought: 我需要先搜索北京明天的天气信息
Action: web_search("北京明天天气")
Observation: 北京明天晴,气温 15-25°C,风力 3 级

Thought: 已获取天气信息,现在需要给出穿衣建议
Action: generate_advice("晴天,15-25°C,3级风")
Observation: 建议穿着轻薄外套,早晚温差较大,注意保暖

Thought: 我已经完成了用户的请求
Final Answer: 北京明天天气晴朗,气温 15-25°C,风力 3 级。
              建议穿着轻薄外套,早晚温差较大,注意保暖。

四、Agent 类型分类

4.1 按架构复杂度分类

类型特点典型代表适用场景
简单 Agent单任务、单工具搜索助手信息查询
复杂 Agent多任务、多工具AutoGPT项目开发
多 Agent 系统多角色协作MetaGPT企业级应用

4.2 按决策模式分类

类型特点优势劣势
反应式 Agent感知-行动,无内部状态响应快速无法处理复杂任务
慎思式 Agent规划-推理-执行处理复杂任务响应较慢
混合式 Agent结合两种模式兼顾效率和智能架构复杂

4.3 按应用领域分类

┌─────────────────────────────────────────────────────────────┐
│                    Agent 应用领域分类                        │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐      │
│  │   代码助手    │  │   研究助手    │  │   智能客服    │      │
│  │  (Devin等)   │  │ (Perplexity) │  │  (智能对话)   │      │
│  └──────────────┘  └──────────────┘  └──────────────┘      │
│                                                             │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐      │
│  │  数据分析     │  │  自动化运维   │  │  个人助理     │      │
│  │  (报表生成)   │  │ (监控告警)   │  │ (日程管理)   │      │
│  └──────────────┘  └──────────────┘  └──────────────┘      │
│                                                             │
└─────────────────────────────────────────────────────────────┘

五、Agent 发展里程碑

5.1 发展时间线

时间里程碑意义
2022.10AutoGPT首个自主任务执行 Agent
2023.04BabyAGI任务驱动自主 Agent
2023.06MetaGPT多 Agent 协作框架
2023.10LangChain Agent工业级 Agent 框架
2024.01OpenAI Assistants API官方 Agent API
2024.03Devin首个 AI 软件工程师
2024.06Claude Computer Use桌面操作 Agent

5.2 代表性框架对比

┌──────────────────────────────────────────────────────────────┐
│                    Agent 发展演进                             │
├──────────────────────────────────────────────────────────────┤
│                                                              │
│  AutoGPT          BabyAGI          MetaGPT         LangChain │
│  (自主执行)       (任务驱动)       (多Agent协作)    (框架化)   │
│                                                              │
│  ┌────────┐      ┌────────┐       ┌────────┐      ┌────────┐│
│  │ 单Agent │ ──→ │ 任务队列 │ ──→ │ 多Agent │ ──→ │ 工业级  ││
│  │ 自主执行 │     │ 循环执行 │      │ 角色协作 │     │ 框架生态 ││
│  └────────┘      └────────┘       └────────┘      └────────┘│
│                                                              │
│  2022.10          2023.04           2023.06         2023.10  │
│                                                              │
└──────────────────────────────────────────────────────────────┘

六、常见面试题

Q1: 什么是 AI Agent?它和传统软件有什么区别?

A:

Agent 定义:AI Agent 是基于大语言模型的自主计算实体,能够感知环境、规划任务、调用工具、执行行动。

与传统软件区别

对比项传统软件AI Agent
控制流预定义(If-Else)自主决策(LLM 推理)
目标导向功能导向目标导向
灵活性固定规则适应环境变化
能力边界有限、固定可扩展(工具调用)

Q2: Agent 的四大核心组件是什么?各自的作用?

A:

组件作用关键技术
规划器理解目标、分解任务、制定计划CoT、ToT、ReAct
记忆库存储历史、上下文管理向量数据库、RAG
工具集扩展能力、连接外部系统Function Calling、API
执行器执行操作、获取反馈沙箱环境、安全执行

Q3: 什么是 ReAct 架构?它的工作原理是什么?

A:

ReAct = Reasoning + Acting,是一种将推理和行动交替进行的 Agent 架构。

工作流程

  1. Thought(思考):分析当前状态,决定下一步
  2. Action(行动):选择并执行工具
  3. Observation(观察):获取执行结果
  4. 循环:重复上述过程直到任务完成

优势

  • 推理过程可解释
  • 执行过程可追溯
  • 错误可及时发现和纠正

Q4: Agent 如何实现长期记忆?

A:

Agent 通过向量数据库实现长期记忆:

# 记忆存储流程
def store_memory(text: str):
    # 1. 文本向量化
    embedding = embedding_model.encode(text)
    
    # 2. 存入向量数据库
    vector_db.insert(
        id=generate_id(),
        vector=embedding,
        metadata={"text": text, "timestamp": now()}
    )
 
# 记忆检索流程
def recall_memory(query: str, top_k=5):
    # 1. 查询向量化
    query_embedding = embedding_model.encode(query)
    
    # 2. 向量相似度搜索
    results = vector_db.search(query_embedding, top_k=top_k)
    
    return results

Q5: Agent 工具调用的原理是什么?

A:

Agent 工具调用基于 Function Calling 机制:

# 1. 工具定义
tools = [
    {
        "type": "function",
        "function": {
            "name": "get_weather",
            "description": "获取指定城市的天气",
            "parameters": {
                "type": "object",
                "properties": {
                    "city": {"type": "string", "description": "城市名称"}
                },
                "required": ["city"]
            }
        }
    }
]
 
# 2. LLM 决定调用哪个工具
response = client.chat.completions.create(
    model="gpt-4",
    messages=[{"role": "user", "content": "北京天气怎么样"}],
    tools=tools
)
 
# 3. LLM 返回工具调用请求
# response.tool_calls[0].function.name = "get_weather"
# response.tool_calls[0].function.arguments = {"city": "北京"}
 
# 4. 执行工具并返回结果
result = get_weather("北京")

Q6: Agent 如何处理执行失败的情况?

A:

Agent 通过反思机制处理失败:

def handle_failure(agent, task, error):
    # 1. 分析失败原因
    reflection = agent.reflect(f"任务执行失败: {error}")
    
    # 2. 生成替代方案
    alternative = agent.plan_alternative(reflection)
    
    # 3. 重试或调整目标
    if alternative.feasible:
        return agent.execute(alternative)
    else:
        return "无法完成任务,原因:..."

Q7: 单 Agent 和多 Agent 系统有什么区别?

A:

对比项单 Agent多 Agent 系统
架构一个 Agent 完成所有任务多个专业 Agent 协作
优势简单、易部署专业分工、复杂任务
劣势能力有限、易出错架构复杂、协调成本
适用场景简单任务复杂企业级应用

Q8: 如何评估 Agent 的性能?

A:

常用评估指标:

指标说明计算方式
任务成功率正确完成任务的比例成功数 / 总任务数
工具准确率正确选择工具的比例正确调用数 / 总调用数
平均步数完成任务的平均步骤总步数 / 任务数
响应时间从输入到输出的时间平均响应延迟

七、总结

概念一句话总结面试关键词
Agent 定义基于 LLM 的自主计算实体自主性、反应性、主动性、社会性
四大组件规划+记忆+工具+执行Planning、Memory、Tools、Action
ReAct推理与行动交替进行Thought-Action-Observation 循环
工具调用扩展 LLM 能力边界Function Calling、API
长期记忆向量数据库持久化RAG、Embedding、相似度检索

最后更新:2026年3月18日