mcpField
S
session-brain

session-brain

github.com/ar9avエージェントワークフロー3.6k324 回インストール1 日前に更新
リポジトリ

session-brain について

session-brainは、エージェントの過去のセッションから検索可能なトピックグラフを作るスキルです。グラフはvaultの外に保存され、obsidian-wiki CLIで処理し、記録を開かずにクラスターの命名や活動状況の確認ができます。

主な機能

  1. 01セッショングラフの構築と更新
  2. 02増分処理とキャッシュ制御
  3. 03語句と事例に基づくクラスターの命名
  4. 04トピックの規模、活発度、休止状態の確認
  5. 05HTMLビジュアライゼーションでのグラフ表示

活用シーン

  1. 01過去のエージェントセッションのトピック整理
  2. 02最近活発なトピックの確認
  3. 03異なるトピックを結ぶセッションの特定

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/ar9av/obsidian-wiki --skill session-brain

インストール後、Claude Code で/session-brainを入力して読み込まれたか確認します。

詳細

セッションブレイン

エージェントのセッション履歴を検索可能なトピックグラフにします。出力は ~/.claude/session-brain/ にあるサイドカーで、Vault には一切手を加えません。

処理の大部分は obsidian-wiki CLI 内の決定的な Python 処理が行います。必要なのはクラスターに名前を付けることだけです。これはちょうど1ターンで完了し、トランスクリプトを読む必要はありません。

どのスキルを使うか

目的スキル
グラフを作成または更新する、トピックを調査するsession-brain(このスキル)
過去の特定のセッションを見つけて読み込むsession-search
セッションを恒久的な Vault ページにまとめるwiki-history-ingest / claude-history-ingest

ステップ1:作成する

obsidian-wiki sessions-build --json

セッション約1000件の場合、初回はおよそ3秒、増分更新は1秒未満です。サイズまたは更新日時が変わったトランスクリプトのみ再読み込みします。便利なフラグ:

フラグ使用する場面
--fullすべてのキャッシュを無視して、すべてを再読み込みする
--mutualより密度が低く、小さなクラスターにする(相互 k-NN のエッジのみ)
--half-life N直近性の半減期を変更する(デフォルトは90日)
--min-sim 0.15エッジを少なく、強くする — グラフが密集しすぎて読みにくい場合に使用する
--skip nameプロジェクトを除外する。一致判定は部分文字列ベースです。キャッシュディレクトリ名は - で始まり、argparse がフラグとして読み取るため、名前のみを渡してください

概要の数値として、セッションの合計数、トランスクリプトがあるセッション数と履歴のみのセッション数、エッジ数、クラスター数を報告します。

ステップ2:名前のないクラスターに名前を付ける

obsidian-wiki sessions-clusters --unnamed --json

各クラスターには top_terms と exemplars(次数が最も高い3件のセッション。タイトルはすでに graph.json にあります)が含まれています。必要なのはこれだけです。 クラスターに名前を付けるためにトランスクリプトを開かないでください。コーパスのサイズにかかわらず、命名を1ターンで済ませることが設計上の目標です。

各クラスターに3〜5語の name と1文の summary を付けてから、次を実行します。

obsidian-wiki sessions-name --from - <<'EOF'
[{"id": 3, "name": "warden telemetry pipeline", "summary": "Building and debugging the redacted telemetry chain."}]
EOF

名前はクラスター ID ではなく、そのクラスターを特徴づける語彙をキーとして names.json に保存されます。そのため、クラスター ID は位置ベースでコーパスの拡大に伴って変わりますが、名前は再構築後も保持されます。再実行時は通常 --unnamed が空になるため、このステップは不要です。

クラスターの用語に一貫性がまったくない場合は、テーマを作り上げるのではなく、正直に名前を付けてください("mixed — short sessions")。

ステップ3:マップを報告する

clusters.json を読み込み、ユーザーに次の内容を伝えます。

  • 最大のトピック — size 順
  • 活発なトピック — momentum が最も高いもの(直近30日間の活動と、その前の60日間との比較)
  • 活動が落ち着いたトピック — dormant: true(直近性が低く、かつ60日間活動がないもの)
  • トピック間のつながり — bridges。互いに離れた2つのトピックをつなぐセッションです。グラフの中でも特に興味深いセッションであることがよくあります。

続いて、可視化を提案します。

open ~/.claude/session-brain/graph.html

ノードのサイズはセッションの長さ、明るさは直近性を示します。中が空洞のリングは履歴のみのセッション、金色の枠線はブックマークされたセッションを示します。時間スライダーと検索ボックスは連動してフィルタリングします。

注意事項

  • このスキルから Vault に書き込むことは絶対にありません。セッションの知識を Vault に保存したい場合は、wiki-history-ingest を使用します。
  • 履歴のみのセッションも実在します。 長期間使われているキャッシュの約40%は history.jsonl 内のプロンプトとしてのみ存在します。これらはグラフのノードとして表示され、検索できますが、読み込むことはできません。欠落しているかのように伝えず、その旨を明確に説明してください。
  • グラフは派生データです。表示がおかしい場合は、--full で最初から再構築できます。データが失われることはありません。

コメント