work-ally 0.2.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +110 -0
- package/DASHBOARD.md +160 -0
- package/PRODUCT.md +113 -0
- package/README.md +403 -0
- package/ally.sh +171 -0
- package/bridge/src/approval-rules.ts +360 -0
- package/bridge/src/channel-delivery.ts +207 -0
- package/bridge/src/channel-types.ts +22 -0
- package/bridge/src/channels/fake/adapter.ts +31 -0
- package/bridge/src/channels/feishu/adapter.ts +411 -0
- package/bridge/src/channels/feishu/approvals.ts +6 -0
- package/bridge/src/channels/feishu/formatter.ts +276 -0
- package/bridge/src/channels/feishu/normalize.ts +368 -0
- package/bridge/src/codex-config.ts +52 -0
- package/bridge/src/config.ts +240 -0
- package/bridge/src/fake-runtime-client.ts +505 -0
- package/bridge/src/handoff-service.ts +494 -0
- package/bridge/src/logger.ts +194 -0
- package/bridge/src/memory-digest.ts +186 -0
- package/bridge/src/receiver-approval-autonomy.ts +158 -0
- package/bridge/src/receiver-control-core.ts +140 -0
- package/bridge/src/receiver-control-work-session.ts +218 -0
- package/bridge/src/receiver-control.ts +83 -0
- package/bridge/src/receiver-delivery.ts +136 -0
- package/bridge/src/receiver-helpers.ts +96 -0
- package/bridge/src/receiver-human-gate.ts +333 -0
- package/bridge/src/receiver-inbound-preflight.ts +162 -0
- package/bridge/src/receiver-recovery.ts +236 -0
- package/bridge/src/receiver-runtime-callbacks.ts +367 -0
- package/bridge/src/receiver-runtime-policy.ts +132 -0
- package/bridge/src/receiver-runtime-state.ts +124 -0
- package/bridge/src/receiver-support-actions.ts +189 -0
- package/bridge/src/receiver-thread-start.ts +57 -0
- package/bridge/src/receiver-turn-coordination.ts +94 -0
- package/bridge/src/receiver-turn-execution.ts +257 -0
- package/bridge/src/receiver-turn-failure.ts +143 -0
- package/bridge/src/receiver-turn-result.ts +185 -0
- package/bridge/src/receiver-turn-steer.ts +70 -0
- package/bridge/src/receiver-work-session.ts +76 -0
- package/bridge/src/receiver.ts +329 -0
- package/bridge/src/router.ts +62 -0
- package/bridge/src/runtime-client-agent-messages.ts +150 -0
- package/bridge/src/runtime-client-message-dispatch.ts +176 -0
- package/bridge/src/runtime-client-protocol.ts +411 -0
- package/bridge/src/runtime-client-request-ops.ts +56 -0
- package/bridge/src/runtime-client-run-turn.ts +158 -0
- package/bridge/src/runtime-client-thread-ops.ts +270 -0
- package/bridge/src/runtime-client-transport.ts +309 -0
- package/bridge/src/runtime-client-turn-poll.ts +224 -0
- package/bridge/src/runtime-client-turn-read.ts +185 -0
- package/bridge/src/runtime-client-turn-state.ts +105 -0
- package/bridge/src/runtime-client.ts +344 -0
- package/bridge/src/runtime-user-input.ts +403 -0
- package/bridge/src/scheduler.ts +239 -0
- package/bridge/src/server-handoff-command.ts +364 -0
- package/bridge/src/server-main.ts +80 -0
- package/bridge/src/server-routine-command.ts +60 -0
- package/bridge/src/server-routine-execution.ts +222 -0
- package/bridge/src/server-runtime-app-support.ts +107 -0
- package/bridge/src/server-runtime-app.ts +238 -0
- package/bridge/src/server-thread-sync-command.ts +63 -0
- package/bridge/src/server.ts +17 -0
- package/bridge/src/session-store-delivery.ts +220 -0
- package/bridge/src/session-store-human-gate.ts +380 -0
- package/bridge/src/session-store-inbound-acceptance.ts +66 -0
- package/bridge/src/session-store-meta.ts +134 -0
- package/bridge/src/session-store-turn-ledger.ts +272 -0
- package/bridge/src/session-store.ts +380 -0
- package/bridge/src/system-notify.ts +220 -0
- package/bridge/src/thread-sync.ts +200 -0
- package/bridge/src/translator.ts +494 -0
- package/bridge/src/types.ts +289 -0
- package/bridge/src/utils.ts +104 -0
- package/bridge/src/work-session-store.ts +471 -0
- package/docs/.gitkeep +0 -0
- package/docs/architecture/codex-feishu-bridge-proposal.md +2742 -0
- package/docs/completed/FEATURE-feishu-markdown-and-reply-support.md +327 -0
- package/docs/completed/README.md +21 -0
- package/docs/completed/SPEC-approval-autonomy-and-safe-defaults.md +205 -0
- package/docs/completed/SPEC-approval-batch-and-strict-reply-shortcuts.md +153 -0
- package/docs/completed/SPEC-conversation-noise-reduction-and-busy-input-gate.md +538 -0
- package/docs/completed/SPEC-engineering-sop-skillization.md +190 -0
- package/docs/completed/SPEC-faithful-bridge-core-thinning-v2.md +376 -0
- package/docs/completed/SPEC-faithful-bridge-core-thinning.md +1071 -0
- package/docs/completed/SPEC-group-chat-sender-identity.md +301 -0
- package/docs/completed/SPEC-middleware-exception-visibility.md +227 -0
- package/docs/completed/SPEC-nightly-memory-digest-visibility.md +121 -0
- package/docs/completed/SPEC-project-group-chat-human-centered-conversation-mapping.md +326 -0
- package/docs/completed/SPEC-remove-cli-persona-bootstrap.md +201 -0
- package/docs/developer-workflow.md +49 -0
- package/docs/implementation/SPEC-codex-same-machine-session-handoff-implementation.md +239 -0
- package/docs/implementation/test-coverage-map.md +363 -0
- package/docs/implementation/work-ally-implementation-guide.md +790 -0
- package/docs/issues/README.md +10 -0
- package/docs/issues/pending/ANALYSIS-ally-premature-recovery-notice-and-task-state-semantics-2026-03-18.md +295 -0
- package/docs/issues/resolved/ANALYSIS-approval-waiting-visible-but-approval-artifact-missing-2026-03-16.md +466 -0
- package/docs/issues/resolved/ANALYSIS-blocking-state-visible-without-user-actionable-artifact-2026-03-16.md +261 -0
- package/docs/issues/resolved/ANALYSIS-codex-app-server-transport-disconnect-semantics-2026-03-14.md +606 -0
- package/docs/issues/resolved/ANALYSIS-premature-terminalization-on-fresh-thread-poll-and-object-error-leak-2026-03-16.md +348 -0
- package/docs/issues/resolved/ANALYSIS-runtime-turn-delivery-and-recovery-2026-03-14.md +603 -0
- package/docs/issues/resolved/ANALYSIS-self-test-gap-approval-waiting-visible-but-approval-artifact-missing-2026-03-16.md +166 -0
- package/docs/issues/resolved/ANALYSIS-self-test-gap-blocking-state-visible-without-user-actionable-artifact-2026-03-16.md +186 -0
- package/docs/issues/resolved/ANALYSIS-self-test-gap-premature-terminalization-on-fresh-thread-poll-and-object-error-leak-2026-03-16.md +166 -0
- package/docs/issues/resolved/REPORT-ally-runtime-turn-delivery-3b42fb8-2026-03-15.md +373 -0
- package/docs/manual-acceptance.md +127 -0
- package/docs/ops-runbook.md +44 -0
- package/docs/planning/FEATURE-memory-system.md +748 -0
- package/docs/planning/SPEC-active-turn-steer-and-context-compaction-visibility.md +269 -0
- package/docs/planning/SPEC-approval-rules-inheritance-and-local-validation-lane.md +450 -0
- package/docs/planning/SPEC-assistant-persona-bootstrap.md +199 -0
- package/docs/planning/SPEC-assistant-rename.md +610 -0
- package/docs/planning/SPEC-bridge-app-server-protocol-alignment.md +667 -0
- package/docs/planning/SPEC-claude-runtime-host-for-work-ally.md +434 -0
- package/docs/planning/SPEC-cli-feishu-codex-session-unification.md +236 -0
- package/docs/planning/SPEC-codex-same-machine-session-handoff.md +873 -0
- package/docs/planning/SPEC-feishu-reaction-shortcuts.md +282 -0
- package/docs/planning/SPEC-local-stable-release-boundary.md +166 -0
- package/docs/planning/SPEC-managed-thread-entry-and-surface-mobility.md +862 -0
- package/docs/planning/SPEC-minimal-bridge-semantics-and-user-visible-surface.md +362 -0
- package/docs/planning/SPEC-npm-alpha-distribution-and-install-first-release.md +222 -0
- package/docs/planning/SPEC-remove-websocket-runtime-transport.md +364 -0
- package/docs/planning/SPEC-runtime-abstraction-phase-1.md +424 -0
- package/docs/planning/SPEC-runtime-connection-and-turn-recovery-semantics.md +274 -0
- package/docs/planning/SPEC-session-presence-and-state-visibility.md +397 -0
- package/docs/planning/SPEC-skill-first-capability-packaging.md +338 -0
- package/docs/planning/SPEC-stable-archive-contract.md +456 -0
- package/docs/planning/SPEC-supervised-start-boundary.md +127 -0
- package/docs/planning/SPEC-user-barrier-reduction-and-activation.md +832 -0
- package/docs/planning/ally-next.md +1278 -0
- package/docs/planning/assistant-workbench-spec.md +725 -0
- package/docs/planning/product-workbench.md +283 -0
- package/docs/product-onboarding.md +227 -0
- package/docs/product-spec-standard.md +528 -0
- package/docs/troubleshooting.md +45 -0
- package/docs/user-quickstart.md +46 -0
- package/internal/dispatch.sh +95 -0
- package/internal/lib/common.sh +1450 -0
- package/internal/modules/assistant/manage.sh +1312 -0
- package/internal/modules/bootstrap/setup.sh +144 -0
- package/internal/modules/config/init-env.sh +10 -0
- package/internal/modules/global/manage.sh +154 -0
- package/internal/modules/handoff/manage.sh +54 -0
- package/internal/modules/mcp/manage.sh +83 -0
- package/internal/modules/ops/logs.sh +76 -0
- package/internal/modules/routines/manage.sh +55 -0
- package/internal/modules/runtime/assistant-autosave.sh +26 -0
- package/internal/modules/runtime/restart.sh +6 -0
- package/internal/modules/runtime/start.sh +283 -0
- package/internal/modules/runtime/status.sh +194 -0
- package/internal/modules/runtime/stop.sh +55 -0
- package/internal/modules/runtime/supervisor.sh +216 -0
- package/internal/modules/runtime/update.sh +26 -0
- package/package.json +41 -0
- package/runtime/config/.gitkeep +0 -0
- package/runtime/host/.gitkeep +0 -0
- package/runtime/host/healthcheck-codex-app-server.ts +22 -0
- package/runtime/host/ping-pong-codex-app-server.ts +66 -0
- package/runtime/host/probe-codex-app-server.ts +115 -0
- package/skills/archive-reader/SKILL.md +9 -0
- package/skills/feishu-production-debug/SKILL.md +37 -0
- package/skills/feishu-production-debug/references/feishu-debug-order.md +49 -0
- package/skills/feishu-production-debug/references/platform-permission-baseline.md +23 -0
- package/skills/issue-to-spec-triage/SKILL.md +44 -0
- package/skills/issue-to-spec-triage/references/triage-rules.md +66 -0
- package/skills/memory-digest/SKILL.md +9 -0
- package/skills/post-implementation-closure/SKILL.md +39 -0
- package/skills/post-implementation-closure/references/closure-checklist.md +45 -0
- package/skills/post-implementation-closure/references/doc-drift-map.md +49 -0
- package/skills/product-spec/SKILL.md +244 -0
- package/templates/env.example +5 -0
- package/templates/routines/nightly-memory-digest.yaml +10 -0
- package/templates/workspace/AGENTS.md +26 -0
|
@@ -0,0 +1,748 @@
|
|
|
1
|
+
# Memory System
|
|
2
|
+
|
|
3
|
+
## Status
|
|
4
|
+
|
|
5
|
+
- Target project: `work-ally`
|
|
6
|
+
- Audience: implementation engineer / product architect
|
|
7
|
+
- Scope: assistant desk memory system
|
|
8
|
+
- Status: partially shipped / contract not fully closed
|
|
9
|
+
- Goal: define a file-first, inspectable, low-complexity memory system for one assistant desk
|
|
10
|
+
|
|
11
|
+
## Summary
|
|
12
|
+
|
|
13
|
+
这份文档定义 `work-ally` 的 identity + memory feature。
|
|
14
|
+
|
|
15
|
+
当前状态补充:
|
|
16
|
+
|
|
17
|
+
- assistant desk 文件集合、archive raw layer、`journal/`、`MEMORY.md`、`NOW.md`、`MISTAKES.md` 与 nightly digest 已经进入 shipped baseline
|
|
18
|
+
- 当前未收口的重点不再是“是否存在记忆系统”,而是注入合同、纠错合同、删除/更正语义与文件职责边界的进一步产品化
|
|
19
|
+
|
|
20
|
+
结论先行:
|
|
21
|
+
|
|
22
|
+
1. `work-ally` 现在已经有 **黑匣子归档** 和 **nightly digest 雏形**,但还不是完整的记忆系统。
|
|
23
|
+
2. 真正要做的,不是再加一堆目录,而是把 **原材料、人格承载、短期工作记忆、日记、长期记忆、错题本、注入规则** 这几件事定义清楚。
|
|
24
|
+
3. 当前阶段坚持 **纯文本文件**,不引入向量数据库、不引入额外 memory platform。
|
|
25
|
+
4. 项目知识属于项目,不属于 assistant desk;assistant desk 当前重点只承接 **助理自己的记忆系统**。
|
|
26
|
+
|
|
27
|
+
一句话定义:
|
|
28
|
+
|
|
29
|
+
> `work-ally` 的 identity + memory system = 以 assistant desk 为边界、以文本文件为载体、以 archive 为稳定原材料、以 assistant 工作中主动更新为主写入路径、以启动/续聊时的明确注入规则为读取路径的系统。
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Background
|
|
34
|
+
|
|
35
|
+
### 为什么现在要单独定义 memory
|
|
36
|
+
|
|
37
|
+
`work-ally` 已经把 assistant desk 从项目中分离出来,这一步决定了一个事实:
|
|
38
|
+
|
|
39
|
+
- 项目负责项目制度与代码资产
|
|
40
|
+
- assistant desk 负责 assistant 的身份、连续性与记忆
|
|
41
|
+
|
|
42
|
+
如果这个边界不清楚,就会出现两个问题:
|
|
43
|
+
|
|
44
|
+
1. memory 会和项目知识混在一起
|
|
45
|
+
2. digest 虽然在写文件,但运行时并不知道该读什么、何时读、为什么读
|
|
46
|
+
|
|
47
|
+
所以 memory 现在最需要的不是“更多数据”,而是**角色清晰、读写闭环清晰**。
|
|
48
|
+
|
|
49
|
+
### 当前实现现状
|
|
50
|
+
|
|
51
|
+
当前 `work-ally` 已有这些基础:
|
|
52
|
+
|
|
53
|
+
- `.system/archive/`:黑匣子原材料归档
|
|
54
|
+
- `journal/`:每日记忆输出目录
|
|
55
|
+
- `MEMORY.md`:长期记忆文件
|
|
56
|
+
- `NOW.md`:当前说明文件
|
|
57
|
+
- `MISTAKES.md`:错题本文件
|
|
58
|
+
- nightly routine:`nightly-memory-digest`
|
|
59
|
+
- digest prompt/parser:`work-ally/bridge/src/memory-digest.ts`
|
|
60
|
+
|
|
61
|
+
但当前实现仍存在明显缺口:
|
|
62
|
+
|
|
63
|
+
1. `NOW.md` 的角色还没有产品化定义清楚
|
|
64
|
+
2. `MISTAKES.md` 还没有明确“双写路径”
|
|
65
|
+
3. nightly digest 只是基于原材料的提炼机制,而且未来可能演进
|
|
66
|
+
4. 最关键的 **memory injection contract** 还没有固定
|
|
67
|
+
5. `AGENTS.md` 与 memory files 的协作关系还需要明确写入
|
|
68
|
+
|
|
69
|
+
因此,当前最准确的判断是:
|
|
70
|
+
|
|
71
|
+
> 现状是 memory pipeline prototype,不是完整 memory system。
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## Product Goal
|
|
76
|
+
|
|
77
|
+
本 feature 要完成的不是“让 assistant 记住一切”,而是完成一个稳定、低复杂度、可人工检查的 identity + memory 闭环:
|
|
78
|
+
|
|
79
|
+
```text
|
|
80
|
+
archive -> active updates -> memory files -> prompt injection
|
|
81
|
+
|
|
82
|
+
archive -> digest -> journal / MEMORY
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
系统目标分成四层:
|
|
86
|
+
|
|
87
|
+
1. **保真留痕**
|
|
88
|
+
- 所有真实过程先进入黑匣子 archive
|
|
89
|
+
2. **结构化沉淀**
|
|
90
|
+
- 不同重要度的信息进入不同 memory 文件
|
|
91
|
+
3. **运行时可用**
|
|
92
|
+
- assistant 在启动、续聊、关键 turn 时知道该读什么
|
|
93
|
+
4. **可纠偏**
|
|
94
|
+
- assistant 明确犯错时,能立即更新 `NOW.md` / `MISTAKES.md`
|
|
95
|
+
5. **原材料稳定**
|
|
96
|
+
- archive 的内部结构先拍板稳定,未来提炼机制可以替换,但原材料协议不轻易变动
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## Scope
|
|
101
|
+
|
|
102
|
+
### In scope
|
|
103
|
+
|
|
104
|
+
- assistant desk 内的记忆文件结构
|
|
105
|
+
- 各文件的职责边界
|
|
106
|
+
- 各文件的读写时机
|
|
107
|
+
- nightly digest 与工作中随手更新的边界关系
|
|
108
|
+
- runtime 读取 memory 的注入契约
|
|
109
|
+
- `AGENTS.md` 与 `SOUL.md` 的职责边界
|
|
110
|
+
- `AGENTS.md` 中应明确说明的 memory 使用规则
|
|
111
|
+
|
|
112
|
+
### Out of scope
|
|
113
|
+
|
|
114
|
+
- 项目知识库平台化
|
|
115
|
+
- 向量数据库 / embeddings / semantic retrieval
|
|
116
|
+
- “所有聊天全文都当作可直接检索记忆”的大而全系统
|
|
117
|
+
- 复杂权限模型
|
|
118
|
+
- 多 assistant 共享记忆
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
## Memory Boundary
|
|
123
|
+
|
|
124
|
+
### 1. assistant desk 是记忆边界
|
|
125
|
+
|
|
126
|
+
记忆属于 assistant desk,而不是项目目录。
|
|
127
|
+
|
|
128
|
+
原因:
|
|
129
|
+
|
|
130
|
+
- assistant 是“来到项目里工作”的,不是项目本体的一部分
|
|
131
|
+
- 一个 assistant 的连续人格、工作习惯、错误复盘,应放在 desk 上
|
|
132
|
+
- 项目自己的制度、代码、文档,继续归项目自己管理
|
|
133
|
+
|
|
134
|
+
### 2. memory 不等于 knowledge
|
|
135
|
+
|
|
136
|
+
当前阶段必须明确区分:
|
|
137
|
+
|
|
138
|
+
- **memory**:assistant 自己经历过、沉淀过、需要带到未来的东西
|
|
139
|
+
- **knowledge**:项目文档、制度、代码事实、用户提供资料
|
|
140
|
+
|
|
141
|
+
项目知识应继续从项目工作区读取,例如:
|
|
142
|
+
|
|
143
|
+
- `AGENTS.md`
|
|
144
|
+
- README
|
|
145
|
+
- 项目内文档
|
|
146
|
+
- 代码本身
|
|
147
|
+
|
|
148
|
+
当前不单独产品化 assistant desk 的 `knowledge/` 目录。
|
|
149
|
+
|
|
150
|
+
### 3. archive 不等于 memory
|
|
151
|
+
|
|
152
|
+
`archive` 是稳定原材料,不是直接拿来当 prompt 的长期记忆。
|
|
153
|
+
|
|
154
|
+
它的职责是:
|
|
155
|
+
|
|
156
|
+
- 忠实记录过程
|
|
157
|
+
- 作为当前及未来各种 digest / compression 机制的事实来源
|
|
158
|
+
- 为人工排查提供依据
|
|
159
|
+
|
|
160
|
+
它不承担:
|
|
161
|
+
|
|
162
|
+
- 直接暴露给 assistant 作为常规热路径记忆
|
|
163
|
+
- 人工频繁编辑
|
|
164
|
+
- 替代 `MEMORY.md` / `NOW.md` / `MISTAKES.md`
|
|
165
|
+
|
|
166
|
+
### 4. `AGENTS.md` 不等于 memory body
|
|
167
|
+
|
|
168
|
+
`AGENTS.md` 是规则与使用契约,不是记忆正文。
|
|
169
|
+
|
|
170
|
+
它负责告诉 assistant:
|
|
171
|
+
|
|
172
|
+
- 有哪些身份与 memory 文件
|
|
173
|
+
- 这些文件分别是什么意思
|
|
174
|
+
- 启动时先读什么
|
|
175
|
+
- 什么时候应该更新什么
|
|
176
|
+
|
|
177
|
+
真正的记忆内容,仍然放在各自文件中。
|
|
178
|
+
|
|
179
|
+
### 5. `SOUL.md` 不等于 `AGENTS.md`
|
|
180
|
+
|
|
181
|
+
`SOUL.md` 用来承载 assistant 的名字、使命、人格、表达风格与做事方式。
|
|
182
|
+
|
|
183
|
+
它适合放:
|
|
184
|
+
|
|
185
|
+
- 助理是谁
|
|
186
|
+
- 助理怎么说话
|
|
187
|
+
- 助理怎么做事
|
|
188
|
+
- 助理的价值取向与禁忌
|
|
189
|
+
|
|
190
|
+
它不适合放:
|
|
191
|
+
|
|
192
|
+
- 产品边界
|
|
193
|
+
- 文件职责契约
|
|
194
|
+
- 长期记忆正文
|
|
195
|
+
|
|
196
|
+
因此,推荐模型不是二选一,而是:
|
|
197
|
+
|
|
198
|
+
- `AGENTS.md` 负责稳定规则与读取契约
|
|
199
|
+
- `SOUL.md` 负责人格与风格
|
|
200
|
+
- memory 文件负责连续性记忆
|
|
201
|
+
|
|
202
|
+
### 6. 对 Codex 而言,主规则入口只有两个 `AGENTS.md`
|
|
203
|
+
|
|
204
|
+
从产品设计上,不应把 `SOUL.md`、`NOW.md`、`MEMORY.md`、`MISTAKES.md` 设计成和 `AGENTS.md` 并列的规则层。
|
|
205
|
+
|
|
206
|
+
对 Codex 来说,真正的主规则入口只有两个:
|
|
207
|
+
|
|
208
|
+
- 当前项目的 `AGENTS.md`
|
|
209
|
+
- assistant desk 的 `AGENTS.md`
|
|
210
|
+
|
|
211
|
+
其中:
|
|
212
|
+
|
|
213
|
+
- 项目 `AGENTS.md` 定义“在这个项目里如何工作”
|
|
214
|
+
- desk `AGENTS.md` 定义“这个 assistant 是谁、desk 在哪、还要继续读哪些 desk 资产”
|
|
215
|
+
- `SOUL.md`、`NOW.md`、`MEMORY.md`、`MISTAKES.md` 都是 desk `AGENTS.md` 引导读取的资产,不是并列规则入口
|
|
216
|
+
|
|
217
|
+
这意味着:
|
|
218
|
+
|
|
219
|
+
- 不需要额外发明复杂的优先级矩阵
|
|
220
|
+
- 项目 `AGENTS.md` 如对角色、风格、协作方式有明确要求,可以覆盖 desk 的默认人格基线
|
|
221
|
+
- desk 负责提供默认人格与长期连续性,项目负责定义当前工作现场的约束
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
## Canonical File Set
|
|
226
|
+
|
|
227
|
+
assistant desk 的 memory v1 采用以下最小集合:
|
|
228
|
+
|
|
229
|
+
```text
|
|
230
|
+
<assistant-desk>/
|
|
231
|
+
AGENTS.md
|
|
232
|
+
SOUL.md
|
|
233
|
+
NOW.md
|
|
234
|
+
MEMORY.md
|
|
235
|
+
MISTAKES.md
|
|
236
|
+
journal/
|
|
237
|
+
conversations/
|
|
238
|
+
.system/
|
|
239
|
+
archive/
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
其中 identity + memory feature 的核心文件角色如下。
|
|
243
|
+
|
|
244
|
+
### `AGENTS.md`
|
|
245
|
+
|
|
246
|
+
**定位**:稳定规则 / 加载器 / 宪法。
|
|
247
|
+
|
|
248
|
+
它负责声明:
|
|
249
|
+
|
|
250
|
+
- assistant desk 的文件契约
|
|
251
|
+
- desk 资产的读取顺序
|
|
252
|
+
- 哪些文件允许工作中更新
|
|
253
|
+
- `SOUL.md` 是人格与风格来源
|
|
254
|
+
- 它自己与项目 `AGENTS.md` 一起构成 Codex 的两个主规则入口
|
|
255
|
+
|
|
256
|
+
要求:
|
|
257
|
+
|
|
258
|
+
- 中文
|
|
259
|
+
- 短、小、稳定
|
|
260
|
+
- 尽量少让用户编辑
|
|
261
|
+
|
|
262
|
+
### `SOUL.md`
|
|
263
|
+
|
|
264
|
+
**定位**:人格、名字、气质、做事风格的承载文件。
|
|
265
|
+
|
|
266
|
+
它适合承载:
|
|
267
|
+
|
|
268
|
+
- 助理名称
|
|
269
|
+
- 使命
|
|
270
|
+
- 性格与表达风格
|
|
271
|
+
- 做事原则
|
|
272
|
+
- 用户希望长期保留的人设偏好
|
|
273
|
+
|
|
274
|
+
要求:
|
|
275
|
+
|
|
276
|
+
- setup 默认生成中文模板
|
|
277
|
+
- 产品可预设骨架,但必须给用户留明显空白
|
|
278
|
+
- 允许用户自由编辑
|
|
279
|
+
- 默认不允许 assistant 在无明确授权时静默自改
|
|
280
|
+
|
|
281
|
+
原则:
|
|
282
|
+
|
|
283
|
+
> memory 可以自更新,soul 不应静默漂移。
|
|
284
|
+
|
|
285
|
+
|
|
286
|
+
### `NOW.md`
|
|
287
|
+
|
|
288
|
+
**定位**:热路径、当下态、工作中随手记。
|
|
289
|
+
|
|
290
|
+
它记录:
|
|
291
|
+
|
|
292
|
+
- 现在正在推进什么
|
|
293
|
+
- 当前阻塞点是什么
|
|
294
|
+
- 下一步准备做什么
|
|
295
|
+
- 刚刚形成、但还不应进入长期记忆的重要提醒
|
|
296
|
+
|
|
297
|
+
它不是:
|
|
298
|
+
|
|
299
|
+
- 每日总结
|
|
300
|
+
- 长期人生记忆
|
|
301
|
+
- 完整聊天记录副本
|
|
302
|
+
|
|
303
|
+
关键要求:
|
|
304
|
+
|
|
305
|
+
- `NOW.md` 不是只靠 nightly digest 生成
|
|
306
|
+
- assistant 在工作过程中可以主动更新它
|
|
307
|
+
- 它允许短、碎、任务导向
|
|
308
|
+
|
|
309
|
+
可以把它理解为:
|
|
310
|
+
|
|
311
|
+
> assistant 醒来先看的床头便签。
|
|
312
|
+
|
|
313
|
+
### `journal/YYYY-MM-DD.md`
|
|
314
|
+
|
|
315
|
+
**定位**:每日工作日记 / 当日沉淀。
|
|
316
|
+
|
|
317
|
+
它记录:
|
|
318
|
+
|
|
319
|
+
- 当天发生了什么重要事情
|
|
320
|
+
- 做了哪些关键决策
|
|
321
|
+
- 形成了哪些当日结论
|
|
322
|
+
- 哪些内容值得流向长期记忆或错题本
|
|
323
|
+
|
|
324
|
+
它是:
|
|
325
|
+
|
|
326
|
+
- digest 的主要日级产物
|
|
327
|
+
- 从 archive 原材料提炼出的可读总结
|
|
328
|
+
|
|
329
|
+
它不是:
|
|
330
|
+
|
|
331
|
+
- 原始聊天记录
|
|
332
|
+
- 长期稳定规则总表
|
|
333
|
+
|
|
334
|
+
### `MEMORY.md`
|
|
335
|
+
|
|
336
|
+
**定位**:长期稳定记忆。
|
|
337
|
+
|
|
338
|
+
它只保留跨天仍然有价值、可复用、相对稳定的信息,例如:
|
|
339
|
+
|
|
340
|
+
- assistant 的长期工作偏好
|
|
341
|
+
- 用户长期稳定的协作习惯
|
|
342
|
+
- 反复出现、已经稳定下来的项目协作规则
|
|
343
|
+
- 未来应持续记住的背景事实
|
|
344
|
+
|
|
345
|
+
它不应写入:
|
|
346
|
+
|
|
347
|
+
- 当天临时任务
|
|
348
|
+
- 易过期的待办
|
|
349
|
+
- 一次性的聊天细节
|
|
350
|
+
- 没有跨天价值的过程性碎片
|
|
351
|
+
|
|
352
|
+
原则:
|
|
353
|
+
|
|
354
|
+
> 只有“未来还值得继续记住”的东西,才进 `MEMORY.md`。
|
|
355
|
+
|
|
356
|
+
### `MISTAKES.md`
|
|
357
|
+
|
|
358
|
+
**定位**:高价值错题本。
|
|
359
|
+
|
|
360
|
+
它记录:
|
|
361
|
+
|
|
362
|
+
- 犯过什么错
|
|
363
|
+
- 判断失误发生在什么场景
|
|
364
|
+
- 原因是什么
|
|
365
|
+
- 下次应如何避免
|
|
366
|
+
|
|
367
|
+
它的价值不在“责备”,而在**防止重复犯错**。
|
|
368
|
+
|
|
369
|
+
关键要求:
|
|
370
|
+
|
|
371
|
+
- `MISTAKES.md` 有两条写入路径:
|
|
372
|
+
1. nightly / periodic digest 可追加或整理
|
|
373
|
+
2. assistant 明确意识到自己犯错时,可立即更新
|
|
374
|
+
- 它不是普通日志;只收高价值、可复用的错误经验
|
|
375
|
+
|
|
376
|
+
### `conversations/`
|
|
377
|
+
|
|
378
|
+
**定位**:对话可读视图层。
|
|
379
|
+
|
|
380
|
+
这里不应被定义成稳定原材料本体,而应被定义成:
|
|
381
|
+
|
|
382
|
+
> 从 raw archive 派生出的、人和 assistant 都更容易阅读与分析的对话视图。
|
|
383
|
+
|
|
384
|
+
它的角色是:
|
|
385
|
+
|
|
386
|
+
- 给人查看完整聊天链路
|
|
387
|
+
- 给 assistant 在必要时回看较长对话主线
|
|
388
|
+
- 给复盘、排错、摘要提供比 raw archive 更低噪音的阅读界面
|
|
389
|
+
|
|
390
|
+
它不是:
|
|
391
|
+
|
|
392
|
+
- source of truth
|
|
393
|
+
- 长期记忆本体
|
|
394
|
+
- 默认热路径注入材料
|
|
395
|
+
|
|
396
|
+
这里要明确区分:
|
|
397
|
+
|
|
398
|
+
- `.system/archive/` = 稳定原材料层
|
|
399
|
+
- `conversations/` = 可读视图层
|
|
400
|
+
|
|
401
|
+
当前阶段它不是 memory 注入热路径的主来源,但它应成为“查看完整对话链路”的首选界面,而不是让人或 assistant 直接长期扫描 raw archive。
|
|
402
|
+
|
|
403
|
+
### `.system/archive/`
|
|
404
|
+
|
|
405
|
+
**定位**:append-only 稳定原材料归档。
|
|
406
|
+
|
|
407
|
+
它应满足:
|
|
408
|
+
|
|
409
|
+
- 自动写入
|
|
410
|
+
- 忠实记录
|
|
411
|
+
- 不要求人工整理
|
|
412
|
+
- 可作为当前及未来压缩机制的第一事实来源
|
|
413
|
+
|
|
414
|
+
它不应承担长期记忆的语义责任。
|
|
415
|
+
|
|
416
|
+
---
|
|
417
|
+
|
|
418
|
+
## Write Paths
|
|
419
|
+
|
|
420
|
+
### Path A: system automatic archive
|
|
421
|
+
|
|
422
|
+
写入方:bridge / runtime integration
|
|
423
|
+
|
|
424
|
+
时机:
|
|
425
|
+
|
|
426
|
+
- inbound message
|
|
427
|
+
- outbound message
|
|
428
|
+
- routine execution
|
|
429
|
+
- approvals / user input / failures / progress
|
|
430
|
+
|
|
431
|
+
产物:
|
|
432
|
+
|
|
433
|
+
- `.system/archive/**/*.ndjson`
|
|
434
|
+
|
|
435
|
+
要求:
|
|
436
|
+
|
|
437
|
+
- append-only
|
|
438
|
+
- 忠实保真
|
|
439
|
+
- 不做摘要式改写
|
|
440
|
+
|
|
441
|
+
### Path B: active work updates
|
|
442
|
+
|
|
443
|
+
写入方:assistant 自己
|
|
444
|
+
|
|
445
|
+
时机:
|
|
446
|
+
|
|
447
|
+
- 明确完成了一个阶段,想给未来自己留便签
|
|
448
|
+
- 明确识别到当前阻塞、下一步、注意事项发生变化
|
|
449
|
+
- 明确发现自己犯了一个值得记录的错误
|
|
450
|
+
|
|
451
|
+
产物:
|
|
452
|
+
|
|
453
|
+
- `NOW.md`
|
|
454
|
+
- `MISTAKES.md`(仅在错误明确且高价值时)
|
|
455
|
+
|
|
456
|
+
这是本 feature 最重要的新增理念之一:
|
|
457
|
+
|
|
458
|
+
> 记忆不是只靠夜里压缩;assistant 在工作中也要能随手写关键记忆。
|
|
459
|
+
|
|
460
|
+
### Path C: nightly / periodic digest
|
|
461
|
+
|
|
462
|
+
写入方:memory digest routine
|
|
463
|
+
|
|
464
|
+
时机:
|
|
465
|
+
|
|
466
|
+
- 夜间
|
|
467
|
+
- 或固定周期回顾
|
|
468
|
+
|
|
469
|
+
读取:
|
|
470
|
+
|
|
471
|
+
- `.system/archive/`
|
|
472
|
+
- 现有 `NOW.md`
|
|
473
|
+
- 现有 `MEMORY.md`
|
|
474
|
+
- 现有 `MISTAKES.md`
|
|
475
|
+
- 必要时 `journal/` 近期内容
|
|
476
|
+
|
|
477
|
+
产物:
|
|
478
|
+
|
|
479
|
+
- `journal/YYYY-MM-DD.md`
|
|
480
|
+
- `MEMORY.md`
|
|
481
|
+
|
|
482
|
+
这里要强调几条边界:
|
|
483
|
+
|
|
484
|
+
- digest 可以整理和提炼
|
|
485
|
+
- 但 V1 不应回写 `NOW.md`
|
|
486
|
+
- `NOW.md` 的 owner 是 assistant 本身,不是夜间压缩流程
|
|
487
|
+
- `MISTAKES.md` 的即时更新属于工作流本身;digest 是否参与写入,属于未来可扩展项,不作为当前 v1 硬承诺
|
|
488
|
+
|
|
489
|
+
### Path D: user manual edits
|
|
490
|
+
|
|
491
|
+
写入方:用户
|
|
492
|
+
|
|
493
|
+
时机:
|
|
494
|
+
|
|
495
|
+
- 用户直接修正事实
|
|
496
|
+
- 用户补充长期规则
|
|
497
|
+
- 用户人工整理错题本
|
|
498
|
+
|
|
499
|
+
允许人工编辑的原因:
|
|
500
|
+
|
|
501
|
+
- 这些文件是产品资产,不是模型私有黑盒
|
|
502
|
+
- 用户应当能直接检查与修正
|
|
503
|
+
|
|
504
|
+
---
|
|
505
|
+
|
|
506
|
+
## Read Paths
|
|
507
|
+
|
|
508
|
+
### Read A: startup / wake-up
|
|
509
|
+
|
|
510
|
+
assistant 启动或恢复工作时,运行时应遵守这样的读取模型:
|
|
511
|
+
|
|
512
|
+
1. 先进入 Codex 的两个主规则入口:项目 `AGENTS.md` 与 desk `AGENTS.md`
|
|
513
|
+
2. 再由 desk `AGENTS.md` 引导读取 `SOUL.md`、`NOW.md`、`MISTAKES.md`、`MEMORY.md`
|
|
514
|
+
|
|
515
|
+
其中 desk 资产的推荐顺序是:
|
|
516
|
+
|
|
517
|
+
1. `SOUL.md`
|
|
518
|
+
2. `NOW.md`
|
|
519
|
+
3. `MISTAKES.md`
|
|
520
|
+
4. `MEMORY.md`
|
|
521
|
+
|
|
522
|
+
理由:
|
|
523
|
+
|
|
524
|
+
- 先知道当前工作现场规则
|
|
525
|
+
- 再知道 assistant 自己是谁
|
|
526
|
+
- 再知道现在在做什么
|
|
527
|
+
- 再避免重复犯错
|
|
528
|
+
- 最后补长期背景
|
|
529
|
+
|
|
530
|
+
### Read B: new session bootstrap
|
|
531
|
+
|
|
532
|
+
当 `work-ally` 为 assistant 新开会话时,应有明确注入规则,但不要把 desk 资产误设计成与 `AGENTS.md` 并列的规则层。
|
|
533
|
+
|
|
534
|
+
v1 推荐模型:
|
|
535
|
+
|
|
536
|
+
1. Codex 先吃到项目 `AGENTS.md` 与 desk `AGENTS.md`
|
|
537
|
+
2. desk `AGENTS.md` 再要求 assistant 读取 `SOUL.md`、`NOW.md`、`MISTAKES.md`、`MEMORY.md`
|
|
538
|
+
|
|
539
|
+
其中 desk 资产的推荐顺序是:
|
|
540
|
+
|
|
541
|
+
1. `SOUL.md`
|
|
542
|
+
2. `NOW.md`
|
|
543
|
+
3. `MISTAKES.md`(可截断到高价值部分)
|
|
544
|
+
4. `MEMORY.md`(按大小与规则做裁剪)
|
|
545
|
+
|
|
546
|
+
关键结论:
|
|
547
|
+
|
|
548
|
+
> memory feature 的关键,不是再写多少文件,而是定义运行时到底读哪些文件、如何注入。
|
|
549
|
+
|
|
550
|
+
### Read C: key-turn spot check
|
|
551
|
+
|
|
552
|
+
在较长工作过程中,assistant 应允许按需回看:
|
|
553
|
+
|
|
554
|
+
- `NOW.md`
|
|
555
|
+
- `MISTAKES.md`
|
|
556
|
+
- 必要时最近的 `journal/`
|
|
557
|
+
|
|
558
|
+
这不是每个 turn 都全文注入,而是一个明确可操作的工作规则。
|
|
559
|
+
|
|
560
|
+
### Read D: nightly digest input
|
|
561
|
+
|
|
562
|
+
nightly digest 应读取:
|
|
563
|
+
|
|
564
|
+
- 当日 archive
|
|
565
|
+
- memory 当前快照
|
|
566
|
+
- 必要的近期上下文
|
|
567
|
+
|
|
568
|
+
但它的目标是提炼,不是把所有历史重新总结一遍,也不是改写 assistant 的当下工作便签。
|
|
569
|
+
|
|
570
|
+
---
|
|
571
|
+
|
|
572
|
+
## Memory Injection Contract
|
|
573
|
+
|
|
574
|
+
这是当前最缺、也最关键的一块。
|
|
575
|
+
|
|
576
|
+
### Problem
|
|
577
|
+
|
|
578
|
+
即使 `NOW.md`、`MEMORY.md`、`MISTAKES.md` 都存在,如果 runtime 没有固定的读取与注入约定,记忆系统仍然只是“桌上有文件”,而不是“assistant 真会使用”。
|
|
579
|
+
|
|
580
|
+
### V1 requirement
|
|
581
|
+
|
|
582
|
+
必须定义一个最小、稳定的 identity + memory injection contract,使 assistant 在开始工作时明确知道:
|
|
583
|
+
|
|
584
|
+
- Codex 的两个主规则入口是什么
|
|
585
|
+
- desk 下还有哪些必须继续读取的资产
|
|
586
|
+
- 这些文件路径在哪里
|
|
587
|
+
- 它应该按什么顺序继续读取
|
|
588
|
+
- 这些文件分别扮演什么角色
|
|
589
|
+
|
|
590
|
+
### Product implication
|
|
591
|
+
|
|
592
|
+
这件事不能只靠实现层偷偷做,还必须在 desk 的 `AGENTS.md` 里明确写出来。
|
|
593
|
+
|
|
594
|
+
也就是说:
|
|
595
|
+
|
|
596
|
+
- `AGENTS.md` 负责声明 identity + memory contract
|
|
597
|
+
- runtime / bootstrap 负责尽可能把这些文件作为开局上下文提供给 assistant
|
|
598
|
+
|
|
599
|
+
如果缺一边,这个系统都会变成“理论上有记忆,实际上没在用”。
|
|
600
|
+
|
|
601
|
+
---
|
|
602
|
+
|
|
603
|
+
## Working Rules For `AGENTS.md`
|
|
604
|
+
|
|
605
|
+
assistant desk 的 `AGENTS.md` 在这一模型下应承担稳定规则职责:它不是唯一规则入口,但它负责把 desk 资产接进 Codex 的主规则面。
|
|
606
|
+
|
|
607
|
+
至少应明确这些规则:
|
|
608
|
+
|
|
609
|
+
1. `SOUL.md` 是人格与风格来源;assistant 必须读取,但默认不应静默改写
|
|
610
|
+
2. `NOW.md` 是当前态文件,进入工作后应优先查看
|
|
611
|
+
3. `MISTAKES.md` 是错误复盘文件,回应高风险问题前应留意相关条目
|
|
612
|
+
4. `MEMORY.md` 是长期稳定记忆,不写日常碎片
|
|
613
|
+
5. `journal/` 是每日沉淀,可按需回看,但不等于长期记忆
|
|
614
|
+
6. `.system/archive/` 是低优先级的稳定原材料留档,通常不需要主动阅读或编辑;只有在追溯事实、核对历史过程、排查异常时才按需查阅
|
|
615
|
+
7. assistant 在工作中可以按需更新 `NOW.md`
|
|
616
|
+
8. assistant 明确发现自己犯错时,可以立即更新 `MISTAKES.md`
|
|
617
|
+
9. 如果项目 `AGENTS.md` 对角色、风格、协作方式有明确要求,应以项目要求为准
|
|
618
|
+
10. V1 中 nightly digest 不负责改写 `NOW.md`
|
|
619
|
+
|
|
620
|
+
另外,`AGENTS.md` 不应展开 archive 的“黑匣子”概念、目录细节或实现机制,只需把它定义为按需追溯的事实来源即可。
|
|
621
|
+
|
|
622
|
+
这部分是产品规则,不是可有可无的文档装饰。
|
|
623
|
+
|
|
624
|
+
---
|
|
625
|
+
|
|
626
|
+
## Non-goals And Rejections
|
|
627
|
+
|
|
628
|
+
### 不做向量数据库
|
|
629
|
+
|
|
630
|
+
当前阶段明确不做:
|
|
631
|
+
|
|
632
|
+
- embeddings
|
|
633
|
+
- semantic search platform
|
|
634
|
+
- external memory DB
|
|
635
|
+
|
|
636
|
+
原因很直接:
|
|
637
|
+
|
|
638
|
+
- 当前数据规模远未到必须引入这套复杂度的程度
|
|
639
|
+
- 可读、可审、可 Git 管理的文本文件更符合当前产品阶段
|
|
640
|
+
|
|
641
|
+
### 不把全部聊天直接当长期记忆
|
|
642
|
+
|
|
643
|
+
原始对话很重要,但它首先是**过程材料**,不是已经提炼好的长期记忆。
|
|
644
|
+
|
|
645
|
+
所以当前采用的原则是:
|
|
646
|
+
|
|
647
|
+
- 对话可留档
|
|
648
|
+
- archive 可保真
|
|
649
|
+
- 但长期记忆必须经过提炼与选择
|
|
650
|
+
|
|
651
|
+
### 不单独产品化 assistant knowledge 库
|
|
652
|
+
|
|
653
|
+
当前不增加 `knowledge/` 之类产品承诺目录,也不让 `SOUL.md` 承担项目知识库职责。
|
|
654
|
+
|
|
655
|
+
原因:
|
|
656
|
+
|
|
657
|
+
- 项目知识本来就应当留在项目中
|
|
658
|
+
- 当前最需要补齐的是 memory,而不是再造一层知识库系统
|
|
659
|
+
|
|
660
|
+
---
|
|
661
|
+
|
|
662
|
+
## V1 Implementation Focus
|
|
663
|
+
|
|
664
|
+
基于当前实现现状,memory v1 建议只做下面几件事。
|
|
665
|
+
|
|
666
|
+
### 1. 固定 file roles
|
|
667
|
+
|
|
668
|
+
把 `AGENTS.md`、`SOUL.md`、`NOW.md`、`MEMORY.md`、`MISTAKES.md`、`journal/`、`archive/` 的产品定义彻底写实,并同步到:
|
|
669
|
+
|
|
670
|
+
- `README.md`
|
|
671
|
+
- `docs/user-quickstart.md`
|
|
672
|
+
- assistant desk `AGENTS.md` template
|
|
673
|
+
|
|
674
|
+
### 2. 补齐 `NOW.md` 的工作中更新语义
|
|
675
|
+
|
|
676
|
+
不再把 `NOW.md` 仅视为 digest 产物。
|
|
677
|
+
|
|
678
|
+
需要明确:
|
|
679
|
+
|
|
680
|
+
- assistant 可在工作中更新它
|
|
681
|
+
- digest 只能审慎整理,不能无脑覆盖
|
|
682
|
+
|
|
683
|
+
### 3. 补齐 `MISTAKES.md` 的即时更新路径
|
|
684
|
+
|
|
685
|
+
实现层和提示层都要承认:
|
|
686
|
+
|
|
687
|
+
- assistant 明确犯错时也会写
|
|
688
|
+
|
|
689
|
+
是否让 digest 在未来协助整理 `MISTAKES.md`,后续再评估;不作为当前 v1 硬要求
|
|
690
|
+
|
|
691
|
+
### 4. 固定 identity + memory injection contract
|
|
692
|
+
|
|
693
|
+
这是 v1 最重要的实现任务之一。
|
|
694
|
+
|
|
695
|
+
至少要让 assistant 启动/新会话时,稳定接触到:
|
|
696
|
+
|
|
697
|
+
- 项目 `AGENTS.md`
|
|
698
|
+
- desk `AGENTS.md`
|
|
699
|
+
- `SOUL.md`
|
|
700
|
+
- `NOW.md`
|
|
701
|
+
- `MISTAKES.md`
|
|
702
|
+
- `MEMORY.md`
|
|
703
|
+
|
|
704
|
+
### 5. 保持 archive 简单稳定
|
|
705
|
+
|
|
706
|
+
archive 继续作为稳定原材料,不给它叠加“长期记忆 API”职责。
|
|
707
|
+
|
|
708
|
+
并且 archive 的内部协议应单独拍板冻结;未来允许替换 digest,但不轻易改变 archive 结构。
|
|
709
|
+
|
|
710
|
+
### 6. 保持文本优先与 Git 友好
|
|
711
|
+
|
|
712
|
+
memory 文件应继续保持:
|
|
713
|
+
|
|
714
|
+
- 纯文本
|
|
715
|
+
- 可 diff
|
|
716
|
+
- 可人工审阅
|
|
717
|
+
- 可进入 assistant desk 的 Git 历史
|
|
718
|
+
|
|
719
|
+
---
|
|
720
|
+
|
|
721
|
+
## Acceptance Criteria
|
|
722
|
+
|
|
723
|
+
memory feature 进入可验收状态,至少要满足以下标准:
|
|
724
|
+
|
|
725
|
+
1. assistant desk 的 identity / memory 文件角色定义清楚且文档一致
|
|
726
|
+
2. 项目 `AGENTS.md` 与 desk `AGENTS.md` 的双入口模型被明确写清
|
|
727
|
+
3. `SOUL.md` 被定义为人格文件,允许用户编辑,但默认不允许 assistant 静默自改
|
|
728
|
+
4. `NOW.md` 被定义为工作中可更新的当前态文件,不再只是 nightly output
|
|
729
|
+
5. `MISTAKES.md` 被定义为 assistant 可即时更新的高价值错题本
|
|
730
|
+
6. nightly digest 输出目标与边界明确,不再被误解为“完整 memory system 本身”,且 V1 不改写 `NOW.md`
|
|
731
|
+
7. runtime 存在最小可验证的 identity + memory injection contract
|
|
732
|
+
8. archive 被定义为稳定原材料层,后续压缩机制可以更换,但 archive 契约不轻易变动
|
|
733
|
+
9. 用户可以直接检查、编辑、版本管理这些文件
|
|
734
|
+
10. 不引入向量数据库或额外复杂存储层
|
|
735
|
+
|
|
736
|
+
---
|
|
737
|
+
|
|
738
|
+
## Review Notes
|
|
739
|
+
|
|
740
|
+
在开始代码实现前,这份 spec 需要特别确认三件事:
|
|
741
|
+
|
|
742
|
+
1. `NOW.md` 的更新粒度是否接受“工作中随手记”模式
|
|
743
|
+
2. `MISTAKES.md` 是否只记录高价值可复用错误,而不是泛化成日志
|
|
744
|
+
3. identity + memory injection contract 的 v1 范围是否先收敛到双 `AGENTS.md` + desk assets 读取,而不急着做复杂检索
|
|
745
|
+
4. `SOUL.md` 是否采用“用户可自由编辑、assistant 默认不可静默自改”的策略
|
|
746
|
+
5. archive 是否单独作为稳定原材料协议冻结,而把 digest 明确视为可替换机制
|
|
747
|
+
|
|
748
|
+
如果这几项确认,memory feature 就可以进入实现阶段。
|