8.4 KiB
| title | state | created_at | updated_at | assignee |
|---|---|---|---|---|
| session-explore feature付きextract workerを実装する | planning | 2026-07-16T04:34:01Z | 2026-07-16T17:19:41Z | null |
背景
Overview-first extract では、extract worker が開始時点の会話 snapshot と filtered Overview projection を参照し、必要な evidence だけを探索して staging payload を出す。main Worker の tool surface は増やさず、extract worker だけに session exploration 用の read-only tools を与える必要がある。
このため、session-explore feature を新設し、その feature のみが有効な Worker / ToolRegistry として extract worker を作る。extract worker は Memory / Knowledge / Skill / Ticket / docs を直接変更せず、write_extracted によって staging payload だけを出す。
この Ticket は worker 実装を扱う。先に Ticket 00001KXNYXNM6 で staging payload / source anchor 形式を固める。
関連:
- Objective
00001KVJSMQXZ .yoi/objectives/00001KVJSMQXZ/memory-architecture-overview.md- Ticket
00001KXMEZNYC— ターン中のProgress messageを残す指示を追加する - Ticket
00001KXNYXNM6— Extract stagingのsource anchor形式を実装する
実装意図
この Ticket の目的は、extract worker に「何が起きたか」を flat log から推測させるのではなく、開始時点の immutable reference environment を探索させることである。
Reference environment:
Conversation snapshot at extract start
- extract 対象 history / segment range の immutable copy
- message entries
- tool call summaries
- tool result summaries / bounded excerpts
- source anchor table
Filtered Overview projection
- User messages
- Assistant text outputs, including Progress messages and final responses
- committed task context
- evidence ids への bounded index
Extract worker:
Overview を読む
-> important candidate を見つける
-> session-explore tools で evidence を確認する
-> host-resolved source anchors を使う
-> write_extracted で staging payload を出す
この変更で目指す改善は recall をむやみに増やすことではない。断片的な attempts や無用な discussions を減らし、source に辿れる候補だけを staging に出す precision 改善を優先する。
対象領域
主な対象:
crates/worker/src/feature.rsbuiltin:session-explorefeature descriptor / contribution registration の追加候補。
crates/memory/src/extract/input.rs- Overview-first / Evidence-index-second rendering。
- Conversation snapshot / filtered Overview projection の入力作成。
crates/memory/src/extract/tool.rsまたは隣接 modulewrite_extractedに加えて session exploration tools を実装。
crates/memory/src/extract/payload.rs- Ticket
00001KXNYXNM6の staging source refs を利用。
- Ticket
crates/memory/src/extract/staging.rs- staging write。
crates/worker/src/worker.rsrun_extract_once/ extract worker 起動。- extract worker 用 ToolRegistry / enabled feature set の構築。
resources/prompts/internal/memory_extract_system.md- Overview-first / evidence-confirmation / staging-only output 前提へ更新。
実装方針
1. Reference environment を extract 開始時点で固定する
extract worker は live Worker state を自由に読むのではなく、extract 開始時点で host が作った immutable reference environment に接続する。
含めるもの:
- source range / segment id。
- Overview projection。
- Evidence index。
- evidence id -> source anchor table。
- bounded tool result summary / excerpt。
含めないもの:
- raw reasoning / chain-of-thought。
- unbounded raw tool result content。
- history に commit されていない hidden context injection。
- mutable live Worker state への直接 access。
2. session-explore feature を作る
session-explore は extract worker 専用の built-in feature とする。
Feature の tool surface:
search_evidence- query / optional kind / optional limit で Evidence index を検索する。
- output は evidence ids、entry ranges、short summaries、source anchors。
read_evidence- evidence id または entry range を読む。
- output は bounded message/tool summary/excerpt と source anchor。
resolve_source_anchor- evidence id / entry range / tool call id から normalized source anchor を返す。
- 実装上過剰なら、
search_evidence/read_evidenceoutput に anchor を含める形でもよい。
write_extracted- structured staging payload を 1 回提出する output tool。
制約:
- read-only。
- file write / Ticket mutation / Memory direct write / Knowledge direct write / Skill direct write を持たせない。
- main Worker の通常 tool surface には出さない。
- extract worker の enabled feature set は
session-exploreのみにする。
3. Extract worker は専用 Worker / Engine として起動する
既存の memory extract sub-engine 起動を、session-explore feature のみ有効な worker-like environment に寄せる。
要件:
- foreground Worker history を汚染しない。
- extract prompt / harness messages は canonical foreground history に混ざらない。
- output は
write_extracted経由で host context に戻す。 - empty / NOP は正常結果。
- worker が evidence tools 以外の通常 workspace tools を見ないことを test する。
4. Trigger は広げすぎない
初期実装では既存 post-run trigger を維持してよい。LLM call ごとの extract はしない。
この Ticket の中心は scheduler ではなく、extract worker の参照環境と tool surface である。mid-run trigger や Overview accumulation trigger が大きくなる場合は別 Ticket に分ける。
実装要件
- extract 開始時点の conversation snapshot と filtered Overview projection を保持する reference environment を実装する。
builtin:session-explorefeature を追加する。- extract worker は
session-explorefeature のみ有効な Worker / ToolRegistry として起動する。 session-explorefeature に bounded read-only evidence tools を実装する。write_extractedは output tool として維持する。build_extract_input相当の入力を Overview-first / Evidence-index-second に変更する。- extract worker は Ticket
00001KXNYXNM6で定義された source anchor / evidence ref 形式を使って staging payload を出す。 - extract worker は Memory / Knowledge / Skill / Ticket / docs を直接変更しない。
- main Worker の model-visible tool surface は増やさない。
- raw tool result content 全文を無制限に extract prompt / tool output へ流さない。
memory_extract_system.mdを session-explore / evidence-confirmation / staging-only output 前提に更新する。
非目標
- staging payload / source anchor format の確定はこの Ticket では行わない。Ticket
00001KXNYXNM6が先行する。 - staging -> Memory disposition / resolution flow はこの Ticket では実装しない。Ticket
00001KXMK846Hの対象。 - 専用 Progress Tool を main Worker に追加しない。
- Knowledge / Skill / docs を extract worker が直接 rewrite しない。
- 大規模な mid-run extraction scheduler はこの Ticket では作らない。
受け入れ条件
- extract 開始時点の immutable reference environment が作られる。
- filtered Overview projection が User messages / Assistant text outputs / committed task context から作られる。
builtin:session-explorefeature が存在し、extract worker にだけ有効化される。- extract worker が
session-exploreの read-only evidence tools とwrite_extractedだけを使える。 - main Worker の model-visible tool surface が増えていない。
- extract output は staging にだけ書かれ、Memory / Knowledge / Skill への direct write がない。
- source / provenance は Ticket
00001KXNYXNM6の形式で機械的に保持される。 - empty payload / no-op path が維持されている。
- Overview rendering、reference environment immutability、feature-gated tool registry、evidence tool bounds の tests が追加または更新されている。
cargo test -p memoryと関連 worker tests、または該当 crate の同等テストが通る。- prompt/resource/code 変更として
nix build .#yoiが通る。