GitHub Blog
85

Sản phẩm

GitHub ra mắt Copilot SDK cho Java: Tích hợp AI trực tiếp vào mã nguồn

(giờ Việt Nam)

Tóm tắt AI

GitHub vừa giới thiệu Copilot SDK cho Java, cho phép các nhà phát triển doanh nghiệp tích hợp trực tiếp khả năng của AI vào quy trình làm việc thông qua các chú thích (annotations) và luồng ảo (virtual threads) quen thuộc.

Bản dịch AI

Các lập trình viên Enterprise Java đã có một "siêu năng lực" mới—điều khiển GitHub Copilot từ mã nguồn Java thuần túy với các annotation, virtual thread và nhiều tính năng khác.

10 tháng 8, 2026

8 phút đọc

Các lập trình viên Java không còn phải phụ thuộc vào các phương pháp đặc thù của từng framework Java để điều khiển AI từ các ứng dụng doanh nghiệp của họ nữa.

Mặc dù đúng là Langchain4j đã trao quyền cho các lập trình viên bằng cách loại bỏ sự phụ thuộc vào các nhà cung cấp AI cụ thể, bạn vẫn phải phụ thuộc vào Langchain4j. Và với Spring AI, tất nhiên bạn vẫn phải phụ thuộc vào các lựa chọn thiết kế của Spring, nếu không muốn nói là phụ thuộc vào chính Spring.

Giờ đây, GitHub Copilot SDK for Java là cách đầu tiên thực sự không phụ thuộc vào framework để điều khiển AI từ Java. Và với hỗ trợ BYOK (Bring Your Own Key), GitHub Copilot SDK for Java cũng trung lập với các nhà cung cấp AI.

💡 Mặc dù có tên là GitHub Copilot SDK, bạn có thể sử dụng nó với bất kỳ nhà cung cấp mô hình trực tiếp nào, chẳng hạn như OpenAI, Azure, Anthropic hoặc các endpoint tương thích với OpenAI, bằng cách truyền một provider/ProviderConfig với baseUrl + apiKey (hoặc bearer token) của riêng bạn. Không yêu cầu đăng ký Copilot.

GitHub Copilot SDK for Java là một thư viện client cho phép mã nguồn Java phía server của bạn tạo các phiên làm việc với Copilot agent, đăng ký công cụ (tool), gửi prompt và nhận phản hồi có cấu trúc—tất cả đều thông qua lập trình. Nó hoạt động trong các môi trường server, bao gồm Jakarta EE và Spring. Nếu bạn đã xây dựng ứng dụng Java doanh nghiệp trong một thời gian, SDK này sẽ mang lại cảm giác rất quen thuộc: CompletableFuture, annotation, lambda, virtual thread, tất cả đều có ở đây.

Bài viết này hướng dẫn bạn cách sử dụng SDK, đi qua một ứng dụng mẫu Jakarta EE 11 hoàn chỉnh và đưa ra các bước cụ thể để bạn tự mình trải nghiệm. Tôi chọn Jakarta EE 11 cho bản demo của mình vì tôi là trưởng nhóm điều phối phát hành cho phiên bản đó. Tôi tin vào các tiêu chuẩn mở như là cách tốt nhất để trao quyền cho các lập trình viên. Để biết thêm về Jakarta EE 11, hãy xem bài viết này trên InfoQ.

Ứng dụng mẫu này là một bộ khung (harness) cho agent sử dụng Jakarta EE 11. Tuy nhiên, tất nhiên các lập trình viên có thể tự xây dựng bộ khung agent của riêng mình bằng cách sử dụng các framework và thư viện Java quen thuộc mà họ chọn.

Sao chép (clone) ứng dụng mẫu và tự mình trải nghiệm >

Nơi tải xuống

SDK có sẵn dưới dạng một Maven dependency:

Điều kiện tiên quyết:

Hướng dẫn qua ứng dụng mẫu

Cách tốt nhất để thấy SDK hoạt động là chạy ứng dụng mẫu này.

Lấy mã nguồn

Bản demo Java được xây dựng dựa trên:

Ứng dụng làm được gì

