CtrlK
BlogDocsLog inGet started
Tessl Logo

jbaruch/koog

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

88

1.95x
Quality

88%

Does it follow best practices?

Impact

88%

1.95x

Average score across 43 eval scenarios

SecuritybySnyk

Passed

No known issues

Overview
Quality
Evals
Security
Files

criteria.jsonevals/scenario-21/

{
  "context": "Tests whether the agent reaches for the prompt DSL builder with interleaved user/assistant turns — the canonical Koog 1.0 few-shot shape — rather than concatenating the examples into a long systemPrompt string.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Uses the prompt { ... } DSL builder",
      "description": "Constructs a Prompt via the prompt(\"...\") { ... } builder. Does NOT keep concatenating examples into a single systemPrompt string — that defeats the model's few-shot pattern recognition",
      "max_score": 30
    },
    {
      "name": "System turn names the classification task",
      "description": "Includes a system(\"...\") call inside the builder that explains the classification task (categories: bug, praise, question, noise). The instruction sits before the examples",
      "max_score": 15
    },
    {
      "name": "Each example is a user/assistant pair",
      "description": "Each of the four examples is rendered as a user(...) turn followed by an assistant(...) turn — not as a single user message containing all four, not as a system message listing them",
      "max_score": 30
    },
    {
      "name": "Examples are inline literal strings",
      "description": "The example texts (\"App keeps crashing on Settings\", \"asdfgh\", etc.) and their expected labels (bug, praise, question, noise) appear inline in the prompt builder. Not loaded from disk or built dynamically — the developer's examples were inline",
      "max_score": 10
    },
    {
      "name": "Imports prompt builder from ai.koog.prompt.dsl",
      "description": "Imports the prompt builder from ai.koog.prompt.dsl (where the builder DSL lives in 1.0). Does not import from a removed pre-1.0 location",
      "max_score": 10
    },
    {
      "name": "Does not introduce a PromptAugmenter",
      "description": "Does not register a SystemPromptAugmenter or UserPromptAugmenter — augmenters are for runtime-injected content, not for static few-shot examples that should be part of the prompt itself",
      "max_score": 5
    }
  ]
}

evals

README.md

tile.json