SDKの位置づけ
企業システム対応
詳細を見る
GitHubは8月10日、技術ブログで、サーバーサイドのJavaコードからAIエージェントを操作する「GitHub Copilot SDK for Java」の使い方を公開しました。同SDKは特定のフレームワークに依存しない初のJava向けAI連携手段と位置づけられ、Langchain4jやSpring AIといった既存ライブラリを介さずに、エージェントセッションの生成やツール登録を行えます。
名称にCopilotとありますが、用途はGitHubのサービスに限りません。provider/ProviderConfigに独自のbaseUrlとAPIキーを渡すBYOK(自前の鍵を持ち込む方式)に対応しており、OpenAIやAzure、Anthropic、OpenAI互換エンドポイントを直接利用できます。この場合、Copilotの契約は不要とされています。
APIはJava開発者になじむ形で設計されています。メソッドに@CopilotTool注釈を付けるだけでモデルが呼び出せるツールになり、JSONスキーマの生成や引数の解析、呼び出しの振り分けはSDKが担います。session.sendAndWaitの1行で、モデルの推論とツール呼び出しを繰り返すエージェントループが完結し、session.onで一つひとつのツール実行やメッセージをイベントとして受け取れます。
エンタープライズ用途で効いてくるのが、仮想スレッドとの組み合わせです。Jakarta ConcurrencyのManagedThreadFactoryから生成したコンテナ管理の仮想スレッドをExecutorとして渡すと、ツール実行時のコールバックにもCDIやJNDI、トランザクションの文脈が引き継がれます。待機中にプラットフォームスレッドを消費しないため、同時接続の多いサーバーでも負荷を抑えられます。
記事にはJakarta EE 11で組んだ不動産リード管理のサンプルアプリが付属します。Open Liberty 26.0.0.5とPrimeFaces、インメモリのH2データベースで構成され、問い合わせごとに独立したエージェントを仮想スレッド上で起動し、WebSocketで進捗をブラウザへ配信する仕組みです。複数の問い合わせを同時に投入すれば、並行動作の様子をそのまま確認できます。
一方、本番投入では権限設計が課題になります。SessionConfigのToolSetでセッションごとに使えるツールを明示的に指定でき、ファイル操作やシェル実行を含む組み込みツールを無制限に開放しない運用が推奨されています。サンプルが採用する全承認(APPROVE_ALL)はあくまで開発用で、実運用では呼び出し可否を検証する権限ポリシーの実装が求められます。