Java용 GitHub Copilot SDK 활용하기
핵심 내용
GitHub Copilot SDK가 Java에서 프레임워크와 AI 공급자에 구애받지 않는 에이전트 개발을 지원한다.
자세히 보기
GitHub Copilot SDK for Java는 Java 서버 애플리케이션에서 Copilot 에이전트 세션을 생성하고, 도구를 등록하며, 프롬프트와 구조화된 응답을 프로그래밍 방식으로 처리하는 클라이언트 라이브러리다. Jakarta EE와 Spring을 포함한 서버 환경에서 사용할 수 있으며 CompletableFuture, 어노테이션, 람다, virtual thread 등 Java 개발자에게 익숙한 기능을 제공한다.
SDK는 특정 Java 프레임워크에 종속되지 않으며, **BYOK(Bring Your Own Key)**를 통해 AI 공급자에도 종속되지 않는다. provider와 ProviderConfig에 자체 baseUrl과 apiKey 또는 bearer token을 전달하면 OpenAI, Azure, Anthropic 및 OpenAI 호환 엔드포인트를 직접 사용할 수 있고, 이 방식에는 Copilot 구독이 필요하지 않다.
Maven 의존성은 com.github:copilot-sdk-java:1.0.7-preview.1이며, JDK 17 또는 25와 Maven 3.9 이상이 필요하다. 샘플 애플리케이션을 실행하려면 Copilot CLI 1.0.71 이상도 설치해야 한다.
샘플은 Jakarta EE 11 기반의 부동산 리드 관리 에이전트 파이프라인이다. 고객이 런던의 3베드룸 주택과 예산을 입력하면, 서버가 virtual thread에서 독립적인 Copilot 에이전트 세션을 실행해 문의를 검증하고 매물을 검색한 뒤 보고서를 작성한다.
주요 구성은 다음과 같다.
- 런타임: 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건
Jakarta WebSocket은 에이전트가 도구를 호출하며 진행하는 상태를 브라우저에 실시간으로 전달한다. 여러 문의를 동시에 제출하면 각 요청이 별도의 Copilot 세션과 virtual thread에서 독립적으로 처리된다.
@CopilotTool 어노테이션은 일반 Java 메서드를 모델이 호출할 수 있는 도구로 등록하고, @CopilotToolParam은 매개변수 설명을 제공한다. SDK가 JSON Schema 생성, 인자 파싱, 디스패치를 처리하므로 개발자는 일반적인 Java 메서드만 작성하면 된다. 다만 어노테이션 기반 도구 API는 현재 실험적 기능이다.
이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.