Agent 记忆功能配置(Memory Configuration)需求文档
状态:需求 / 提案 仓库:BitFun-OHOS 相关架构入口:
docs/architecture/extensions/capability-runtime-integration-design.md(Memory 能力边界:可替换 vs 权威归属)docs/architecture/product-architecture.md(分层与平台适配边界)docs/architecture/peer-device-mode.md(远程 / Peer 记忆归属)docs/features/privacy-statement.md(隐私同意状态门禁) 现有实现参考:src/web-ui/src/locales/*/settings/memories.json(Settings → Memory:Basics / Extraction / Consolidation 配置契约)src/crates/services/services-core/src/session/memory_workspace.rs(记忆工作区服务)src/crates/contracts/product-domains/src/privacy.rs(collection_allowed同意状态门禁)
功能类型
优先级
背景与动机
- BitFun 已有较成熟的记忆配置(Settings → Memory:Basics / Extraction / Consolidation 三段,覆盖自动生成、使用、提取资格、外部上下文策略、空闲 / 年龄 / 限额 / 并发 / 模型、合并候选与保留),但配置面仍有缺口。
- 缺少记忆内容的检视 / 编辑 / 删除单条入口:现有只有
resetMemory(全量重置),用户无法查看 / 编辑 / 删除单条记忆、无法看到来源 provenance(来自哪个会话 / 时间),治理与信任不足。 - provenance 与审计可见性缺失:
capability-runtime-integration-design.md把"记忆来源、使用范围、版本、删除 / 撤销事实、权限、审计和注入决策"列为权威归属事实,但用户侧缺少审计视图(谁 / 何时写入 / 删除 / 注入)。 - per-scope / per-workspace 配置缺失:现有配置似为全局;多工作区 / 多项目下记忆范围与隔离需可配置,否则 A 项目记忆可能注入 B 项目会话。
- 隐私门禁可见性不足:记忆提取自会话 transcript,可能含敏感内容;自动生成 / 使用 / 注入应受隐私同意状态门禁(fail-closed),未同意 / 受限模式不提取、不注入、不向云端发送,且用户需能看到该门禁状态。
- 远程 / Peer 场景策略缺失:远程控制下记忆以受控端为准;peer 主机记忆读写需 deny 表对齐,控制器不应静默读写 peer 记忆。
- 多 surface / 鸿蒙 PC 覆盖:记忆配置与记忆数据在 CLI / Web / MobileWeb / 鸿蒙 PC 的一致性需保证。
功能描述
- 记忆检视 / 编辑 / 删除:在 Settings → Memory 增加"查看记忆"入口,列出当前记忆条目(含来源会话、提取时间、版本);支持单条编辑、删除、撤销(标记为不使用而非物理删除,保留撤销事实);保留
resetMemory全量重置。 - provenance 与审计:每条记忆带 provenance(来源会话 id / 时间 / 提取模型 / 版本);提供审计视图(写入 / 删除 / 注入 / 撤销事件,含操作者与时间),只读、可导出,作为治理证据。
- per-scope 配置:支持按工作区 / 项目配置记忆范围与隔离(哪些会话贡献、记忆是否跨工作区共享);默认本地工作区隔离,跨工作区共享需显式开启。
- 隐私门禁:记忆的自动生成、使用、注入受隐私同意状态门禁;未同意 / 受限模式(
PrivacyNotAccepted)fail-closed 不提取、不注入、不向云端发送;记忆重置同步清理;用户可在设置中看到该门禁状态。 - 远程 / Peer 策略:远程控制下记忆以受控端为准;peer 记忆读写 deny 表三端(桌面 / CLI / FE)对齐,控制器不静默读写 peer 记忆;远程不可用时给出清晰不支持态提示而非静默失败。
- 外部上下文与注入控制:扩展现有
externalContextPolicy;新增"注入范围"配置(哪些记忆可注入新会话、是否需确认),注入决策保留为权威归属事实,不旁路。 - 保留与版本:保留策略可配置(
maxUnusedDays等),版本化记忆便于回滚;删除 / 撤销走权威归属模块,不旁路。 - 多 surface 一致:配置语义与记忆数据在桌面 / CLI / Web / MobileWeb / 鸿蒙 PC 一致,仅暴露方式按平台适配;UI 走 adapter / infrastructure 层,不直接调 host API。
- 平台无关 + 平台适配:记忆配置 DTO 与策略平台无关(contracts / services 层),平台适配器暴露;鸿蒙 PC 通过适配器接入,语义与桌面一致。
期望效果 / 使用场景
- 用户在 Settings → Memory 查看记忆条目列表,看到每条来源(会话 / 时间 / 提取模型),可单条编辑 / 删除 / 撤销,无需全量重置即可精细管理。
- 用户查看审计视图,看到记忆写入 / 删除 / 注入 / 撤销事件(操作者 / 时间),可导出作为合规与治理证据。
- 用户按工作区配置记忆范围与隔离;A 工作区记忆默认不注入 B 工作区会话,跨工作区共享需显式开启。
- 用户未同意隐私声明 / 处于受限模式时,记忆自动生成与注入 fail-closed 不执行,不向云端发送;用户可在设置中看到该门禁状态。
- 远程控制下,记忆以受控端为准;控制器不静默读写 peer 记忆,deny 表三端对齐,远程不可用时给出清晰提示。
- 鸿蒙 PC 上记忆配置语义与桌面一致,通过适配器接入。
设计草案 / 参考示例
- 现有参考实现:
docs/architecture/extensions/capability-runtime-integration-design.md:Memory 能力边界——可替换(存储实现 / 检索器 / 排序器 / 写入候选处理器 / 保留策略)vs 权威归属(来源 / 范围 / 版本 / 删除撤销 / 权限 / 审计 / 注入决策);Memory Retriever 适用失败回退组合规则。src/web-ui/src/locales/*/settings/memories.json:Basics / Extraction / Consolidation 配置契约——本需求在其上扩展检视 / 编辑 / 审计 / per-scope / 隐私门禁 / 远程策略。src/crates/services/services-core/src/session/memory_workspace.rs:记忆工作区服务——检视 / 编辑 / 删除 / 撤销 / 审计的权威归属层。src/crates/contracts/product-domains/src/privacy.rs:collection_allowed()同意状态门禁——记忆生成 / 注入须服从。
- 行业参照:Claude Code memory(
CLAUDE.md/ 记忆文件)、Cursor 记忆、ChatGPT memory 的查看 / 编辑 / 删除与 provenance / 审计。 - 落地分层建议(遵循仓库分层与边界):
- Contracts(
src/crates/contracts/product-domains):记忆条目 DTO(provenance / 版本 / 状态)、审计事件 DTO、扩展配置 DTO——平台无关、行为轻量。 - Services(
src/crates/services/services-core的memory_workspace+services-integrations):记忆检视 / 编辑 / 删除 / 撤销、审计、per-scope、保留与版本——权威归属在此,不旁路。 - Assembly(
src/crates/assembly):按 delivery profile 装配记忆能力与配置。 - Interfaces / App / UI(
src/apps+src/web-ui):桌面 host 暴露记忆 command;Web UI 扩展 Settings → Memory(检视 / 编辑 / 审计 / per-scope / 隐私门禁状态);UI 走 adapter / infrastructure 层,不直接调 host API。
- Contracts(
- 关键约束:可替换的是存储 / 检索 / 排序 / 写入候选 / 保留策略;权威归属(来源 / 范围 / 版本 / 删除撤销 / 权限 / 审计 / 注入决策)不得旁路;隐私门禁 fail-closed;远程 deny 表三端对齐;不新增第二套记忆归属模块。
是否愿意贡献
补充说明
- 本需求为现有记忆配置的增强(现有 Basics / Extraction / Consolidation 已可用),聚焦检视 / 编辑 / provenance / 审计 / per-scope / 隐私门禁 / 远程策略缺口。
- 记忆内容可能含敏感信息(提取自会话 transcript),隐私门禁与审计是合规与信任前置;未同意 / 受限模式 fail-closed,不得静默提取或注入。
- 远程 / Peer 遵循仓库"远程兼容"全局规则与 deny 表三端对齐原则(参见
computer-use-refactor-plan.md的 M14 修复方向)。 - 鸿蒙 PC 是平台移植目标,记忆配置通过适配器接入,不属当前桌面优先范围但需保证语义一致(见
docs/architecture/platform-portability-design.md)。 - 不为覆盖竞品矩阵而引入第二套记忆归属模块或
MemoryProviderRegistry等空壳公共对象(见capability-runtime-integration-design.md组合规则门槛)。