Skip to main content
此页面列出了 OpenClaw 记忆搜索的每个配置开关。有关概念概览,请参阅:

记忆概览

记忆的工作方式。

内置引擎

默认 SQLite 后端。

QMD 引擎

本地优先的 sidecar。

记忆搜索

搜索管线和调优。

主动记忆

用于交互式会话的记忆子智能体。
除非另有说明,所有记忆搜索设置都位于 openclaw.json 中的 agents.defaults.memorySearch 下(或每个 agent 的 agents.list[].memorySearch 覆盖项)。
如果你要找的是 主动记忆 功能开关和子智能体配置,它位于 plugins.entries.active-memory 下,而不是 memorySearch主动记忆使用双门控模型:
  1. 插件必须已启用并指向当前 agent id
  2. 请求必须是符合条件的交互式持久聊天会话
有关激活模型、插件拥有的配置、转录持久化和安全发布模式,请参阅 主动记忆

提供商选择

键名类型默认值描述
enabledbooleantrue启用或禁用记忆搜索
providerstring"openai"嵌入适配器 ID,例如 bedrockdeepinfrageminigithub-copilotlocalmistralollamaopenaiopenai-compatiblevoyage;也可以是已配置的 models.providers.<id>,其 api 指向记忆嵌入适配器或 OpenAI 兼容模型 API
modelstring提供商默认值嵌入模型名称
fallbackstring"none"主提供商失败时使用的回退适配器 ID
未设置 provider 时,OpenClaw 使用 OpenAI 嵌入。显式设置 provider 可使用 Bedrock、DeepInfra、Gemini、GitHub Copilot、Mistral、Ollama、 Voyage、本地 GGUF 模型或 OpenAI 兼容的 /v1/embeddings 端点。 仍写着 provider: "auto" 的旧版配置会解析为 openai
更改嵌入提供商、模型、提供商设置、来源、范围、 分块或 tokenizer 可能会使现有 SQLite 向量索引不兼容。 OpenClaw 会暂停向量搜索并报告索引身份警告,而不是 自动重新嵌入所有内容。准备好后,请使用 openclaw memory status --index --agent <id>openclaw memory index --force --agent <id> 重建。
provider 未设置、存在旧版 provider: "auto",或 provider: "none" 有意选择仅 FTS 模式时,在嵌入不可用的情况下,记忆召回仍可 使用词法 FTS 排名。 显式的非本地提供商会失败关闭。如果你将 memorySearch.provider 设置为 具体的远程后端提供商,例如 Bedrock、DeepInfra、Gemini、GitHub Copilot、LM Studio、Mistral、Ollama、OpenAI、Voyage,或 OpenAI 兼容的 自定义提供商,而该提供商在运行时不可用,memory_search 会返回不可用结果,而不是静默使用仅 FTS 召回。请修复 提供商/认证配置、切换到可访问的提供商,或在你希望有意使用仅 FTS 召回时设置 provider: "none"

自定义提供商 ID

memorySearch.provider 可以指向自定义 models.providers.<id> 条目,用于特定记忆的提供商适配器(例如 ollama),或用于 OpenAI 兼容模型 API(例如 openai-responses / openai-completions)。OpenClaw 会解析该提供商的 api 所有者用于嵌入适配器,同时保留自定义提供商 ID 以处理端点、认证和模型前缀。这使多 GPU 或多主机设置可以将记忆嵌入专用于特定本地端点:
{
  models: {
    providers: {
      "ollama-5080": {
        api: "ollama",
        baseUrl: "http://gpu-box.local:11435",
        apiKey: "ollama-local",
        models: [{ id: "qwen3-embedding:0.6b", name: "Qwen3 Embedding 0.6B" }],
      },
    },
  },
  agents: {
    defaults: {
      memorySearch: {
        provider: "ollama-5080",
        model: "qwen3-embedding:0.6b",
      },
    },
  },
}

API key 解析

