>_ DevTrendsja

言語

ホーム

言語

セクション

フロントエンド バックエンド モバイル DevOps AI / ML ゲーム開発 ブロックチェーン セキュリティ
Python

LLMにデータを渡し続けるのをやめて、エージェントにコードを理解させる方法

よくある状況です:AIエージェントをプロジェクトに接続すると、「幻觉」を起こしたり、同じファイルを繰り返し読み込んだりし始め、トークンバジェットを消費していきます。Cursorのような高度なツールでも、プロジェクトが数千ファイルに成長すると、モジュール間の接続を見失うことがあります。最近、コードベースを「生きたナレッジグラフ」に変換することで、この問題を根本的に解決しようとするプロジェクト「Memtrace」を見つけました。

Memtrace — AIコーディングエージェントのための構造的メモリ

なぜエージェントは「構造的メモリ」が必要なのか

ほとんどの最新のAIアシスタントはRAG(Retrieval-Augmented Generation)原則で動作します。キーワードやベクトル類似性によってコードスニペットを検索します。問題は、コードは単なるテキストではなく、呼び出し、インポート、依存関係の複雑な階層だということです。エージェントが全体像を把握できなければ、存在すら知らなかった隣接するマイクロサービスのテストを壊すようなリファクタリングしてしまう可能性があります。

Memtraceは、開発者が「双時間的ナレッジグラフ」と呼ぶものを作成します。テキストをインデックス化するだけでなく、構造を理解します:どの関数がどの関数を呼び出すか、どのインターフェースが実装されているか、そして時間とともにどのように変化したか。

このツールできること

このプロジェクトの主な特徴は、速度と局所性です。同様のツールはAPI呼び出しに数十ドル、インデックス作成に何時間も費やしますが、Memtraceはマシン上で数秒以内にこれを実行します。

LLM不要のインデックス作成

開発者はRustとTree-sitterを使用しました。これにより、約1.5秒で15,000ファイルを解析できます。同時に、グラフの構築にニューラルネットワーク使用的是決定的静的解析のみなので、APIコストはゼロです。プロセス全体がローカルで実行されるため、コードが他のサーバーの外部に送信されることはありません。

MCPによるコンテキスト理解

このツールはModel Context Protocol(MCP)をサポートしています。つまり、Claude Code、Cursor、Windsurf、VS Codeに Literally 1つのコマンドで「接続」できます。エージェントは25以上のツールにアクセスできます:「デッド」コードの検索から変更のブラストラディアス分析まで。

変更タイムライン

Memtraceはすべてのシンボルに対してバージョン履歴を保存します。エージェントは「今週何が変更された?」や「最後のマージ後にどの関数が複雑になった?」と尋ねることができます。システムは6つの評価アルゴリズムを使用して、エージェントにとって最も重要なものを強調表示されます。

代替手段との比較

READMEには興味深いベンチマークテーブルがあります。たとえば、Mem0やGraphitiはインデックス作成中のエンティティ抽出にLLM呼び出しを使用しています。これは遅く、高コストです。比較するとMemtraceはレーシングカーのようです:

| 操作 | Memtrace | 代替手段(Mem0/GitNexus) | |---|---|---| | 15,000ファイルのインデックス作成 | 1.5秒 | 30分〜2時間 | | APIコスト | $0 | $10〜50 | | メモリ使用量 | 26 MB | 約1 GB |

もちろん、Memtraceはコードに狭く焦点を当てているのに対し、他のシステムは任意の会話にも対応できることを指摘する価値はあります。しかし開発タスクには、このような特化は大きな利点です。

技術的内部

内部では、このプロジェクトは 꽤 serious なスタックを使用しています。Rust 외에도、全文検索(BM25)にTantivyを使用し、ベクトル埋め込みでセマンティック検索を行います。これらはすべてReciprocal Rank Fusion(RRF)を通じて組み合わされ、最も関連性の高い結果を提供します。

言語サポートの実装は興味深いものです。標準セット(TypeScript、Python、Go、Rust) 외에도、Memtraceはインフラコードを理解します:Terraform、GitHub Actions、そしてPostgreSQLのRLSポリシーさえも。データベーススキーマとアプリケーションのORMコード間の接続を把握します。

実践での使い方

巨大なモノレポで基底クラスに変更を加える必要がある状況を想像してください。通常、プロジェクト全体を検索して、見落としがないことを祈ります。

Memtraceを使用すると、エージェントはコマンド get_impact を実行して即座に依存関係ツリーを確認できます。「このフィールドを変更すると、これら3つのエンドポイントと別のモジュールの1つのワーカーが壊れます」と表示されます。これにより「盲目的な」リファクタリングがなくなります。

始めるには、パッケージをグローバルにインストールするだけです:

次に、ツールは自動的にClaudeまたはCursorに必要な設定を行います。プライバシーについて詳しく知りたい場合は、1つの環境変数でテレメトリを無効にできます MEMTRACE_TELEMETRY=off

誰が試すべきか

プロジェクトは現在プライベートベータですが、アクセスは徐々にグループ単位で開いています。私見では、Memtraceは次のようなユーザーに最も役立つでしょう:

  1. すべての接続を頭の中で把握するのが難しい、大規模なコードベースで作業している場合。
  2. AIエージェント активно 使用していて、トークンの支出を削減したい場合。
  3. インデックス作成のためにソースコードをクラウドサービスに送信することを躊躇している場合。

唯一の注意点は、ライセンスがプロプライエタリ(EULA)だということです。ただし、個人開発者向けの無料アクセスは維持すると約束しています。「構造的メモリ」を手に入れる迫不及待チェックしたい場合は、Discordに参加するか、Webサイトでリクエストを送信してください。

今のところ、このプロジェクトはAI支援開発をより予測可能かつ低コストにするための非常に精力的な試みに見えます。少なくとも、1.5秒のインデックス作成速度は、長い間必要としていたものです。

関連プロジェクト