Skip to content

运维、可靠性与安全配置 ​

本页逐项说明迁移、重建、备份、写入可靠性、成本、更新和安全配置。它们主要影响启动恢复、后台维护和管理操作,不应作为召回质量的常规调参入口。

备份、迁移、重建和更新都可能触发磁盘或网络操作。修改前先确认可用空间、数据备份和维护窗口;安全字段应保持默认开启,只有完成风险评估后才考虑放宽。

数据库迁移 ​

配置域:"migration_settings"。控制插件启动时的数据库版本升级行为。新数据库直接创建当前 Schema,不生成迁移备份;旧数据库先生成稳定迁移计划,再按以下开关决定是否执行。

配置项类型默认值选项与范围说明
"migration_settings.auto_migrate""bool"true-自动迁移
开启时按迁移计划升级旧 Schema;关闭后检测到旧 Schema 会以 schema_migration_required 停止 MemoryEngine 启动,不执行 ALTER、UPDATE 或隐式升级。
"migration_settings.create_backup""bool"true-迁移前自动备份
仅旧 Schema 迁移时创建 pre_migration 校验后快照,且快照完成早于第一条变更 SQL。备份失败会以 pre_migration_backup_failed 停止启动。

迁移在显式事务内逐步执行并验证目标版本与 canonical 数量。中途失败时,启用备份的流程会关闭启动连接并从迁移前快照原子恢复;恢复成功返回 schema_migration_rolled_back,恢复失败持久化为 blocked 并在后续启动返回 schema_migration_blocked。管理员应先从有效备份修复数据库、核对 canonical 数量和版本,再删除插件数据目录中的 .schema_migration_state.json 以显式解除阻断并重新启动;不要在未修复数据库时反复删除状态文件或重启。

迁移观测只包含 migration ID、from/to version、阶段、reason code、canonical 数量和变更计数,不记录数据库路径、记忆正文、canonical ID 列表或原始异常堆栈。pre_migration 备份与定时备份、恢复前备份一样服从 backup_settings.keep_days;手动备份和版本变更备份仍需显式删除。

索引重建 ​

配置域:"index_rebuild_settings"。控制 /memora rebuild-index 的分批大小、Embedding 请求速率和失败容忍度。低配云服务器建议保持较小并发。

配置项类型默认值选项与范围说明
"index_rebuild_settings.batch_size""int"50最小值:1
最大值:500
读取批量
每批从 documents 表读取的记忆条数。越大内存峰值越高、失败时影响的条数越多,建议 25-100。
"index_rebuild_settings.embedding_batch_size""int"8最小值:1
最大值:256
Embedding 批量
单次 Embedding API 请求包含的文本数量。服务商 TPM 限流严格时继续调小。
"index_rebuild_settings.tasks_limit""int"1最小值:1
最大值:8
Embedding 并发
批量 Embedding 内部并发上限。为避免触发 API 限流,默认 1。
"index_rebuild_settings.max_retries""int"5最小值:1
最大值:8
批次重试次数
单个 Embedding 批次失败后的最大重试次数。
"index_rebuild_settings.retry_base_delay""float"30最小值:0
最大值:60
重试等待秒数
批次失败后的指数退避基础等待时间。遇到 429/TPM 限流时会至少等待 30 秒。
"index_rebuild_settings.batch_delay""float"5最小值:0
最大值:10
读取批次间隔秒数
每个 documents 读取批次之间的额外等待时间,用于主动降低整体重建速率。
"index_rebuild_settings.request_delay""float"5最小值:0
最大值:60
Embedding 请求间隔秒数
每个 Embedding API 子请求之间的等待时间。频繁触发 429/TPM 时优先增大此项。
"index_rebuild_settings.max_failure_ratio""float"0.02最小值:0
最大值:1
允许失败比例
全量向量重建时,失败比例不超过该值才允许切换新索引。0.02 表示最多允许 2% 失败。

定期备份 ​

配置域:"backup_settings"。每日自动备份记忆数据库,防止数据意外丢失

配置项类型默认值选项与范围说明
"backup_settings.enabled""bool"true-启用每日自动备份
每日衰减任务执行后自动备份数据库。建议开启。
"backup_settings.keep_days""int"7-备份保留天数
超过该天数的旧备份文件将被自动删除。默认保留 7 天。

写入可靠性 ​

配置域:"write_reliability"。控制记忆写入操作的自动修复与重试行为,提升数据一致性。

配置项类型默认值选项与范围说明
"write_reliability.repair_enabled""bool"true-启用写入自动修复
写入记忆后自动校验索引完整性,发现不一致时自动修复。建议开启。
"write_reliability.max_retries""int"3-写入最大重试次数
单次写入操作失败后的最大重试次数。超过后记录错误并放弃本次写入。建议 3-5。

成本控制 ​

配置域:"cost_control"。统一管理高成本 LLM 功能的启用与降级策略。运行时只从该 typed 叶子分支构造一个不可变功能门;balanced 模式默认禁止额外 LLM 调用。

