知识模块
🤖 Agent 知识模块
三、Agent 与 LLM 的区别

Agent 与传统 LLM 的区别

AI Agent 是 LLM 的"升级版",从被动响应进化为主动执行。理解两者的区别是掌握 Agent 技术的关键。


一、核心概念对比

1.1 LLM(大语言模型)是什么

LLM(Large Language Model) 是基于 Transformer 架构的大规模语言模型,核心能力是文本理解和生成

┌─────────────────────────────────────────────────────────┐
│                    LLM 工作模式                          │
├─────────────────────────────────────────────────────────┤
│                                                         │
│   输入文本 ──→ ┌─────────────────┐ ──→ 输出文本         │
│                │                 │                      │
│                │    LLM 模型      │                      │
│                │  (GPT/Claude等)  │                      │
│                │                 │                      │
│                └─────────────────┘                      │
│                                                         │
│   特点:输入 → 处理 → 输出(一次性,无状态)             │
│                                                         │
└─────────────────────────────────────────────────────────┘

LLM 核心能力

  • 文本理解与生成
  • 知识问答
  • 代码生成
  • 翻译与摘要

LLM 核心局限

  • 无法执行实际操作
  • 知识有时效性限制
  • 上下文窗口有限
  • 无法访问外部系统

1.2 AI Agent 是什么

AI Agent 是以 LLM 为核心,增加了规划、记忆、工具、执行能力的智能系统。

┌─────────────────────────────────────────────────────────────┐
│                    Agent 工作模式                            │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│   用户目标 ──→ ┌─────────────────────────────────┐          │
│                │           Agent                  │          │
│                │  ┌─────────────────────────┐    │          │
│                │  │         LLM             │    │          │
│                │  │   ┌───┬───┬───┬───┐     │    │          │
│                │  │   │规划│记忆│工具│执行│     │    │          │
│                │  │   └───┴───┴───┴───┘     │    │          │
│                │  └─────────────────────────┘    │          │
│                └───────────────┬─────────────────┘          │
│                                ↓                            │
│                        执行行动/返回结果                     │
│                                ↓                            │
│                          环境反馈                            │
│                                ↓                            │
│                      ┌─────────────────┐                    │
│                      │   迭代优化循环   │                    │
│                      └─────────────────┘                    │
│                                                             │
└─────────────────────────────────────────────────────────────┘

1.3 一句话区分

系统一句话定义
LLM能说会道的"大脑",但只能输出文本
Agent有手有脚的"智能体",能规划、能执行、能反思

二、核心能力对比

2.1 能力维度对比表

能力维度LLMAgent差异说明
文本生成✅ 核心✅ 基础Agent 继承 LLM 的文本能力
知识问答✅ 有限✅ 增强Agent 可联网获取最新信息
代码生成✅ 生成✅ 执行Agent 能运行代码并验证结果
任务规划❌ 无✅ 核心Agent 能分解复杂任务
工具调用❌ 无✅ 核心Agent 能调用外部 API 和工具
长期记忆❌ 无✅ 核心Agent 能持久化存储记忆
自主执行❌ 无✅ 核心Agent 能自动完成任务
反思纠错❌ 无✅ 核心Agent 能自我检查和改进

2.2 架构对比

