6.3 KB · updated 2026-07-31 · md

v0.25.0.ja.md

docs/i18n/release-notes/v0.25.0.ja.md

Tesserae v0.25.0 — Descent:どんなグラフも1つのコンテキストウィンドウでナビゲートする

<!-- translations:start -->

English · 한국어 · 中文 · Русский · Español · Français · Deutsch

<!-- translations:end -->

Released 2026-07-24 · PyPI · GitHub release · pip install --upgrade tesserae==0.25.0

コンパイルされたプロジェクトグラフは、いずれどのコンテキストウィンドウにも収まらなくなります。リファレンスプロジェクトはシリアライズすると今や 250万トークン — 200kウィンドウの12倍 — に達し、なお増え続けています。フラットな検索でノードを1つ見つけることはできても、エージェントがグラフを*俯瞰*する術はありませんでした。境界のある全体像は最も粗い47コミュニティのサマリー層だけで、その下はすべて不可視だったのです。このリリースで Descent を出荷します。階層をクエリ時の契約として扱うことで、エージェントはグラフ全体の俯瞰から単一ノードまで、わずか数回の境界付き呼び出しで降りていけます — グラフの規模を問わず。

1 · graph_map — すべてのグラフに効く1つのディセントツール

新しいMCPツールは1つ、graph_map(scope, budget_chars, cursor)。これがあらゆる知識ソースを同じ形に揃えます。すなわち、バジェットに詰め込んだカードで応答するスコープツリーです。スコープなしで呼べばルートマップ — グラフの統計、ハブ警告、最も粗いコミュニティカード — が返ります。コミュニティIDを渡すとデンドログラムを1レベル降下し、最も細かいレベルではメンバーノードを列挙します。agent:<key> はエージェントの蒸留済みL1インデックスを、org:root はエージェント組織ツリーを、<alias>:: は兄弟プロジェクトのマップを描画します — 同じカード、同じプロトコル、特別扱いなし。どのカードも parent_scope を携えているので、上に戻るのもただの graph_map 呼び出し1回。大きすぎるレベルは黙って切り捨てられるのではなく、決定論的にページングされます(+N more, cursor=K)。

2 · 階層は最初からそこにあった — 今度は捨てずに残す

Louvainはもともとコンパイルのたびに完全なデンドログラムを計算しています。これまでは1レベルだけ使い、残りを捨てていました。コンパイルは今後その全体を .tesserae/hierarchy.json サイドカーに永続化します — リファレンスグラフで4レベル — 。これはグラフ内容の純粋で決定論的な関数です:固定シード、正規順序、LLM呼び出しゼロ。5,000ノードでも100万ノードでも変わりません。graph.json のバイト列は一切触れず、フル vs インクリメンタルのパリティ検証は全レベルでデンドログラムの一致をアサートするようになり、陳腐化したコミュニティサマリーのキャッシュは全レベルの生存性に照らして刈り込まれます。

3 · CTX-01 — ツール応答は決してバジェットを超えない

単一の fit_to_budget ヘルパーが、すべての MCP応答をクランプするようになりました。エントリごとの上限、決定論的なアドミッション、継続行は1行だけ。セッションをあふれさせかねなかったツールも直っています — query_decisionsfind_session_findings には limit パラメータが付き、list_communities は数千の生IDの代わりにメンバー数とハンドルを返し、search_nodes/node_context/timeline/search_facts はアイテム単位で切り詰めます。セッションのコストは今や depth × budget — グラフサイズとは無関係です。

4 · サマリーは、実際に見る場所に現れる

細粒度レベルのコミュニティのタイトルは遅延生成です。未サマリーのスコープへ最初に降下したときに1回だけLLMを呼び、メンバーシップダイジェストをキーにキャッシュ。クライアントがなければ決定論的な構造タイトルへフォールバックします — ブロックもしなければ、例外も投げません。サマリーのサマリーを作るプロンプトは引用検証付き(子コミュニティを1つも引用しない文章は棄却)なので、上位レベルが要約対象から乖離することはありません。デーモンの睡眠サイクルには第三の操作 SUMMARIZE が加わり、エージェントが実際に訪れるコミュニティのキャッシュを事前に温めます — ティックごとに境界付きのLLMバジェットを、コーパスサイズではなく需要に対して費やします。

5 · 階層的コンテキストコンパイル

compile_contextscope=<community> を覚えました — 検索をコミュニティの誘導部分グラフに限定し、ハブ爆発を構造的に断ちます — 。さらに strategy="hierarchical" も追加:まずサマリー層でマッチングし、マッチした枝を降下し、その内部でPPRを走らせます。PPRプロジェクションにはフラグ制御の次数キャップとプロベナンスエッジのダウンウェイトが加わり、メガハブを無力化します。デフォルトのパスはバイト単位で同一のまま。両機能はA/Bテストが済むまでオプトインです。

アップグレード

pip install --upgrade tesserae==0.25.0

一度再コンパイルして階層サイドカーを書き出したら、エージェントに graph_map() を呼ばせてみてください — グラフ全体を、境界付きのページ1枚ずつ。