跳至内容

智能体

智能体 (Agent) 是以大语言模型为核心推理引擎,具备感知环境、自主决策和执行行动能力的 AI 系统。与直接使用 LLM 对话不同,智能体能主动规划任务、调用外部工具、检索知识库、管理上下文记忆——它把 LLM 从"被动回答"升级为"主动做事"。

ReAct 架构

ReAct (Reasoning + Acting) 是智能体最经典的运行框架。它让 LLM 在"思考"和"行动"之间交替循环:

思考 (Thought)

LLM 分析当前状态和目标,决定下一步应该做什么。例如:“用户问的是最新论文,我需要先搜索数据库。”

行动 (Action)

执行具体操作——调用搜索工具、读取文件、执行代码或查询数据库。

观察 (Observation)

获取行动的返回结果,将其作为新的上下文输入。

循环

根据观察结果决定是否需要继续(回到"思考"),或者信息已经足够可以输出最终结果。

ReAct 的核心价值在于可控性和可追溯性——每一步的推理过程都是可见的,出了问题可以定位到具体哪一步的思考或行动出了差错。

子智能体与多智能体协作

当任务复杂到单个智能体难以独立完成时,可以将任务分解给多个子智能体 (Sub-Agent),每个子智能体专注于一个特定子任务。

子智能体的关键设计要素:

  • 每个子智能体有单一、明确的职责(如"文献检索"“数据清洗"“代码生成”)
  • 由一个主智能体(编排器 / Orchestrator)负责任务分解和调度
  • 子智能体之间通过结构化消息传递结果

多智能体协作进一步将多个自主智能体组织成协作系统。常见的协作模式:

模式说明优先级
主从式 (Orchestrator)一个主智能体分配任务,多个子智能体执行⭐⭐⭐⭐⭐
流水线式 (Pipeline)智能体按顺序处理,上一个的输出是下一个的输入⭐⭐⭐⭐
辩论式 (Debate)多个智能体对同一问题给出不同观点,通过讨论达成结论⭐⭐⭐
投票式 (Voting)多个智能体独立给出答案,汇总投票决定最终结果⭐⭐⭐

多智能体框架(如 AutoGen、CrewAI、LangGraph)降低了构建多智能体系统的工程门槛,使得研究者可以快速搭建和实验。

提示词工程 (Prompt Engineering)

提示词工程是设计和优化输入提示以引导 LLM 产生期望输出的技术。它是投入产出比最高的技能——不需要训练模型、不需要写代码,只需要学会"如何问问题"就能显著提升模型表现。

核心技巧:

技巧说明优先级
角色设定 (System Prompt)为模型设定身份和行为规范,如"你是一位模糊数学专家”⭐⭐⭐⭐⭐
少样本 (Few-shot)在提示中提供几个输入-输出示例,让模型"模仿"⭐⭐⭐⭐⭐
思维链 (CoT)引导模型逐步推理,详见大语言模型页面⭐⭐⭐⭐⭐
结构化输出要求模型以 JSON、Markdown 表格等结构化格式输出⭐⭐⭐⭐
约束与限定明确告诉模型不要做什么、输出长度限制等⭐⭐⭐⭐
分步指令将复杂任务拆解为编号步骤,逐步引导⭐⭐⭐⭐

好的提示词通常具备:清晰的任务描述、足够的上下文、明确的输出格式要求、以及适当的示例。

知识库 (Knowledge Base)

LLM 的知识截止于训练数据的时间点,且可能产生幻觉。知识库为智能体提供外部的、可验证的知识来源。

RAG (Retrieval-Augmented Generation) 是最主流的知识增强方案,其流程为:

  1. 知识预处理:将文档切分为合适大小的块 (Chunk),用嵌入模型转为向量,存入向量数据库
  2. 检索:用户提问时,将问题转为向量,在向量数据库中检索最相关的文档块
  3. 增强生成:将检索到的文档块作为上下文注入 LLM 提示词,LLM 基于这些事实依据生成回答

RAG 是解决 LLM 幻觉问题的主流方案——模型的回答有据可查,用户也可以验证来源。

知识库技术说明优先级
向量数据库存储和检索文本嵌入向量(如 Chroma、Milvus)⭐⭐⭐⭐⭐
文档分块策略如何将长文档切分为适合检索的块⭐⭐⭐⭐
嵌入模型将文本转为语义向量表示⭐⭐⭐⭐
重排序 (Rerank)对初步检索结果进行精细排序⭐⭐⭐

工具 (Tools)

工具调用使智能体能与外部系统交互,突破 LLM"只能生成文本"的限制。

LLM 通过函数调用 (Function Calling) 机制描述它需要调用的工具和参数,由外部系统实际执行并返回结果。常见的工具类型:

工具类型示例优先级
搜索引擎查询最新信息、论文检索⭐⭐⭐⭐⭐
代码执行运行 Python 代码进行数据分析、绘图⭐⭐⭐⭐⭐
文件操作读写文件、创建文档⭐⭐⭐⭐
API 调用调用外部服务(数据库、天气、翻译等)⭐⭐⭐⭐
子智能体将子任务委托给专门的子智能体⭐⭐⭐

工具的质量和可用性直接影响智能体的实际能力边界——拥有合适的工具,智能体可以从"对话机器人"升级为"任务完成系统"。

记忆 (Memory)

LLM 本身是无状态的——每次调用都是独立的,它不记得之前的对话。记忆系统让智能体能维护上下文、积累经验。

记忆类型说明实现方式优先级
短期记忆当前对话的上下文对话历史直接放入提示词⭐⭐⭐⭐⭐
工作记忆当前任务的中间状态和临时笔记结构化存储 + 动态注入⭐⭐⭐⭐
长期记忆跨对话持久化的用户偏好、历史知识向量数据库 / 文件存储⭐⭐⭐
情景记忆对过去成功/失败经验的回忆经验日志 + 检索⭐⭐

记忆管理的核心挑战是容量限制——LLM 的上下文窗口有限(几千到几十万 token),不可能把所有历史信息都放进去。因此需要设计策略来决定哪些信息保留、哪些压缩、哪些存入长期记忆。

技能 (Skills)

技能是封装好的、可复用的能力模块。与工具不同,技能是更高层次的抽象——一个技能可能包含特定的提示词模板、工作流程以及需要调用的工具组合。

例如,“论文摘要分析"技能可能包含:特定的系统提示词(角色设定为学术助手)、结构化的分析流程(先提取方法 → 再总结贡献 → 最后评价局限)、以及配套的工具(PDF 解析、搜索引擎)。

技能的价值在于知识封装一致性保障——将领域专家的工作流程和最佳实践编码为可复用的模块,确保每次执行遵循相同的高质量流程。

一条典型的智能体任务链

接收任务并理解上下文

识别任务目标、约束和已有资料。短期记忆提供当前对话上下文,长期记忆提供用户偏好。

检索相关知识

从知识库中检索相关文档(RAG),为推理提供事实依据,减少幻觉风险。

规划并拆解任务

将复杂任务分解为子步骤,确定哪些需要工具、哪些由模型直接推理、哪些委托给子智能体。

调用工具执行

调用搜索、代码执行、数据库或子智能体,获取中间结果。

反思与输出

检查中间结论是否可靠,必要时回溯修正(ReAct 循环),输出最终结果并更新记忆。