┌────────────────────────────────────────────────────────────────┐
│                      架构对比                                   │
├────────────────────────┬───────────────────────────────────────┤
│         LLM            │              Agent                    │
├────────────────────────┼───────────────────────────────────────┤
│                        │                                       │
│   ┌──────────────┐     │        ┌──────────────────┐           │
│   │              │     │        │                  │           │
│   │  Input Text  │     │        │    User Goal     │           │
│   │              │     │        │                  │           │
│   └──────┬───────┘     │        └────────┬─────────┘           │
│          │             │                 │                     │
│          ↓             │                 ↓                     │
│   ┌──────────────┐     │        ┌──────────────────┐           │
│   │              │     │        │ ┌──────────────┐ │           │
│   │              │     │        │ │   Planner    │ │           │
│   │     LLM      │     │        │ └──────┬───────┘ │           │
│   │              │     │        │        ↓         │           │
│   │              │     │        │ ┌──────────────┐ │           │
│   │              │     │        │ │   Memory     │ │           │
│   │              │     │        │ └──────┬───────┘ │           │
│   │              │     │        │        ↓         │           │
│   │              │     │        │ ┌──────────────┐ │           │
│   │              │     │        │ │    LLM       │ │           │
│   │              │     │        │ └──────┬───────┘ │           │
│   │              │     │        │        ↓         │           │
│   │              │     │        │ ┌──────────────┐ │           │
│   │              │     │        │ │    Tools     │ │           │
│   │              │     │        │ └──────┬───────┘ │           │
│   │              │     │        │        ↓         │           │
│   │              │     │        │ ┌──────────────┐ │           │
│   │              │     │        │ │   Executor   │ │           │
│   └──────┬───────┘     │        │ └──────┬───────┘ │           │
│          │             │        │        ↓         │           │
│          ↓             │        │ ┌──────────────┐ │           │
│   ┌──────────────┐     │        │ │  Reflection  │ │           │
│   │              │     │        │ └──────────────┘ │           │
│   │  Output Text │     │        └────────┬─────────┘           │
│   │              │     │                 │                     │
│   └──────────────┘     │                 ↓                     │
│                        │        ┌──────────────────┐           │
│   单次响应             │        │   Final Result   │           │
│   无状态               │        └──────────────────┘           │
│   无执行能力           │                                       │
│                        │        迭代执行                        │
│                        │        有状态记忆                      │
│                        │        自主行动                        │
│                        │                                       │
└────────────────────────┴───────────────────────────────────────┘

三、关键技术差异

3.1 记忆系统差异

LLM 的"记忆"

  • 仅限于上下文窗口(Context Window)
  • 会话结束后记忆消失
  • 上下文长度有限(4K-200K tokens)
# LLM 记忆示例
response = llm.chat([
    {"role": "user", "content": "我叫张三"},
    {"role": "assistant", "content": "你好张三!"},
    {"role": "user", "content": "我叫什么?"},
    # 只能在当前会话中记住,会话结束后丢失
])
# response: "你叫张三"

Agent 的记忆系统

  • 短期记忆:当前会话上下文
  • 长期记忆:向量数据库持久化
  • 工作记忆:任务执行状态
# Agent 三层记忆架构
class AgentMemory:
    def __init__(self):
        # 短期记忆:会话上下文
        self.short_term = ConversationBuffer()
        
        # 长期记忆:向量数据库
        self.long_term = VectorDatabase(
            embedding_model="text-embedding-3-small",
            persist_directory="./memory_db"
        )
        
        # 工作记忆:任务状态
        self.working = TaskStateManager()
    
    def remember(self, info: str, importance: str = "normal"):
        """存储记忆"""
        if importance == "critical":
            # 重要信息存入长期记忆
            self.long_term.add(info)
        else:
            # 普通信息存入短期记忆
            self.short_term.add(info)
    
    def recall(self, query: str):
        """检索记忆"""
        # 先查工作记忆
        if self.working.has(query):
            return self.working.get(query)
        
        # 再查短期记忆
        if self.short_term.has(query):
            return self.short_term.get(query)
        
        # 最后查长期记忆(向量检索)
        return self.long_term.search(query)

3.2 工具调用能力

LLM

  • 只能生成调用代码,无法实际执行
  • 无法访问实时数据
  • 无法操作外部系统
# LLM 只能生成代码,无法执行
user: "帮我查一下北京现在的天气"
llm: "我可以帮你写一个查询天气的代码:
 
import requests
response = requests.get('https://api.weather.com/beijing')
print(response.json())
 
你需要自己运行这段代码。"

