第 36 章:Tool Result の予算と退避
ファイルシステムが作業コンテキストを拡張できるのは、Prompt に信頼できる再取得ポインタが残る場合だけです。
公開ソースのスナップショット:実装例は 2026-07-27 に確認した Kocoro 公開
origin/mainのコミット4ec6772に基づきます。学ぶべき対象は不変条件であり、定数は最新ソースで再確認してください。
36.1 解くべき問題
一つの巨大なファイル結果だけで次の Prompt を圧迫し、複数の中規模な並列結果でも合計量が同じ問題を起こします。単純な切り捨てでは再確認できず、全保持ではファイルツールがコンテキストを枯渇させます。
36.2 設計原則
完全な内容を Runtime 管理ファイルへ保存し、Prompt 内はプレビューとポインタへ置き換え、その置換を後続 Turn でも維持します。結果単体には上限を設け、Turn 合計はベストエフォートの目標として扱います。並列バッチ後は大きい対象から退避して目標以下へ戻します。ツールが退避の対象外である場合や退避自体が失敗した場合、その Turn は目標を超えたまま終わりえます。目標超過は「起こりえない状態」ではなく「調査すべき兆候」として扱ってください。
36.3 スナップショットの根拠
| ソーススナップショット | 観測 |
|---|---|
4ec6772 | 結果単体のスナップショット閾値:50,000 文字 |
4ec6772 | コンテキスト内プレビュー:2,000 Rune |
4ec6772 | Turn 単位の Tool Result 合計目標:200,000 文字——ハードな天井ではない:退避対象外またはサイズ無制限のツール、および退避の失敗はこの値を超えたまま終わりうる |
上記の値は特定時点の実装例であり、普遍的な契約ではありません。
36.4 実装チェックリスト
- 多言語プレビューは Rune 単位で安全に切る。
- 退避ファイルを Session スコープと権限制御下に置く。
- 複数の中規模結果で合計超過をテストする。
36.5 まとめ
ファイルシステムが作業コンテキストを拡張できるのは、Prompt に信頼できる再取得ポインタが残る場合だけです。
各章は一つのシステムとして読んでください。コンテキスト、Tool Schema、永続化、ステアリング、時間規律、ループ検出、並列性は相互に影響します。