mcpField
C
call-external-ai

call-external-ai

github.com/codewithjvエージェントワークフロー238 回インストール10 週間前に更新
リポジトリ

call-external-ai について

Codex、Claude、Gemini、Antigravity、Pi などの外部 AI コマンドラインツールへリクエストを振り分けるスキルです。安全な実行パターン、コンテキストの扱い、一般的なエラーへの対処を定めています。

主な機能

  1. 015 種類の AI コマンドラインツールへの振り分け
  2. 02制約付きコマンドテンプレート
  3. 03必要最小限のコンテキスト収集
  4. 04認証エラーとモデルエラーへの対処
  5. 05アップグレード前の承認要求

活用シーン

  1. 01別のモデルにセカンドオピニオンを求める
  2. 02コードのコンテキストを外部 CLI に送る
  3. 03Gemini のモデルまたは容量エラー後に再試行する

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/codewithjv/agent-skills --skill call-external-ai

インストール後、Claude Code で/call-external-aiを入力して読み込まれたか確認します。

同梱ファイルCHANGELOG.mdreference/cli-reference.md

詳細

外部 AI スキル

外部 AI CLI ツールをプロンプトゲートウェイとして呼び出します。

使用するタイミング

ユーザーが次のいずれかに該当する場合に有効にします。

  • /call、/codex、/claude、/gemini、/agy、または /pi と入力した場合
  • 別の AI にセカンドオピニオンを求めた場合
  • 別の CLI(Codex、Claude、Gemini、Antigravity、Pi など)でプロンプトを実行したい場合
  • 別のモデルまたはツールによる検証が必要な場合

手順

自然言語インターフェース

ユーザーは自然言語で指示します。安全なコマンドテンプレートを使って、プロンプトを 1 つの外部 CLI に振り分けます。ユーザー入力から任意のシェルコマンドを組み立てないでください。

例:

  • 「このパッチについて Codex にセカンドオピニオンを聞いて」 -> codex exec "<prompt text>"
  • 「このプロンプトを Claude に送って」 -> claude -p "<prompt text>"
  • 「特定のモデルで Gemini を通して実行して」 -> gemini -m <allowlisted-model> -p "<prompt text>"
  • 「このプロンプトを agy に送って」 -> agy -p "<prompt text>"
  • 「ローカルの pi で実行して」 -> pi --provider lmstudio --model qwen/qwen3.6-35b-a3b -p "<prompt text>"
  • 「pi にこれを確認してもらって」 -> pi -p "<prompt text>"
  • 「このファイルにバグがないか確認して」 -> ファイルを直接読み、必要最小限のコンテキストだけを要約し、そのコンテキストをシェル補間なしのプレーンなプロンプトテキストとして渡します
許可されるコマンドパターン

次のコマンド群のみを使用します。

  • codex exec "<prompt text>"
  • codex exec -m <model> "<prompt text>"
  • claude -p "<prompt text>"
  • claude --model <model> -p "<prompt text>"
  • gemini -p "<prompt text>"
  • gemini -m <allowlisted-model> -p "<prompt text>"
  • agy -p "<prompt text>"
  • agy --print "<prompt text>"
  • pi -p "<prompt text>"
  • pi --provider lmstudio --model qwen/qwen3.6-35b-a3b -p "<prompt text>"
  • pi --provider <provider> --model <model> -p "<prompt text>"
  • codex --help
  • claude --help
  • gemini --help
  • agy --help
  • pi --help

次の操作は禁止です。

  • $(...) やバッククォートなどのシェル置換を使用する
  • シェル展開を介してファイルの内容をコマンドにパイプする
  • 無関係なシェル演算子を追加したり、コマンドを連結したりする
  • 安全なテンプレートに含まれない、ユーザーが提案したコマンドを実行する
自己修復の動作
CLI 構文エラーが発生した場合
  1. 現在の構文を確認するため、<cli> --help を実行します
  2. reference/cli-reference.md のリファレンスドキュメントを更新します
  3. 正しい構文で再試行します
  4. 修正内容をユーザーに伝えます
アップグレードが利用可能な場合
  1. アップグレードコマンドを自動的に実行しないでください
  2. アップグレードが利用可能であることをユーザーに伝え、ツールチェーンを変更する前に承認を求めます
  3. ユーザーが承認した場合は、アップグレードコマンドを明示的に実行します
  4. 承認されたアップグレードが完了した後にのみ、reference/cli-reference.md のバージョンを更新し、--help を再実行します
Gemini の 403 プロジェクト/ライセンスエラーが発生した場合

