1. LLM Agent 演进历程与技术解析
大型语言模型(LLM)从最初的简单对话系统发展到如今的智能体(Agent)形态,经历了几个关键的技术演进阶段。作为从业者,我完整经历了这个过程,并参与了多个Agent项目的开发实践。下面我将从技术演进的视角,解析LLM Agent的发展脉络。
1.1 从基础对话到提示词工程
最初的LLM应用形态非常简单 - 就是一个问答对话窗口。用户输入问题,模型生成回答。这个阶段最典型的技术是"上下文学习"(In-context Learning),通过在提示词中提供示例来引导模型输出。
python复制# 典型的情感分析提示词示例
prompt = """
Classify the sentiment of the following text as positive, negative, or neutral.
Text: The product is terrible. Sentiment: Negative
Text: Super helpful, worth it Sentiment: Positive
Text: It doesnt work! Sentiment:
"""
这个阶段催生了"提示词工程师"这个新兴职业。优质的提示词能显著提升模型表现,但这种方式存在明显局限:
- 知识截止问题(Knowledge Cutoff):模型无法获取训练数据之后的新信息
- 功能单一:仅能完成文本生成任务
- 可控性差:输出质量高度依赖提示词设计
1.2 检索增强生成(RAG)的突破
为解决知识时效性问题,业界提出了检索增强生成(Retrieval-Augmented Generation)技术。其核心思想是将外部知识库与LLM结合:
code复制预处理流程:
1. 加载文档 → 2. 文档切片 → 3. 向量化 → 4. 存储到向量数据库
推理流程:
1. 问题向量化 → 2. 向量检索 → 3. 相关文档注入上下文 → 4. 生成回答
典型实现如LangChain框架,它提供了完整的RAG流水线。我在电商客服项目中采用这种方案,将产品手册和FAQ文档向量化存储,使客服机器人能准确回答产品相关问题。
实践建议:文档切片时建议采用重叠窗口(如256token的窗口,步长128),避免关键信息被切分。
1.3 工具调用能力的演进
RAG解决了知识获取问题,但LLM仍缺乏执行能力。工具调用(Tool Calling)技术应运而生,让LLM可以调用外部工具完成复杂任务。
早期工具调用依赖特定的输出格式,如ReAct模式:
code复制Thought: 需要查询周杰伦年龄
Action: Search["周杰伦 出生日期"]
Observation: "1979年1月18日"
Thought: 计算当前年龄
Action: Calculator[2024-1979]
Observation: 45
这种模式存在明显缺陷:
- 格式要求严格,容易出错
- 工具定义与调用逻辑耦合
- 缺乏标准化接口
新一代模型(如Qwen 3.5)通过特殊token原生支持工具调用:
json复制{
"248058": {"content": "<tool_call>"},
"248059": {"content": "</tool_call>"}
}
这种设计使工具调用成为模型的一等公民,大幅提升了可靠性和易用性。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 现代Agent架构解析
现代Agent系统已形成相对成熟的架构模式,下面从工程实践角度分析关键组件。
2.1 核心架构模式
典型的Agent系统包含以下组件:
- LLM核心:负责推理和决策
- 工具集:扩展Agent能力边界
- 记忆系统:维护对话历史和知识
- 控制流引擎:协调各组件运作
mermaid复制graph TD
A[用户输入] --> B(控制流引擎)
B --> C[LLM核心]
C --> D{需要工具?}
D -->|是| E[工具调用]
D -->|否| F[直接响应]
E --> G[记忆更新]
F --> G
G --> H[输出响应]
