AIエージェントのための複雑な検索パイプラインを、シンプルなgitコマンドで置き換える

✍️ OpenClawRadar📅 公開日: March 20, 2026🔗 Source
AIエージェントのための複雑な検索パイプラインを、シンプルなgitコマンドで置き換える
Ad

複雑なパイプラインからシンプルなgitコマンドへ

AIエージェント向けのgitベースメモリシステム「DiffMem」を構築していた開発者は、検索レイヤーが不必要に複雑であることに気づきました。彼らは、コサイン類似度スコアリングを行うsentence-transformers、キーワード検索のためのrank-bm25、クエリを蒸留して結果を合成する2段階のLLMパイプライン、そして依存関係としてscikit-learnとnumpyを使用していました。これにより、3GBのDockerイメージ(sentence-transformersがPyTorch全体を取り込む)、約10%の確率で発生する高負荷ユーザーへのタイムアウト、そして毎回メモリ内BM25インデックスを再構築するコールドスタートが発生していました。

気づき:LLMはすでにgitを知っている

重要な洞察は、UnixコマンドがどのLLMのトレーニングデータにおいても最も密度の高いツール使用パターンであることを認識したことから得られました。何十億ものREADMEファイル、CIスクリプト、Stack Overflowの回答には、grep、git log、catコマンドが溢れています。LLMは、その周りに構築されたカスタム検索パイプラインを必要としません。LLMはすでにシェルコマンドの言語を話しているのです。

単一ツールによる解決策

彼らは複雑なシステム全体を、たった一つのツールに置き換えました:

{
  "name": "run",
  "description": "メモリリポジトリで読み取り専用コマンドを実行する",
  "parameters": {
    "command": "シェルコマンド(|、&&、||、; による連結をサポート)"
  }
}

以上です。一つの関数だけです。エージェントは、教えられることなくgrep、git diff、headなどのUnixユーティリティをすでに知っており、シェルコマンドを記述します。

エージェントの動作方法

エージェントは、そのターン全体で固定されたプロトコルに従います:

  • エンティティマニフェストを読み取る
  • コミットログに対して時間的プローブを実行する
  • 調査を単一のツール呼び出しにまとめる
  • 検索計画を出力する
  • 停止する

エージェントはコンテンツではなく、ポインタを返します。エージェントはターン中に軽量なシグナルを読み取り(構造のためのhead -30、キーワードのためのgrep -n、最近の変更のためのgit diff HEAD~3..)、その後、コードに何を取得すべきかを指示します。コードがポインタを解決し、エージェントのコンテキストを軽量に保ちます。

Ad

実世界の例

ユーザーが仕事のプレッシャーで孤独を感じているという誕生日のメッセージを送ったとき、エージェントは以下を実行しました:

git log --format='%h %ad' --date=relative --name-only -15

これにより、wife.mdとcompany.mdが同じセッションで変更され、重要な同僚が直近3セッションのうち2つに現れたことが明らかになりました。ユーザーのメッセージは仕事について何も言及していませんでした。BM25ではcompany.mdを見つけられず、「誕生日に孤独を感じる」という意味的類似性でも到達できません。しかし、コミット履歴での共起が、実際に重要な関連性を明らかにしたのです。

ターン3では、エージェントはセミコロンで連結された9つのコマンドを含む1つのツール呼び出しを構成しました:

git diff HEAD~2.. -- memories/people/wife.md; git log --stat -5 -- memories/people/wife.md; head -30 memories/people/wife.md; grep -n "birthday|surgery|stress" memories/people/wife.md; tail -50 timeline/2026-03.md; git diff HEAD~3.. -- timeline/2026-03.md; grep -n "project|deliverable" memories/contexts/company.md; git diff HEAD~2.. -- memories/contexts/company.md; git diff HEAD~1.. -- memories/people/colleague.md

最終的な出力は、特定のgit diff、優先度レベル、トークン見積もりを含むJSON検索計画でした。コンテンツではなく、ポインタです。その後、コードがコマンドを実行し、トークン予算に対してコンテキストを組み立てました。

結果

このアプローチにより、rank-bm25、sentence-transformers、scikit-learn、numpyを削除することができました。Dockerイメージは約3GB減少しました。サーバーの起動が速くなり、メモリ使用量が大幅に削減され、コールドスタート時のBM25インデックスもなくなりました。10%のタイムアウト率は消えました。Cloud Runでの実際のユーザーロードにおいて、これはわずかな改善ではなく、異なるクラスのデプロイメントとなりました。

残ったもの:requests、openai、gitpython。

📖 完全なソースを読む: r/LocalLLaMA

Ad

👀 See Also

マーキー:エージェント生成ドキュメント用の軽量マークダウンビューアー
Tools

マーキー:エージェント生成ドキュメント用の軽量マークダウンビューアー

Markyは、Tauri v2とReactで構築されたデスクトップMarkdownビューアで、ターミナルから.mdファイルをライブリロードで開きます。CLIファーストの使用法、Shikiによるシンタックスハイライト、KaTeX数式サポート、Mermaidダイアグラム、フォルダ用ワークスペースを特徴としています。

OpenClawRadar
Trepan: AI生成コードのためのローカルVS Codeセキュリティ監査ツール
Tools

Trepan: AI生成コードのためのローカルVS Codeセキュリティ監査ツール

Trepanは、AI生成コード提案のセキュリティゲートキーパーとして機能するオープンソースのVS Code拡張機能です。Ollamaを使用して、プロジェクト固有のルールが記述された.trepan/system_rules.mdファイルに対してローカルセキュリティ監査を実行します。

OpenClawRadar
Clooks: Claude Codeのための永続的フックランタイム
Tools

Clooks: Claude Codeのための永続的フックランタイム

Clooksは、プロセス生成なしでClaude Codeのフックディスパッチを処理する永続的なHTTPデーモンであり、呼び出しごとのレイテンシを約34.6msから約0.31msに削減します。自動マイグレーション、プロンプトテンプレート付きLLMハンドラー、依存関係解決、プラグインパッケージングを含みます。

OpenClawRadar
blend-ai:Claude Code向けの新しいBlender MCPサービス
Tools

blend-ai:Claude Code向けの新しいBlender MCPサービス

blend-aiは、Claude Codeが3Dシーンを生成できる新しいBlender MCPサービスです。あるユーザーが、blender-mcpよりも高速で優れた動作を報告し、参照画像から5分でシャトル発射シーンを作成しました。

OpenClawRadar