CtrlK
BlogDocsLog inGet started
Tessl Logo

jbaruch/koog

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

71

Quality

89%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Low

Low-risk findings worth noting

Overview
Quality
Evals
Security
Files

README.md

jbaruch/koog

tessl

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

Koog reached 1.2.0 on 2026-08-28. The published documentation at docs.koog.ai lags the source in several places (stale Maven coordinates, MCP pages 404, no mention of the planner module split or HTTP transport decoupling). This agentic context plugin codifies what the 1.2 source actually shows.

Install

tessl install jbaruch/koog

How this plugin 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-coordinatesTwo version lines — umbrella ai.koog:koog-agents:1.2.0, a wide satellite set only at 1.2.0-beta; bare coordinates for Gradle, -jvm suffix for Maven only; pull planner / MCP / Spring / Ktor / Google 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.2 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
use-cli-agentsDrive Claude Code / Codex via CliAIAgent on subscription auth, composed with .asNode()
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
use-agent-skillsRuntime-discovered capability bundles — discoverSkills / generateSkillsPrompt over SKILL.md files

Migration

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

Scope

This plugin teaches Kotlin consumption of Koog 1.2 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 plugin and docs.koog.ai disagree, this plugin follows the Koog 1.2.0 source and the v1.2.0 release notes.

README.md

tile.json