chore(i18n): refresh zh-CN translations
This commit is contained in:
parent
e3519a2238
commit
982dcccbc1
@ -1,27 +1,27 @@
|
||||
---
|
||||
read_when:
|
||||
- 你想将 QMD 设置为你的记忆后端
|
||||
- 你想使用重排序或额外索引路径等高级记忆功能
|
||||
summary: 采用本地优先的搜索 sidecar,支持 BM25、向量搜索、重排序和查询扩展
|
||||
title: QMD 记忆引擎
|
||||
- 你想要高级记忆功能,例如重排序或额外的索引路径
|
||||
summary: 本地优先的搜索 sidecar,支持 BM25、向量、重排序和查询扩展
|
||||
title: QMD Memory Engine
|
||||
x-i18n:
|
||||
generated_at: "2026-04-06T00:47:17Z"
|
||||
generated_at: "2026-04-12T17:53:41Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 36642c7df94b88f562745dd2270334379f2aeeef4b363a8c13ef6be42dadbe5c
|
||||
source_hash: 27afc996b959d71caed964a3cae437e0e29721728b30ebe7f014db124c88da04
|
||||
source_path: concepts/memory-qmd.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# QMD 记忆引擎
|
||||
# QMD Memory Engine
|
||||
|
||||
[QMD](https://github.com/tobi/qmd) 是一个本地优先的搜索 sidecar,与 OpenClaw 一同运行。它将 BM25、向量搜索和重排序整合到单个二进制文件中,并且可以索引超出你的工作区记忆文件范围的内容。
|
||||
[QMD](https://github.com/tobi/qmd) 是一个与 OpenClaw 一起运行的本地优先搜索 sidecar。它将 BM25、向量搜索和重排序整合到一个二进制文件中,并且可以为你的工作区记忆文件之外的内容建立索引。
|
||||
|
||||
## 相比内置功能增加了什么
|
||||
|
||||
- **重排序和查询扩展**,以获得更好的召回效果。
|
||||
- **索引额外目录** —— 项目文档、团队笔记、磁盘上的任何内容。
|
||||
- **索引会话转录** —— 回忆更早的对话。
|
||||
- **为额外目录建立索引** —— 项目文档、团队笔记、磁盘上的任何内容。
|
||||
- **为会话转录建立索引** —— 回忆更早的对话。
|
||||
- **完全本地运行** —— 通过 Bun + node-llama-cpp 运行,自动下载 GGUF 模型。
|
||||
- **自动回退** —— 如果 QMD 不可用,OpenClaw 会无缝回退到内置引擎。
|
||||
|
||||
@ -30,9 +30,9 @@ x-i18n:
|
||||
### 前提条件
|
||||
|
||||
- 安装 QMD:`npm install -g @tobilu/qmd` 或 `bun install -g @tobilu/qmd`
|
||||
- 支持扩展的 SQLite 构建版本(在 macOS 上使用 `brew install sqlite`)。
|
||||
- QMD 必须位于 Gateway 网关的 `PATH` 中。
|
||||
- macOS 和 Linux 开箱即用。Windows 最佳支持方式是通过 WSL2。
|
||||
- 允许扩展的 SQLite 构建版本(在 macOS 上使用 `brew install sqlite`)。
|
||||
- QMD 必须位于 Gateway 网关的 `PATH` 上。
|
||||
- macOS 和 Linux 开箱即用。Windows 通过 WSL2 的支持最佳。
|
||||
|
||||
### 启用
|
||||
|
||||
@ -44,22 +44,23 @@ x-i18n:
|
||||
}
|
||||
```
|
||||
|
||||
OpenClaw 会在 `~/.openclaw/agents/<agentId>/qmd/` 下创建一个自包含的 QMD 主目录,并自动管理 sidecar 的生命周期 —— collection、更新和 embedding 运行都会由它为你处理。它会优先使用当前的 QMD collection 和 MCP 查询形态,但在需要时仍会回退到旧版的 `--mask` collection 标志和更早的 MCP 工具名称。
|
||||
OpenClaw 会在 `~/.openclaw/agents/<agentId>/qmd/` 下创建一个自包含的 QMD 主目录,并自动管理 sidecar 生命周期 —— 集合、更新和嵌入运行都会为你处理。它会优先使用当前的 QMD 集合和 MCP 查询格式,但在需要时仍会回退到旧版 `--mask` 集合标志和较旧的 MCP 工具名称。
|
||||
|
||||
## sidecar 的工作方式
|
||||
|
||||
- OpenClaw 会根据你的工作区记忆文件和任何已配置的 `memory.qmd.paths` 创建 collection,然后在启动时和定期(默认每 5 分钟)运行 `qmd update` + `qmd embed`。
|
||||
- 启动时刷新会在后台运行,因此不会阻塞聊天启动。
|
||||
- 搜索会使用已配置的 `searchMode`(默认:`search`;也支持 `vsearch` 和 `query`)。如果某种模式失败,OpenClaw 会使用 `qmd query` 重试。
|
||||
- 如果 QMD 完全失败,OpenClaw 会回退到内置的 SQLite 引擎。
|
||||
- OpenClaw 会根据你的工作区记忆文件以及任何已配置的 `memory.qmd.paths` 创建集合,然后在启动时和定期执行 `qmd update` + `qmd embed`(默认每 5 分钟一次)。
|
||||
- 默认工作区集合会跟踪 `MEMORY.md` 以及 `memory/` 目录树。小写的 `memory.md` 仍然只是启动引导回退项,而不是单独的 QMD 集合。
|
||||
- 启动刷新会在后台运行,因此不会阻塞聊天启动。
|
||||
- 搜索会使用配置的 `searchMode`(默认:`search`;也支持 `vsearch` 和 `query`)。如果某种模式失败,OpenClaw 会使用 `qmd query` 重试。
|
||||
- 如果 QMD 完全失败,OpenClaw 会回退到内置 SQLite 引擎。
|
||||
|
||||
<Info>
|
||||
首次搜索可能较慢 —— QMD 会在第一次运行 `qmd query` 时自动下载用于重排序和查询扩展的 GGUF 模型(约 2 GB)。
|
||||
首次搜索可能会比较慢 —— QMD 会在第一次运行 `qmd query` 时自动下载用于重排序和查询扩展的 GGUF 模型(约 2 GB)。
|
||||
</Info>
|
||||
|
||||
## 模型覆盖
|
||||
|
||||
QMD 的模型环境变量会从 Gateway 网关进程原样透传,因此你可以全局调整 QMD,而无需添加新的 OpenClaw 配置:
|
||||
QMD 模型环境变量会从 Gateway 网关进程原样透传,因此你可以全局调整 QMD,而无需新增 OpenClaw 配置:
|
||||
|
||||
```bash
|
||||
export QMD_EMBED_MODEL="hf:Qwen/Qwen3-Embedding-0.6B-GGUF/Qwen3-Embedding-0.6B-Q8_0.gguf"
|
||||
@ -67,11 +68,11 @@ export QMD_RERANK_MODEL="/absolute/path/to/reranker.gguf"
|
||||
export QMD_GENERATE_MODEL="/absolute/path/to/generator.gguf"
|
||||
```
|
||||
|
||||
更改 embedding 模型后,请重新运行 embeddings,以确保索引与新的向量空间匹配。
|
||||
更改嵌入模型后,请重新运行嵌入,以确保索引与新的向量空间匹配。
|
||||
|
||||
## 为额外路径建立索引
|
||||
|
||||
将 QMD 指向其他目录,使其内容可被搜索:
|
||||
将 QMD 指向附加目录,使其可被搜索:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -84,7 +85,7 @@ export QMD_GENERATE_MODEL="/absolute/path/to/generator.gguf"
|
||||
}
|
||||
```
|
||||
|
||||
来自额外路径的片段会在搜索结果中显示为 `qmd/<collection>/<relative-path>`。`memory_get` 能识别此前缀,并从正确的 collection 根目录读取内容。
|
||||
来自额外路径的片段会在搜索结果中显示为 `qmd/<collection>/<relative-path>`。`memory_get` 能识别此前缀,并从正确的集合根目录读取。
|
||||
|
||||
## 为会话转录建立索引
|
||||
|
||||
@ -101,11 +102,11 @@ export QMD_GENERATE_MODEL="/absolute/path/to/generator.gguf"
|
||||
}
|
||||
```
|
||||
|
||||
转录内容会被导出为经过清理的用户/助手轮次,并存入 `~/.openclaw/agents/<id>/qmd/sessions/` 下的专用 QMD collection。
|
||||
转录会以经过净化的用户/助手轮次形式导出到专用的 QMD 集合中,位置为 `~/.openclaw/agents/<id>/qmd/sessions/`。
|
||||
|
||||
## 搜索范围
|
||||
|
||||
默认情况下,QMD 搜索结果只会在私信会话中显示(不包括群组或渠道)。配置 `memory.qmd.scope` 可更改此行为:
|
||||
默认情况下,QMD 搜索结果会显示在私信和渠道会话中(不包括群组)。可通过配置 `memory.qmd.scope` 来更改:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -120,11 +121,11 @@ export QMD_GENERATE_MODEL="/absolute/path/to/generator.gguf"
|
||||
}
|
||||
```
|
||||
|
||||
当范围规则拒绝某次搜索时,OpenClaw 会记录一条警告日志,其中包含推导出的渠道和聊天类型,以便更容易调试空结果问题。
|
||||
当范围阻止搜索时,OpenClaw 会记录一条警告日志,其中包含推导出的渠道和聊天类型,以便更容易调试空结果。
|
||||
|
||||
## 引用
|
||||
|
||||
当 `memory.citations` 为 `auto` 或 `on` 时,搜索片段会包含一个 `Source: <path#line>` 页脚。将 `memory.citations = "off"` 可省略该页脚,同时仍会在内部将路径传递给智能体。
|
||||
当 `memory.citations` 为 `auto` 或 `on` 时,搜索片段会包含 `Source: <path#line>` 页脚。将 `memory.citations = "off"` 可省略该页脚,同时仍会在内部将路径传递给智能体。
|
||||
|
||||
## 何时使用
|
||||
|
||||
@ -133,25 +134,24 @@ export QMD_GENERATE_MODEL="/absolute/path/to/generator.gguf"
|
||||
- 通过重排序获得更高质量的结果。
|
||||
- 搜索工作区之外的项目文档或笔记。
|
||||
- 回忆过去的会话对话。
|
||||
- 完全本地搜索且无需 API 密钥。
|
||||
- 完全本地的搜索,无需 API 密钥。
|
||||
|
||||
对于更简单的设置,[内置引擎](/zh-CN/concepts/memory-builtin) 也能很好地工作,并且无需额外依赖。
|
||||
对于更简单的设置,[内置引擎](/zh-CN/concepts/memory-builtin) 在无需额外依赖的情况下也能很好地工作。
|
||||
|
||||
## 故障排除
|
||||
|
||||
**找不到 QMD?** 请确保该二进制文件位于 Gateway 网关的 `PATH` 中。如果 OpenClaw 作为服务运行,请创建一个符号链接:
|
||||
**找不到 QMD?** 请确保该二进制文件位于 Gateway 网关的 `PATH` 上。如果 OpenClaw 作为服务运行,请创建符号链接:
|
||||
`sudo ln -s ~/.bun/bin/qmd /usr/local/bin/qmd`。
|
||||
|
||||
**首次搜索非常慢?** QMD 会在首次使用时下载 GGUF 模型。你可以使用与 OpenClaw 相同的 XDG 目录运行 `qmd query "test"` 来预热。
|
||||
**首次搜索非常慢?** QMD 会在首次使用时下载 GGUF 模型。可使用与 OpenClaw 相同的 XDG 目录运行 `qmd query "test"` 进行预热。
|
||||
|
||||
**搜索超时?** 增加 `memory.qmd.limits.timeoutMs`(默认:4000ms)。对于较慢的硬件,可设置为 `120000`。
|
||||
|
||||
**群聊中结果为空?** 检查 `memory.qmd.scope` —— 默认仅允许私信会话。
|
||||
**群聊中结果为空?** 检查 `memory.qmd.scope` —— 默认仅允许私信和渠道会话。
|
||||
|
||||
**工作区可见的临时仓库导致 `ENAMETOOLONG` 或索引损坏?**
|
||||
QMD 遍历当前遵循底层 QMD 扫描器的行为,而不是 OpenClaw 内置的符号链接规则。在 QMD 提供具备循环安全的遍历或显式排除控制之前,请将临时 monorepo 检出保存在 `.tmp/` 之类的隐藏目录中,或放在已索引 QMD 根目录之外。
|
||||
QMD 当前的遍历遵循底层 QMD 扫描器的行为,而不是 OpenClaw 内置的符号链接规则。在 QMD 提供循环安全遍历或显式排除控制之前,请将临时 monorepo 检出保存在 `.tmp/` 等隐藏目录下,或放在已建立索引的 QMD 根目录之外。
|
||||
|
||||
## 配置
|
||||
|
||||
要查看完整的配置范围(`memory.qmd.*`)、搜索模式、更新间隔、范围规则及其他所有可调项,请参阅
|
||||
[记忆配置参考](/zh-CN/reference/memory-config)。
|
||||
有关完整配置范围(`memory.qmd.*`)、搜索模式、更新间隔、范围规则以及所有其他可调项,请参阅[记忆配置参考](/zh-CN/reference/memory-config)。
|
||||
|
||||
@ -2,78 +2,78 @@
|
||||
read_when:
|
||||
- 你想要配置内存搜索提供商或嵌入模型
|
||||
- 你想要设置 QMD 后端
|
||||
- '你想要调优混合搜索、MMR 或时间衰减】【。analysis to=none code વિચાર: Need translate only. user says sentence. output Chinese. MMR probably keep? not glossary but acronym maybe keep. final only.'
|
||||
- 你想要调整混合搜索、MMR 或时间衰减参数
|
||||
- 你想要启用多模态内存索引】【。
|
||||
summary: 内存搜索、嵌入提供商、QMD、混合搜索和多模态索引的所有配置项
|
||||
summary: 内存搜索、嵌入提供商、QMD、混合搜索和多模态索引的所有配置选项
|
||||
title: 内存配置参考
|
||||
x-i18n:
|
||||
generated_at: "2026-04-09T16:29:14Z"
|
||||
generated_at: "2026-04-12T17:53:57Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 5f9076bdfad95b87bd70625821bf401326f8eaeb53842b70823881419dbe43cb
|
||||
source_hash: 299ca9b69eea292ea557a2841232c637f5c1daf2bc0f73c0a42f7c0d8d566ce2
|
||||
source_path: reference/memory-config.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# 内存配置参考
|
||||
|
||||
本页列出了 OpenClaw 内存搜索的所有配置项。有关概念性概览,请参阅:
|
||||
本页列出了 OpenClaw 内存搜索的所有配置选项。有关概念性概览,请参见:
|
||||
|
||||
- [内存概览](/zh-CN/concepts/memory) -- 内存的工作方式
|
||||
- [内置引擎](/zh-CN/concepts/memory-builtin) -- 默认的 SQLite 后端
|
||||
- [QMD 引擎](/zh-CN/concepts/memory-qmd) -- 本地优先的 sidecar
|
||||
- [内存搜索](/zh-CN/concepts/memory-search) -- 搜索流水线和调优
|
||||
- [主动记忆](/zh-CN/concepts/active-memory) -- 为交互式会话启用内存子智能体
|
||||
- [内存搜索](/zh-CN/concepts/memory-search) -- 搜索流水线与调优
|
||||
- [活跃内存](/zh-CN/concepts/active-memory) -- 为交互式会话启用内存子智能体
|
||||
|
||||
除非另有说明,所有内存搜索设置都位于 `openclaw.json` 中的 `agents.defaults.memorySearch` 下。
|
||||
除非另有说明,所有内存搜索设置都位于 `openclaw.json` 的 `agents.defaults.memorySearch` 下。
|
||||
|
||||
如果你要查找 **主动记忆** 功能开关和子智能体配置,它位于 `plugins.entries.active-memory` 下,而不是 `memorySearch`。
|
||||
如果你正在寻找 **活跃内存** 的功能开关和子智能体配置,它位于 `plugins.entries.active-memory` 下,而不是 `memorySearch`。
|
||||
|
||||
主动记忆使用双门控模型:
|
||||
活跃内存使用双门槛模型:
|
||||
|
||||
1. 插件必须已启用,并且目标指向当前智能体 id
|
||||
1. 插件必须已启用,并以当前智能体 ID 为目标
|
||||
2. 请求必须是符合条件的交互式持久聊天会话
|
||||
|
||||
有关激活模型、插件自有配置、转录持久化以及安全发布模式,请参阅 [主动记忆](/zh-CN/concepts/active-memory)。
|
||||
有关激活模型、插件自有配置、转录持久化和安全发布模式,请参见 [活跃内存](/zh-CN/concepts/active-memory)。
|
||||
|
||||
---
|
||||
|
||||
## 提供商选择
|
||||
|
||||
| Key | Type | Default | Description |
|
||||
| ---------- | --------- | ---------------- | ------------------------------------------------------------------------------------------- |
|
||||
| `provider` | `string` | 自动检测 | 嵌入适配器 ID:`openai`、`gemini`、`voyage`、`mistral`、`bedrock`、`ollama`、`local` |
|
||||
| `model` | `string` | 提供商默认值 | 嵌入模型名称 |
|
||||
| `fallback` | `string` | `"none"` | 主适配器失败时使用的后备适配器 ID |
|
||||
| `enabled` | `boolean` | `true` | 启用或禁用内存搜索 |
|
||||
| 键名 | 类型 | 默认值 | 说明 |
|
||||
| ---------- | --------- | -------------- | ------------------------------------------------------------------------------------ |
|
||||
| `provider` | `string` | 自动检测 | 嵌入适配器 ID:`openai`、`gemini`、`voyage`、`mistral`、`bedrock`、`ollama`、`local` |
|
||||
| `model` | `string` | 提供商默认值 | 嵌入模型名称 |
|
||||
| `fallback` | `string` | `"none"` | 当主提供商失败时使用的后备适配器 ID |
|
||||
| `enabled` | `boolean` | `true` | 启用或禁用内存搜索 |
|
||||
|
||||
### 自动检测顺序
|
||||
|
||||
当未设置 `provider` 时,OpenClaw 会选择第一个可用项:
|
||||
|
||||
1. `local` -- 如果已配置 `memorySearch.local.modelPath` 且文件存在。
|
||||
2. `openai` -- 如果可以解析 OpenAI key。
|
||||
3. `gemini` -- 如果可以解析 Gemini key。
|
||||
4. `voyage` -- 如果可以解析 Voyage key。
|
||||
5. `mistral` -- 如果可以解析 Mistral key。
|
||||
2. `openai` -- 如果可以解析 OpenAI 密钥。
|
||||
3. `gemini` -- 如果可以解析 Gemini 密钥。
|
||||
4. `voyage` -- 如果可以解析 Voyage 密钥。
|
||||
5. `mistral` -- 如果可以解析 Mistral 密钥。
|
||||
6. `bedrock` -- 如果 AWS SDK 凭证链可以解析(实例角色、访问密钥、profile、SSO、web identity 或共享配置)。
|
||||
|
||||
支持 `ollama`,但不会自动检测(请显式设置)。
|
||||
支持 `ollama`,但不会自动检测它(请显式设置)。
|
||||
|
||||
### API 密钥解析
|
||||
|
||||
远程嵌入需要 API 密钥。Bedrock 则改用 AWS SDK 默认凭证链(实例角色、SSO、访问密钥)。
|
||||
远程嵌入需要 API 密钥。Bedrock 则改为使用 AWS SDK 默认凭证链(实例角色、SSO、访问密钥)。
|
||||
|
||||
| Provider | Env var | Config key |
|
||||
| -------- | ------------------------------ | --------------------------------- |
|
||||
| OpenAI | `OPENAI_API_KEY` | `models.providers.openai.apiKey` |
|
||||
| Gemini | `GEMINI_API_KEY` | `models.providers.google.apiKey` |
|
||||
| Voyage | `VOYAGE_API_KEY` | `models.providers.voyage.apiKey` |
|
||||
| Mistral | `MISTRAL_API_KEY` | `models.providers.mistral.apiKey` |
|
||||
| Bedrock | AWS 凭证链 | 不需要 API 密钥 |
|
||||
| Ollama | `OLLAMA_API_KEY`(占位符) | -- |
|
||||
| 提供商 | 环境变量 | 配置键 |
|
||||
| ------ | ------------------------------ | --------------------------------- |
|
||||
| OpenAI | `OPENAI_API_KEY` | `models.providers.openai.apiKey` |
|
||||
| Gemini | `GEMINI_API_KEY` | `models.providers.google.apiKey` |
|
||||
| Voyage | `VOYAGE_API_KEY` | `models.providers.voyage.apiKey` |
|
||||
| Mistral | `MISTRAL_API_KEY` | `models.providers.mistral.apiKey` |
|
||||
| Bedrock | AWS 凭证链 | 不需要 API 密钥 |
|
||||
| Ollama | `OLLAMA_API_KEY`(占位符) | -- |
|
||||
|
||||
Codex OAuth 仅覆盖聊天/completions,不满足嵌入请求的要求。
|
||||
Codex OAuth 仅覆盖 chat/completions,不满足嵌入请求。
|
||||
|
||||
---
|
||||
|
||||
@ -81,11 +81,11 @@ Codex OAuth 仅覆盖聊天/completions,不满足嵌入请求的要求。
|
||||
|
||||
用于自定义 OpenAI 兼容端点或覆盖提供商默认值:
|
||||
|
||||
| Key | Type | Description |
|
||||
| ---------------- | -------- | -------------------------------------------- |
|
||||
| `remote.baseUrl` | `string` | 自定义 API 基础 URL |
|
||||
| `remote.apiKey` | `string` | 覆盖 API 密钥 |
|
||||
| `remote.headers` | `object` | 额外的 HTTP headers(与提供商默认值合并) |
|
||||
| 键名 | 类型 | 说明 |
|
||||
| ---------------- | -------- | ---------------------------------------- |
|
||||
| `remote.baseUrl` | `string` | 自定义 API 基础 URL |
|
||||
| `remote.apiKey` | `string` | 覆盖 API 密钥 |
|
||||
| `remote.headers` | `object` | 额外的 HTTP 标头(与提供商默认值合并) |
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -106,12 +106,12 @@ Codex OAuth 仅覆盖聊天/completions,不满足嵌入请求的要求。
|
||||
|
||||
---
|
||||
|
||||
## Gemini 专用配置
|
||||
## Gemini 专属配置
|
||||
|
||||
| Key | Type | Default | Description |
|
||||
| ---------------------- | -------- | ---------------------- | ------------------------------------------ |
|
||||
| `model` | `string` | `gemini-embedding-001` | 也支持 `gemini-embedding-2-preview` |
|
||||
| `outputDimensionality` | `number` | `3072` | 对于 Embedding 2:768、1536 或 3072 |
|
||||
| 键名 | 类型 | 默认值 | 说明 |
|
||||
| ---------------------- | -------- | ---------------------- | ------------------------------------------- |
|
||||
| `model` | `string` | `gemini-embedding-001` | 也支持 `gemini-embedding-2-preview` |
|
||||
| `outputDimensionality` | `number` | `3072` | 对于 Embedding 2:可选 768、1536 或 3072 |
|
||||
|
||||
<Warning>
|
||||
更改模型或 `outputDimensionality` 会触发自动全量重新索引。
|
||||
@ -122,7 +122,8 @@ Codex OAuth 仅覆盖聊天/completions,不满足嵌入请求的要求。
|
||||
## Bedrock 嵌入配置
|
||||
|
||||
Bedrock 使用 AWS SDK 默认凭证链 -- 不需要 API 密钥。
|
||||
如果 OpenClaw 运行在具有 Bedrock 权限实例角色的 EC2 上,只需设置提供商和模型:
|
||||
如果 OpenClaw 在具有 Bedrock 启用实例角色的 EC2 上运行,只需设置
|
||||
提供商和模型:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -137,41 +138,43 @@ Bedrock 使用 AWS SDK 默认凭证链 -- 不需要 API 密钥。
|
||||
}
|
||||
```
|
||||
|
||||
| Key | Type | Default | Description |
|
||||
| ---------------------- | -------- | ------------------------------ | ------------------------------ |
|
||||
| `model` | `string` | `amazon.titan-embed-text-v2:0` | 任意 Bedrock 嵌入模型 ID |
|
||||
| 键名 | 类型 | 默认值 | 说明 |
|
||||
| ---------------------- | -------- | ------------------------------ | ------------------------- |
|
||||
| `model` | `string` | `amazon.titan-embed-text-v2:0` | 任意 Bedrock 嵌入模型 ID |
|
||||
| `outputDimensionality` | `number` | 模型默认值 | 对于 Titan V2:256、512 或 1024 |
|
||||
|
||||
### 支持的模型
|
||||
|
||||
支持以下模型(带系列检测和维度默认值):
|
||||
支持以下模型(带有系列检测和默认维度):
|
||||
|
||||
| Model ID | Provider | Default Dims | Configurable Dims |
|
||||
| ------------------------------------------ | ---------- | ------------ | -------------------- |
|
||||
| `amazon.titan-embed-text-v2:0` | Amazon | 1024 | 256, 512, 1024 |
|
||||
| `amazon.titan-embed-text-v1` | Amazon | 1536 | -- |
|
||||
| `amazon.titan-embed-g1-text-02` | Amazon | 1536 | -- |
|
||||
| `amazon.titan-embed-image-v1` | Amazon | 1024 | -- |
|
||||
| `amazon.nova-2-multimodal-embeddings-v1:0` | Amazon | 1024 | 256, 384, 1024, 3072 |
|
||||
| `cohere.embed-english-v3` | Cohere | 1024 | -- |
|
||||
| `cohere.embed-multilingual-v3` | Cohere | 1024 | -- |
|
||||
| `cohere.embed-v4:0` | Cohere | 1536 | 256-1536 |
|
||||
| `twelvelabs.marengo-embed-3-0-v1:0` | TwelveLabs | 512 | -- |
|
||||
| `twelvelabs.marengo-embed-2-7-v1:0` | TwelveLabs | 1024 | -- |
|
||||
| 模型 ID | 提供商 | 默认维度 | 可配置维度 |
|
||||
| ------------------------------------------ | ---------- | -------- | -------------------- |
|
||||
| `amazon.titan-embed-text-v2:0` | Amazon | 1024 | 256、512、1024 |
|
||||
| `amazon.titan-embed-text-v1` | Amazon | 1536 | -- |
|
||||
| `amazon.titan-embed-g1-text-02` | Amazon | 1536 | -- |
|
||||
| `amazon.titan-embed-image-v1` | Amazon | 1024 | -- |
|
||||
| `amazon.nova-2-multimodal-embeddings-v1:0` | Amazon | 1024 | 256、384、1024、3072 |
|
||||
| `cohere.embed-english-v3` | Cohere | 1024 | -- |
|
||||
| `cohere.embed-multilingual-v3` | Cohere | 1024 | -- |
|
||||
| `cohere.embed-v4:0` | Cohere | 1536 | 256-1536 |
|
||||
| `twelvelabs.marengo-embed-3-0-v1:0` | TwelveLabs | 512 | -- |
|
||||
| `twelvelabs.marengo-embed-2-7-v1:0` | TwelveLabs | 1024 | -- |
|
||||
|
||||
带吞吐量后缀的变体(例如 `amazon.titan-embed-text-v1:2:8k`)会继承基础模型的配置。
|
||||
带吞吐量后缀的变体(例如 `amazon.titan-embed-text-v1:2:8k`)会继承
|
||||
基础模型的配置。
|
||||
|
||||
### 身份验证
|
||||
### 认证
|
||||
|
||||
Bedrock 身份验证使用标准 AWS SDK 凭证解析顺序:
|
||||
Bedrock 认证使用标准 AWS SDK 凭证解析顺序:
|
||||
|
||||
1. 环境变量(`AWS_ACCESS_KEY_ID` + `AWS_SECRET_ACCESS_KEY`)
|
||||
2. SSO 令牌缓存
|
||||
3. Web identity token 凭证
|
||||
3. Web identity 令牌凭证
|
||||
4. 共享凭证和配置文件
|
||||
5. ECS 或 EC2 元数据凭证
|
||||
|
||||
区域会从 `AWS_REGION`、`AWS_DEFAULT_REGION`、`amazon-bedrock` 提供商的 `baseUrl` 中解析,或默认使用 `us-east-1`。
|
||||
区域会从 `AWS_REGION`、`AWS_DEFAULT_REGION`、`amazon-bedrock`
|
||||
提供商的 `baseUrl` 中解析,否则默认使用 `us-east-1`。
|
||||
|
||||
### IAM 权限
|
||||
|
||||
@ -195,10 +198,10 @@ arn:aws:bedrock:*::foundation-model/amazon.titan-embed-text-v2:0
|
||||
|
||||
## 本地嵌入配置
|
||||
|
||||
| Key | Type | Default | Description |
|
||||
| --------------------- | -------- | ---------------------- | -------------------------- |
|
||||
| `local.modelPath` | `string` | 自动下载 | GGUF 模型文件路径 |
|
||||
| `local.modelCacheDir` | `string` | node-llama-cpp 默认值 | 已下载模型的缓存目录 |
|
||||
| 键名 | 类型 | 默认值 | 说明 |
|
||||
| --------------------- | -------- | ---------------------- | ---------------------- |
|
||||
| `local.modelPath` | `string` | 自动下载 | GGUF 模型文件路径 |
|
||||
| `local.modelCacheDir` | `string` | `node-llama-cpp` 默认值 | 已下载模型的缓存目录 |
|
||||
|
||||
默认模型:`embeddinggemma-300m-qat-Q8_0.gguf`(约 0.6 GB,自动下载)。
|
||||
需要原生构建:`pnpm approve-builds`,然后执行 `pnpm rebuild node-llama-cpp`。
|
||||
@ -209,28 +212,28 @@ arn:aws:bedrock:*::foundation-model/amazon.titan-embed-text-v2:0
|
||||
|
||||
全部位于 `memorySearch.query.hybrid` 下:
|
||||
|
||||
| Key | Type | Default | Description |
|
||||
| --------------------- | --------- | ------- | ------------------------------ |
|
||||
| `enabled` | `boolean` | `true` | 启用混合 BM25 + 向量搜索 |
|
||||
| `vectorWeight` | `number` | `0.7` | 向量分数权重(0-1) |
|
||||
| `textWeight` | `number` | `0.3` | BM25 分数权重(0-1) |
|
||||
| `candidateMultiplier` | `number` | `4` | 候选池大小乘数 |
|
||||
| 键名 | 类型 | 默认值 | 说明 |
|
||||
| --------------------- | --------- | ------- | ---------------------------- |
|
||||
| `enabled` | `boolean` | `true` | 启用 BM25 + 向量混合搜索 |
|
||||
| `vectorWeight` | `number` | `0.7` | 向量分数权重(0-1) |
|
||||
| `textWeight` | `number` | `0.3` | BM25 分数权重(0-1) |
|
||||
| `candidateMultiplier` | `number` | `4` | 候选池大小乘数 |
|
||||
|
||||
### MMR(多样性)
|
||||
|
||||
| Key | Type | Default | Description |
|
||||
| ------------- | --------- | ------- | -------------------------------- |
|
||||
| `mmr.enabled` | `boolean` | `false` | 启用 MMR 重排序 |
|
||||
| `mmr.lambda` | `number` | `0.7` | 0 = 最大多样性,1 = 最大相关性 |
|
||||
| 键名 | 类型 | 默认值 | 说明 |
|
||||
| ------------- | --------- | ------- | ------------------------------ |
|
||||
| `mmr.enabled` | `boolean` | `false` | 启用 MMR 重排序 |
|
||||
| `mmr.lambda` | `number` | `0.7` | 0 = 最大多样性,1 = 最大相关性 |
|
||||
|
||||
### 时间衰减(新近性)
|
||||
### 时间衰减(时效性)
|
||||
|
||||
| Key | Type | Default | Description |
|
||||
| ---------------------------- | --------- | ------- | -------------------- |
|
||||
| `temporalDecay.enabled` | `boolean` | `false` | 启用新近性加权 |
|
||||
| `temporalDecay.halfLifeDays` | `number` | `30` | 分数每 N 天减半 |
|
||||
| 键名 | 类型 | 默认值 | 说明 |
|
||||
| ---------------------------- | --------- | ------- | ----------------------- |
|
||||
| `temporalDecay.enabled` | `boolean` | `false` | 启用时效性加权 |
|
||||
| `temporalDecay.halfLifeDays` | `number` | `30` | 分数每 N 天减半 |
|
||||
|
||||
常青文件(`MEMORY.md`、`memory/` 中非日期命名的文件)永远不会衰减。
|
||||
常青文件(`MEMORY.md`、`memory/` 中无日期的文件)永远不会衰减。
|
||||
|
||||
### 完整示例
|
||||
|
||||
@ -255,11 +258,11 @@ arn:aws:bedrock:*::foundation-model/amazon.titan-embed-text-v2:0
|
||||
|
||||
---
|
||||
|
||||
## 其他内存路径
|
||||
## 额外内存路径
|
||||
|
||||
| Key | Type | Description |
|
||||
| 键名 | 类型 | 说明 |
|
||||
| ------------ | ---------- | ------------------------------ |
|
||||
| `extraPaths` | `string[]` | 要索引的其他目录或文件 |
|
||||
| `extraPaths` | `string[]` | 要建立索引的额外目录或文件 |
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -273,77 +276,86 @@ arn:aws:bedrock:*::foundation-model/amazon.titan-embed-text-v2:0
|
||||
}
|
||||
```
|
||||
|
||||
路径可以是绝对路径,也可以是相对于工作区的路径。目录会递归扫描其中的 `.md` 文件。符号链接的处理取决于当前使用的后端:内置引擎会忽略符号链接,而 QMD 会遵循底层 QMD 扫描器的行为。
|
||||
路径可以是绝对路径,也可以是相对于工作区的路径。目录会递归扫描
|
||||
其中的 `.md` 文件。符号链接处理方式取决于当前后端:
|
||||
内置引擎会忽略符号链接,而 QMD 会遵循底层 QMD 扫描器的行为。
|
||||
|
||||
对于按智能体范围进行的跨智能体转录搜索,请使用 `agents.list[].memorySearch.qmd.extraCollections`,而不是 `memory.qmd.paths`。这些额外集合遵循相同的 `{ path, name, pattern? }` 结构,但它们会按智能体进行合并,并且当路径指向当前工作区外部时,可以保留显式共享名称。
|
||||
如果同一个解析后的路径同时出现在 `memory.qmd.paths` 和 `memorySearch.qmd.extraCollections` 中,QMD 会保留第一条记录并跳过重复项。
|
||||
对于按智能体范围的跨智能体转录搜索,请使用
|
||||
`agents.list[].memorySearch.qmd.extraCollections`,而不是 `memory.qmd.paths`。
|
||||
这些额外集合遵循相同的 `{ path, name, pattern? }` 结构,但会按智能体合并,
|
||||
并且当路径指向当前工作区之外时,可以保留显式共享名称。
|
||||
如果同一个已解析路径同时出现在 `memory.qmd.paths` 和
|
||||
`memorySearch.qmd.extraCollections` 中,QMD 会保留第一项并跳过重复项。
|
||||
|
||||
---
|
||||
|
||||
## 多模态内存(Gemini)
|
||||
|
||||
使用 Gemini Embedding 2 将图片和音频与 Markdown 一起建立索引:
|
||||
使用 Gemini Embedding 2 在 Markdown 之外为图像和音频建立索引:
|
||||
|
||||
| Key | Type | Default | Description |
|
||||
| ------------------------- | ---------- | ---------- | ------------------------------------- |
|
||||
| `multimodal.enabled` | `boolean` | `false` | 启用多模态索引 |
|
||||
| `multimodal.modalities` | `string[]` | -- | `["image"]`、`["audio"]` 或 `["all"]` |
|
||||
| `multimodal.maxFileBytes` | `number` | `10000000` | 索引文件大小上限 |
|
||||
| 键名 | 类型 | 默认值 | 说明 |
|
||||
| ------------------------- | ---------- | ---------- | -------------------------------------- |
|
||||
| `multimodal.enabled` | `boolean` | `false` | 启用多模态索引 |
|
||||
| `multimodal.modalities` | `string[]` | -- | `["image"]`、`["audio"]` 或 `["all"]` |
|
||||
| `multimodal.maxFileBytes` | `number` | `10000000` | 建立索引时允许的最大文件大小 |
|
||||
|
||||
仅适用于 `extraPaths` 中的文件。默认内存根目录仍然只支持 Markdown。
|
||||
需要 `gemini-embedding-2-preview`。`fallback` 必须为 `"none"`。
|
||||
|
||||
支持的格式:`.jpg`、`.jpeg`、`.png`、`.webp`、`.gif`、`.heic`、`.heif`
|
||||
(图片);`.mp3`、`.wav`、`.ogg`、`.opus`、`.m4a`、`.aac`、`.flac`(音频)。
|
||||
(图像);`.mp3`、`.wav`、`.ogg`、`.opus`、`.m4a`、`.aac`、`.flac`
|
||||
(音频)。
|
||||
|
||||
---
|
||||
|
||||
## 嵌入缓存
|
||||
|
||||
| Key | Type | Default | Description |
|
||||
| ------------------ | --------- | ------- | ------------------------------ |
|
||||
| `cache.enabled` | `boolean` | `false` | 在 SQLite 中缓存分块嵌入 |
|
||||
| `cache.maxEntries` | `number` | `50000` | 最大缓存嵌入条目数 |
|
||||
| 键名 | 类型 | 默认值 | 说明 |
|
||||
| ------------------ | --------- | ------- | ---------------------------- |
|
||||
| `cache.enabled` | `boolean` | `false` | 在 SQLite 中缓存分块嵌入 |
|
||||
| `cache.maxEntries` | `number` | `50000` | 最大缓存嵌入条目数 |
|
||||
|
||||
可防止在重新索引或转录更新期间,对未变化的文本重复生成嵌入。
|
||||
可防止在重新索引或转录更新期间对未更改的文本重复生成嵌入。
|
||||
|
||||
---
|
||||
|
||||
## 批量索引
|
||||
|
||||
| Key | Type | Default | Description |
|
||||
| 键名 | 类型 | 默认值 | 说明 |
|
||||
| ----------------------------- | --------- | ------- | ---------------------- |
|
||||
| `remote.batch.enabled` | `boolean` | `false` | 启用批量嵌入 API |
|
||||
| `remote.batch.concurrency` | `number` | `2` | 并行批量任务数 |
|
||||
| `remote.batch.wait` | `boolean` | `true` | 等待批量完成 |
|
||||
| `remote.batch.concurrency` | `number` | `2` | 并行批处理任务数 |
|
||||
| `remote.batch.wait` | `boolean` | `true` | 等待批处理完成 |
|
||||
| `remote.batch.pollIntervalMs` | `number` | -- | 轮询间隔 |
|
||||
| `remote.batch.timeoutMinutes` | `number` | -- | 批量超时时间 |
|
||||
| `remote.batch.timeoutMinutes` | `number` | -- | 批处理超时时间 |
|
||||
|
||||
适用于 `openai`、`gemini` 和 `voyage`。对于大规模回填,OpenAI 批量通常最快且最便宜。
|
||||
适用于 `openai`、`gemini` 和 `voyage`。对于大型回填,OpenAI 批处理通常
|
||||
速度最快且成本最低。
|
||||
|
||||
---
|
||||
|
||||
## 会话内存搜索(实验性)
|
||||
|
||||
索引会话转录,并通过 `memory_search` 提供结果:
|
||||
为会话转录建立索引,并通过 `memory_search` 提供结果:
|
||||
|
||||
| Key | Type | Default | Description |
|
||||
| ----------------------------- | ---------- | ------------ | -------------------------------------- |
|
||||
| `experimental.sessionMemory` | `boolean` | `false` | 启用会话索引 |
|
||||
| `sources` | `string[]` | `["memory"]` | 添加 `"sessions"` 以包含转录 |
|
||||
| `sync.sessions.deltaBytes` | `number` | `100000` | 触发重新索引的字节阈值 |
|
||||
| `sync.sessions.deltaMessages` | `number` | `50` | 触发重新索引的消息阈值 |
|
||||
| 键名 | 类型 | 默认值 | 说明 |
|
||||
| ----------------------------- | ---------- | ------------ | ------------------------------------- |
|
||||
| `experimental.sessionMemory` | `boolean` | `false` | 启用会话索引 |
|
||||
| `sources` | `string[]` | `["memory"]` | 添加 `"sessions"` 以包含转录 |
|
||||
| `sync.sessions.deltaBytes` | `number` | `100000` | 触发重新索引的字节阈值 |
|
||||
| `sync.sessions.deltaMessages` | `number` | `50` | 触发重新索引的消息阈值 |
|
||||
|
||||
会话索引为可选启用,并以异步方式运行。结果可能会略有滞后。会话日志保存在磁盘上,因此应将文件系统访问视为信任边界。
|
||||
会话索引为选择加入,并以异步方式运行。结果可能会略微滞后。
|
||||
会话日志存储在磁盘上,因此应将文件系统访问视为信任边界。
|
||||
|
||||
---
|
||||
|
||||
## SQLite 向量加速(sqlite-vec)
|
||||
|
||||
| Key | Type | Default | Description |
|
||||
| ---------------------------- | --------- | ------- | ------------------------------- |
|
||||
| `store.vector.enabled` | `boolean` | `true` | 对向量查询使用 sqlite-vec |
|
||||
| `store.vector.extensionPath` | `string` | bundled | 覆盖 sqlite-vec 路径 |
|
||||
| 键名 | 类型 | 默认值 | 说明 |
|
||||
| ---------------------------- | --------- | ------- | ------------------------------ |
|
||||
| `store.vector.enabled` | `boolean` | `true` | 使用 sqlite-vec 执行向量查询 |
|
||||
| `store.vector.extensionPath` | `string` | bundled | 覆盖 sqlite-vec 路径 |
|
||||
|
||||
当 sqlite-vec 不可用时,OpenClaw 会自动回退到进程内余弦相似度计算。
|
||||
|
||||
@ -351,56 +363,61 @@ arn:aws:bedrock:*::foundation-model/amazon.titan-embed-text-v2:0
|
||||
|
||||
## 索引存储
|
||||
|
||||
| Key | Type | Default | Description |
|
||||
| --------------------- | -------- | ------------------------------------- | ------------------------------------------ |
|
||||
| `store.path` | `string` | `~/.openclaw/memory/{agentId}.sqlite` | 索引位置(支持 `{agentId}` 令牌) |
|
||||
| `store.fts.tokenizer` | `string` | `unicode61` | FTS5 分词器(`unicode61` 或 `trigram`) |
|
||||
| 键名 | 类型 | 默认值 | 说明 |
|
||||
| --------------------- | -------- | ------------------------------------- | -------------------------------------- |
|
||||
| `store.path` | `string` | `~/.openclaw/memory/{agentId}.sqlite` | 索引位置(支持 `{agentId}` 占位符) |
|
||||
| `store.fts.tokenizer` | `string` | `unicode61` | FTS5 分词器(`unicode61` 或 `trigram`) |
|
||||
|
||||
---
|
||||
|
||||
## QMD 后端配置
|
||||
|
||||
设置 `memory.backend = "qmd"` 以启用。所有 QMD 设置都位于 `memory.qmd` 下:
|
||||
设置 `memory.backend = "qmd"` 以启用。所有 QMD 设置都位于
|
||||
`memory.qmd` 下:
|
||||
|
||||
| Key | Type | Default | Description |
|
||||
| ------------------------ | --------- | -------- | ------------------------------------------- |
|
||||
| `command` | `string` | `qmd` | QMD 可执行文件路径 |
|
||||
| `searchMode` | `string` | `search` | 搜索命令:`search`、`vsearch`、`query` |
|
||||
| `includeDefaultMemory` | `boolean` | `true` | 自动索引 `MEMORY.md` + `memory/**/*.md` |
|
||||
| `paths[]` | `array` | -- | 额外路径:`{ name, path, pattern? }` |
|
||||
| `sessions.enabled` | `boolean` | `false` | 索引会话转录 |
|
||||
| `sessions.retentionDays` | `number` | -- | 转录保留期 |
|
||||
| `sessions.exportDir` | `string` | -- | 导出目录 |
|
||||
| 键名 | 类型 | 默认值 | 说明 |
|
||||
| ------------------------ | --------- | -------- | -------------------------------------------- |
|
||||
| `command` | `string` | `qmd` | QMD 可执行文件路径 |
|
||||
| `searchMode` | `string` | `search` | 搜索命令:`search`、`vsearch`、`query` |
|
||||
| `includeDefaultMemory` | `boolean` | `true` | 自动索引 `MEMORY.md` + `memory/**/*.md` |
|
||||
| `paths[]` | `array` | -- | 额外路径:`{ name, path, pattern? }` |
|
||||
| `sessions.enabled` | `boolean` | `false` | 为会话转录建立索引 |
|
||||
| `sessions.retentionDays` | `number` | -- | 转录保留期 |
|
||||
| `sessions.exportDir` | `string` | -- | 导出目录 |
|
||||
|
||||
OpenClaw 优先使用当前的 QMD collection 和 MCP query 结构,但会在需要时回退到旧版 `--mask` collection 标志和旧版 MCP 工具名称,以保持与较早 QMD 版本的兼容性。
|
||||
OpenClaw 优先使用当前 QMD collection 和 MCP 查询结构,但仍会通过回退到旧版
|
||||
`--mask` collection 标志以及更旧的 MCP 工具名称来兼容较早的 QMD 版本。
|
||||
|
||||
QMD 模型覆盖配置保留在 QMD 侧,而不是 OpenClaw 配置中。如果你需要全局覆盖 QMD 的模型,请在 Gateway 网关运行时环境中设置诸如 `QMD_EMBED_MODEL`、`QMD_RERANK_MODEL` 和 `QMD_GENERATE_MODEL` 之类的环境变量。
|
||||
QMD 模型覆盖设置保留在 QMD 侧,而不是 OpenClaw 配置中。如果你需要
|
||||
全局覆盖 QMD 的模型,请在 Gateway 网关运行时环境中设置环境变量,例如
|
||||
`QMD_EMBED_MODEL`、`QMD_RERANK_MODEL` 和 `QMD_GENERATE_MODEL`。
|
||||
|
||||
### 更新计划
|
||||
|
||||
| Key | Type | Default | Description |
|
||||
| ------------------------- | --------- | ------- | --------------------------------- |
|
||||
| `update.interval` | `string` | `5m` | 刷新间隔 |
|
||||
| `update.debounceMs` | `number` | `15000` | 文件变更去抖时间 |
|
||||
| `update.onBoot` | `boolean` | `true` | 启动时刷新 |
|
||||
| `update.waitForBootSync` | `boolean` | `false` | 在刷新完成前阻塞启动 |
|
||||
| `update.embedInterval` | `string` | -- | 单独的嵌入执行周期 |
|
||||
| `update.commandTimeoutMs` | `number` | -- | QMD 命令超时时间 |
|
||||
| `update.updateTimeoutMs` | `number` | -- | QMD 更新操作超时时间 |
|
||||
| `update.embedTimeoutMs` | `number` | -- | QMD 嵌入操作超时时间 |
|
||||
| 键名 | 类型 | 默认值 | 说明 |
|
||||
| ------------------------- | --------- | ------- | ---------------------------- |
|
||||
| `update.interval` | `string` | `5m` | 刷新间隔 |
|
||||
| `update.debounceMs` | `number` | `15000` | 文件变更防抖时间 |
|
||||
| `update.onBoot` | `boolean` | `true` | 启动时刷新 |
|
||||
| `update.waitForBootSync` | `boolean` | `false` | 启动时阻塞直到刷新完成 |
|
||||
| `update.embedInterval` | `string` | -- | 单独的嵌入更新频率 |
|
||||
| `update.commandTimeoutMs` | `number` | -- | QMD 命令超时时间 |
|
||||
| `update.updateTimeoutMs` | `number` | -- | QMD 更新操作超时时间 |
|
||||
| `update.embedTimeoutMs` | `number` | -- | QMD 嵌入操作超时时间 |
|
||||
|
||||
### 限制
|
||||
|
||||
| Key | Type | Default | Description |
|
||||
| ------------------------- | -------- | ------- | ---------------------- |
|
||||
| `limits.maxResults` | `number` | `6` | 最大搜索结果数 |
|
||||
| `limits.maxSnippetChars` | `number` | -- | 限制片段长度 |
|
||||
| `limits.maxInjectedChars` | `number` | -- | 限制注入字符总数 |
|
||||
| `limits.timeoutMs` | `number` | `4000` | 搜索超时时间 |
|
||||
| 键名 | 类型 | 默认值 | 说明 |
|
||||
| ------------------------- | -------- | ------- | -------------------- |
|
||||
| `limits.maxResults` | `number` | `6` | 最大搜索结果数 |
|
||||
| `limits.maxSnippetChars` | `number` | -- | 限制摘要长度 |
|
||||
| `limits.maxInjectedChars` | `number` | -- | 限制注入总字符数 |
|
||||
| `limits.timeoutMs` | `number` | `4000` | 搜索超时时间 |
|
||||
|
||||
### 范围
|
||||
|
||||
控制哪些会话可以接收 QMD 搜索结果。使用与 [`session.sendPolicy`](/zh-CN/gateway/configuration-reference#session) 相同的 schema:
|
||||
控制哪些会话可以接收 QMD 搜索结果。使用与
|
||||
[`session.sendPolicy`](/zh-CN/gateway/configuration-reference#session) 相同的 schema:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -415,18 +432,20 @@ QMD 模型覆盖配置保留在 QMD 侧,而不是 OpenClaw 配置中。如果
|
||||
}
|
||||
```
|
||||
|
||||
默认仅限私信。`match.keyPrefix` 匹配规范化后的会话 key;
|
||||
`match.rawKeyPrefix` 匹配包含 `agent:<id>:` 的原始 key。
|
||||
随附的默认配置允许直接会话和渠道会话,同时仍然拒绝群组会话。
|
||||
|
||||
默认仅限私信。`match.keyPrefix` 匹配标准化后的会话键;
|
||||
`match.rawKeyPrefix` 匹配包含 `agent:<id>:` 的原始键。
|
||||
|
||||
### 引用
|
||||
|
||||
`memory.citations` 适用于所有后端:
|
||||
|
||||
| Value | Behavior |
|
||||
| ---------------- | --------------------------------------------- |
|
||||
| `auto`(默认) | 在片段中包含 `Source: <path#line>` 页脚 |
|
||||
| `on` | 始终包含页脚 |
|
||||
| `off` | 省略页脚(路径仍会在内部传递给智能体) |
|
||||
| 值 | 行为 |
|
||||
| ---------------- | -------------------------------------------- |
|
||||
| `auto`(默认) | 在摘要中包含 `Source: <path#line>` 页脚 |
|
||||
| `on` | 始终包含页脚 |
|
||||
| `off` | 省略页脚(路径仍会在内部传递给智能体) |
|
||||
|
||||
### 完整 QMD 示例
|
||||
|
||||
@ -456,16 +475,17 @@ QMD 模型覆盖配置保留在 QMD 侧,而不是 OpenClaw 配置中。如果
|
||||
Dreaming 配置位于 `plugins.entries.memory-core.config.dreaming` 下,
|
||||
而不在 `agents.defaults.memorySearch` 下。
|
||||
|
||||
Dreaming 作为一次计划内扫描运行,并将内部的 light/deep/REM 阶段作为实现细节来使用。
|
||||
Dreaming 以一次计划中的扫描运行,并将内部的 light/deep/REM 阶段
|
||||
作为实现细节使用。
|
||||
|
||||
有关概念行为和斜杠命令,请参阅 [Dreaming](/zh-CN/concepts/dreaming)。
|
||||
有关概念行为和斜杠命令,请参见 [Dreaming](/zh-CN/concepts/dreaming)。
|
||||
|
||||
### 用户设置
|
||||
|
||||
| Key | Type | Default | Description |
|
||||
| ----------- | --------- | ----------- | -------------------------------------------- |
|
||||
| `enabled` | `boolean` | `false` | 完全启用或禁用 Dreaming |
|
||||
| `frequency` | `string` | `0 3 * * *` | 完整 Dreaming 扫描的可选 cron 执行周期 |
|
||||
| 键名 | 类型 | 默认值 | 说明 |
|
||||
| ----------- | --------- | ----------- | ------------------------------ |
|
||||
| `enabled` | `boolean` | `false` | 完全启用或禁用 Dreaming |
|
||||
| `frequency` | `string` | `0 3 * * *` | 完整 Dreaming 扫描的可选 cron 频率 |
|
||||
|
||||
### 示例
|
||||
|
||||
@ -489,5 +509,5 @@ Dreaming 作为一次计划内扫描运行,并将内部的 light/deep/REM 阶
|
||||
说明:
|
||||
|
||||
- Dreaming 会将机器状态写入 `memory/.dreams/`。
|
||||
- Dreaming 会将人类可读的叙述输出写入 `DREAMS.md`(或现有的 `dreams.md`)。
|
||||
- Dreaming 会将人类可读的叙事输出写入 `DREAMS.md`(或现有的 `dreams.md`)。
|
||||
- light/deep/REM 阶段策略和阈值属于内部行为,不是面向用户的配置。
|
||||
|
||||
Loading…
Reference in New Issue
Block a user