CtrlK
BlogDocsLog inGet started
Tessl Logo

jbaruch/koog

Koog 1.0 idioms, gotchas, and scaffolding skills for Kotlin agents on the JVM

87

1.85x
Quality

88%

Does it follow best practices?

Impact

87%

1.85x

Average score across 45 eval scenarios

SecuritybySnyk

Advisory

Suggest reviewing before use

Overview
Quality
Evals
Security
Files

README.md

jbaruch/koog

tessl

Koog 1.0 idioms, gotchas, and skills for Kotlin agents on the JVM.

Koog reached 1.0 on 2026-05-21. The published documentation at docs.koog.ai lags the 1.0 source in several places (Maven coordinates still listed as 0.7.1, MCP pages 404, no mention of the planner module split or HTTP transport decoupling). This tile codifies what the 1.0 source actually shows.

Install

tessl install jbaruch/koog

How this tile is shaped

Two always-on rules carry the gotchas every Koog project hits — module coordinates and agent construction. Everything else is an on-demand skill — load only when you reach for that surface.

Rules

RuleConcept
module-coordinatesPin against ai.koog:*:1.0+ (with 1.0.0-beta + -jvm suffix for the MCP and standalone-ext satellites); pull planner / MCP / Spring / Ktor modules explicitly; JDK 17 + Kotlin 2.3.10 minimum
agent-constructionTop-level AIAgent(...) factory; installFeatures trailing lambda; singleRunStrategy() default; AgentMemory removed

Skills

Foundations

SkillWhat it does
scaffold-agentBootstrap a new Koog 1.0 Kotlin project from scratch
add-toolAdd a tool — annotated @Tool / typed Tool<TArgs,TResult> / sub-agent-as-tool
define-promptAuthor prompts beyond systemPrompt = "..." — DSL, few-shot, augmenters
use-functional-agentUse FunctionalAIAgent — single suspending block, no graph, no planner

Orchestration

SkillWhat it does
author-strategyCustom graph strategy with subgraphs and verify/fix loops
domain-model-subtask-pipelineIntegrated pattern — tools sliced by access, typed @LLMDescription handoff classes, subgraphWithTask<In, Out> chained by compile-time types
use-plannerLLM-based planner or GOAP when topology depends on runtime context
model-planner-subtasksPlanner's tree of subtasks — PlannerNode composition, parallel vs sequential, retries
use-llm-node-variantsStreaming, multiple-choice, moderation, force-one-tool nodes
add-structured-outputTyped JSON output via responseProcessor or nodeLLMRequestStructured

State and durability

SkillWhat it does
manage-stateAIAgentStorage, history compression, LongTermMemory (replaces removed AgentMemory)
add-persistenceContinuous checkpointing + runFromCheckpoint for crash resilience
snapshot-and-restoreCaller-triggered save points for explicit fork/replay
persist-chat-historyChat-history backends (JDBC, AWS, SQL-typed) — resume conversations by session

Integrations

SkillWhat it does
wire-mcp-serverConnect to an MCP server — Streamable HTTP / SSE / stdio
wire-spring-bootSpring Boot autoconfig — ai.koog.<provider>.* keys + MultiLLMAutoConfiguration
wire-ktor-serverKtor plugin — agent over HTTP, MCP-block config
wire-a2aAgent-to-Agent protocol — serve or consume
wire-acp-serverAgent Client Protocol — fine-grained client control with cancellation
query-sql-from-agentSQL-querying feature with read-only mode, schema scoping, row caps

Quality and cost

SkillWhat it does
add-observabilityOpenTelemetry feature — Langfuse / OTLP / Datadog / Weave backends
handle-agent-eventsPer-step event handlers for human-readable trace surfaces
trace-agent-internalsDeep diagnostic trace — node entries, edge predicate evaluations, planner decisions
enable-prompt-cachingAnthropic prompt caching — automatic + explicit cacheControl breakpoints
cache-llm-callsIn-process LLM-response cache (in-memory, file, Redis) — distinct from provider-side caching
add-token-budgetingHard run budget + soft history compression on overrun
test-koog-agentsDeterministic testing — scripted executor, fake clock, event-handler recorder

Advanced

SkillWhat it does
add-ragEmbedder + vector store + retrieval as tool or augmenter
use-attachmentsMultimodal — images, files, audio in user turns

Migration

SkillWhat it does
migrate-from-0-xBump a 0.x codebase to 1.0 — 14-step checklist covering every breaking change

Scope

This tile teaches Kotlin consumption of Koog 1.0 on the JVM. Java-interop surface (AIAgentService, *Blocking variants from #2005) is deferred to a future jbaruch/koog-java. Other Kotlin targets (Kotlin/JS, Kotlin/Native, Compose Multiplatform) are not covered — the rules and skills assume kotlin("jvm"), JDK 17, and JVM-only features (JVM shutdown hooks for OpenTelemetry, JDBC for persistence backends).

Source of authority

Where this tile and docs.koog.ai disagree, this tile follows the Koog 1.0.0 source and the v1.0.0 release notes.

README.md

tile.json