资讯动态

OpenClaw `clawdbot memory` 命令完全指南:语义记忆索引与检索实战

发布时间:2026/10/4 13:37:20 来源:尧图企业网站定制
人工智能AI Agent即时通讯后端本地部署语音【免费下载链接】openclaw-cn中文社区版OpenClaw同原版保持定期更新已内置钉钉、企业微信、飞书、QQ、微信以及国内网络环境优化。你的专属个人AI助手。支持所有操作系统和平台。项目地址https://gitcode.com/gh_mirrors/op/openclaw-cn点击查看免费下载导读clawdbot memory是 OpenClaw 中管理语义记忆Semantic Memory索引与检索的命令组覆盖status状态查看、index手动重建索引、search语义搜索三个子命令。本指南以 docs/cli/memory.md 为骨架结合 src/cli/memory-cli.ts 的源码实现与 docs/concepts/memory.md 的配置体系帮助你彻底掌握如何诊断记忆索引是否可用、如何强制重建索引、如何用自然语言语义查询历史笔记以及如何通过--agent、--deep、--verbose等参数在多 Agent 与多后端内置 SQLite / QMD场景下精准控制记忆子系统。一、命令概览三个子命令各司其职clawdbot memory由当前激活的memory 插件提供。默认插件为memory-core源码见 extensions/memory-core/index.ts其register()会同时注册两个工具memory_search/memory_get以及名为memory的 CLI 命令组api.runtime.tools.registerMemoryCli(program)。若想彻底关闭记忆功能可在配置中设置plugins: { slots: { memory: none }, }命令组包含三个子命令子命令功能常用场景clawdbot memory status查看当前记忆索引状态诊断索引是否可用、是否过期clawdbot memory index手动重建/同步记忆索引配置变更后强制刷新索引clawdbot memory search query对记忆文件做语义搜索用自然语言召回历史笔记完整用法示例clawdbot memory status clawdbot memory status --deep clawdbot memory status --deep --index clawdbot memory status --deep --index --verbose clawdbot memory index clawdbot memory index --verbose clawdbot memory search release checklist clawdbot memory status --agent main clawdbot memory index --agent main --verbose二、memory status诊断记忆索引健康度status子命令展示记忆搜索索引的当前状态。不带额外参数时只做基础探测加上--deep后它会依次探测向量库可用性与嵌入Embedding提供方可用性是排查“记忆为什么搜不到结果”的第一工具。选项与行为--agent id将查询范围限定到单个 Agent默认覆盖所有已配置 Agent。从源码看resolveAgentIds()会优先使用--agent指定的 ID未指定时取agents.list中的全部 Agent否则回退到默认 Agentsrc/cli/memory-cli.ts。--deep额外探测向量与嵌入可用性probeVectorAvailability()probeEmbeddingAvailability()见 src/cli/memory-cli.ts。--index隐含--deep并在索引处于 dirty脏状态时执行一次重建。源码中deep Boolean(opts.deep || opts.index)随后调用manager.sync({ reason: cli, force })src/cli/memory-cli.ts。--verbose在探测与索引过程中输出详细日志。--json以 JSON 结构化输出全部状态便于脚本化解析。输出字段解读status输出由 src/cli/memory-cli.ts 组装包含以下关键行每条都有明确的调试含义字段含义Provider/Model当前嵌入提供方与模型(requested: ...)显示配置中请求的提供方Sources参与索引的数据源memory或sessionsExtra paths额外索引的 Markdown 路径来自memorySearch.extraPathsIndexed已索引文件数/磁盘文件数 · 分块数可据此判断索引是否落后于文件系统Dirtyyes表示内存文件有变动、索引待同步Store索引数据库文件路径默认~/.openclaw/memory/agentId.sqliteWorkspaceAgent 工作区目录Embeddings--deep时显示ready/unavailable及错误原因Vectorsqlite-vec 向量加速状态ready/unavailable/disabled含维度与加载路径FTS全文检索BM25可用性Embedding cache嵌入缓存是否启用及当前条目数Batch批量嵌入状态failures/limitFallback是否从本地嵌入回退到了远程提供方及原因Issues扫描记忆文件时发现的问题如目录缺失、文件不可读如果探测到向量扩展缺失或嵌入提供方不可用命令行会以醒目标识展示具体错误——这正是memory status --deep的核心价值一次性暴露“记忆为何失效”的根因。源码级依据状态类型定义与输出字段一一对应见 src/memory/manager.ts 的status()实现及 src/memory/types.ts。单元测试 src/cli/memory-cli.test.ts 验证了典型输出向量可用时打印Vector: ready、Vector dims: 1024、FTS: ready、Embedding cache: enabled (123 entries)向量加载失败时打印Vector: unavailable与具体loadError。三、memory index手动重建语义索引index子命令用于手动触发一次记忆索引同步reindex。与status --index的“脏了就重建”不同index是显式主动重建并提供--force选项强制全量重来。选项--agent id限定 Agent默认全部/默认 Agent。--force强制全量重建忽略增量同步逻辑源码中force: Boolean(opts.force)传入syncFn。--verbose打印每个阶段的详细信息——提供方、模型、数据源、批次活动batch activity。执行细节索引过程使用进度条展示completed/total--verbose时每 1 秒刷新一次标签显示Indexing memory… · elapsed mm:ss · eta mm:sssrc/cli/memory-cli.ts。若后端不支持手动重建例如某些第三方后端CLI 会打印Memory backend does not support manual reindex.而不是报错崩溃。索引失败时设置进程退出码为 1 并输出Memory index failed (agentId): 原因。什么时候需要手动重建根据 docs/concepts/memory.md 的说明索引会自动触发重建的典型情形包括嵌入提供方/模型/端点指纹/分块参数发生变更——此时 OpenClaw 会检测到memory_index_meta_v1元数据不一致并自动重置全库。手动index --force适用于怀疑索引与磁盘内容不一致、磁盘文件被外部工具批量修改、或切换嵌入模型后想立即刷新。四、memory search自然语言语义检索search子命令接收一个查询串对记忆文件做语义搜索返回带分数、文件路径与行号范围的结果。clawdbot memory search release checklist clawdbot memory search release checklist --agent main clawdbot memory search release checklist --max-results 10 clawdbot memory search release checklist --min-score 0.5 --json选项--agent id指定搜索的 Agent默认 Agent。--max-results n返回结果数上限。--min-score n最低分数阈值低于该分数的结果被过滤。--json输出{ results: [...] }的 JSON 结构。输出格式非 JSON 模式下每条结果打印三行0.823 /path/to/MEMORY.md:12-15 片段文本截断到 ~700 字符分数score.toFixed(3)在前接着是路径:起始行-结束行随后是片段文本src/cli/memory-cli.ts。无匹配时输出No matches.。语义搜索背后的机制memory search直接调用MemoryIndexManager.search()src/memory/manager.ts其底层逻辑与模型工具memory_search完全一致分块将MEMORY.md与memory/**/*.md切成约 400 token、80 token 重叠的 Markdown 块。向量召回按余弦相似度取候选。BM25 全文召回混合检索开启时对精确 tokenID、代码符号、错误串更友好textScore 1 / (1 max(0, bm25Rank))。加权合并finalScore vectorWeight * vectorScore textWeight * textScore权重在配置解析时归一化到 1.0如vectorWeight: 0.7, textWeight: 0.3。实现见 src/memory/hybrid.ts合并策略的详细推导见 docs/concepts/memory.md 的 “Hybrid search” 小节。因此memory search release checklist这类“语义相近但措辞不同”的查询如“发布检查单”“上线清单”也能被召回而精确 token如某个 commit hash则依赖 BM25 通道。五、--agent与多 Agent 作用域两个关键点status与index默认遍历所有 AgentresolveAgentIds()在未指定--agent时返回agents.list中全部 Agent 的 IDsrc/cli/memory-cli.ts因此输出会按 Agent 分组逐一展示。search默认只搜默认 AgentresolveAgent()未指定时仅返回默认 Agent IDsrc/cli/memory-cli.ts。每个 Agent 拥有独立的索引库~/.openclaw/memory/agentId.sqlite可通过memorySearch.store.path配置支持{agentId}占位符互不串扰。会话索引experimental 的sources: [memory, sessions]同样按 Agent 隔离只索引该 Agent 自己的会话日志。六、配置联动CLI 背后的记忆体系CLI 只是记忆子系统的入口之一其行为由以下配置项驱动均在agents.defaults.memorySearch下注意不是顶层memorySearch提供方自动选择若未显式设置memorySearch.providerOpenClaw 按以下顺序自动选择docs/concepts/memory.mdlocal——若配置了memorySearch.local.modelPath且文件存在openai——若能解析到 OpenAI Keygemini——若能解析到 Gemini KeyGEMINI_API_KEY或models.providers.google.apiKeyvoyage——若能解析到 Voyage KeyVOYAGE_API_KEY或models.providers.voyage.apiKey否则记忆搜索保持禁用直到配置就绪。远程嵌入必须有对应提供方的 API KeyCodex OAuth 仅覆盖 chat/completions不满足嵌入调用。使用自定义 OpenAI 兼容端点时需设置memorySearch.remote.apiKey可附加remote.headers。与 CLI 相关的核心配置agents: { defaults: { memorySearch: { provider: openai, model: text-embedding-3-small, fallback: local, // 主提供方失败时回退 extraPaths: [../team-docs], // 额外索引的 Markdown 路径 query: { hybrid: { enabled: true, vectorWeight: 0.7, textWeight: 0.3, candidateMultiplier: 4 }, }, cache: { enabled: true, maxEntries: 50000 }, store: { path: ~/.openclaw/memory/{agentId}.sqlite }, }, }, },这些配置直接影响memory status的输出Provider/Model/Extra paths/Cache 等行与memory index的重建范围。例如extraPaths中的目录会被递归扫描.md文件、但忽略符号链接hybrid.enabled决定搜索是否同时走向量 BM25 双通道。QMD 后端可选通过memory.backend qmd可把内置 SQLite 索引器替换为本地优先的 QMD 搜索 sidecarBM25 向量 重排序。开启后memory status的Store/后端标识会显示qmd诊断时可直接判断当前由哪个引擎服务检索。QMD 相关配置memory.qmd.*包括command、searchModesearch/vsearch/query、includeDefaultMemory、paths[]、sessions、update、limits、scope等完整示例见 docs/concepts/memory.md 的 “QMD backend” 小节。七、实战排查清单结合clawdbot memory的三个子命令推荐以下诊断路径先看状态clawdbot memory status --agent main——确认 Provider/Model、Indexed 数量、Dirty 标记。深入探测clawdbot memory status --deep——若 Embeddings 显示unavailable检查对应提供方 API Key 是否配置若 Vector 显示unavailable检查 sqlite-vec 扩展是否可加载缺失时会回退到进程内余弦相似度并打印 loadError。按需重建clawdbot memory index --agent main --force --verbose——修改了嵌入模型或切换后端后立即刷新--verbose可看到每个阶段的提供方、模型、数据源与批次活动。验证检索clawdbot memory search 语义查询——用自然语言验证召回质量--json可脚本化比对分数分布。八、总结clawdbot memory将 OpenClaw 的记忆子系统浓缩为三个可组合的命令status负责“诊断”index负责“修复”search负责“使用”。配合--agent、--deep、--force、--json等选项它可以覆盖从单 Agent 日常维护到多 Agent 批量诊断的全部场景而底层的混合检索向量 BM25、sqlite-vec 加速、嵌入缓存与 QMD 后端切换则让这套 CLI 在索引规模增长时依然保持可用性与可观测性。想进一步了解记忆文件布局、自动内存刷新pre-compaction flush与向量索引原理可阅读 docs/concepts/memory.md 与 src/memory/manager.ts。赞分享人工智能AI Agent即时通讯后端本地部署语音【免费下载链接】openclaw-cn中文社区版OpenClaw同原版保持定期更新已内置钉钉、企业微信、飞书、QQ、微信以及国内网络环境优化。你的专属个人AI助手。支持所有操作系统和平台。项目地址https://gitcode.com/gh_mirrors/op/openclaw-cn点击查看免费下载相关推荐OpenClaw clawdbot docs 命令全解析在终端内直接检索在线文档索引OpenClaw clawdbot docs 命令全解析在终端内直接检索在线文档索引 clawdbot docs 是 OpenClaw 中文社区版 CLI 提人工智能AI Agent即时通讯后端本地部署语音OpenClaw 记忆搜索Memory Search完全指南混合检索、Embedding 供应商与排序调优OpenClaw 记忆搜索Memory Search完全指南混合检索、Embedding 供应商与排序调优 OpenClaw 的 memory_searcAI 应用AI Agent交互助手后端即时通讯网关LEANN Memory Search for OpenClaw基于图剪枝重计算的本地语义记忆检索技能实战LEANN Memory Search for OpenClaw基于图剪枝重计算的本地语义记忆检索技能实战 LEANN Memory Search 是 LEA人工智能大模型数据库向量数据库RAG本地部署MCP 服务上一篇Axure中文语言包终极指南三分钟让你的原型设计工具变中文下一篇Montserrat字体免费开源几何无衬线字体的终极指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