每轮请求另有共享 reservation 预算。LLM 查询改写、LLM 重排、Strategy D 第一阶段、persona interpretation 和额外反思批次共用 max_extra_llm_calls_per_turn;基础反思抽取不计入额外额度。Provider 普通失败或取消释放未提交额度,成功返回后即使解析失败也会提交。max_reflection_parallel_llm_calls 只控制并发,不增加总额度。

配置项类型默认值选项与范围说明
"cost_control.mode""string""balanced"可选:"balanced" / "low_cost" / "quality"成本模式
balanced: 默认禁止额外LLM调用; low_cost: 最小化所有成本; quality: 允许高成本路径(LLM reranker/strategyD等)
"cost_control.max_extra_llm_calls_per_turn""int"0最小值:0
最大值:10
每轮额外 LLM 调用上限
召回增强与反思额外阶段共享的请求级总额度;并发 reservation 不会超卖。balanced/low_cost 下默认 0。
"cost_control.allow_llm_reranker_in_passive_recall""bool"false-允许被动召回触发 LLM reranker
WARNING: 开启会显著增加 token 消耗和延迟。仅 quality 模式建议开启。
"cost_control.allow_llm_topic_strategy_d""bool"false-允许 strategy D(两阶段 LLM 话题分割)
Strategy D 第一阶段及后续额外反思批次仍受共享请求额度约束。
"cost_control.max_reflection_parallel_llm_calls""int"2最小值:1
最大值:8
单次反思流程允许并行执行的 LLM 请求数。它只限制瞬时并发,不替代 max_extra_llm_calls_per_turn;Provider 配额较低时应保持较小值。
"cost_control.llm_reranker_min_candidates""int"12最小值:1
最大值:50
LLM reranker 最小候选数
候选数低于此值时不触发 LLM reranker(使用 MMR 替代)。
"cost_control.llm_reranker_prompt_chars""int"3000最小值:500
最大值:10000
LLM reranker prompt 最大字符数

Dashboard 运行时构建 ​

配置域:"dashboard"。控制是否允许通过 Web API 在运行时执行 dashboard 依赖安装和构建。

配置项类型默认值选项与范围说明
"dashboard.allow_runtime_build""bool"false-允许运行时安装/构建 Dashboard
开启后非 runtime 包的引导页可以通过 Page API 执行“安装依赖”和“构建页面”。首次构建前临时开启,构建成功并刷新后恢复关闭。runtime 包无需开启;关闭该项不会禁用已经构建好的 Dashboard。
"dashboard.build_timeout_seconds""int"120最小值:5
最大值:1800
运行时构建超时(秒)
运行时 dashboard install/build 的最大执行时间。超时后会终止子进程并返回错误。
"dashboard.max_output_chars""int"20000最小值:1000
最大值:200000
构建输出最大字符数
运行时 install/build 返回给前端的 stdout/stderr 最大长度,超出部分会被截断。

插件 runtime 更新 ​

配置域:"update_settings"。管理员可通过 /memora update 检查、下载或安装已发布的 runtime 包。下载会优先使用镜像地址,并在 SHA-256 校验通过后保存到插件数据目录;宿主支持时 Dashboard 可自动切换目录、单插件重载并在失败时恢复旧版本。

配置项类型默认值选项与范围说明
"update_settings.enabled""bool"true-启用插件更新
关闭后 /memora update 不会访问网络。
"update_settings.mirror_url""string"""-GitHub 下载镜像前缀
留空使用官方地址;例如 https://ghproxy.net/ 或 https://mirror.example/,也可使用包含 {url} 占位符的地址。仅允许 HTTP(S),不支持本地文件路径。
"update_settings.timeout_seconds""int"30最小值:5
最大值:120
更新请求超时(秒)
单次 Release 元数据或安装包请求的超时时间。

安全防护 ​

配置域:"security"。控制记忆注入提示词保护、LLM 回复清洗和结构化输出护栏。

配置项类型默认值选项与范围说明
"security.prompt_protection_enabled""bool"true-启用提示词保护
对注入的记忆上下文添加内部保护包装,降低提示词泄露和指令注入风险。
"security.sanitize_llm_response""bool"true-清洗 LLM 回复
助手回复落库前移除泄露的内部提示词片段,避免污染长期记忆。
"security.guardrails_enabled""bool"true-启用输出护栏
对 LLM 记忆抽取输出执行结构化校验和安全过滤。
"security.double_check_enabled""bool"true-启用二次校验
提示词保护和回复清洗后执行额外校验,提升安全边界可靠性。
"security.wrapper_template_index""int"0最小值:0
最大值:10
保护模板索引
选择提示词保护包装模板。默认 0。
"security.strict_mode""bool"false-严格安全模式
开启后安全组件失败会跳过记忆注入或回复落库;关闭时记录告警并按兼容模式降级。

记忆导入导出 ​

配置域:"export"。JSONL/Markdown 格式记忆导出和去重合并导入

配置项类型默认值选项与范围说明
"export.enabled""bool"true-是否开放记忆导入与导出能力。关闭后相关管理入口不可用,可用于限制数据迁移面;它不会删除已经导出的文件或现有记忆。

返回配置参考总览。

Memora 文档随当前实现持续维护