Agent

  • 实际调用工具执行操作
  • 能获取实时数据
  • 能操作数据库、文件系统、API
# Agent 可以实际执行工具调用
user: "帮我查一下北京现在的天气"
 
agent:
  Thought: 需要调用天气 API 获取北京实时天气
  Action: weather_api(city="北京")
  Observation: {"temp": 25, "weather": "晴", "humidity": 60}
  
  Answer: 北京现在天气晴朗,气温 25°C,湿度 60%

3.3 任务规划能力

LLM

  • 单次响应,无规划能力
  • 无法处理多步骤任务
  • 无法自我纠错
# LLM 无法处理复杂多步骤任务
user: "帮我分析这个 CSV 文件,生成销售报告,并发送给团队"
 
llm: "我可以给你一个处理流程:
1. 使用 pandas 读取 CSV 文件
2. 进行数据分析
3. 生成报告文档
4. 发送邮件
 
但我无法实际执行这些步骤..."

Agent

  • 自动规划任务步骤
  • 顺序执行多步骤任务
  • 执行过程中自我纠错
# Agent 自动规划和执行多步骤任务
user: "帮我分析这个 CSV 文件,生成销售报告,并发送给团队"
 
agent:
  Task Plan:
  1. [执行] 读取 sales.csv 文件
  2. [执行] 数据清洗和分析
  3. [执行] 生成销售报告 PDF
  4. [执行] 发送邮件给团队
  
  执行过程:
  Step 1: 读取文件... ✓ (找到 1000 条记录)
  Step 2: 分析数据... ✓ (发现销售额增长 15%)
  Step 3: 生成报告... ✓ (report.pdf 已生成)
  Step 4: 发送邮件... ✓ (已发送至 team@company.com)
  
  最终结果: 任务完成!销售报告已发送给团队。

3.4 自主性与反思能力

LLM

  • 被动响应
  • 无法判断输出正确性
  • 无法自我改进

Agent

  • 主动执行
  • 能验证执行结果
  • 能反思和纠错
# Agent 反思机制
class ReflectiveAgent:
    def execute_with_reflection(self, task):
        max_retries = 3
        
        for attempt in range(max_retries):
            # 执行任务
            result = self.execute(task)
            
            # 反思验证
            reflection = self.reflect(
                f"任务: {task}\n结果: {result}\n是否正确?"
            )
            
            if reflection.is_correct:
                return result
            else:
                # 根据反思结果调整策略
                self.adjust_strategy(reflection.suggestion)
        
        return "多次尝试后仍无法完成任务"

四、典型场景对比

4.1 信息查询场景

场景LLM 表现Agent 表现
静态知识问答✅ 直接回答✅ 直接回答
实时信息查询❌ 无法获取✅ 联网搜索获取
多源信息整合❌ 无法访问✅ 多工具协作整合
用户: "今天微软的股价是多少?"

LLM: "抱歉,我无法获取实时股价信息。我的知识截止到训练时间..."

Agent:
  Thought: 需要查询实时股价
  Action: stock_api(symbol="MSFT")
  Observation: {"price": 378.91, "change": +2.35}
  
  Answer: 微软(MSFT)今日股价为 $378.91,上涨 $2.35

4.2 代码开发场景

场景LLM 表现Agent 表现
代码生成✅ 生成代码片段✅ 生成完整代码
代码执行❌ 无法执行✅ 沙箱执行验证
错误调试❌ 无法调试✅ 自动运行、分析错误、修复
项目构建❌ 无法操作✅ 完整项目创建和构建
用户: "帮我写一个计算斐波那契数列的程序,并验证正确性"
 
# LLM 只能生成代码
llm: "这是一个 Python 程序:
def fibonacci(n):
    if n <= 1:
        return n
    return fibonacci(n-1) + fibonacci(n-2)
    
# 你需要自己运行测试..."
 