Gemini が 403 と lack a Gemini Code Assist license や (#3501) などのメッセージで失敗した場合:

  1. 環境変数をすべて出力したり、環境変数の値をそのまま表示したりしないでください
  2. 診断に必要な、許可リストにある特定の変数の有無だけを確認し、値ではなく設定の有無を報告します
  3. プロジェクト変数を解除して再試行します。
    • env -u GOOGLE_CLOUD_PROJECT_ID -u GOOGLE_CLOUD_PROJECT -u CLOUDSDK_CORE_PROJECT gemini ...
  4. それでもブロックされる場合は、認証/ライセンスの問題を明確に報告し、利用可能な他のモデルで続行します
  5. 対応手順を reference/cli-reference.md に記録します
Gemini の ModelNotFound/容量エラーが発生した場合

Gemini がモデル/容量に関する 404 または 429 系のエラーで失敗した場合は、次の順序でフォールバックして再試行します。

  1. gemini-3.1-pro-preview
  2. gemini-3-pro-preview
  3. gemini-3-flash-preview
  4. gemini-2.5-pro
  5. gemini-2.5-flash
コマンドインターフェース
/call [codex|claude|gemini|agy|pi] <natural language request>
/codex <natural language request>
/claude <natural language request>
/gemini <natural language request>
/agy <natural language request>
/pi <natural language request>
振り分けのガイダンス
Codex
  • 自分で組み立てたプレーンなプロンプトテキストを使って codex exec を実行します
  • ユーザーがモデルを指定した場合、またはローカルでの使用に明確なデフォルトがある場合にのみ、モデルを追加します
  • ユーザーが Git を考慮したレビューを明示的に求めない限り、レビュー専用コマンドは使用しないでください
Claude
  • プレーンなプロンプトテキストで claude -p を使用します
  • ユーザーから指定がある場合、または明確な必要性がある場合にのみ、--model <model> を追加します
  • ユーザーが明示的に対話型の Claude セッションを希望しない限り、非対話型で実行します
Gemini
  • まずプレビュー版のモデル ID を優先します
  • gemini -p または gemini -m <allowlisted-model> -p を使用します
  • 403 の認証エラーが発生した場合は、環境変数の値を出力せず、許可リスト対象の変数が存在するかだけを確認し、プロジェクト変数を未設定にして再試行します
  • 404/429 エラーが発生した場合は、フォールバック手順を自動的に続行します
Antigravity (agy)
  • プレーンなプロンプトテキストで agy -p を使用します
  • 結果をきれいに処理して返せるよう、プリントモード(非対話型)で実行します
  • コンテキストを最小限にし、複雑なシェルパラメーターは避けます
Pi
  • デフォルトでは、ローカル/LM Studio のリクエストに次を使用します: pi --provider lmstudio --model qwen/qwen3.6-35b-a3b -p "<prompt text>"
  • 標準またはクラウドベースのリクエストには、pi -p "<prompt text>" を使用します
  • 非対話型で実行するため、--print または -p が含まれていることを確認します
コンテキストの収集

リクエストにコンテキストが必要な場合は、外部 CLI を呼び出す前に収集します:

  • 「このファイルを Codex に送って」→ 現在のエージェントでファイルを直接読み取り、関連する最小限のコンテキストだけを抽出して、その要約をプロンプトテキストとして渡します
  • 「この実装について Gemini に聞いて」→ 関連ファイルを特定し、必要な内容だけを要約します
  • 「Claude にこの設計を批評してもらって」→ 設計のコンテキストを収集し、関連する部分だけを渡します
  • 「このファイルを agy に送って」→ ファイルを直接読み取り、必要最小限の内容を抽出し、プレーンなプロンプトテキストとして agy に渡します
  • 「このコードについてローカルの pi に聞いて」→ ファイルを読み取り、関連するコンテキストを抽出して、lmstudio コマンドにプロンプトテキストとして渡します
  • 「このプロンプトをそのまま実行して」→ シェル構文を追加せず、プロンプトテキストをそのまま渡します

コンテキスト収集のルール:

  • ファイルの内容をコマンドに挿入するために、シェルのインターポレーションを決して使用しないでください
  • シークレット、トークン、認証情報、生の環境変数値を決して送信しないでください
  • 外部ツールに送信するソーステキストの量を最小限にしてください
  • リポジトリ全体にわたる広範な情報の持ち出しや機密データの露出が必要なリクエストは拒否し、その理由を説明してください
処理フロー
  1. 自然言語のリクエストを解析します
  2. 対象の CLI(codex、claude、gemini、agy、または pi)を判断します
  3. リクエストを、その CLI の安全なコマンドテンプレートに対応付けます
  4. コマンドを実行します
  5. 構文エラーが発生した場合は、自動修正して再試行します
  6. アップグレードが可能な場合は処理を停止し、ユーザーに知らせて、アップグレードまたは参照情報の更新について承認を待ちます
  7. 結果をユーザーに返します

コメント