memory_reconcile_apply
Applies confirmed memory reconciliation operations (merge, invalidate, score, promote) to update or invalidate entries, ensuring idempotent changes and lease release.
Instructions
按需整理·应用:批量执行 LLM 精判确认后的操作(确定性,幂等)。
每条操作是一个 dict,按 op 字段分派(未知/缺字段返回 error,不阻断其余):
merge:{op:"merge", content:合并后新内容, memo_ids:[被并各条], memo_type?:"summary", scope_path?} —— 建新 memo,把被并各条置 invalid、 invalidated_by 指向新条(Zep 失效语义不删除)。
invalidate:{op:"invalidate", memo_ids:[...]} —— 逐条失效(矛盾/被推翻)。
score:{op:"score", memo_id, quality_score:1-10, reason} —— 补质量分, reason 入 meta。
promote:{op:"promote", content, kind:constraint/design/directive/preference, scope?:"project"/global/user, source_refs?:[源 memo id]} —— 蒸馏提升为方向层 条目;红线照常生效(单条 ≤400 字 + 桶字符配额 global 1200 / project 1500 / user 300,超限该条返回 error 带用量;安全扫描同样生效)。
keep / noop:不动(可省略)。
幂等:对已失效条目重复 invalidate/merge 返回 noop 不报错。应用后自动刷新 项目 last_reconcile_at(整理分界线)。
两道闸:① memo id 只认当前项目的,含别的项目 memo 的那条操作整条报错不执行; ② 须持有 memory_reconcile_candidates 发的整理权(peek 不发),否则整批不执行 (先不带 peek 重新 candidates)。本批全部成功即释放整理权;有报错则保留,修正后重试即可; 判完无需改动也提交一次空批(operations=[])释放整理权。
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| lease_id | No | candidates 返回的 reconcile_lease.lease_id;CC 会话与 HTTP MCP 连接(如 Codex)自动识别本人可不传,其他调用方须传 | |
| keep_lease | No | 分批应用时非最后一批传 true,本批全部成功也不释放整理权 | |
| operations | Yes | 操作列表,每条一个 dict,按 op 字段分派为 merge / invalidate / score / promote / keep(各字段见工具说明)。 一次可混装多种 op;单条出错只返回该条 error,不阻断其余。 |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||