CtrlK
BlogDocsLog inGet started
Tessl Logo
PluginPublic

jbaruch/koog

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

72

Quality

91%

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

jbaruch/koog

tessl

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

This plugin targets Koog 1.3.0, released 2026-09-24. Resolve API and module-coordinate questions against the tagged source and each artifact's Maven metadata.

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.3.0, a wide satellite set only at 1.3.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.3 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-persistenceAutomatic durable checkpoints + Persistence.runFromCheckpoint replay
snapshot-and-restoreManual Persistence save points for explicit fork/replay
persist-chat-historyChatMemory with JDBC, AgentCore, or SQL-backed providers — 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-agentTyped JDBC lookup tools with prepared queries, database grants, row caps and timeouts

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.3 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-specific exporter/metrics configuration and JDBC backends. OpenTelemetry shutdown follows agent close.

Source of authority

Where this plugin and docs.koog.ai disagree, this plugin follows the Koog 1.3.0 source and the v1.3.0 release notes.

Verification

With JDK 21 and Gradle 9.2.1, run gradle -p tests/examples check. The check compiles marked examples directly from the published skills against Koog 1.3.0 / 1.3.0-beta and runs deterministic behavioral regressions. See tests/examples/README.md for coverage and dependency renewal.

Workspace
jbaruch
Visibility
Public
Created
Last updated
Publish Source
GitHub
Badge
jbaruch/koog badge