git-a2a について
git-a2aは、コーディングエージェントやコンポーネントの保守担当者向けのクロスプラットフォームGit依存関係管理ツールです。コンポーネントのコミット、アダプター、担当者のAgent Card参照を記録しますが、エージェントの実行やA2A通信は行いません。
主な機能
- 01プラットフォームアダプター経由のコンポーネント接続
- 02依存関係の正確なコミット記録
- 03担当エージェントとAgent Cardの追跡
- 04依存関係の取得、確認、削除
- 05任意のコンポーネント情報の公開
活用シーン
- 01プロジェクトへの共有ライブラリ追加
- 02依存コンポーネントの担当エージェント特定
- 03選択したアダプターによる依存関係の更新
- 04コンポーネント情報とローカル問題の確認
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
8掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| root | string | いいえ | repository のルート。許可されたルート(起動ディレクトリ、--roots、クライアントのルート)内である必要があります。 |
詳細
git-a2a
Git コンポーネントを、その担当エージェントとともに接続します。
git-a2a は、クロスプラットフォームのコンポーネント依存関係マネージャーです。コンポーネントのリポジトリは、コード、所有者の A2A Agent Card への参照を 1 つ、さらに任意で API ドキュメント、サンプル、ソースなどの参照可能な情報を公開します。利用側は、自身のプラットフォームのアダプターを通じてコードを接続し、正確なコミット、アダプター、パッケージマネージャーのバリアントを記録します。
git-a2a はメッセージを送信したり、タスクを管理したり、エージェントを実行したり、Agent Card をホストしたりしません。git a2a whose NAME が示す利用可能な Agent Card 参照を、外部 A2A クライアントで使用してください。これは HTTPS URL、または適用したコミットから取得したリポジトリ相対パスのカードのローカルコピーです。
クイックスタート
バイナリを git-a2a として直接実行するか、PATH にインストールして、Git の同等の形式である git a2a を使用してください。
git a2a init
git a2a add https://github.com/acme/lib-utils.git --name lib-utils
git a2a list
git a2a whose lib-utils
git a2a pull lib-utils
git a2a remove lib-utils
バージョン 2.1.0 では whose NAME が導入され、list の位置引数が削除されました。list NAME --json を使用するスクリプトでは、list --json を使用し、配列からエイリアスを選択してください。
ドメインコマンドはちょうど 6 つです。
| コマンド | 結果 |
|---|---|
init | 既存のマニフェストを上書きせず、最小限のスキーマ 2 の a2amodule.yml を作成します。 |
add SOURCE | 1 つのコミットを解決し、適用可能なアダプターを選択してコンポーネントを接続し、その所有者と参照可能な情報を記録します。 |
pull [NAME] | add で選択したアダプターとバリアントを通じて、1 つまたはすべての依存関係を更新します。依存関係がない場合は No dependencies. と報告し、変更を加えずに成功します。 |
remove NAME | 選択した依存関係が所有する統合とローカルの実体化のみを削除します。 |
list | すべての直接依存関係、コミット、アダプター、Agent Card、参照可能な情報、ローカルの問題を報告します。--json は既存の配列形式を返します。 |
whose NAME | 1 つの依存関係の担当エージェント、利用可能な Agent Card 参照、任意のローカル情報、復旧可能なメタデータの問題を報告します。--json は 1 つのオブジェクトを返します。 |
pull はアダプターのライフサイクルであり、git pull のラッパーではありません。多言語コンポーネントのすべてのバインディングは、同じ解決済みコミットを使用します。アダプターとマネージャーの選択は保持されるため、後から PATH や利用側のマーカーファイルを変更しても、暗黙に切り替わることはありません。
エンドツーエンドデモ
ACME アプリのウォークスルーでは、コンポーネントを接続し、担当エージェントを見つけ、A2A 経由でリクエストを送信し、所有者にライブラリを変更してもらい、git-a2a pull を実行して新しい結果を確認するまでの一連の流れを紹介しています。アプリのリポジトリとライブラリのリポジトリは、互いに隣接する場所にクローンする必要があります。実行時に必要なのは Docker と Compose のみです。
git clone https://github.com/neprel/git-a2a-demo-acme-lib.git
git clone https://github.com/neprel/git-a2a-demo-acme-app.git
cd git-a2a-demo-acme-app
./demo/run.sh
# Short npm-only profile
DEMO_PROFILE=npm ./demo/run.sh
このデモでは、LLM API キー不要の決定論的なエージェント、実際の A2A トランスポート、公開済みの git-a2a 2.0.0、一時的なローカル Git リモートを使用します。別途用意されたデモクライアントが A2A 通信を行い、git-a2a は依存関係のコードとメタデータを管理します。エージェントはローカルでの実行中のみ存在し、恒久的に利用可能な公開サービスではありません。記録されたフルプロファイルの結果については、検証済みのトランスクリプトを参照してください。
コンポーネントの契約
a2amodule.yml はスキーマ 2 を使用します。
schema: 2
component:
id: lib-utils
description: Shared parsing and validation utilities.
repository: https://github.com/acme/lib-utils.git
exports:
- adapter: npm
name: "@acme/lib-utils"
- adapter: pypi
name: acme-lib-utils
surface: docs/public
agent:
name: lib-utils-owner
card: https://agents.acme.example/lib-utils/.well-known/agent-card.json
エージェントのインターフェース、スキル、認証については、引き続き Agent Card が基準となります。
マニフェストでは意図的にこれらを重複して記述しません。init は agent のない不完全なローカルマニフェストを作成できますが、add または pull で使用するリポジトリでは agent.card を宣言する必要があります。
オプションの component.surface は、同じ適用済みコミットから公開されるデータであり、.git-a2a/surfaces/NAME の下にマテリアライズされます。サーフェスが宣言されていない場合、リポジトリのコンテンツが暗黙的に公開されることはありません。サーフェスはインストールの仕組みではなく、サブモジュールでもありません。
マニフェストリファレンス、作成ガイド、利用ガイド、スキーマ 1 からの移行ガイドをご覧ください。
アダプターの対応表
既存のすべてのプラットフォーム統合が引き続き利用できます。ネイティブアダプターは各プラットフォーム独自のマネージャーを通じて依存関係を適用し、宣言、ネイティブロックファイル、インストール済みまたは解決済みの状態を更新します。ビルドシステムアダプターは、ソースを別のツリーにコピーするのではなく、1 回のサブモジュールチェックアウトと連携します。
| モード | アダプター |
|---|---|
| ネイティブ Git 依存関係 | npm(npm、Yarn、pnpm、Bun)、Python(uv、Poetry、PDM、PEP 621/pip)、Go、Cargo、SwiftPM、Pub、Bundler、Composer、Mix、Cabal/Stack、Zig、Clojure、Nix |
| サブモジュール+ビルド統合 | CMake、Gradle、MSBuild、Maven、Meson |
| サブモジュールのみ | 統合が適用されない場合、またはネイティブマネージャーでソースを表現できない場合のフォールバック |
Git サブモジュールは、同じ add/pull/remove/inspect ライフサイクルを持つ通常のアダプターです。ネイティブのロックファイルは引き続き各パッケージマネージャーが管理します。詳細な対応表と適用範囲については、対応状況をご覧ください。
インストール
既存のインストール方法はそのまま利用できます。コマンドは最新の安定版を取得します。CI ではバージョンを固定してください。
| チャネル | コマンド |
|---|---|
| Go | go install github.com/neprel/git-a2a/v2/cmd/git-a2a@latest |
| Go ゼロインストール | go run github.com/neprel/git-a2a/v2/cmd/git-a2a@latest --version |
| macOS/Linux インストーラー | curl -fsSL https://git-a2a.com/install.sh | bash |
| Windows インストーラー | irm https://git-a2a.com/install.ps1 | iex |
| Homebrew | brew install neprel/tap/git-a2a |
| Scoop | scoop bucket add git-a2a https://github.com/neprel/scoop-bucket; scoop install git-a2a |
| npm | npx git-a2a@latest --version |
| uv 経由の PyPI | uvx git-a2a --version |
| pipx 経由の PyPI | pipx run git-a2a --version |
| コンテナ | docker run --pull=always --rm ghcr.io/neprel/git-a2a:latest --version |
| Nix フレーク | nix run github:neprel/git-a2a -- --version |
Linux の .deb、.rpm、.apk パッケージは GitHub Releases に添付されています。リリースアーカイブは amd64/arm64 向けの Darwin、Linux、Windows に対応し、チェックサムと SBOM を含みます。スタンドアロンインストーラーはチェックサムを検証し、バージョンの固定、インストール先の選択、ドライランに対応しています。パッケージマネージャーでインストールした場合は、そのパッケージマネージャーを使って更新してください。バイナリにセルフアップデーターはありません。
メンテナーと来歴の詳細については、リリースガイドをご覧ください。
ドキュメント
- CLI リファレンス
- マニフェストリファレンス
- コンポーネントの作成
- コンポーネントの利用
- エージェントと外部 A2A クライアント
- サポート対象のアダプター
- スキーマ 1 からの移行
- FAQ
- リリースとインストールのメンテナンス
ポータブルな Agent Skill は、この 6 コマンドのワークフローをコーディングエージェントに教えます。MCP サーバーやエージェントハーネスを設定するものではありません。
ソースとしての仕様
リポジトリの決定事項と不変条件は、それらが適用される成果物の隣にある .hint ファイルに記載されています。
hint <path> はパスに適用されるナレッジを返し、hint check <path...> はリンクされた調査記録を検証します。
リポジトリと CI では HINT 2.0.1 を使用します。ツールと形式については
HINT をご覧ください。
ライセンス:MIT。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。