114 Views
May 25, 26
スライド概要
2026年5月25日に開催された「GitHub Copilot CLI を装備せよ 〜実践テクニック共有会 LT Night〜」の登壇資料です。
https://findy.connpass.com/event/391200/
Cloud Developer,404ニキ,Microsoft MVP,LINE API Expert,PagerDuty Ambassador,Google Cloud PTE/Tech Influencer,AWS Community Builder, #AIDD #AI駆動開発 #dotnetlab 投稿は個人の見解, #AzPoC
GitHub Copilot CLIとSDKで複数のCopilotを起動して A2Aプロトコルで接続する方法 GitHub Copilot CLI を装備せよ 〜実践テクニック共有会 LT Night〜 1
自己紹介 山田顕人(Kento.Yamada) @ymd65536 By the wayの人、404ニキなど呼び方はさまざま 仕事:DevSecOps、クラウドインテグレーション コミュニティ運営:.NETラボ、AI運用、AI駆動開発 受賞歴(継続中の称号を掲載、他いくつかあるけど割愛) ● New! 初代PagerDutyアンバサダー 2
今日話すこと 前半 ● GitHub Copilot CLIとGitHub Copilot SDKの関係 ● GitHub Copilot CLIのサーバーモード ● GitHub Copilot CLIとGitHub Copilot SDKを組み合わせる 後半 ● GitHub Copilot SDKとは ● A2AとGitHub Copilot SDK、GitHub Copilot CLIによるマルチエージェント ● GitHub Copilotを使ってマルチエージェントシステムを実現するときの注意点 3
今日の話にもつながる部分があるので共有 ※むしろ今日はこのブログの説明 記事投稿コンテスト「GitHub Copilot 活用選手権」 にて受賞 引用:https://zenn.dev/contests/github-2026-spring?tab=result 4
GitHub Copilot CLIとGitHub Copilot SDKの関係 エンジンとインターフェースの関係 ● Copilot CLI(サーバー・実行基盤)、本日の主人公 ○ 実際にAIモデルと接続してさまざまな操作を行う ● Copilot SDK(接続・開発キット)、本日の相棒 ○ 自分のアプリに組み込んで独自のコンテキストを注入する Copilot CLIをサーバー、Copilot SDKをクライアントとする構成が可能 5
GitHub Copilot CLIのサーバーモードの紹介 簡単に説明するとCopilot をターミナル上でサーバーとして起動するというモード 起動するとローカルエンドポイントが作成されて接続待機状態になる。 このエンドポイントに対してCopilot SDKを実装したクライアントから接続できる。 6
GitHub Copilot SDKとGitHub Copilot CLI 接続イメージ SDK CLI PORT:4321 skills MCP Copilot CLI: ポート4321で接続待機 Copilot SDK: クライアントでポート4321に対してセッションを作成 7
Copilot CLIのサーバーモードでマルチエージェント シングルエージェントも良いけど、いろんなことをやらせたいよ ね? ● fleet コマンドで複数のタスクを実行 ● カスタムエージェントを呼ぶように作る ● Microsoft AgentFrameworkで実装する ● docker/Kubernetesで実装する 8
Kubernetesで実装する Copilot CLIをKubernetesで オーケストレーション 大規模に実行する話も ドキュメントにあります。 引用:https://docs.github.com/ja/copilot/how-tos/copilot-sdk/set-up-copilot-sdk/scaling 9
GitHub Copilot CLI on Kubernetes Service Pod SDK Agent SDKからKubernetes上のCopilot CLIにアクセスする。 10
元からこんなことをやっていたので組み合わせることを 考えた。 引用:https://zenn.dev/ymd65536/articles/a2a_on_kubernetes Kubernetesの内部DNSを使って A2Aのエージェントカードを特定する仕組み エージェントディスカバリを考案 11
A2AとSDK、CLIを組み合わせてマルチエージェント 参考:https://github.com/ymd65536/GitHubCopilotSDK/tree/main/k8s_copilot CopilotにA2Aで名前を与えて複数のCopilotにアクセスする。 あるいはA2A互換エージェントと連携する。 12
GitHub Copilot CLI/SDK and A2A on Kubernetes Service GitHub Copilot SDK Pod GitHub Copilot SDK Service AgentCard CLI Agent A Service GitHub Copilot SDK Pod A2A Pod AgentCard CLI Agent B A2Aプロトコルで隠ぺい クライアントにはCopilotを意識させない。 13
GitHub Copilotを使って マルチエージェントシステムを実現するときの注意点 ● 異なるエージェントから大量にアクセスされる ○ リクエスト(≠ プレミアリクエスト)が多い。モデルの選択は適切に行う おすすめの対応 ● ローカルLLMを利用(説明割愛) ● BYOKによるAIモデルの利用(説明割愛) ● New! クラウド上でCLIを実行 14
クラウド上でCLIを実行、クラウドの課金にも?! BYOKによるAIモデルの利用であれば サーバーモードを活用してクラウドで動かす方法もアリ ※クラウドの利用料として精算できる ● Microsoft Foundryのエンドポイントからアクセス ● Gemini APIあるいはCloud Run + Ollama ● AWS + Ollama 他、モデルプロバイダーのエンドポイントを使う。(利用環境によりけり) 15
まとめ ● GitHub Copilot CLIのサーバーモードはCopilotを常駐できるモード ○ Kubernetes上でも実行できるよ ● GitHub Copilot SDKはCopilotを自分のアプリに組み込むためのSDK ○ Copilot SDKとA2Aを使ってサーバーモードのCLIにアクセス ● 課金には気をつけよう! ○ BYOKやローカルLLMを選択しよう ○ クラウドが使えるならクラウド上でCLIを動かそう 16
おわり 17