OpenClaw Agentic RAG实战指南
凌晨2点08分,我的AI回答了一个完全不存在于训练数据中的问题。那一刻我明白了——检索增强不是锦上添花,而是AI从"复读机"到"研究员"的必经之路。
从RAG到Agentic RAG
传统RAG(Retrieval-Augmented Generation)是"检索+生成"的固定流程。而Agentic RAG让AI Agent自己决定何时检索、从哪里检索、如何组合信息——本质上是从"被动查询"升级为"主动研究"。
| 特性 | 传统RAG | Agentic RAG |
|---|---|---|
| 检索策略 | 固定检索 | Agent自主决策 |
| 数据源 | 单一向量库 | 多源(Web/文件/API) |
| 迭代能力 | 单轮检索 | 多轮迭代优化 |
| 结果评估 | 无 | Agent自评结果质量 |
OpenClaw的RAG相关能力
OpenClaw提供了多种信息检索工具,天然适合构建Agentic RAG系统:
1. 长期记忆搜索
// 搜索结构化记忆(L1层)
tdai_memory_search({
query: "用户之前对SEO的偏好",
type: "episodic", // 可选: persona, episodic, instruction
limit: 5
})
// 搜索原始对话记录(L0层)
tdai_conversation_search({
query: "上次讨论过的关键词策略",
limit: 10
})
2. Web搜索与获取
// 实时搜索
web_search({
query: "OpenClaw最新版本更新",
count: 5
})
// 获取网页内容
web_fetch({
url: "https://docs.openclaw.ai/guide",
extractMode: "markdown"
})
3. 本地文件系统
// 读取本地文件
read({ filePath: "/workspace/knowledge-base/article.md" })
// 搜索文件内容
exec({ command: "grep -r 'keyword' /workspace/docs/" })
构建Agentic RAG Agent
架构设计
一个完整的Agentic RAG Agent需要以下层次:
- 查询理解层:判断需要哪些信息源
- 检索决策层:选择检索策略(记忆/Web/文件/数据库)
- 信息整合层:合并多源结果、去重、评估
- 回答生成层:基于整合信息生成最终回答
- 自评优化层:评估回答质量,必要时补充检索
通过SOUL.md配置检索行为
# 在Agent的SOUL.md中配置RAG策略
## 信息检索规则
1. 用户提问时,先检查tdai_memory_search是否有相关记忆
2. 涉及时效性内容时,必须调用web_search验证
3. 需要详细文档时,使用web_fetch获取原文
4. 本地知识库在 /workspace/docs/ 目录
5. 如果首次检索结果不足,自动迭代1-2轮
多源检索实战
场景:回答一个复杂技术问题
// 第一步:检查历史记忆
tdai_memory_search({ query: "OpenClaw MCP配置", limit: 3 })
// 第二步:实时搜索补充最新信息
web_search({ query: "OpenClaw MCP server configuration 2026" })
// 第三步:获取权威文档
web_fetch({ url: "https://docs.openclaw.ai/mcp", extractMode: "markdown" })
// 第四步:检查本地知识库
read({ filePath: "/workspace/docs/mcp-setup-notes.md" })
// 第五步:综合所有信息,生成回答
// (AI自动整合上述结果)
检索质量优化
1. 查询重写
不要直接用用户的原始查询去检索。让Agent将复杂问题分解为多个精确的子查询。
2. 分层检索策略
- L0 - 对话历史:最近交互的原始记录,上下文最完整
- L1 - 结构化记忆:经过提炼的用户偏好、规则、事件
- L2 - 实时Web:时效性信息的首选来源
- L3 - 本地知识库:私有文档、项目资料
3. 结果评估与重试
关键原则:检索后先评估结果相关性,如果信息不足或过时,主动追加检索,而不是用不充分的信息硬回答。
常见RAG模式
单跳RAG
问题 → 单次检索 → 生成回答。适合简单事实查询。
多跳RAG
问题 → 检索A → 基于A的结果检索B → 整合A+B → 回答。适合需要推理链的复杂问题。
自适应RAG
Agent根据问题复杂度自动选择单跳还是多跳。OpenClaw的灵活工具调用天然支持这种模式。
最佳实践
- 记忆优先:优先检索已有记忆,避免重复获取
- 时效感知:涉及版本、价格、政策等内容必须实时搜索
- 来源标注:回答时注明信息来源,增强可信度
- 迭代检索:一次不够就查两次,不要用不充分的信息硬凑
- token控制:web_fetch时使用maxChars限制返回内容大小