JetBrains/koog
Koog is a JVM (Java and Kotlin) framework for building predictable, fault-tolerant and enterprise-ready AI agents across all platforms – from backend services to Android and iOS, JVM, and even in-browser environments. Koog is based on our AI products expertise and provides proven solutions for complex LLM and AI problems
Koog – AI 에이전트를 구축하기 위한 Kotlin 우선 프레임워크
무엇인가요 – Koog는 JetBrains에서 인큐베이션 중인 오픈소스 라이브러리로, Kotlin(또는 Java)으로 AI 에이전트를 완전히 작성, 실행, 관리할 수 있게 해줍니다. 타입 안전한 DSL과 런타임 서비스(지속성, 재시도, 가시성, 기록 압축, RAG, 스트리밍 등)를 제공하여 개발자는 에이전트 로직에 집중할 수 있도록 하며, 프레임워크가 하위 처리를 담당합니다.
왜 중요한가요 – 기존의 LLM 에이전트 툴킷 대부분은 Python 중심입니다. Koog는 Kotlin/Java 생태계에도 동일한 기능을 제공하여 JVM 기반 백엔드, Android 앱, Kotlin-Multiplatform 프로젝트, 심지어 WebAssembly에도 에이전트를 쉽게 통합할 수 있게 합니다. 이는 이미 Kotlin/Java에 의존하는 기업이 새로운 언어 스택을 도입하지 않고도 LLM 기반 기능을 추가할 수 있도록 합니다.
핵심 기능 (README에 기재된 내용)
| 카테고리 | 기능 |
|---|---|
| 멀티플랫폼 | Kotlin Multiplatform을 통해 JVM, JavaScript, WasmJS, Android, iOS에서 한 번 작성하고 여러 플랫폼에서 실행 가능. |
| 신뢰성 | 장애에 강한 에이전트를 위한 내장 재시도, 상태 지속성, 체크포인트 기반 복원. |
| 토큰 효율성 | 긴 대화를 압축하면서도 컨텍스트를 유지하는 기록 압축 알고리즘. |
| 기업 통합 | Spring Boot, Ktor, 기타 JVM 프레임워크용 사전 구축된 어댑터 제공. |
| 가시성 | OpenTelemetry 내보내기 기능; W&B Weave, Langfuse 등과의 기본 지원. |
| LLM 유연성 | 실시간 모델 전환 가능; OpenAI, Anthropic, Google, DeepSeek, OpenRouter, Ollama, Bedrock 지원. |
| 표준 프로토콜 | 상호 운용성을 위한 Model Context Protocol (MCP) 및 Agent Client Protocol (ACP) 구현. |
| RAG 및 메모리 | 벡터 기반 임베딩, 지식 검색, 장기 메모리 저장. |
| 스트리밍 및 병렬성 | 실시간 응답 스트리밍 및 동시 도구 호출. |
| 모듈식 아키텍처 | 기능을 조합 가능; 필요에 따라 필요한 기능만 활성화 가능. |
| 그래프 워크플로우 | 복잡한 의사결정 트리와 도구 호출 시퀀스를 선언적으로 기술하는 DSL. |
| 사용자 정의 도구 | 외부 API나 서비스를 "도구"로 노출하여 에이전트가 호출할 수 있도록 쉽게 제공. |
| 트레이싱 | 디버깅을 위한 상세하고 구성 가능한 실행 추적. |
빠른 시작 예제 (README에서)
fun main() = runBlocking {
val apiKey = System.getenv("OPENAI_API_KEY")
val agent = AIAgent(
promptExecutor = MultiLLMPromptExecutor(OpenAILLMClient(apiKey)),
systemPrompt = "You are a helpful assistant. Answer user questions concisely.",
llmModel = OpenAIModels.Chat.GPT4o
)
val result = agent.run("Hello! How can you help me?")
println(result)
}
이 스니펫은 일반적인 흐름을 보여줍니다: 구체적인 LLM 클라이언트에 바인딩된 promptExecutor로 AIAgent를 생성하고, 시스템 프롬프트를 제공한 후, 사용자 메시지로 run을 호출합니다.
Koog를 프로젝트에 추가하는 방법
Maven Central에서 아티팩트를 추가하세요:
// Gradle Kotlin DSL
dependencies {
implementation("ai.koog:koog-agents:1.3.0")
implementation("ai.koog:koog-agents-additions:1.3.0-beta")
}
또는 동등한 Groovy/Maven 좌표 (README 참조). 라이브러리는 JDK 17+ 및 Kotlin 2.3.10+를 필요로 합니다.
일반적인 사용 사례
| 시나리오 | Koog가 어떻게 도움이 되는가 |
|---|---|
| 고객 지원 챗봇 | 지속적인 대화 상태, 기록 압축, Spring Boot 백엔드와의 간편한 통합. |
| 기업용 RAG 어시스턴트 | 벡터 기반 지식 저장소, MCP 호환 컨텍스트 전달, LLM 제공업체 전환 시 기록 유지 가능. |
| 모바일 AI 어시스턴트 | Kotlin-Multiplatform으로 Android와 iOS에서 동일한 에이전트 코드 실행 가능. 웹용으로는 선택적 WasmJS 백업 제공. |
| 도구 기반 자동화 | 내부 서비스를 호출하는 사용자 정의 도구 정의; Koog의 그래프 워크플로우가 도구 선택 및 실행을 오케스트레이션. |
| 가시성 중심 배포 | OpenTelemetry + 내장 내보내기 기능을 통해 기존 모니터링 스택에 메트릭/트레이스 전달. |
문서 및 커뮤니티
- 문서 – https://docs.koog.ai/
- API 참조 – https://api.koog.ai/
- Slack 채널 – 문서에서 링크되어 있으며 실시간 도움을 받을 수 있습니다.
- 이슈 트래커 – YouTrack 프로젝트
KG(https://youtrack.jetbrains.com/issues/KG).
라이선스
Apache 2.0 – 상용 및 비상용 모두 자유롭게 사용 가능하며, 일반적인 특허 제공 포함.
TL;DR
Koog는 생산 환경용, Kotlin 네이티브 도구 모음으로, LLM 기반 에이전트를 구축할 수 있습니다. 멀티플랫폼 배포, 견고한 신뢰성 기능, 원활한 LLM 전환, RAG 지원, 깊이 있는 가시성 등을 제공하며, 기존 JVM/Kotlin 코드베이스에 자연스럽게 통합되는 타입 안전한 DSL로 제공됩니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트