技術

GitHub、フレームワークに依存しないAIエージェント開発向けCopilot SDK for Javaを発表

GitHubは、JavaアプリケーションがCopilotエージェントのセッションを作成し、ツールを登録し、プロンプトを送信して構造化された応答を受け取れるCopilot SDK for Javaライブラリを提供開始した。現在はプレビュー版で、Jakarta EEおよびSpring環境とBYOKオプションをサポートしている。

2026-08-10
1 分で読めます
1,914 閲覧数
certi.news Editorial Team
GitHub、フレームワークに依存しないAIエージェント開発向けCopilot SDK for Javaを発表

GitHubは、Copilot SDK for Javaを発表した。これは、サーバー上のJavaアプリケーションからプログラムでCopilotエージェントを操作できるクライアントライブラリであり、エージェントのセッション作成、ツールの登録、プロンプトの送信、構造化された応答の受信を可能にする。GitHubによると、このライブラリはJavaフレームワークに依存しないよう設計されており、BYOKオプションもサポートするため、単一のAIプロバイダーに限定されない。

このライブラリはエンタープライズアプリケーションのJava開発者を対象としており、Jakarta EEやSpringを含むサーバー環境で動作する。また、特定のフレームワークに結び付いた方式を強制するのではなく、CompletableFuture、アノテーション、ラムダ、仮想スレッドといったJava開発者に馴染みのあるAPIを採用している。

提供状況と要件

このライブラリは現在、Maven依存関係として1.0.7-preview.1で提供されている。利用には以下が必要となる。

  • JDK 17またはJDK 25。仮想スレッドやその他の最新機能を活用するため、JDK 25の使用が推奨される。
  • Maven 3.9以降。
  • 有効なCopilotサブスクリプションを持つGitHubアカウント。
  • バージョン1.0.71以降のCopilot CLIをローカルにインストールしていること。

GitHubの投稿では、Jakarta EE 11で構築された完全なサンプルアプリケーションを紹介しており、試用できるソースコードも提供している。同社はまた、開発者が自分で選択したJavaフレームワークやライブラリを使用して独自のエージェントを構築できることを強調している。

不動産リクエスト管理のサンプルアプリケーション

この例では、不動産分野の見込み顧客を管理するアプリケーションを使用する。顧客が「ロンドンで、3ベッドルームの家を80万ポンド未満で探したい」といったリクエストを送信すると、システムは仮想スレッド上に分離されたCopilotエージェントを作成し、定義されたワークフロー内でリクエストを処理する。

アプリケーションはJakarta WebSocketを使用して、サーバーからブラウザーへリアルタイムで状態を更新し、エージェントがツールを呼び出す間の進行状況を確認できるようにする。また、複数のリクエストを同時に送信することもでき、各リクエストは独自のCopilotセッション内で独立して処理される。

ツールの定義と管理

このライブラリは、モデルが呼び出せるツールを定義するための@CopilotToolインターフェースを提供する。開発者は通常のJavaメソッドを定義し、ライブラリがJSONスキーマの作成、引数の解析、呼び出しのディスパッチを担う。各引数を説明するには@CopilotToolParamを使用でき、モデルが必要な値を把握できるようにする。

このアノテーションインターフェースは現在試験的なものである。そのため、コンパイラーオプション-Acopilot.experimental.allowed=trueで実験的なSDKインターフェースを有効にし、Maven設定でライブラリをアノテーションプロセッサーのパスに登録する必要がある。プロセッサーはコンパイル時にツールのメタデータを生成する。

アノテーションに加えて、ToolDefinition.from(...)を使用したラムダ方式により、使用箇所で直接ツールを定義することもできる。これにより、専用メソッドなしでツールを作成できる。また、overridesBuiltInTool(true)オプションを使えば、組み込みツールをカスタム動作に置き換えられる。さらに、ツールをエージェントのロジックとは別のクラスに配置し、ToolDefinition.fromObjectで登録することも可能である。

メッセージとエージェントのワークフロー

SDKでは、SystemMessageMode.CUSTOMIZEを使用してシステムメッセージをカスタマイズできる。特定のセクションを置き換えながら、安全ガードレールを含む残りのメッセージを維持できる。また、デフォルトのシステムメッセージを置き換えずに内容を追加するためのAPPENDモードも提供する。

エージェントの完全なワークフローはsendAndWait(...)によって開始される。プロンプトを送信すると、モデルは推論し、登録されたツールを複数回呼び出した後、最終結果を返すことができる。ライブラリはタスクが完了するまでツールの結果をモデルに渡す。仮想スレッドにより、結果を待つ間も従来のスレッドを消費せずにget()で待機できる。また、session.on(...)によって、セッションから発生するイベントを処理できる。

ニュースの出典
GitHub Blog
原文を開く ↗
c
著者

certi.news Editorial Team

知っておくべきこと

GitHubはCopilot SDK for Javaライブラリをリリースしました。現在はプレビュー版として提供されており、サーバー上のJavaアプリケーションによるCopilotエージェントの作成、セッションやツールのプログラムによる管理を支援します。Maven依存関係として利用でき、Jakarta EE、Spring、BYOKオプションに対応しています。ただし、Copilotサブスクリプション付きのGitHubアカウントとCopilot CLIのインストールが必要です。

  • 提供されているバージョンは1.0.7-preview.1で、JDK 17またはJDK 25、Maven 3.9以降が必要です。
  • SDKでは、エージェント用セッションの作成、プロンプトの送信、構造化されたレスポンスの受信、モデルが呼び出せるツールの登録を行えます。
  • このライブラリはJavaフレームワークから独立するよう設計されており、Jakarta EEおよびSpring環境に対応しています。
  • @CopilotToolなどのアノテーション、またはToolDefinition.fromとToolDefinition.fromObjectを使用してツールを定義できます。
  • 実験的なSDKインターフェースを使用するには、コンパイラー設定で- Acopilot.experimental.allowed=trueオプションを有効にする必要があります。
  • GitHubのサンプルでは、分離されたエージェント、Java仮想スレッド、Jakarta WebSocketによるリアルタイムの状態更新を使用して、不動産リクエストを管理するアプリケーションを紹介しています。

よくある質問

GitHub Copilot SDK for Javaとは何ですか?

サーバー上のJavaアプリケーションからCopilotエージェントをプログラムで操作できるクライアントライブラリです。セッションの作成、ツールの登録、プロンプトの送信、構造化されたレスポンスの受信などを行えます。

ライブラリを使用するための基本要件は何ですか?

JDK 17またはJDK 25、Maven 3.9以降、Copilotが有効なサブスクリプション付きのGitHubアカウント、そしてバージョン1.0.71以降のCopilot CLIのインストールが必要です。

特定のJavaフレームワークに対応していますか?

サーバー環境で動作し、Jakarta EEやSpringに対応しています。また、特定のJavaフレームワークに依存しない設計です。

特定のベンダーに依存しないAIプロバイダーを利用できますか?

BYOKオプションに対応しており、GitHubはこれを特定のAIベンダーに依存しない利用を可能にするものと説明しています。

同じカテゴリー

おすすめ記事

すべてのニュースを見る