Koog: Framework Kotlin Cho AI Agent
Koog là framework Kotlin của JetBrains để xây AI agent chạy trên JVM, trên trình duyệt qua WasmJS, hoặc trên iOS qua Kotlin Multiplatform, coi độ tin cậy của agent là mục tiêu thiết kế cốt lõi với retry có sẵn và lưu trạng thái (state persistence). Hãy chọn Koog nếu team bạn đã viết dịch vụ bằng Kotlin hoặc Java và muốn code agent type-check như phần còn lại codebase; bỏ qua nếu stack của bạn là Python.
Giới Thiệu Koog: Framework AI Agent Cho JVM
Koog là framework của JetBrains chạy trên JVM, cho phép bạn viết AI agent trực tiếp bằng Kotlin hoặc Java, không cần qua một lớp Python riêng. Nó bao gồm các agent gọi công cụ (tool) bên ngoài, chạy workflow nhiều bước, và trò chuyện với người dùng, và được phát hành dưới dạng artifact trên Maven Central thuộc nhóm ai.koog thay vì một dịch vụ được host sẵn, nên bạn thêm nó vào build Gradle hoặc Maven như bất kỳ dependency JVM nào khác.
Năng Lực Cốt Lõi Để Xây Dựng AI Agent
- ✓Retry có sẵn và tính năng lưu trạng thái agent (agent-state persistence) cho phép một lần chạy tiếp tục từ điểm checkpoint thay vì phải khởi động lại sau khi gặp lỗi.
- ✓Nén lịch sử hội thoại tự động giúp giảm dung lượng context, nhờ đó các phiên agent chạy dài không làm cạn ngân sách token của LLM.
- ✓Một prompt executor không phụ thuộc nhà cung cấp có thể chuyển đổi LLM đang dùng ngay giữa cuộc hội thoại mà không mất lịch sử chat hiện có.
- ✓Tích hợp với Spring Boot và Ktor cho phép bạn gắn Koog vào một dịch vụ JVM có sẵn thay vì phải dựng một process agent riêng.
- ✓Observability dựa trên OpenTelemetry gửi trace thực thi tới các nhà cung cấp như W&B Weave và Langfuse.
- ✓Hỗ trợ Model Context Protocol (MCP) cho phép agent gọi các công cụ MCP, còn hỗ trợ Agent Client Protocol (ACP) cho phép agent giao tiếp với các ứng dụng client theo chuẩn.
- ✓Một API workflow dạng đồ thị (graph) cùng hệ thống feature theo module để lắp ráp hành vi agent từ những thành phần nhỏ, có thể hoán đổi.
- ✓Truy xuất kiến thức dựa trên vector embedding và RAG mang theo ngữ cảnh qua nhiều cuộc hội thoại khác nhau.
Koog Agent Phát Huy Tốt Nhất Ở Đâu
- •Thêm agent vào một dịch vụ Spring Boot hoặc Ktor có sẵn mà không phải đưa thêm một runtime ngôn ngữ thứ hai vào hệ thống.
- •Xây dựng agent bên trong ứng dụng Android hoặc desktop JVM khi phần còn lại của codebase đã là Kotlin.
- •Các workflow cần sống sót qua một lần gọi LLM thất bại giữa chừng, vì tính năng lưu trạng thái agent giúp tiếp tục chạy thay vì bắt đầu lại từ đầu.
- •Các team muốn đổi nhà cung cấp LLM, chẳng hạn từ OpenAI sang Anthropic hoặc một model Ollama chạy local, mà không phải viết lại agent hay mất lịch sử hội thoại.
Bắt Đầu Với Koog
Koog được cài như một dependency Gradle hoặc Maven; không có CLI hay service riêng nào cần chạy. Với Gradle Kotlin DSL, thêm implementation("ai.koog:koog-agents:1.1.1") và implementation("ai.koog:koog-agents-additions:1.1.1-beta") vào build.gradle.kts, với toạ độ tương ứng cho build.gradle theo Groovy. Người dùng Maven thêm artifact ai.koog:koog-agents-jvm và ai.koog:koog-agents-additions-jvm ở phiên bản 1.1.1 vào pom.xml. Trong mọi trường hợp, mavenCentral() cần có trong danh sách repository. README yêu cầu JDK 17 trở lên và Kotlin 2.3.10 trở lên, được build dựa trên kotlinx-coroutines phiên bản 1.10.2, kotlinx-serialization phiên bản 1.10.0, và kotlinx-datetime phiên bản 0.7.1.
AI Agent Đầu Tiên Của Bạn Với Koog
Đoạn quickstart trong README bọc một LLM client (OpenAILLMClient trong ví dụ, có thể thay bằng client của Anthropic, Google, hoặc OpenRouter) bên trong một MultiLLMPromptExecutor, sau đó truyền executor đó, một system prompt dạng string, và một model constant như OpenAIModels.Chat.GPT4o vào constructor của AIAgent. Nó đọc API key từ một biến môi trường, và gọi agent.run() với một message của người dùng sẽ trả về kết quả có thể in ra trực tiếp. Toàn bộ ví dụ chạy trong một khối coroutine runBlocking duy nhất.
Ưu Điểm Khi Dùng Koog
- ✓Thiết kế API kiểu Kotlin cho code agent hưởng cùng khả năng kiểm tra kiểu (type-check) và công cụ IDE như phần còn lại của một dự án JVM, thay vì phải gắn thêm một SDK Python.
- ✓Retry có sẵn và tính năng lưu trạng thái xử lý trực tiếp việc khôi phục sau lỗi thay vì để người dùng tự viết lại từ đầu.
- ✓Đổi nhà cung cấp LLM mà không mất lịch sử chat giúp giảm sự phụ thuộc (lock-in) vào SDK của một nhà cung cấp duy nhất.
- ✓Tracing dựa trên OpenTelemetry gắn thẳng vào các hệ thống observability mà team có thể đã dùng sẵn, thay vì yêu cầu một dashboard riêng chỉ cho Koog.
- ✓Giấy phép Apache-2.0 không giới hạn việc sử dụng cho mục đích thương mại.
Hạn Chế Và Điều Cần Cân Nhắc
- △Danh sách feature trong README liệt kê Android như một target của Kotlin Multiplatform, nhưng phần 'Supported targets' riêng chỉ nêu JVM, JS, WasmJS, và iOS, nên việc hỗ trợ Android chưa được xác nhận nhất quán.
- △Yêu cầu JDK 17 trở lên và Kotlin 2.3.10 trở lên, nên các dự án còn dùng toolchain JVM hoặc Kotlin cũ hơn sẽ không dùng được.
- △README không có danh sách khách hàng, số liệu sử dụng, hay case study thực tế nào, nên mô tả 'enterprise-ready' mà JetBrains đưa ra chưa có ví dụ tài liệu hoá đi kèm.
- △Hệ sinh thái tutorial và tích hợp bên thứ ba xung quanh Koog còn nhỏ hơn so với các framework agent đã tồn tại lâu hơn.
- △Đoạn quickstart trong README chỉ minh hoạ một lần gọi agent.run() đơn giản; workflow đồ thị nhiều bước và cách gắn custom tool chưa được trình bày trong chính README.
Các Lựa Chọn Thay Thế Koog Cho Phát Triển AI Agent
Câu Hỏi Thường Gặp Về Koog
Koog được xây dựng cho Kotlin và Java trên JVM; README mô tả nó là framework để tạo AI agent bằng API Kotlin và Java theo phong cách idiomatic, không phải một thư viện Python.
README liệt kê Google, OpenAI, Anthropic, DeepSeek, OpenRouter, Ollama, và Bedrock là các nhà cung cấp LLM được hỗ trợ, và Koog có thể chuyển đổi giữa các nhà cung cấp này ngay giữa cuộc hội thoại mà không mất lịch sử chat.
JetBrains mô tả Koog là enterprise-ready, dựa trên các tích hợp Spring Boot và Ktor, tracing OpenTelemetry, và retry có sẵn, dù README không liệt kê khách hàng doanh nghiệp cụ thể nào.
Koog được phát hành theo giấy phép Apache 2.0, khớp với license Apache-2.0 được liệt kê trên repository GitHub của nó.
Koog dùng Kotlin Multiplatform; phần 'Supported targets' trong README liệt kê JVM, JS, WasmJS, và iOS, trong khi danh sách feature riêng cũng nhắc tới Android như một target.
Koog dùng retry tự động để khôi phục sau lỗi, và có thể checkpoint một agent giữa lúc chạy rồi tiếp tục thực thi từ checkpoint đó sau này, theo tính năng persistence được mô tả trong README.
Vấn đề Koog giải quyết
Xây dựng một AI agent trên JVM thường có nghĩa là viết nó bằng Python rồi nối kết quả trở lại một dịch vụ Kotlin hoặc Java, hoặc tự viết tay logic retry, checkpoint trạng thái, và code chuyển đổi nhà cung cấp xung quanh một LLM SDK thô. README của Koog đóng khung lý do tồn tại của dự án quanh khoảng trống đó: một framework hướng Kotlin và Java để xử lý lỗi agent, khôi phục trạng thái, và truy cập nhiều nhà cung cấp LLM ngay trong cùng process JVM mà một ứng dụng Spring Boot hoặc Ktor đã chạy, thay vì thêm một service Python riêng vào hệ thống.
Ai nên dùng — và ai nên bỏ qua
Hãy thử Koog nếu bạn là team Kotlin hoặc Java đang thêm hành vi agent vào một codebase Spring Boot, Ktor, hoặc Android có sẵn, và muốn có retry, lưu trạng thái, và khả năng đổi nhà cung cấp LLM mà không rời khỏi JVM. Bỏ qua nếu stack của team bạn là Python, hoặc nếu bạn muốn một cách lắp ráp agent kiểu no-code, được host sẵn — Koog là một library bạn compile vào dự án, không phải một giao diện kéo-thả.
Repo liên quan
koog có đáng để bạn bỏ thời gian?
ChatGPT, Claude và Perplexity đều đọc được trang này. Hỏi thử xem họ nghĩ gì về koog.
