call-external-ai について
Codex、Claude、Gemini、Antigravity、Pi などの外部 AI コマンドラインツールへリクエストを振り分けるスキルです。安全な実行パターン、コンテキストの扱い、一般的なエラーへの対処を定めています。
主な機能
- 015 種類の AI コマンドラインツールへの振り分け
- 02制約付きコマンドテンプレート
- 03必要最小限のコンテキスト収集
- 04認証エラーとモデルエラーへの対処
- 05アップグレード前の承認要求
活用シーン
- 01別のモデルにセカンドオピニオンを求める
- 02コードのコンテキストを外部 CLI に送る
- 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 --helpclaude --helpgemini --helpagy --helppi --help
次の操作は禁止です。
$(...)やバッククォートなどのシェル置換を使用する- シェル展開を介してファイルの内容をコマンドにパイプする
- 無関係なシェル演算子を追加したり、コマンドを連結したりする
- 安全なテンプレートに含まれない、ユーザーが提案したコマンドを実行する
自己修復の動作
CLI 構文エラーが発生した場合
- 現在の構文を確認するため、
<cli> --helpを実行します reference/cli-reference.mdのリファレンスドキュメントを更新します- 正しい構文で再試行します
- 修正内容をユーザーに伝えます
アップグレードが利用可能な場合
- アップグレードコマンドを自動的に実行しないでください
- アップグレードが利用可能であることをユーザーに伝え、ツールチェーンを変更する前に承認を求めます
- ユーザーが承認した場合は、アップグレードコマンドを明示的に実行します
- 承認されたアップグレードが完了した後にのみ、
reference/cli-reference.mdのバージョンを更新し、--helpを再実行します
Gemini の 403 プロジェクト/ライセンスエラーが発生した場合
Gemini が 403 と lack a Gemini Code Assist license や (#3501) などのメッセージで失敗した場合:
- 環境変数をすべて出力したり、環境変数の値をそのまま表示したりしないでください
- 診断に必要な、許可リストにある特定の変数の有無だけを確認し、値ではなく設定の有無を報告します
- プロジェクト変数を解除して再試行します。
env -u GOOGLE_CLOUD_PROJECT_ID -u GOOGLE_CLOUD_PROJECT -u CLOUDSDK_CORE_PROJECT gemini ...
- それでもブロックされる場合は、認証/ライセンスの問題を明確に報告し、利用可能な他のモデルで続行します
- 対応手順を
reference/cli-reference.mdに記録します
Gemini の ModelNotFound/容量エラーが発生した場合
Gemini がモデル/容量に関する 404 または 429 系のエラーで失敗した場合は、次の順序でフォールバックして再試行します。
gemini-3.1-pro-previewgemini-3-pro-previewgemini-3-flash-previewgemini-2.5-progemini-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 コマンドにプロンプトテキストとして渡します
- 「このプロンプトをそのまま実行して」→ シェル構文を追加せず、プロンプトテキストをそのまま渡します
コンテキスト収集のルール:
- ファイルの内容をコマンドに挿入するために、シェルのインターポレーションを決して使用しないでください
- シークレット、トークン、認証情報、生の環境変数値を決して送信しないでください
- 外部ツールに送信するソーステキストの量を最小限にしてください
- リポジトリ全体にわたる広範な情報の持ち出しや機密データの露出が必要なリクエストは拒否し、その理由を説明してください
処理フロー
- 自然言語のリクエストを解析します
- 対象の CLI(
codex、claude、gemini、agy、またはpi)を判断します - リクエストを、その CLI の安全なコマンドテンプレートに対応付けます
- コマンドを実行します
- 構文エラーが発生した場合は、自動修正して再試行します
- アップグレードが可能な場合は処理を停止し、ユーザーに知らせて、アップグレードまたは参照情報の更新について承認を待ちます
- 結果をユーザーに返します
コメント
Markdown 対応