GitHub shipped `copilot-sdk-java` version 1.0.7-preview.1 on August 10, letting enterprise Java teams embed AI agent sessions directly into their server-side code without a dependency on VS Code, Spring, or Langchain4j. The SDK lands as a Maven artifact at `com.github:copilot-sdk-java:1.0.7-preview.1`, requires JDK 17 minimum (JDK 25 recommended for virtual threads), Maven 3.9+, and Copilot CLI 1.0.71 or later.
| Component | Minimum Version | Notes |
|---|---|---|
| JDK | 17 | JDK 25 recommended for virtual threads |
| Maven | 3.9+ | Required build tool |
| Copilot CLI | 1.0.71 | Must be installed and authenticated on every machine and CI runner |
| Maven artifact | com.github:copilot-sdk-java:1.0.7-preview.1 | Released 10 Aug 2025 |
The headline API is `@CopilotTool`, a method-level annotation that marks a Java method as callable by the model. Add `@CopilotToolParam` descriptors to each argument and the SDK's annotation processor generates JSON Schema and dispatch code at compile time, outputting `$$CopilotToolMeta` classes that wire the tool contract together. Two Maven compiler-plugin entries are required: pass `-Acopilot.experimental.allowed=true` as a compiler arg and register the SDK as an `annotationProcessorPath`. Miss either and the processor silently skips tool generation.
The runtime model uses `CompletableFuture`, lambdas, and virtual threads. Each agent session runs on its own virtual thread with an isolated Copilot session and no shared state. The reference demo is a real-estate lead-management pipeline on Open Liberty 26.0.0.5 and Jakarta EE 11 (Faces 4.1, CDI 4.1, WebSocket 2.2, Data 1.0, Persistence 3.2) with PrimeFaces 15.0.16 and an H2 in-memory database of 10 property listings. It pushes real-time updates to the browser via Jakarta WebSocket. Each enquiry runs its own virtual-thread agent independently.
For teams locked into a model provider contract, the BYOK path is the practical unlock: pass a `provider/ProviderConfig` with your own `baseUrl` and `apiKey` and the SDK routes directly to OpenAI, Azure, Anthropic, or any OpenAI-compatible endpoint. No Copilot subscription required. Enterprises standardized on Azure OpenAI or an on-prem Llama deployment can adopt the SDK without forcing a Copilot licence conversation.
| Provider | Required Config Fields | Copilot Subscription Needed? |
|---|---|---|
| OpenAI | baseUrl, apiKey | No |
| Azure OpenAI | baseUrl, apiKey | No |
| Anthropic | baseUrl, apiKey | No |
| Any OpenAI-compatible endpoint (e.g. on-prem Llama) | baseUrl, apiKey | No |
GitHub positions the SDK against Langchain4j and Spring AI, both of which abstract vendor lock-in but still impose framework-level dependencies. The Copilot SDK has no mandatory runtime framework coupling — it works across Jakarta EE, Spring, and any JVM server environment. Platform teams running mixed-framework codebases get a single SDK that needs no adapter layers.
| SDK / Library | Vendor Lock-in Mitigation | Framework-level Dependency | Works on Mixed-framework JVM Codebases |
|---|---|---|---|
| Copilot SDK for Java | BYOK provider config (baseUrl + apiKey) | None — no mandatory runtime framework coupling | Yes — Jakarta EE, Spring, any JVM server |
| Langchain4j | Abstraction layer | Yes — framework-level dependencies imposed | Limited |
| Spring AI | Abstraction layer | Yes — framework-level dependencies imposed | Spring only |
The annotation API is explicitly flagged experimental. JSON Schema generation and the `$$CopilotToolMeta` output format should be treated as unstable across preview versions. The CLI dependency is non-trivial in air-gapped or policy-restricted environments: every machine and CI runner needs Copilot CLI 1.0.71 installed and authenticated. The sample repo URL (`github.com/microsoft/Build26-BRK206-...`) signals a Microsoft Build 2026 conference demo origin — production hardening is likely still in progress.
The SDK is a runnable artifact today — `mvn clean package liberty:run` reaches the reference app in a single command. The BYOK + framework-agnostic combination is the architectural argument worth taking to a VP. Keep the experimental annotation API off your critical path until 1.0 ships stable.