技术

GitHub 推出 Java 版 Copilot SDK,开发框架无关的自主 AI 代理

GitHub 推出了 Copilot SDK for Java 库,使服务器端 Java 应用能够创建 Copilot 代理会话、注册工具、发送提示并接收结构化响应。该库目前为预览版,支持 Jakarta EE 和 Spring 环境以及 BYOK 选项。

2026-08-10
2 分钟阅读
17 浏览量
فريق تحرير certi.news
GitHub 推出 Java 版 Copilot SDK,开发框架无关的自主 AI 代理

GitHub 宣布推出 Copilot SDK for Java,这是一种客户端库,使服务器端 Java 应用能够通过创建代理会话、注册工具、发送提示并接收结构化响应,以编程方式驱动 Copilot 代理。GitHub 表示,该库旨在独立于 Java 框架,同时支持 BYOK 选项,因此不会绑定到单一人工智能供应商。

该库面向企业应用中的 Java 开发者,可在包括 Jakarta EE 和 Spring 在内的服务器环境中运行。它采用 Java 开发者熟悉的接口,例如 CompletableFuture、注解、lambda 和虚拟线程,而不是强制采用与特定框架绑定的方法。

可用性和要求

该库目前以 Maven 依赖的形式提供,版本为 1.0.7-preview.1。使用它需要满足以下条件:

  • JDK 17 或 JDK 25,建议使用 JDK 25,以利用虚拟线程和其他现代功能。
  • Maven 3.9 或更高版本。
  • 拥有有效 Copilot 订阅的 GitHub 账户。
  • 本地安装 Copilot CLI 1.0.71 或更高版本。

GitHub 的文章展示了一个基于 Jakarta EE 11 构建的完整示例应用,并提供了源代码供体验。该公司还确认,开发者可以使用自己选择的 Java 框架和库构建专属代理。

房地产请求管理示例应用

该示例使用了一个房地产行业潜在客户管理应用。当客户提交请求时,例如寻找伦敦一套价格低于 80 万英镑的三居室住宅,系统会在虚拟线程上为 Copilot 创建一个隔离的代理,在既定工作流中处理该请求。

该应用使用 Jakarta WebSocket 将状态更新从服务器实时发送到浏览器,从而能够在代理调用工具时跟踪其进度。它还可以同时发送多个请求,使每个请求都能在其专属的 Copilot 会话中独立处理。

工具的定义和管理

该库提供 @CopilotTool 接口,用于定义模型可以调用的工具。开发者定义普通的 Java 方法,而库负责生成 JSON 架构、解析参数并分发调用。可以使用 @CopilotToolParam 描述每个参数,以便模型了解所需的值。

该注解接口目前仍处于实验阶段,因此必须通过编译器选项 -Acopilot.experimental.allowed=true 启用实验性 SDK 接口,同时还要在 Maven 配置中将该库注册到注解处理器路径中。处理过程会在编译期间生成工具元数据。

除了注解之外,还可以使用 ToolDefinition.from(...),通过 lambda 方式直接在使用位置定义工具。这样无需专门的方法即可创建工具;此外,overridesBuiltInTool(true) 选项还提供了用自定义行为替换内置工具的方式。也可以将工具放在与代理逻辑分离的类中,然后通过 ToolDefinition.fromObject 进行注册。

消息和代理工作流

SDK 支持通过 SystemMessageMode.CUSTOMIZE 自定义系统消息,可以替换特定部分并保留消息的其余内容,包括安全防护措施。它还提供 APPEND 模式,用于向默认系统消息添加内容而不替换它。

代理的完整工作流通过 sendAndWait(...) 启动。发送提示后,模型可以进行推理并多次调用已注册的工具,然后返回最终结果;库则负责将工具结果传递回模型,直到任务完成。虚拟线程允许通过 get() 进行等待,而无需在等待结果期间占用传统线程。session.on(...) 还支持处理会话发出的事件。

新闻来源
ف
作者

فريق تحرير certi.news

同一分类

你可能还喜欢

查看所有新闻