远程嵌入需要 API key。Bedrock 改用 AWS SDK 默认凭证链(实例角色、SSO、访问密钥或 Bedrock API key)。
提供商环境变量配置键
BedrockAWS 凭证链,或 AWS_BEARER_TOKEN_BEDROCK不需要 API key
DeepInfraDEEPINFRA_API_KEYmodels.providers.deepinfra.apiKey
GeminiGEMINI_API_KEYmodels.providers.google.apiKey
GitHub CopilotCOPILOT_GITHUB_TOKENGH_TOKENGITHUB_TOKEN通过设备登录的认证配置
MistralMISTRAL_API_KEYmodels.providers.mistral.apiKey
OllamaOLLAMA_API_KEY(占位符)
OpenAIOPENAI_API_KEYmodels.providers.openai.apiKey
VoyageVOYAGE_API_KEYmodels.providers.voyage.apiKey
Codex OAuth 仅覆盖聊天/补全,不满足嵌入请求。

远程端点配置

对不应继承全局 OpenAI 聊天凭证的通用 OpenAI 兼容 /v1/embeddings 服务器使用 provider: "openai-compatible"
remote.baseUrl
string
自定义 API 基础 URL。
remote.apiKey
string
覆盖 API key。
remote.headers
object
额外 HTTP 标头(与提供商默认值合并)。
{
  agents: {
    defaults: {
      memorySearch: {
        provider: "openai-compatible",
        model: "text-embedding-3-small",
        remote: {
          baseUrl: "https://api.example.com/v1/",
          apiKey: "YOUR_KEY",
        },
      },
    },
  },
}

提供商特定配置

键名类型默认值描述
modelstringgemini-embedding-001也支持 gemini-embedding-2-preview
outputDimensionalitynumber3072对于 Embedding 2:768、1536 或 3072
更改模型或 outputDimensionality 会改变索引身份。OpenClaw 会暂停向量搜索,直到你显式重建记忆索引。
OpenAI 兼容嵌入端点可以选择加入提供商特定的 input_type 请求字段。这对于需要为查询嵌入和文档嵌入使用不同标签的非对称嵌入模型很有用。
键名类型默认值描述
inputTypestring未设置查询和文档嵌入共享的 input_type
queryInputTypestring未设置查询时的 input_type;覆盖 inputType
documentInputTypestring未设置索引/文档的 input_type;覆盖 inputType
{
  agents: {
    defaults: {
      memorySearch: {
        provider: "openai-compatible",
        remote: {
          baseUrl: "https://embeddings.example/v1",
          apiKey: "${EMBEDDINGS_API_KEY}",
        },
        model: "asymmetric-embedder",
        queryInputType: "query",
        documentInputType: "passage",
      },
    },
  },
}
当上游模型以不同方式处理这些标签时,更改这些值会影响提供商批量索引的嵌入缓存身份,并应随后重新索引记忆。

Bedrock 嵌入配置

