Koog 1.2 idioms, gotchas, and scaffolding skills for Kotlin agents on the JVM
71
89%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
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.
tessl install jbaruch/koogTwo 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.
| Rule | Concept |
|---|---|
module-coordinates | Two 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-construction | Top-level AIAgent(...) factory; installFeatures trailing lambda; singleRunStrategy() default; AgentMemory removed |
| Skill | What it does |
|---|---|
scaffold-agent | Bootstrap a new Koog 1.2 Kotlin project from scratch |
add-tool | Add a tool — annotated @Tool / typed Tool<TArgs,TResult> / sub-agent-as-tool |
define-prompt | Author prompts beyond systemPrompt = "..." — DSL, few-shot, augmenters |
use-functional-agent | Use FunctionalAIAgent — single suspending block, no graph, no planner |
| Skill | What it does |
|---|---|
author-strategy | Custom graph strategy with subgraphs and verify/fix loops |
domain-model-subtask-pipeline | Integrated pattern — tools sliced by access, typed @LLMDescription handoff classes, subgraphWithTask<In, Out> chained by compile-time types |
use-planner | LLM-based planner or GOAP when topology depends on runtime context |
model-planner-subtasks | Planner's tree of subtasks — PlannerNode composition, parallel vs sequential, retries |
use-llm-node-variants | Streaming, multiple-choice, moderation, force-one-tool nodes |
add-structured-output | Typed JSON output via responseProcessor or nodeLLMRequestStructured |
| Skill | What it does |
|---|---|
manage-state | AIAgentStorage, history compression, LongTermMemory (replaces removed AgentMemory) |
add-persistence | Continuous checkpointing + runFromCheckpoint for crash resilience |
snapshot-and-restore | Caller-triggered save points for explicit fork/replay |
persist-chat-history | Chat-history backends (JDBC, AWS, SQL-typed) — resume conversations by session |
| Skill | What it does |
|---|---|
wire-mcp-server | Connect to an MCP server — Streamable HTTP / SSE / stdio |
wire-spring-boot | Spring Boot autoconfig — ai.koog.<provider>.* keys + MultiLLMAutoConfiguration |
wire-ktor-server | Ktor plugin — agent over HTTP, MCP-block config |
wire-a2a | Agent-to-Agent protocol — serve or consume |
wire-acp-server | Agent Client Protocol — fine-grained client control with cancellation |
use-cli-agents | Drive Claude Code / Codex via CliAIAgent on subscription auth, composed with .asNode() |
query-sql-from-agent | SQL-querying feature with read-only mode, schema scoping, row caps |
| Skill | What it does |
|---|---|
add-observability | OpenTelemetry feature — Langfuse / OTLP / Datadog / Weave backends |
handle-agent-events | Per-step event handlers for human-readable trace surfaces |
trace-agent-internals | Deep diagnostic trace — node entries, edge predicate evaluations, planner decisions |
enable-prompt-caching | Anthropic prompt caching — automatic + explicit cacheControl breakpoints |
cache-llm-calls | In-process LLM-response cache (in-memory, file, Redis) — distinct from provider-side caching |
add-token-budgeting | Hard run budget + soft history compression on overrun |
test-koog-agents | Deterministic testing — scripted executor, fake clock, event-handler recorder |
| Skill | What it does |
|---|---|
add-rag | Embedder + vector store + retrieval as tool or augmenter |
use-attachments | Multimodal — images, files, audio in user turns |
use-agent-skills | Runtime-discovered capability bundles — discoverSkills / generateSkillsPrompt over SKILL.md files |
| Skill | What it does |
|---|---|
migrate-from-0-x | Bump a 0.x codebase to 1.x — 14-step checklist covering every breaking change |
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).
Where this plugin and docs.koog.ai disagree, this plugin follows the Koog 1.2.0 source and the v1.2.0 release notes.