cortexkit/aft

Give your agent a proper IDE and OS. The sensorimotor cortex for coding agents (OpenCode + Pi), part of CortexKit: symbol-aware edits, semantic search, code health, fast grep/glob, bash compression, background tasks, PTY.

AFT – コーディングエージェントの感覚運動皮質

何であるか – AFT(Agent File Tools)は、LLM駆動のコーディングエージェントに実際のIDEのようなコードベースの視覚とOSのような実行レイヤーを提供するRustベースのコアです。エージェント(例:OpenCode、Pi、oh-my-piなど)とホストファイルシステムの間に位置し、read/write/grepの原始的な呼び出しではなく、高レベルでシンボルに意識的なツール(aft_outlineaft_zoomaft_editaft_bashなど)を公開します。


コアアイデア(脳のメタファー)

区域 役割 例となるツール
感覚皮質 コード構造、意味、関係性を認識 aft_outlineaft_zoomaft_searchaft_callgraphaft_inspect
運動皮質 精密で解析された編集やリファクタリングを実行 aft_editaft_writeaft_apply_patchaft_importast_grep_*
脳幹 長時間実行中のプロセスを維持、出力を圧縮、アンダーアンド/復元を提供 aft_bash、バックグラウンドタスク、PTYセッション、aft_safety

サポートされるエージェント「ハーネス」

ハーネス AFTの統合方法
OpenCode ネイティブアダプタ(@cortexkit/aft-opencode)が組み込みのreadwriteeditapply_patchをAFTベースのバージョンに置き換え、aft_ツール群を追加します。
Pi ネイティブ拡張(@cortexkit/aft-pi)がreadwriteeditgrepを置き換え、aft_ツールを追加します。
OMP(oh-my-pi) Piプラグイン経由でサポート。デフォルトでトップレベルにツールを登録し、オプションの「host_default」表示モードを提供します。

主な機能

  • 構造に意識的な認識aft_outlineは、関数、クラス、型などのすべてのシンボルを、その種類、可視性、行範囲、ネストされたメンバーとともに返します。aft_zoomは単一のシンボルに深く掘り下げ、コールグラフ情報を含めることもできます。
  • ハイブリッドな意味的+語彙的検索aft_searchはトライグラムインデックスに加え、オプションの埋め込みバックエンド(OpenAI互換またはOllama)を使用して、意味に基づいてコードを検索します。
  • シンボルレベルの編集aft_editは名前付き関数を直接置き換えたり、曖昧な検索・置換を実行したり、マルチファイルのトランザクション編集を実行できます。すべての変更は、書き込み前に解析・フォーマット・バックアップされます。
  • 自動インポート管理aft_importは、言語に応じた方法でインポートを追加、削除、整理します。
  • ASTベースの構造的置換ast_grep_search / ast_grep_replaceを使用すると、tree-sitter ASTを使ってコードパターンをマッチさせられます。
  • 堅牢なシェル実行aft_bashは出力の圧縮、権限スキャン、および一般的なユーティリティの自動書き換え(cat → readgrep → grep tool)を伴ってシェルコマンドを実行します。バックグラウンドタスクはエージェントの再起動後も生存します。
  • アンダーアンド/チェックポイント – すべての編集はファイルごとのアンダーアンドスタックに保存されます。エージェントは名前付きチェックポイントを作成し、安全にロールバックできます。
  • 言語カバレッジ – 30以上の言語(TS/JS、Python、Rust、Go、C/C++、Java、Kotlin、Swiftなど)のtree-sitterパーサーにより、アウトライン、編集、AST、意味的機能が可能になります。
  • 永続的なインデックスとLSP – トライグラム検索、意味的埋め込みインデックス、埋め込みLSPクライアントは、プロジェクトルートごとに長期間稼働するaftプロセスで維持されます。

クイックスタート(ワンライナー)

npx @cortexkit/aft@latest setup

このコマンドは、インストール済みのハーネスを検出し、AFTツールを登録し、aftバイナリが利用可能であることを確認します。特定のハーネスを指定するには --harness opencode|pi|omp を使用できます。


インストール詳細

  • Rust crate – crates.io 上の agent-file-tools(コアバイナリ)。
  • NPMパッケージ@cortexkit/aft(CLI)、@cortexkit/aft-opencode@cortexkit/aft-pi(ハーネスアダプタ)。
  • バイナリ配布 – CLIは初回使用時にプラットフォームに最適なプリビルドバイナリをダウンロードします。必要に応じてcargo installまたはGitHubリリースにフォールバックします。
  • 設定 – オプションの aft.jsonc(ユーザーレベル ~/.config/cortexkit/aft.jsonc またはプロジェクトレベル <repo>/.cortexkit/aft.jsonc)。enabled: false に設定するとAFTを無効化でき、ツールの表面、意味的バックエンド、LSPサーバー、圧縮などもカスタマイズ可能です。
  • アンインストールnpx @cortexkit/aft@latest doctor を実行して残り物を確認し、ハーネス設定からプラグインエントリを手動で削除し、~/.local/share/cortexkit/aft/ データディレクトリを削除します。AFT自体には専用のアンインストールコマンドはありません。

開発と貢献

  • TypeScriptアダプタ用のBunワークスペースとRustコア用のCargoワークスペースを備えたモノレポ。
  • ビルド手順:
    bun install            # JS依存関係をインストール
    cargo build --release  # Rustバイナリをコンパイル
    bun run build          # TSプラグインをビルド
    
  • テスト:bun run test(TS)およびcargo test(Rust)。
  • 形式化:bun run lint(Biome)およびcargo fmt
  • 貢献は「設計優先」ワークフローに従います:イシューを開き、design-approvedラベルを取得した後、PRを提出します。

ライセンス

MIT – 個人および商業利用に自由に使用可能。


要するに:AFTはLLM駆動のコーディングエージェントに、言語に意識的なフル機能のIDEと軽量なOSレイヤーを提供し、エージェントがコードを読み取り、編集、実行する際のトークン使用量を大幅に削減し、信頼性を向上させます。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト