OpenClaw课程-干货合集
03 搜索能力 & 记忆系统详解
搜索能力

原生支持
- OpenClaw的原生搜索能力由配置的Provider(搜索服务商)支持
- 支持的Provider
Provider
免费额度
适用场景
Brave
每月赠 $5 额度 ≈ 1000次(需绑信用卡,超出扣费)
通用搜索(官方默认推荐);需要海外网络环境
Firecrawl
500 credits
需要读取页面内容的场景;需要海外网络环境
Gemini
AI Studio Key 免费;每天 500-1500 次免费
通用搜索
Grok
注册送 $25 credits
X/Twitter 内容
Kimi
-
国内直连、中文搜索好
Perplexity
-
深度搜索、内容提取
- 核心机制
- 只能选 1 个 Provider,没有备选降级策略
- 只接受一个值,且只能是 6 个原生 provider 之一(brave / firecrawl / gemini / grok / kimi / perplexity)。写
"brave"就只能用 Brave,写"kimi"就只能用 Kimi。不支持配置多个 provider 做轮换或降级。写"tavily"会直接报 schema validation 错误。
- 只接受一个值,且只能是 6 个原生 provider 之一(brave / firecrawl / gemini / grok / kimi / perplexity)。写
- 只能选 1 个 Provider,没有备选降级策略
AGENTS指令
- Agent直接调Tavily API(国内友好)
- 注册获取Tavily API,传送门:tavily.com。免费额度:1000次/月,无需海外网络

