共计 1296 个字符,预计需要花费 4 分钟才能阅读完成。
概念辨析
大模型(Large Language Model, LLM):
– 基于海量参数(通常数十亿至万亿级)的深度学习模型
– 核心能力为文本生成、语义理解等通用任务
– 典型架构为 Transformer 解码器堆叠
– 特点:静态知识库、无状态处理、单次推理消耗高

智能体(Agent):
– 具备环境感知、决策执行和状态保持能力的系统
– 必须包含:传感器(输入)、执行器(输出)、记忆模块
– 典型架构包含:状态管理器、策略引擎、记忆数据库
– 特点:动态响应、多轮交互、资源消耗可控
痛点场景
- 客服对话系统误用 :
- 仅用大模型处理多轮对话时,无法记住用户历史请求
-
导致每次回复都是独立生成,出现上下文断裂
-
游戏 NPC 开发误区 :
- 直接调用大模型生成 NPC 行为
-
忽略环境状态跟踪,造成行为逻辑不一致
-
自动化流程设计错误 :
- 用大模型完整替代工作流引擎
- 缺乏异常处理机制,流程中断后无法恢复
技术对比
| 维度 | 大模型 | Agent |
|---|---|---|
| 计算资源 | GPU 密集型,单次推理成本高 | CPU 友好,长期运行稳定 |
| 实时性 | 响应延迟高(秒级) | 毫秒级响应 |
| 可解释性 | 黑盒决策 | 可追踪状态转移路径 |
| 状态维护 | 无 | 必需 |
| 适合场景 | 一次性生成任务 | 持续交互系统 |
代码实战
# 混合架构示例:订餐对话系统
class DiningAgent:
def __init__(self, llm):
self.llm = llm # 注入预训练的大模型
self.state_db = {} # 采用内存存储对话状态(生产环境建议 Redis)def handle_message(self, user_id, text):
# NLU 阶段:大模型处理自然语言理解
intent = self.llm.detect_intent(text)
# 状态管理
session = self.state_db.get(user_id, {"step": "greeting"})
# 策略引擎
if intent == "change_order" and session["step"] == "confirming":
response = "您想修改订单的哪个部分?"
session["step"] = "modifying"
else:
# 默认交给大模型生成回复
response = self.llm.generate_response(context=f"Current step: {session['step']}",
user_input=text
)
# 状态持久化
self.state_db[user_id] = session
return response
关键设计说明 :
– 状态存储选择内存字典,适合低 QPS 场景(简化示例)
– 将大模型限制在 NLU 和生成模块,避免承担状态管理责任
– 明确的状态转移逻辑保证对话连贯性
生产建议
- QPS 与架构选择 :
- <100 QPS:单体 Agent+ 大模型 API
-
500 QPS:分离大模型服务与 Agent 集群
-
内存管理 :
- 设置会话状态 TTL(如 30 分钟自动过期)
-
大模型缓存采用 LRU 策略
-
监控指标 :
- Agent:状态转换错误率、会话存活时间
- 大模型:token 消耗量、响应延迟 P99
开放问题
- 在长期运行的 Agent 系统中,如何平衡内存状态存储与数据库查询的开销?
- 当大模型生成的内容与 Agent 预设策略冲突时,应采取怎样的优先级机制?
正文完
