跳转至

检索、工具与智能体

模型只能根据当前输入与参数产生 token。应用系统真正扩展的是三种边界:可见知识、可执行动作与可持续状态。RAG、tool use 和 agent 分别解决其中一部分,不能互相替代。

检索、工具与智能体从把知识写进参数的边界讲起:REALM 与 RAG 把检索器纳入生成系统,ReAct 把推理轨迹和环境动作交错,Toolformer 又尝试让工具调用进入自监督学习。若要落到算法与失败边界,可继续读 RAG 和 ReAct / Toolformer。

三个扩展面

扩展面 新增对象 主要收益 主要风险
上下文 文档、数据库、搜索结果 新鲜知识、可引用证据 错召回、越权、注入、上下文挤占
动作 函数、API、浏览器、代码执行 查询真实状态、改变环境 参数错误、重复副作用、权限失控
状态 任务图、工作记忆、长期记忆 多步执行、恢复与个性化 状态漂移、过期、隐私与循环

典型系统会同时使用三者:

\[ \text{request} \rightarrow \text{retrieve} \rightarrow \text{reason} \rightarrow \text{act} \rightarrow \text{observe} \rightarrow \text{verify}. \]

链条越长,最终答案越不能代表执行已经成功。每一跳都需要独立的输入契约、终态证据和失败语义。

检索链

RAG 不是“向量库加 prompt”,而是一条可拆测的检索—生成链:

  1. 索引与召回决定候选证据是否进入集合;
  2. 重排与上下文工程决定有限窗口里保留什么以及如何排序;
  3. 证据约束生成决定陈述是否由上下文支持,何时拒答;
  4. 检索指标、答案指标、引用指标与系统指标分别验收。

召回失败时,换更强生成模型通常没有帮助;证据已经召回但答案仍错,才应优先检查上下文组织、指令冲突和生成策略。

工具链

工具调用把自然语言意图映射到有类型的动作。结构化参数只是接口第一层,还需要:

  • 身份与最小权限;
  • 读取、写入、外部通信和破坏性分级;
  • 幂等键、超时、取消、重试与补偿;
  • 成功、部分成功、失败和未知结果;
  • 动作之后由环境返回的终态证据。

模型可以提出候选动作,系统必须保有权限判断、参数校验和副作用边界。

智能体链

智能体是在工具之上增加循环、状态和终止条件。完整实现通常拆成:

  • 运行时:状态机、事件日志、预算、并发和恢复;
  • 记忆与规划:上下文选择、计划修订、长期记忆治理;
  • 安全边界:不可信输入、权限、隔离、审批和审计;
  • Coding Agent:把这些机制落到仓库、测试和版本控制。

多步决策需要从环境反馈中学习时,再进入 Agentic RL。仅仅调用多个工具,不等于必须使用强化学习。

选择顺序

从最小闭环开始:

  1. 若问题只缺少可靠知识,先做检索与引用;
  2. 若需要读取实时状态,增加只读工具;
  3. 若需要改变外部状态,增加权限、确认和幂等控制;
  4. 若任务必须跨多步或跨会话,才引入显式状态与恢复;
  5. 若固定策略无法覆盖环境变化,再考虑搜索、verifier 或策略学习。

每增加一层,都同时增加可观测状态和专项评测。没有对应验证的“自治”只是把错误藏进更长的轨迹。

统一评测

端到端成功率必须能向下分解:

\[ P(R\cap C\cap A\cap V) =P(R)\,P(C\mid R)\,P(A\mid R,C)\,P(V\mid R,C,A), \]

其中 \(R\) 表示召回足够证据,\(C\) 表示上下文组装正确,\(A\) 表示动作或答案正确,\(V\) 表示环境验证通过。这是概率链式法则;各条件项必须在对应阶段单独估计,不能把它简化为相互独立事件。

最小评测集应同时报告:

  • 检索召回、排序和证据覆盖;
  • 答案正确性、引用支持性和不可回答识别;
  • 工具选择、参数、权限与副作用正确性;
  • 任务成功、步骤数、恢复率、成本与尾延迟;
  • 注入、越权、数据泄露和重复执行等安全失败。

评测与可靠性给出协议设计,手撕:检索与智能体提供核心实现。

工具协议、coding/research scaffold、环境训练与基础模型能力怎样分层,可对照 DeepSeek、Kimi 和 GLM 的模型与 Agent 公开物;产品功能不能直接倒写成 checkpoint 架构。