Bedrock 使用 AWS SDK 默认凭证链以及 OpenClaw 检查的 bearer token,因此配置中不会存储 API key。如果 OpenClaw 在具有 Bedrock 权限实例角色的 EC2 上运行,只需设置提供商和模型:
{
  agents: {
    defaults: {
      memorySearch: {
        provider: "bedrock",
        model: "amazon.titan-embed-text-v2:0",
      },
    },
  },
}
键名类型默认值描述
modelstringamazon.titan-embed-text-v2:0任意 Bedrock 嵌入模型 ID
outputDimensionalitynumber模型默认值对于 Titan V2:256、512 或 1024
支持的模型(带系列检测和维度默认值):
模型 ID提供商默认维度可配置维度
amazon.titan-embed-text-v2:0Amazon1024256, 512, 1024
amazon.titan-embed-text-v1Amazon1536
amazon.titan-embed-g1-text-02Amazon1536
amazon.titan-embed-image-v1Amazon1024
amazon.nova-2-multimodal-embeddings-v1:0Amazon1024256, 384, 1024, 3072
cohere.embed-english-v3Cohere1024
cohere.embed-multilingual-v3Cohere1024
cohere.embed-v4:0Cohere1536256, 384, 512, 768, 1024, 1536
twelvelabs.marengo-embed-3-0-v1:0TwelveLabs512
twelvelabs.marengo-embed-2-7-v1:0TwelveLabs1024
带吞吐量后缀的变体(例如 amazon.titan-embed-text-v1:2:8k)和带区域前缀的推理配置文件 ID(例如 us.amazon.titan-embed-text-v2:0)会继承基础模型的配置。**区域:**按以下顺序解析:memorySearch.remote.baseUrl 覆盖项、models.providers.amazon-bedrock.baseUrl 配置、AWS_REGIONAWS_DEFAULT_REGION,然后默认使用 us-east-1**身份验证:**OpenClaw 会先检查 AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEYAWS_BEARER_TOKEN_BEDROCK,然后回退到标准 AWS SDK 默认凭证提供商链:
  1. 环境变量(AWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY),除非同时设置了 AWS_PROFILE
  2. SSO(仅在已配置 SSO 字段时)
  3. 共享凭证和配置文件(fromIni,包含 AWS_PROFILE
  4. 凭证进程(AWS 配置文件中的 credential_process
  5. Web 身份令牌凭证
  6. ECS 或 EC2 实例元数据凭证
**IAM 权限:**IAM 角色或用户需要:
{
  "Effect": "Allow",
  "Action": "bedrock:InvokeModel",
  "Resource": "*"
}
为实现最小权限,请将 InvokeModel 限定到特定模型:
arn:aws:bedrock:*::foundation-model/amazon.titan-embed-text-v2:0
类型默认值描述
local.modelPathstring自动下载GGUF 模型文件路径
local.modelCacheDirstringnode-llama-cpp 默认值下载模型的缓存目录
local.contextSizenumber | "auto"4096嵌入上下文的上下文窗口大小。4096 可覆盖常见分块(128-512 个 token),同时限制非权重 VRAM。受限主机可降低到 1024-2048。"auto" 使用模型训练时的最大值,不建议用于 8B+ 模型(Qwen3-Embedding-8B:最高 40 960 个 token 可能将 VRAM 推到约 32 GB)。
先安装官方 llama.cpp 提供商:openclaw plugins install @openclaw/llama-cpp-provider。 默认模型:embeddinggemma-300m-qat-Q8_0.gguf(约 0.6 GB,自动下载)。源码检出仍需要原生构建批准:先运行 pnpm approve-builds,再运行 pnpm rebuild node-llama-cpp使用独立 CLI 验证 Gateway 网关使用的同一提供商路径:
openclaw memory status --deep --agent main
openclaw memory index --force --agent main
为本地 GGUF 嵌入显式设置 provider: "local"。显式本地配置支持 hf: 和 HTTP(S) 模型引用(通过 node-llama-cpp 的模型解析),但它们不会更改默认提供商。

内联嵌入超时

sync.embeddingBatchTimeoutSeconds
number
覆盖记忆索引期间内联嵌入批次的超时时间。未设置时使用提供商默认值:对于 localollamalmstudio 等本地/自托管提供商为 600 秒,对于托管提供商为 120 秒。当本地受 CPU 限制的嵌入批次运行正常但较慢时,请增大此值。

索引行为

除非另有说明,全部位于 memorySearch.sync 下:
类型默认值描述
onSessionStartbooleantrue会话开始时同步记忆索引
onSearchbooleantrue检测到内容变化后,在搜索时延迟同步
watchbooleantrue监视记忆文件(chokidar)并在变化时安排重新索引
watchDebounceMsnumber1500用于合并快速文件监视事件的防抖窗口
intervalMinutesnumber0定期重新索引间隔(分钟,0 表示禁用)
sessions.postCompactionForcebooleantrue压缩触发的转录更新后强制重新索引会话
chunking.tokens
number
在嵌入前拆分记忆源时使用的分块大小,单位为 token(默认值:400)。
chunking.overlap
number
相邻分块之间的 token 重叠量,用于保留拆分边界附近的上下文(默认值:80)。
更改 chunking.tokenschunking.overlap 会改变分块边界,并使现有索引标识失效(请参阅“提供商选择”下的警告)。

混合搜索配置

全部位于 memorySearch.query 下:
类型默认值描述
maxResultsnumber6注入前返回的最大记忆命中数
minScorenumber0.35纳入命中的最低相关性分数
以及 memorySearch.query.hybrid 下:
类型默认值描述
enabledbooleantrue启用混合 BM25 + 向量搜索
vectorWeightnumber0.7向量分数权重(0-1)
textWeightnumber0.3BM25 分数权重(0-1)
candidateMultipliernumber4候选池大小乘数
类型默认值描述
mmr.enabledbooleanfalse启用 MMR 重排序
mmr.lambdanumber0.70 = 最大多样性,1 = 最大相关性

完整示例

{
  agents: {
    defaults: {
      memorySearch: {
        query: {
          maxResults: 6,
          minScore: 0.35,
          hybrid: {
            vectorWeight: 0.7,
            textWeight: 0.3,
            mmr: { enabled: true, lambda: 0.7 },
            temporalDecay: { enabled: true, halfLifeDays: 30 },
          },
        },
      },
    },
  },
}

其他记忆路径

类型描述
extraPathsstring[]要索引的其他目录或文件
{
  agents: {
    defaults: {
      memorySearch: {
        extraPaths: ["../team-docs", "/srv/shared-notes"],
      },
    },
  },
}
路径可以是绝对路径,也可以相对于工作区。目录会递归扫描 .md 文件。符号链接处理取决于当前后端:内置引擎会跳过符号链接,而 QMD 会遵循底层 QMD 扫描器行为。 对于按 Agent 作用域的跨 Agent 转录搜索,请使用 agents.list[].memorySearch.qmd.extraCollections,而不是 memory.qmd.paths。这些额外集合遵循相同的 { path, name, pattern? } 形状,但它们会按 Agent 合并,并且当路径指向当前工作区之外时,可以保留显式共享名称。如果同一个解析路径同时出现在 memory.qmd.pathsmemorySearch.qmd.extraCollections 中,QMD 会保留第一个条目并跳过重复项。

多模态记忆(Gemini)

使用 Gemini Embedding 2 将图片和音频与 Markdown 一起索引:
类型默认值描述
multimodal.enabledbooleanfalse启用多模态索引
multimodal.modalitiesstring[]["image"]["audio"]["all"]
multimodal.maxFileBytesnumber10485760用于索引的最大文件大小(10 MiB)
仅适用于 extraPaths 中的文件。默认记忆根目录仅支持 Markdown。需要 gemini-embedding-2-previewfallback 必须为 "none"
支持的格式:.jpg.jpeg.png.webp.gif.heic.heif(图片);.mp3.wav.ogg.opus.m4a.aac.flac(音频)。

嵌入缓存

类型默认值描述
cache.enabledbooleantrue在 SQLite 中缓存分块嵌入
cache.maxEntriesnumber未设置缓存嵌入数量的尽力上限
在重新索引或转录更新期间,避免对未更改的文本重新生成嵌入。保持 maxEntries 未设置可使用无界缓存;当磁盘增长比峰值重新索引速度更重要时再设置它。设置后,一旦缓存超过限制,最旧的条目(按最后更新时间)会最先被清理。

批量索引

类型默认值描述
remote.nonBatchConcurrencynumber4并行内联嵌入
remote.batch.enabledbooleanfalse启用批量嵌入 API
remote.batch.concurrencynumber2并行批量作业
remote.batch.waitbooleantrue等待批量完成
remote.batch.pollIntervalMsnumber2000轮询间隔
remote.batch.timeoutMinutesnumber60批量超时
适用于 geminiopenaivoyage。对于大型回填,OpenAI 批量通常最快且成本最低。 remote.nonBatchConcurrency 控制本地/自托管提供商使用的内联嵌入调用,以及托管提供商在提供商批量 API 未启用时使用的内联嵌入调用。Ollama 的非批量索引默认值为 1,以避免让较小的本地主机不堪重负;在更大的机器上可设置更高的值。 这与 sync.embeddingBatchTimeoutSeconds 分开,后者控制内联嵌入调用的超时时间。

会话记忆搜索(实验性)

索引会话转录,并通过 memory_search 暴露它们:
类型默认值描述
experimental.sessionMemorybooleanfalse启用会话索引
sourcesstring[]["memory"]添加 "sessions" 以包含转录
sync.sessions.deltaBytesnumber100000重新索引的字节阈值
sync.sessions.deltaMessagesnumber50重新索引的消息阈值
会话索引是选择启用的,并且会异步运行。结果可能略有陈旧。会话日志位于磁盘上,因此请将文件系统访问视为信任边界。
会话转录命中也遵守 tools.sessions.visibility。默认的 tree 可见性只暴露当前会话及其派生的会话。若要从不同会话(例如私信)中召回一个无关的、同一智能体的、由 Gateway 网关分发的会话,请有意将可见性扩大到 agent(只有在也需要跨智能体召回且智能体到智能体策略允许时,才使用 all)。 下面的示例将这些设置放在 agents.defaults 下。你也可以在按智能体覆盖中应用等效的 memorySearch 设置,用于仅让一个智能体索引和搜索会话转录。 对于同一智能体的 Gateway 网关到私信召回:
{
  agents: {
    defaults: {
      memorySearch: {
        experimental: { sessionMemory: true },
        sources: ["memory", "sessions"],
      },
    },
  },
  tools: {
    sessions: { visibility: "agent" },
  },
}
使用 QMD 时,agents.defaults.memorySearch.experimental.sessionMemorysources: ["sessions"] 本身不会把转录导出到 QMD。还需要设置 memory.qmd.sessions.enabled: true

SQLite 向量加速(sqlite-vec)

类型默认值描述
store.vector.enabledbooleantrue使用 sqlite-vec 进行向量查询
store.vector.extensionPathstring内置覆盖 sqlite-vec 路径
当 sqlite-vec 不可用时,OpenClaw 会自动回退到进程内余弦相似度。

索引存储

内置记忆索引位于每个智能体的 OpenClaw SQLite 数据库: agents/<agentId>/agent/openclaw-agent.sqlite
类型默认值描述
store.fts.tokenizerstringunicode61FTS5 分词器(unicode61trigram

QMD 后端配置

设置 memory.backend = "qmd" 以启用。所有 QMD 设置都位于 memory.qmd 下:
类型默认值描述
commandstringqmdQMD 可执行文件路径;当服务 PATH 与你的 shell 不同时,请设置绝对路径
searchModestringsearch搜索命令:searchvsearchquery
rerankbooleansearchMode: "query" 和 QMD 2.1+ 一起设置为 false,以跳过 QMD 重排序
includeDefaultMemorybooleantrue自动索引 MEMORY.md + memory/**/*.md
paths[]array额外路径:{ name, path, pattern? }
sessions.enabledbooleanfalse将会话转录导出到 QMD
sessions.retentionDaysnumber转录保留期
sessions.exportDirstring导出目录
searchMode: "search" 仅使用词法/BM25。OpenClaw 不会为该模式运行语义向量就绪探测或 QMD 嵌入维护,包括在 memory status --deep 期间;vsearchquery 仍然需要 QMD 向量就绪状态和嵌入。 rerank: false 只会更改 QMD query 模式,并且需要 QMD 2.1 或更新版本。在直接 CLI 模式下,OpenClaw 会传递 --no-rerank;在由 mcporter 支持的 MCP 模式下,它会向 QMD 的统一查询工具传递 rerank: false。保持未设置即可使用 QMD 默认的查询重排序行为。 OpenClaw 优先使用当前的 QMD 集合和 MCP 查询形状,但会在需要时尝试兼容的集合模式标志和旧版 MCP 工具名称,从而保持旧版 QMD 发布可用。当 QMD 声明支持多个集合过滤器时,同源集合会用一个 QMD 进程搜索;旧版 QMD 构建会保留按集合划分的兼容路径。同源表示持久记忆集合(默认记忆文件加自定义路径)会归为一组,而会话转录集合会保留为单独一组,因此来源多样化仍然同时拥有两类输入。
QMD 模型覆盖保留在 QMD 侧,而不是 OpenClaw 配置中。如果你需要全局覆盖 QMD 的模型,请在 Gateway 网关运行时环境中设置环境变量,例如 QMD_EMBED_MODELQMD_RERANK_MODELQMD_GENERATE_MODEL

mcporter 集成

全部位于 memory.qmd.mcporter 下。通过长驻 mcporter MCP 守护进程路由 QMD 搜索,而不是每次查询都生成 qmd,从而降低较大模型的冷启动开销。
类型默认值描述
enabledbooleanfalse通过 mcporter 路由 QMD 调用,而不是每次请求都生成 qmd
serverNamestringqmd运行带有 lifecycle: keep-aliveqmd mcp 的 mcporter 服务器名称
startDaemonbooleantrueenabled 为 true 时自动启动 mcporter 守护进程
需要安装 mcporter 并位于 PATH 上,还需要配置一个运行 qmd mcp 的 mcporter 服务器。对于每次查询生成进程的成本可接受的更简单本地设置,请保持禁用。
类型默认值描述
update.intervalstring5m刷新间隔
update.debounceMsnumber15000对文件变更防抖
update.onBootbooleantrue长驻 QMD 管理器启动时刷新;设置为 false 可跳过立即启动更新
update.startupstringoff可选的 Gateway 网关启动 QMD 初始化:offidleimmediate
update.startupDelayMsnumber120000startup: "idle" 刷新运行前的延迟
update.waitForBootSyncbooleanfalse阻塞管理器启动,直到其初始刷新完成
update.embedIntervalstring60m单独的嵌入节奏
update.commandTimeoutMsnumber30000QMD 维护命令(集合 list/add)的超时
update.updateTimeoutMsnumber120000每个 qmd update 周期的超时
update.embedTimeoutMsnumber120000每个 qmd embed 周期的超时
类型默认值描述
limits.maxResultsnumber4最大搜索结果
limits.maxSnippetCharsnumber450限制片段长度
limits.maxInjectedCharsnumber2200限制注入字符总数
limits.timeoutMsnumber4000搜索超时
控制哪些会话可以接收 QMD 搜索结果。架构与 session.sendPolicy 相同:
{
  memory: {
    qmd: {
      scope: {
        default: "deny",
        rules: [{ action: "allow", match: { chatType: "direct" } }],
      },
    },
  },
}
随附的默认值是仅限私信/direct,拒绝群组和其他渠道类型。match.keyPrefix 匹配规范化后的会话键;match.rawKeyPrefix 匹配包含 agent:<id>: 的原始键。
memory.citations 适用于所有后端:
行为
auto(默认)在代码片段中包含 Source: <path#line> 页脚
on始终包含页脚
off省略页脚(路径仍会在内部传递给智能体)
启用 gateway-start QMD 初始化时,OpenClaw 只会为符合条件的智能体启动 QMD。如果 update.onBoot 为 true,且未配置间隔/embed 维护,启动时会使用一次性管理器执行启动刷新,然后关闭它。如果配置了更新或 embed 间隔,启动时会打开长期运行的 QMD 管理器,使其拥有 watcher 和间隔计时器;update.onBoot: false 只会跳过立即启动刷新。

完整 QMD 示例

{
  memory: {
    backend: "qmd",
    citations: "auto",
    qmd: {
      includeDefaultMemory: true,
      update: { interval: "5m", debounceMs: 15000 },
      limits: { maxResults: 4, timeoutMs: 4000 },
      scope: {
        default: "deny",
        rules: [{ action: "allow", match: { chatType: "direct" } }],
      },
      paths: [{ name: "docs", path: "~/notes", pattern: "**/*.md" }],
    },
  },
}

Dreaming

Dreaming 配置在 plugins.entries.memory-core.config.dreaming 下,而不是 agents.defaults.memorySearch 下。 Dreaming 作为一次定时扫描运行,并将内部的 light/deep/REM 阶段作为实现细节。 有关概念行为和斜杠命令,请参阅 Dreaming

用户设置

类型默认值描述
enabledbooleanfalse完全启用或禁用 Dreaming
frequencystring0 3 * * *完整 Dreaming 扫描的可选 cron 频率
modelstring默认模型可选的梦日记子智能体模型覆盖
phases.deep.maxPromotedSnippetTokensnumber160从每个提升到 MEMORY.md 的短期召回代码片段中保留的最大估算 token 数;来源元数据仍保持可见

示例

{
  plugins: {
    entries: {
      "memory-core": {
        subagent: {
          allowModelOverride: true,
          allowedModels: ["anthropic/claude-sonnet-4-6"],
        },
        config: {
          dreaming: {
            enabled: true,
            frequency: "0 3 * * *",
            model: "anthropic/claude-sonnet-4-6",
          },
        },
      },
    },
  },
}
  • Dreaming 将机器状态写入 memory/.dreams/
  • Dreaming 将人类可读的叙事输出写入 DREAMS.md(或现有的 dreams.md)。
  • dreaming.model 使用现有的插件子智能体信任门控;启用前请设置 plugins.entries.memory-core.subagent.allowModelOverride: true
  • 当配置的模型不可用时,梦日记会使用会话默认模型重试一次。信任或允许列表失败会被记录到日志,且不会静默重试。
  • light/deep/REM 阶段策略和阈值是内部行为,不是面向用户的配置。

相关内容