# Agent 可以生成并验证
agent:
  Thought: 先生成代码,然后运行测试验证
  Action: write_file("fib.py", code)
  Action: run_code("python fib.py")
  Observation: 测试通过,fibonacci(10) = 55
  
  Answer: 程序已生成并验证正确。fibonacci(10) = 55

4.3 数据分析场景

场景LLM 表现Agent 表现
分析建议✅ 提供思路✅ 提供思路
数据读取❌ 无法操作✅ 读取文件/数据库
分析执行❌ 无法执行✅ 运行分析代码
报告生成❌ 无法操作✅ 生成文件/图表

4.4 自动化场景

场景LLM 表现Agent 表现
发送邮件❌ 无法执行✅ 调用邮件 API
文件操作❌ 无法操作✅ 读写文件系统
API 调用❌ 无法调用✅ 实际调用 API
定时任务❌ 无法调度✅ 集成调度系统

五、成本与性能对比

5.1 资源消耗对比

维度LLMAgent说明
单次调用成本较低较高Agent 需多次 LLM 调用
执行时间快(秒级)慢(分钟级)Agent 需多步骤执行
存储需求向量数据库Agent 需持久化记忆
外部依赖工具/APIAgent 依赖外部服务

5.2 适用场景建议

┌─────────────────────────────────────────────────────────────┐
│                    选择 LLM 还是 Agent?                     │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  ┌─────────────────────────────────────────────────────┐   │
│  │                    选择 LLM                          │   │
│  │  • 简单问答、文本生成                                 │   │
│  │  • 知识查询(静态知识)                               │   │
│  │  • 代码片段生成(无需执行)                           │   │
│  │  • 快速响应需求(秒级)                               │   │
│  │  • 成本敏感场景                                       │   │
│  └─────────────────────────────────────────────────────┘   │
│                                                             │
│  ┌─────────────────────────────────────────────────────┐   │
│  │                   选择 Agent                         │   │
│  │  • 复杂多步骤任务                                     │   │
│  │  • 需要执行实际操作                                   │   │
│  │  • 需要访问外部系统/数据                              │   │
│  │  • 需要长期记忆和上下文                               │   │
│  │  • 需要自我纠错和迭代                                 │   │
│  └─────────────────────────────────────────────────────┘   │
│                                                             │
└─────────────────────────────────────────────────────────────┘

六、技术演进路径

6.1 从 LLM 到 Agent 的演进

┌─────────────────────────────────────────────────────────────┐
│                   技术演进路径                               │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│   Stage 1: 纯 LLM                                           │
│   ┌─────────────────┐                                       │
│   │  Input → Output │  单次响应,无状态                      │
│   └─────────────────┘                                       │
│           │                                                 │
│           ↓                                                 │
│   Stage 2: LLM + Prompt Engineering                        │
│   ┌─────────────────────┐                                   │
│   │  Prompt → LLM → Out │  提示工程优化                      │
│   └─────────────────────┘                                   │
│           │                                                 │
│           ↓                                                 │
│   Stage 3: LLM + RAG                                        │
│   ┌─────────────────────────┐                               │
│   │  Query → RAG → LLM → Out │  检索增强生成                 │
│   └─────────────────────────┘                               │
│           │                                                 │
│           ↓                                                 │
│   Stage 4: Agent(LLM + Planning + Tools + Memory)        │
│   ┌─────────────────────────────────────┐                   │
│   │  Goal → Plan → Execute → Reflect    │  自主智能体        │
│   └─────────────────────────────────────┘                   │
│           │                                                 │
│           ↓                                                 │
│   Stage 5: Multi-Agent System                              │
│   ┌─────────────────────────────────────┐                   │
│   │  Agent1 ↔ Agent2 ↔ Agent3 → Result  │  多智能体协作      │
│   └─────────────────────────────────────┘                   │
│                                                             │
└─────────────────────────────────────────────────────────────┘

6.2 Agent 是 LLM 的"能力扩展"