- 复制API Key,让Openclaw帮你配。可以这么跟它说:
openclaw内置的web search无法使用时,调用tavily api进行搜索。 api key:xxxx 把这个搜索方式记到AGENTs.md,API Key同步记到TOOLS.md - 配置完成后,可以让Openclaw试试搜索某个东西
- 注册获取Tavily API,传送门:tavily.com。免费额度:1000次/月,无需海外网络
Skills & Plugin方案
- 以下不能写在
provider字段里,通过 Skill、Plugin 或 MCP 方式接入,给 agent 提供额外搜索能力。重点推荐国内友好的方案: - 博查 Bocha(⭐ 国内首选)
- 国内 AI 搜索引擎,DeepSeek 官方联网搜索供应方,阿里/腾讯/字节官方推荐
- 承接国内 60%+ AI 应用联网搜索请求,中文搜索质量极高
- API 完全国内直连(open.bocha.cn),有免费额度
- 接入方式:MCP Server(
bocha-search-mcp)或 ClawHub Skill(bocha-skill) - 已有社区 PR 申请加入原生 provider(GitHub #25420),后续可能直接配置
- SearXNG(⭐ 完全免费 + 无限制)
- 开源元搜索引擎,聚合 Google、Bing、DuckDuckGo 等 70+ 引擎
- Docker 自建,零 API Key、零费用、无查询上限
- 自建在国内服务器上即可国内直连
- 多个 ClawHub Skill 可选:
private-web-search-searchxng(@adelpro)、local-websearch、searxng-local等 - 也可通过 MCP 接入(
ask-search项目)
- webserp(⭐ 零配置 + 免费)
- 7 个搜索引擎并行查询(Google、DuckDuckGo、Brave 等),无需 API Key
- GitHub 仓库自带 OpenClaw Skill 文件,直接下载安装
- 安装指令
cd ~/.openclaw/workspace/skills/ && git clone https://github.com/PaperBoardOfficial/webserp.git - 适合不想注册任何账号、只想开箱即用的学员
- Web Search Plus(进阶,多引擎智能路由)
- ClawHub Skill,连接 7 个搜索 provider(Serper、Tavily、Exa、Perplexity、You.com、SearXNG 等)
- 根据查询意图自动选最优引擎(购物 → Google、研究 → Tavily、隐私 → SearXNG)
- 只需 1 个 API Key 即可启动,按需添加更多
- 安装:ClawHub 搜索
web-search-plus
- openclaw-search-skills(进阶,四源并行)
- 社区高星项目,Brave + Exa + Tavily + Grok 四源并行搜索
- 意图感知评分 + 自动去重 + 链式引用追踪
- 附带 content-extract(URL → Markdown,微信/知乎等反爬站点自动降级到 MinerU)
- GitHub:https://github.com/blessonism/openclaw-search-skills
建议
- 国内朋友
- Agent直接调Tavily API,或初始配置时Provider选择Kimi(需付费,成本较高)
- 海外朋友
- Brave API Key作为Provider,Agent调Tavily作为备选
记忆系统

重要性
- 有好的记忆系统,能让龙虾越来越懂你,让你们之间的沟通阻抗越来越小。它就会越来越高效
记忆的结构

Session Memory:会话记忆
- 定义
- 每个飞书对话窗口/微信对话窗口 / Web Chat 对话 = 一个 Session(会话)。Session 里存的是完整的消息历史(你说的 + agent 回的)。
- 关键机制
- compaction(压缩)。当对话历史接近 context window 上限时,OpenClaw 会自动压缩旧消息——用摘要替代原文。压缩后原始细节就丢了。
- 在 compaction 之前,OpenClaw 有一个 memory flush 机制:提醒 agent 把重要内容写入 memory 文件。但这个机制依赖 agent "自觉"——如果 agent 忘了写,信息就随着压缩一起丢了
- Session重置问题
- 如果你遇到过这种问题,请看解法
- 现象:每天早上起来发现 OpenClaw "失忆"了——webchat 和飞书的对话历史都没了,只剩几行,agent 对昨天聊的内容一无所知。
- 原因:OpenClaw 在凌晨 4 点触发一次心跳,检查每个 session 的
updatedAt,发现早于最近一次 daily reset 时间就标记为过期。旧 session 被归档成.jsonl.reset.2026-03-XX文件(数据还在磁盘上,但不再被加载),然后你早上发第一条消息时,OpenClaw 创建一个全新的空 session。所以不是"失忆",而是"换了一个新脑子"。
- 解法
解决方案:把
session.reset从默认的daily改成idle模式,设一个极长的超时时间。改完重启 gateway 就生效了{ "session": { "dmScope": "per-channel-peer", "reset": { "mode": "idle", "idleMinutes": 52560000 } } }
- 如果你遇到过这种问题,请看解法
Daily Memory:每日记忆
- 定义
- 每天的工作日志,翻日历📅可查看
- 核心机制
在
~/.openclaw/workspace/memory/目录下,按日期存储:memory/ ├── 2026-03-20.md ├── 2026-03-21.md ├── 2026-03-22.md └── 2026-03-23.md每个文件记录当天的对话摘要、完成事项、关键决策。不是自动生成的——需要 agent 主动写入,或者你手动创建。
Long-term Memory(Memory.md):长期记忆
- 定义
- OpenClaw脑中沉淀的长期记忆,永不丢失
- 核心机制
- 存放跨越时间的持久信息:用户偏好、项目状态、关键人物、经验教训等。每次 agent 醒来(新的session)开始工作前都会读这个文件。所以写在这里的信息,agent 永远记得。
# Long-term Memory ## 用户画像 - 名字:Michael - 身份:AI 教育创业者,前网易产品专家 - 沟通风格:简洁直接,喜欢类比 ## 活跃项目 - [P0] OpenClaw 课程开发 → 6-8 场直播 - [P1] ai798lab 社群运营 ## 经验教训 - 2026-03-21:Kimi K2.5 声称已配置但实际未执行,memory 记录不可全信 - 2026-03-22:session.reset 默认 daily 导致每天失忆,改成 idle 模式
写入与读取机制
写入
- 如果不做任何配置,OpenClaw不会主动提炼Daily Memory,写进MEMORY.md(长期记忆)。记忆的写入完全靠 agent 主动调用工具。OpenClaw 不会自动把对话内容存到 memory 文件里。
- 写入方式
- Agent 调用文件写入工具,往
MEMORY.md或memory/YYYY-MM-DD.md追加内容 - 你直接在终端编辑这些文件
- Compaction (session context爆了,自动生成摘要)前的 memory flush 提醒 agent 写入(但不保证 agent 会写)
- Agent 调用文件写入工具,往
- 核心问题
- 如果 agent 忘了写,信息就只存在备份 session transcript(.jsonl 文件)里。compaction 之后细节丢失,下次 session 搜不到。这是 OpenClaw 原生记忆最大的痛点。
读取
- 存在2种读取方式
- 被动加载:每次 session 开始,agent 自动读取 SOUL.md、USER.md、AGENTS.md、MEMORY.md。这些文件的内容直接注入到系统提示里。所以 MEMORY.md 里的信息,agent 不需要搜索就"知道"。
- 主动加载:agent 调用
memory_search工具,在 memory/*.md 文件里做语义搜索。这需要 agent 意识到"我可能之前处理过类似的事情"然后主动去搜。如果 agent 没这个意识,就不会搜。
增强AGENTS记忆的技巧
- 在 AGENTS.md 里写规则,约束 agent 的记忆行为:
## 记忆规则
### 写入
- 每轮对话如果涉及配置变更、决策、bug 修复,必须写入 memory/YYYY-MM-DD.md
- 写入格式:## HH:MM - 事件标题 + 简要说明
- 不确定要不要记的时候,记。宁多勿少
### 读取
- 每个新 session 开始后,先用 memory_search 搜索与当前话题相关的历史记忆
- 用户问"之前"、"上次"、"我们讨论过"时,必须先搜 memory 再回答
### 诚实原则
- 如果 memory_search 失败或搜不到,明确告知用户,不要编造
- 不要假装记得实际上没有记录的事情记忆检索策略
现状
- OpenClaw 默认的 记忆检索(memory search) 依赖 OpenAI embeddings API。国内用户不挂 VPN 根本连不上。连不上的结果:memory search 每次都失败,
fallback默认是"none"——直接放弃。agent 搜不到任何历史记忆,等于失忆。这就是为什么很多国内朋友说 OpenClaw "每天都失忆"。
原生配置
- 支持6个服务商 + 1个本地部署方案
服务商
环境配置
国内直连
免费额度
OpenAI
OPENAI_API_KEY
❌
需付费
Gemini
GOOGLE_API_KEY
❌
有免费额度(AI Studio Key 即可)
Voyage
VOYAGE_API_KEY
❌
有免费额度
Mistral
MISTRAL_API_KEY
❌
有免费额度
Ollama
本地
localhost:11434✅
完全免费
GGUF
memorySearch.local.modelPath
✅
完全免费
任何 OpenAI 兼容 API
memorySearch.remote.baseUrl+apiKey✅
取决于接入的API服务商
- 注意:如果你的OpenClaw已经在用Gemini api,就很方便了。一个Gemini可以一次性搞定搜索和记忆检索的配置
- 下面介绍国内用户友好的记忆检索方法👇
简易方案(新手推荐;国内友好)
- 硅基流动 embedding
- 优势
BAAI/bge-m3是目前最好的中英文混合 embedding 模型之一- 硅基流动国内直连,延迟低
- provider 设为
"openai"是因为硅基流动兼容 OpenAI API 格式 - 注册送的免费额度,embedding 调用非常便宜,日常使用几乎不花钱
- 优势
- 步骤
- Step 1 · 注册
- 打开硅基流动 → 手机号注册 → 注册送 14 元代金券 → 左侧菜单「API 密钥」→ 创建 Key
- Step 2 · 配置
- 你可以跟OpenClaw这么说,让它配置
我需要你帮我配置 memory search,使用硅基流动(SiliconFlow)的 embedding API。 ## 背景 OpenClaw 默认的 memory search 依赖 OpenAI embeddings API,国内连不上会导致 memory_search 每次都失败,等于失忆。我要切换成硅基流动,国内直连。 ## 前提 我已经在硅基流动注册了账号(https://cloud.siliconflow.cn),拿到了 API Key。 ## 需要你做的事 ### 第一步:把 API Key 写入环境变量文件 在 ~/.openclaw/.env 文件中添加一行(如果文件不存在就创建): SILICONFLOW_API_KEY=(我的硅基流动 API Key,我稍后告诉你) ### 第二步:修改 openclaw.json 读取 ~/.openclaw/openclaw.json,修改以下配置: 1. 把 memory.backend 设为 "builtin" 2. 把 agents.defaults.memorySearch 设为: { "provider": "openai", "model": "BAAI/bge-m3", "remote": { "baseUrl": "https://api.siliconflow.cn/v1/", "apiKey": "${SILICONFLOW_API_KEY}" }, "fallback": "none" } 注意: - provider 写 "openai" 是因为硅基流动兼容 OpenAI API 格式,不是真的用 OpenAI - model 用 BAAI/bge-m3,这是目前最好的中英文混合 embedding 模型 - apiKey 用 ${SILICONFLOW_API_KEY} 引用环境变量,不要把明文 key 写进 json - 如果 json 里已经有 memorySearch 的旧配置(比如指向 OpenAI 的),直接覆盖 ### 第三步:重启 gateway 执行重启命令让配置生效。
- Step 1 · 注册
本地部署方案(国内友好)
- QMD
- QMD 是 OpenClaw 内置的本地搜索引擎,支持 BM25 + 向量 + reranker 混合搜索。
- 优势
- 完全本地,不依赖网络,零 API 费用
- 问题
node-llama-cpp依赖需要编译原生模块,在 Mac 上经常编译失败或超时- 第一次运行需要下载约 2GB 的本地模型
- 社区有已知 bug:搜索返回空、超时后永久降级、scope 默认拒绝群聊等
- 部署
- Step 1 · 安装QMD
- 打开终端,执行安装指令
npm list -g | grep qmd - Step 3 · 修改配置
- 打开终端,执行以下指令
node -e ' const fs = require("fs"); const path = process.env.HOME + "/.openclaw/openclaw.json"; const config = JSON.parse(fs.readFileSync(path, "utf8")); // 1. 切换 memory backend 到 qmd config.memory = config.memory || {}; config.memory.backend = "qmd"; config.memory.qmd = { searchMode: "search", scope: "all", limits: { maxResults: 6, timeoutMs: 30000 } }; // 2. 顺便修复 session.reset(如果还没改过) config.session = config.session || {}; if (!config.session.reset || config.session.reset.mode === "daily") { config.session.reset = { mode: "idle", idleMinutes: 52560000 }; console.log("✅ session.reset 已改为 idle 模式"); } fs.writeFileSync(path, JSON.stringify(config, null, 2), "utf8"); console.log("✅ memory.backend:", config.memory.backend); console.log("✅ memory.qmd.searchMode:", config.memory.qmd.searchMode); console.log("✅ memory.qmd.scope:", config.memory.qmd.scope); ' - Step 3 · 重启Gateway
openclaw gateway restart - Step 4 · 验证
- 在终端执行以下指令
openclaw doctor --fixopenclaw memory search "测试"- 如果有结果,则成功。没有结果,跑以下命令检查,看看memory 目录有没有文件
ls ~/.openclaw/workspace/memory/
- 在终端执行以下指令
- Step 5 · 测试
- 去飞书或webchat让OpenClaw搜索某个词,看是否有结果
- Step 1 · 安装QMD