M5.2: agent memory
CI / checks (push) Skipped
CI / checks (pull_request) Successful in 1m48s
CI / e2e (pull_request) Successful in 4m33s

remember(name, description, fact) and forget(name, why): control tools for
the driver (before the go-ahead too) and conversations, writing only the
agent's own vault folder, one note per fact with its provenance. No one
agrees first; each change is a line in the thread. The harness keeps the
index and puts it into the transcript once per item, with a hash.

At an item's close, completed or abandoned, a bounded memory pass (the
driver's model, its own transcript and view) records what was decided and
learned; it never holds the close up (tuning.memory.max_turns).

With the operator: corrections may be paraphrased (L6 changed), the model
forgets on its own, and nothing limits what may prompt a note. The walk
remembers and forgets, and checks nothing lands outside the agent's folder.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01J5Utyfzw7gF7UhjRDEtjTk
This commit is contained in:
dongarandClaude Opus 5.5 committed 2026-10-08 23:05:45 +00:00
1 parent 2a35475eec
commit 2b26f0cff5
16 files changed
+604 -16

No files matched your search

+24 -2
View File
@@ -489,8 +489,30 @@ tools, atomic writes and provenance (L10).
- Per-agent mounts are the container's (M6.1); until then the folder map and
path checks hold in code.
**M5.2 Agent memory** (*needs discussion*) and **M5.3 scope memory**
(*pre-approved*): when notes are written and read, verbatim corrections (L6).
**M5.2 Agent memory.** *Discussed with the operator.* **Done** (this PR). When
notes are written and read (L6.4).
- `remember(name, description, fact)` and `forget(name, why)`: control tools for
the driver (before the go-ahead too) and conversations, writing only the
agent's folder (`memory/nisse-dev`, read-write in the vault configuration).
No one agrees first, the model may forget on its own, and each change is a
line in the thread ("Remembered: …", "Forgot: …").
- One note per fact (`<name>.md`: a one-line description, the fact, and
provenance: work item, thread, time). The harness keeps `index.md`, one line
per note, after every change; the model never writes it.
- The index goes into the transcript once per item and conversation, with its
path and a hash (L6); notes are read with `read_note`. The prompt says memory
is a cache: check against the live system, fix a note a check contradicts.
- At an item's close, completed or abandoned, a **memory pass**: the driver's
model in a transcript of its own (the item's narration, as the toolchain step
sees it), with the note and memory tools and `memory_done`, bounded by
`tuning.memory.max_turns` (10). It never holds the close up.
- Decided with the operator: corrections may be paraphrased (L6 changed); no
confirmation; no limit on what may prompt a note (a lesson often comes from
tool output), each recording what did. Conversations get no closing pass.
- The walk remembers and forgets, and checks that nothing lands outside the
agent's folder.
**M5.3 Scope memory.** *Pre-approved.* Scope memory outliving work items (L6.3).
**M5.4 The operator's view.** *Pre-approved.* SilverBullet in its own container on
the vault: the operator's folders read-write, the agents' read-only (L10), behind