MemoryForge(记忆锻造)机制说明
- 英文名:memoryforge
来源 docs/core-mechanisms/记忆锻造/记忆锻造.md
- 英文名:
memoryforge - 中文名:记忆锻造
MemoryForge 是 Cadau 的“对话洞察与知识反哺”机制: 通过归档真实对话,离线提炼高频与关键问题,在 不改动人工撰写的知识正本 的前提下,持续完善应答质量。
方法论层请参考:../索引式文档与反馈闭环.md。 本文档聚焦 MemoryForge 的工程实现与运行方式。
目标
- 让帮助与团队知识跟随真实问题持续演进,正本只读、改进走叠加层。
- 降低重复问答成本,提升首次答复命中率。
- 为后续「采纳 → 写入叠加层 / 技能 / 索引」提供稳定数据输入。
正本与叠加层(核心原则)
| 层级 | 谁维护 | 记忆锻造能否修改 |
|---|---|---|
| 知识正本 | 人工撰写(系统 help/、工作区/智能体 knowledge/ 正文) | 否 — 只读引用 |
| 应答补充 | 锻造采纳后 新建 | 是 — 写入 _forged/ 等叠加目录(待实现检索合并) |
| 工作区技能 | 锻造或对话沉淀 | 是 — 写入 DB,不 patch 正文 |
| 检索索引 | 人工或 AI 重建 | 部分 — 仅 index.json 别名/标签/摘要 |
智能体回答时:正本优先;叠加层填补空白;冲突时以正本为准并在注入块标明来源。
采纳动作类型(action_type)
扫描聚类后,每条提案带下列之一(由规则 + 可选 LLM 润色建议文案):
| 值 | 用户说法 | 典型场景 |
|---|---|---|
supplement | 新建应答补充 | 高频 FAQ、弱答复、缺口径 |
skill | 新建工作区技能 | 弱答复 + 操作/流程类问法(仅工作区路径) |
index | 优化检索索引 | 答复尚可但仍高频,疑为检索未命中正本 |
verified_answer | 归档已验证答复 | 已有较长可靠答复,需固化为标准口径 |
禁止:提案或一键应用 改写、合并进 已有 .md 正本。
当前已落地
- 后端会在聊天完成后将“用户问题 + 助手回复”写入归档。
- 归档格式:按日
jsonl文件。 - 默认目录:
tmp/memoryforge/chat-archive - 配置项:
CHAT_ARCHIVE_DIR - 扫描与提案(MVP):管理端
POST /admin/memoryforge/scan扫描近 N 天归档、按重复问题聚类,输出含action_type的提案至tmp/memoryforge/proposals/;可选 LLM 润色 top 建议。 - 用户评价信号:对话归档写入
assistant_message_id;用户对助手回复评价后回写rating/rating_reasons/rating_note。扫描时:帮助会话「不满意」可 单次进提案、优先级 高,并写入建议文案与证据。 - 管理端页面:
/memoryforge可扫描、查看历史提案与证据对话(含「用户不满意」标记)。 - 采纳写入(应答补充):
POST /admin/memoryforge/proposals/{id}/adopt将supplement类聚类写入对应知识根下的_forged/(新建 Markdown + 索引),不改动正本;提案 JSON 回写adopted_path。 - 检索合并:帮助智能体与工作区/智能体知识检索时,合并
_forged/命中片段,并标注「若与正本冲突以正本为准」。
归档记录包含(示例字段):
timestamp、daterequest_id、session_iduser_id、workspace_id、user_agent_idhelp_mode、partialintent_meta(结构化意图:intent、slots、confidence、need_clarification)user_message、assistant_message、assistant_message_idrating、rating_reasons、rating_note、rated_at(评价后回写)
提案聚类字段(示例):
title、frequency、target_layer(help|workspace)action_type(见上表)priority、suggestion、evidencedissatisfied_count、rating_reasons(有用户不满意时)
后续计划(建议)
分阶段实施:见 ../../记忆锻造与定时任务实施计划.md(MF 轨道)。
- ~~时间窗扫描~~:已实现 MVP(管理端按近 N 天扫描)。
- ~~信号提炼与动作分类~~:MVP 已含频次聚类、弱答复优先级与四种
action_type。 - ~~采纳写入(应答补充)~~:
supplement/verified_answer已支持写入_forged/;skill写入工作区技能中心;index优化index.json别名。 - ~~检索合并~~:帮助与工作区/智能体知识检索已合并
_forged/。 - ~~效果回看(轻量)~~:管理端近 30 天按
action_type采纳统计。 - 可选自动扫描:
MEMORYFORGE_AUTO_SCAN_ENABLED环境变量(仍须人工采纳)。
与索引闭环的关系
- 索引闭环定义“如何组织文档与如何形成改进循环”。
- MemoryForge 提供“数据采集、离线分析、改进提案”的实现能力。
- 两者配合后,文档系统可持续演进:
- 索引体系负责“检索与执行质量”; - MemoryForge 负责“发现问题并推动 叠加层 更新”,不替代人工维护正本。
与智能体长期记忆的区别
| 记忆锻造(MemoryForge) | 智能体长期记忆 | |
|---|---|---|
| 服务对象 | 帮助文档、工作区知识叠加层与技能 | 单个用户智能体跨会话的偏好与事实 |
| 数据来源 | 全平台对话归档(chat-archive) | 运行时 Workspace(memory/entries/、日笔记等) |
| 写入方式 | 离线扫描、人工采纳后 新建 补充/技能/索引 | 对话后提炼、压缩前 flush、用户/助手改删、闲时整理 |
| 典型产物 | 应答补充篇、工作区技能、索引别名 | memory/entries/*.md、USER.md |
| 闲时清理 | 不删除个人记忆 | agent_memory_maintain(与锻造并列) |
规格中的 OpenClaw Dreaming / 记忆晋升在 Cadau 里对应上表右侧「智能体长期记忆」链路(已实现:对话提炼、Compaction 前 flush、闲时整理 agent_memory_maintain),不是 MemoryForge。MemoryForge 不负责把对话流水直接晋升进结构化记忆条目,也 不 删除个人 memory/entries/。闲时去重/过期清理见 ../智能体记忆.md「闲时整理」。
命名约定
- 机制总名:
MemoryForge - 提案目录:
tmp/memoryforge/proposals - 叠加层目录(规划):系统
help/_forged/、工作区knowledge/_forged/