自动记忆:官方 memories 对齐的提取+注入闭环(确定性 v1)

开关默认关(generate/use),设置接口 GET/PUT /users/me/auto-memory-settings,任务级覆盖 POST /tasks/{id}/auto-memory-flags,手动触发 POST /users/me/auto-memory/run,日志 GET /users/me/auto-memory-log。

提取:worker run_loop 轮次边界扫 completed 任务,闲置/时长/长度/外部上下文/配额剩余百分比五道门,脱敏后写 project 级 identity_memories,同一任务去重、同一目标 supersede 合并;只写 project 级,不跨项目泄漏。

注入:worker run_one 首轮把最新各 5 条用户/项目记忆拼进内存 prompt 副本(goal 任务同步改内存 goal),库原 prompt 不动;续跑/断点/协调员不注入,注入失败 fail-open。

v1 诚实边界:extract/consolidation 模型只存设置不调模型;MCP/web 线程内调用暂无 tasks 表标记,外部上下文门只认任务间消息与协调员子任务;无控制台 UI。
This commit is contained in:
host committed 2026-10-28 12:12:10 +08:00
1 parent b93666fbe8
commit cbc90f9d30
8 files changed
+1370 -6

No files matched your search

+8 -6
View File
@@ -1,8 +1,9 @@
# 系统级身份与记忆(云端层)
本批只做云端层,不动 Codex thread:不改 `host.py`、不改
`CODEX_HOME`、不改任何 thread 的创建/续跑/fork/归档,
也不向任何任务或 thread 自动注入记忆。
`CODEX_HOME`、不改任何 thread 的创建/续跑/fork/归档。
自动注入是后一批(docs/auto-memory.md)接通的:worker 首轮
把上下文拼进内存里的 prompt 副本,库里的原 prompt 不动。
## 数据
@@ -41,9 +42,10 @@
## 未做
- 未接 worker:任务创建时不会自动拼身份上下文,thread
行为与升级前一致;自动注入是下一步的显式决策,需另
定注入点(新建 thread 的 developerInstructions 还是首轮
prompt)、去重与成本上限。
- 自动提取与注入已由 docs/auto-memory.md 一批接通(worker
首轮 prompt 前缀注入 + run_loop 轮次边界提取扫荡):注入点
定为首轮 prompt(host.py dispatch 不传 developerInstructions,
云端层不改 host.py 的唯一注入点就是 prompt 前缀),去重与
合并用确定性 supersede,成本上限用配额剩余百分比门。
- 未做控制台 UI;未做跨引擎记忆(本批记忆与 Codex
thread 无关,换引擎时云端记忆仍可用)。