Ứng dụng này là một pipeline quản lý khách hàng tiềm năng trong lĩnh vực bất động sản. Một khách hàng gửi yêu cầu (“Tôi đang tìm một ngôi nhà 3 phòng ngủ ở London với giá dưới 800.000 bảng Anh”), và hệ thống sẽ khởi chạy một Copilot Agent biệt lập trên một virtual thread để xử lý yêu cầu đó thông qua một pipeline:

Application flow diagram showing the pipeline stages: Customer Enquiry flows to QUEUED, then VALIDATING, which branches to either SEARCHING (if genuine) or REJECTED (if spam/off-topic). SEARCHING lead

Kiến trúc sử dụng Jakarta WebSocket để đẩy các cập nhật trạng thái theo thời gian thực từ server đến trình duyệt, vì vậy bạn có thể theo dõi tiến trình của các agent qua từng giai đoạn khi mô hình gọi các công cụ:

Application architecture diagram showing Browser with Pipeline Dashboard connecting to Open Liberty server containing AppState, CopilotClient in EMPTY mode, virtual thread agents, and WebSocket push f

Gửi nhiều yêu cầu cùng lúc để thấy các agent chạy trên virtual thread hoạt động đồng thời. Mỗi agent xử lý độc lập với phiên làm việc Copilot riêng của nó.

Screenshot of the sample application showing the pipeline dashboard with multiple enquiries being processed concurrently.Screenshot of the sample application showing detailed agent event log and property search results.

Các tính năng của SDK trong thực tế

Hãy cùng điểm qua các tính năng chính của SDK khi chúng xuất hiện trong mã nguồn mẫu.

Định nghĩa công cụ với @CopilotTool

Đây là API tiêu điểm. Nếu bạn đã từng viết một endpoint @GET trong JAX-RS hoặc một bean @MessageDriven, bạn sẽ thấy điều này cực kỳ quen thuộc:

Annotation @CopilotTool khai báo phương thức như một công cụ mà mô hình có thể gọi. Annotation @CopilotToolParam mô tả từng tham số để mô hình biết cần truyền gì vào. SDK xử lý tất cả việc tạo JSON Schema, phân tích đối số và điều phối. Bạn chỉ cần viết một phương thức Java thông thường.

Hai điều kiện tiên quyết khi build cho @CopilotTool. API công cụ dựa trên annotation hiện là một tính năng thử nghiệm của SDK, vì vậy bạn cần cấu hình hai thứ trong bản build Maven của mình:

Cả hai đều được cấu hình trong maven-compiler-plugin:

Để đăng ký tất cả các công cụ được chú thích từ một đối tượng:

Công cụ dạng lambda nội dòng với ToolDefinition.from(...)

Khi bạn muốn một công cụ được định nghĩa tại vị trí gọi mà không cần một phương thức chuyên biệt, hãy sử dụng kiểu lambda:

Lưu ý.overridesBuiltInTool(true). Điều này cho SDK biết rằng công cụ report_intent của chúng ta cố tình thay thế một công cụ tích hợp sẵn có cùng tên. Điều này hữu ích khi bạn cần hành vi tùy chỉnh cho một công cụ mà mô hình đã biết trước.

Quét công cụ xuyên lớp (Cross-class tool scanning)

Các công cụ không nhất thiết phải nằm trong cùng một lớp với logic agent của bạn. Đây là searchProperties được định nghĩa trong một CDI bean riêng biệt:

Thông thường, bạn sẽ đăng ký chúng bằng ToolDefinition.fromObject(propertyDatabase). Trong ứng dụng mẫu, chúng ta sử dụng một lambda wrapper thay thế, vì các client proxy của CDI có thể làm mờ metadata của annotation.

Đọc bài gốc

Bài viết được AI dịch và tổng hợp tự động từ GitHub Blog. Liên kết bài gốc ở phía trên. Dữ liệu đồng bộ qua API công khai được ghi nguồn tại AI HOT (canonical) ↗. AIHOT.vn luôn dẫn nguồn đầy đủ — nếu bạn thấy điểm cần chỉnh sửa, hãy gửi ý kiến tại trang phản hồi.