ctx: コーディングエージェントの履歴のためのローカル検索

ctx: コーディングエージェントの履歴のためのローカル検索

ctx はエージェントがローカル履歴から過去のコンテキストを復元することを可能にします

コーディングエージェントは通常、各セッションを以前のやり取りの記憶なしで開始します。リポジトリの現在の状態を調査することはできますが、以前の議論、拒否されたアプローチ、現在のコードベースに至った失敗したコマンドへのアクセスが不足していることがよくあります。ctx は、ローカルのエージェント履歴ファイルをローカルの SQLite データベースにインデックス化することでこれを解決し、現在のおよび将来のエージェントが CLI を使用して特定の過去のイベントや決定を検索・取得できるようにします。

トークン効率の高い検索 vs. 生のトランスクリプト検索

生のトランスクリプトを検索することは、トークン使用量の面で非常に高価になることがよくあります。ctx は、履歴をセッション、イベント、およびメタデータに構造化することで、、生の検索よりも最大 50 倍トークン効率が高くなるように設計されています。

トランスクリプト全体をモデルのコンテキストウィンドウに投入する代わりに、ctx はランク付けされ、引用された一致箇所を返します。これにより、、生の検索の「トークンが重い」性質が、エージェントにとって履歴を使い物にならなくさせることを防ぎます。

技術的アーキテクチャとプライバシー

Rust で書かれた ctx は、バックグラウンドサービスや API キーを必要としないローカルファーストのツールとして動作します。次のような特定のパイプラインを通じて機能します:

  1. Discovery: ctx は、マシン上のサポートされているローカルプロバイダーの履歴ファイルを特定します。
  2. Import: 保存されたレコードをインポートし、セッション、イベント、および変更されたファイルのメタデータを正規化します。
  3. Storage: データは、検索に最適化されたローカルの SQLite インデックスに保存されます。

プライバシーを維持するため、インデックスはデフォルトでローカルかつプライベートに保たれます。このツールは、プロンプト、トランスクリプト、または履歴をクラウドサービスに送信しません。ただし、トランスクリプトのテキストは(ローカルパスや潜在的な機密情報を含めて)保持されるため、ユーザーは出力をマシン外部に共有する前に確認することを推奨されます。

サポートされているエージェントと統合

ctx は、以下を含む幅広いエージェント・ハーネスから履歴を検索・インポートできます:

  • Claude Code
  • Cursor
  • Codex
  • Copilot CLI
  • Pi
  • OpenCode
  • Antigravity / Gemini CLI
  • Factory AI Droid

ユーザーは、npx skills add ctxrs/ctx を介して、または Cursor や Claude Code のようなツールの特定のプラグインインストールを通じて ctx を「Agent Skill」として統合でき、エージェント自身が検索 CLI を呼び出せるようにします。

他のメモリ・ツールとの比較

ctx は、コードの背後にある「なぜ」に焦点を当てている点で、一般的なエージェント・メモリ・ツールやコードベース・マッピング・ツールとは異なります:

  • Agent Memory Tools: 多くの場合、コンパクトな事実やベクトルを保存しますが、これらは特定の決定がなぜ下されたのか、あるいはなぜコマンドが失敗したのかを理解するために必要な証拠が不足しています。
  • Codebase Graphs (e.g., Graphify): ファイルやシンボルの現在の状態をマッピングしますが、リポジトリがどのように変化したかの履歴プロセスを捕捉していません。
  • Grep/Log Search: 可能ではありますが、ctx は、ログファイルの manual grep 検索よりも効率的な、構造化され、インデックス化されたアプローチを提供します。

コミュニティの視点と議論

構造化された検索ツールの有用性は明らかですが、 Hacker News の一部のユーザーは、特定のエージェントがすでに自身の履歴を検索する能力を持っていることに言及しました。

"I often tell Claude Code to ~/.claude にある以前のセッションを look at してくださいと指示します。それは特別なツールなしで jq/grep を使ってそれらを辿ることを喜んで行います。"

他の貢献者は、異なるプロバイダー間でこのようなツールを作成しやすくするために、エージェントのトランスクリプトとログの標準化された形式が必要であると強調しました。ctx の作者である luca-ctx は、エージェントのトランスクリプトのための標準仕様が必要であることが、このツールを構築することで明らかになったと述べています。

Sources