扩展维度LLM 基础能力Agent 扩展能力
时间单次响应多轮迭代执行
空间文本空间物理世界操作
记忆上下文窗口持久化存储
工具无限扩展
自主性被动主动

七、常见面试题

Q1: LLM 和 Agent 的本质区别是什么?

A:

维度LLMAgent
本质语言模型,处理文本智能体,执行任务
输出文本文本 + 行动结果
记忆无持久化三层记忆系统
工具无法调用可调用任意工具
自主性被动响应主动规划执行

一句话总结:LLM 是 Agent 的"大脑",Agent = LLM + 规划 + 记忆 + 工具 + 执行。

Q2: 为什么 LLM 不能直接作为 Agent 使用?

A:

  1. 无执行能力:LLM 只能输出文本,无法实际执行操作
  2. 无持久记忆:会话结束后上下文丢失
  3. 无工具调用:无法访问外部系统和数据
  4. 无规划能力:无法自动分解复杂任务
  5. 无反思机制:无法验证输出正确性并纠错

Q3: Agent 如何解决 LLM 的上下文窗口限制?

A:

Agent 通过三层记忆架构解决上下文限制:

# 记忆压缩策略
class MemoryManager:
    def compress_and_store(self, conversation):
        # 1. 提取关键信息
        key_info = self.extract_key_points(conversation)
        
        # 2. 生成摘要
        summary = self.llm.summarize(conversation)
        
        # 3. 向量化存储
        embedding = self.embedding_model.encode(summary)
        self.vector_db.store(embedding, metadata={"summary": summary})
        
        # 4. 需要时检索
        relevant = self.vector_db.search(query_embedding, top_k=5)
        
        return relevant

Q4: Agent 的工具调用是如何实现的?

A:

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

1. 定义工具:描述工具的功能和参数
2. LLM 决策:根据用户意图选择工具
3. 参数填充:LLM 生成调用参数
4. 执行工具:在安全环境中执行
5. 结果处理:将结果返回给 LLM 继续推理

Q5: 什么时候用 LLM,什么时候用 Agent?

A:

场景推荐方案原因
简单问答LLM无需工具,直接回答
文本生成LLM单次输出即可
知识查询(静态)LLM训练数据已包含
实时数据查询Agent需要联网获取
复杂任务执行Agent需要多步骤规划和执行
文件/系统操作Agent需要实际执行能力
长期记忆场景Agent需要持久化存储

Q6: Agent 相比 LLM 有哪些额外成本?

A:

成本类型说明
计算成本多次 LLM 调用,成本翻倍
时间成本多步骤执行,响应更慢
存储成本向量数据库持久化存储
运维成本工具集成、错误处理更复杂
安全成本执行操作需要权限管理和沙箱

Q7: 如何评估 Agent 相比 LLM 的性能提升?

A:

指标LLMAgent评估方式
任务完成率低(只能生成文本)高(能执行操作)成功完成任务的比例
实时信息获取0%联网任务成功率
多步骤任务0%复杂任务完成率
错误自纠正重试成功次数
长期记忆跨会话任务完成率

Q8: Agent 是否会完全取代 LLM?

A:

不会完全取代,而是互补关系

  • LLM 适用场景:快速响应、简单问答、文本生成、成本敏感
  • Agent 适用场景:复杂任务、实际操作、多步骤执行、长期记忆

Agent 的底层仍然是 LLM,Agent = LLM + 扩展能力。选择哪种方案取决于具体需求。


八、总结

对比维度LLMAgent
定义语言模型智能体
核心能力文本生成任务执行
输出文本文本 + 行动结果
记忆无持久化三层记忆
工具无法调用无限扩展
自主性被动响应主动执行
适用场景简单问答、文本生成复杂任务、实际操作
成本

一句话总结:Agent 是 LLM 的"升级版",从"能说会道"进化为"能说会做"。


最后更新:2026年3月18日