docs: M5c spec: queries from any session, two workspaces per ask_memory, tools per session

Owner, 2026-09-28: recall and ask_memory query Honcho from a session of any class, since Honcho
stores no query and rift's models and telemetry stay on the owner's hosts; the assumption is
written down, with what changes if rift's configuration does. A query holding a known-prefix
secret is refused. ask_memory names at most two workspaces, both asked at once inside brokerd's
wait. A session keeps the tools array it started with, so M5c-2 needs no new epoch.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-28 15:58:16 -07:00
co-authored by Claude Opus 5.5
parent ab36e54273
commit 8e562619b7
2 changed files with 22 additions and 8 deletions
+21 -7
View File
@@ -209,17 +209,26 @@ trusted workspace are conclusions: so for those `recall` also queries conclusion
wrote, both are the same peer). The fleet workspace holds messages, so one search finds the notes
of every peer in it, including agents this one was never told about (owner).
**Queries from any session** (owner, 2026-09-28). `recall` searches Honcho, and `ask_memory` asks
it, from a session of any class, `secret` included: a query is not written to Honcho, which stores
neither searches nor dialectic questions, and on rift it reaches only the owner's own hosts (its
models run on dixie; its server sends no telemetry, `docs/egress.md`). This is an assumption about
rift's configuration, not a property of the code: if rift ever uses a hosted model or exports
telemetry, a `secret` session's queries must stop going to Honcho without the owner's approval
(the option set aside on 2026-09-28). A query or question that holds a known-prefix secret
(`sanitize::refuse`'s secret rules) is refused before anything is sent, in every session.
## 9. `ask_memory`
A new core tool, `ask_memory { question, workspaces?, reasoning? }`:
- `workspaces`: names from `[honcho]`: `own` (default), `untrusted`, `fleet`, or another agent's
name from `[[honcho.read]]`;
- `workspaces`: at most two names from `[honcho]`: `own` (default), `untrusted`, `fleet`, or
another agent's name from `[[honcho.read]]` (owner, 2026-09-28: two, so that both chats run at
once inside `brokerd`'s wait; the model asks again for more);
- `reasoning`: `minimal` (default: one search, then the answer) or `low`;
- `question`: at most 2,000 characters.
One workspace chat (`POST /workspaces/{w}/chat`) per named workspace, in parallel, at most two at a
time; workspace chat searches every conclusion and message of the workspace without the model
One workspace chat (`POST /workspaces/{w}/chat`) per named workspace, both at once; workspace chat searches every conclusion and message of the workspace without the model
choosing a peer (it averaged 13 s on rift, over only three calls; peer chat, 32 s over 318). Each
has 150 s. The answer lists each workspace's reply, neutralised and capped, tagged like a `recall`
hit (`memory` for the agent's own trusted workspace and for others the owner labelled trusted,
@@ -227,8 +236,10 @@ hit (`memory` for the agent's own trusted workspace and for others the owner lab
do. `brokerd`'s wait for this tool is 170 s and `loopd`'s wait on `brokerd` for it 180 s (section
11).
Adding a tool changes the `tools` array: a new epoch for every session when M5c-2 is deployed,
and the baseline is measured again against the 3,000-token budget.
Adding a tool changes the `tools` array, and the baseline is measured again against the
3,000-token budget. A session keeps the tools array it was created with (its baseline is saved at
its start and sent on every request), so sessions started before M5c-2 is deployed keep their
cache and never see `ask_memory`; sessions started after it have it.
## 10. Configuration and secrets
@@ -308,7 +319,10 @@ that records requests and answers from fixtures taken from rift's OpenAPI docume
from a peer this agent's configuration does not name is found by `recall`.
- **`recall`**: the fleet sources with their tags and classes; a source that times out is one
`unavailable` line and the rest still answer; the agent's own workspaces are not searched.
- **`ask_memory`**: two at a time; the per-workspace limit; labels; unknown workspace names.
- **`ask_memory`**: at most two workspaces, both at once; the per-workspace limit; labels;
unknown workspace names.
- **Queries**: a query or question holding a known-prefix secret is refused and nothing is sent;
a `secret` session's query is sent.
- **No `[honcho]` section**: M5b's behaviour, every M5b test unchanged.
- **Attack tests (T37)**: a turn from a session that fetched a page never reaches the trusted
workspace, even when `brokerd` answers late; a fleet hit taints the reading session.