
摘要
- GitHub发布了面向Java开发者的GitHub Copilot SDK,以Maven依赖(1.0.7-preview.1)形式分发
- 支持BYOK(使用自有API密钥)方式,可与OpenAI、Azure、Anthropic等任意模型提供商对接
- 基于Jakarta EE 11和虚拟线程构建的房地产线索管理代理示例应用也一并公开
用Java写的代码即将成为AI代理
当房地产咨询应用收到"想在伦敦找一套8亿韩元以下的三居室"的询问时,服务器会启动一个虚拟线程,生成一个独立的Copilot代理。该代理查询房源数据库、筛选符合条件的房子并生成回复的整个过程,只需几行Java代码即可完成。这正是GitHub于8月10日发布的GitHub Copilot SDK for Java的实际运作方式。
摆脱框架依赖的SDK
此前,企业级Java开发者若想在应用中集成AI,只有两条路可走。使用Langchain4j——一个在Java领域对AI模型提供商进行抽象封装的库——虽然不会被特定AI厂商绑定,但会依赖Langchain4j本身。若使用Spring AI,则必须完全遵循Spring框架的设计方式。
GitHub将此次发布的SDK称为"真正意义上与框架无关"的工具。同时它还引入了BYOK(Bring Your Own Key,使用自有API密钥)方式,使开发者能够自由连接OpenAI、Azure、Anthropic乃至任何兼容OpenAI的接口端点。其特点在于,开发者只需提供自己的baseUrl和API密钥,即可使用该SDK,无需订阅GitHub Copilot。
沿用Java开发者熟悉的语法
该SDK充分利用了CompletableFuture、注解、Lambda表达式、虚拟线程等Java开发者早已熟悉的工具。虚拟线程是自Java 21起正式引入的轻量级线程模型,能够以较少的系统资源处理数千个并发请求。核心API是@CopilotTool注解。对于写过REST API中@GET端点的开发者来说,可以用同样熟悉的方式来定义供AI调用的工具。
Jakarta EE是Oracle移交后由Java社区延续维护的企业级标准平台。GitHub此次将示例应用建立在Jakarta EE 11之上,这一选择被解读为旨在强调该SDK不依赖特定框架的设计理念。
示例应用:房地产线索处理管道
公开的示例应用是一个接收客户咨询并自动匹配房源的房地产线索管理代理。如果同时提交多个咨询,可以看到每个咨询都在各自独立的虚拟线程上,由不同的Copilot会话并行处理。由于服务器通过Jakarta WebSocket将处理步骤实时推送到浏览器,用户可以在界面上实时观察代理调用工具、逐步推进处理流程的过程。
| 组成部分 | 使用技术 |
|---|---|
| 运行时 | Open Liberty 26.0.0.5 |
| 平台 | Jakarta EE 11(Faces 4.1、CDI 4.1、WebSocket 2.2、Data 1.0、Persistence 3.2) |
| UI | PrimeFaces 15.0.16 |
| AI编排 | Copilot SDK for Java 1.0.7-preview.1 |
| 数据库 | H2内存数据库(预置10条房源数据) |
运行要求与部署方式
该SDK以Maven依赖形式分发,运行需要JDK 17或25。GitHub推荐使用25版本,因为该版本可以完整支持虚拟线程等最新特性。前提条件包括Maven 3.9及以上版本、拥有有效Copilot订阅的GitHub账号,以及1.0.71及以上版本的Copilot CLI。
| 要求 | 数值 |
|---|---|
| SDK版本 | 1.0.7-preview.1 |
| JDK | 17或25(推荐25) |
| Maven | 3.9及以上 |
| Copilot CLI | 1.0.71及以上 |
这意味着什么
此前在Java领域集成AI,往往必须投身于Langchain4j或Spring AI这类特定生态系统。此次发布的SDK动摇了这一前提。其核心在于同时拓宽了框架和模型提供商两方面的选择空间。对于维护企业级Java代码库的公司而言,这意味着可以在保留现有CI/CD、构建工具和部署管道的前提下,直接叠加AI代理功能。由于目前仍处于预览版阶段,在API稳定之前,投入生产环境时仍需谨慎,但对熟悉Java生态的开发者来说,无需额外的学习曲线即可立即上手尝试,这一点无疑降低了入门门槛。





评论