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-20/

{
  "context": "Tests whether the agent installs the Tokenizer feature with a runBudget AND picks the CompressHistory budget-exceeded action (matching the developer's stated 'try to continue by summarizing' preference) rather than the default Abort which the developer explicitly rejected.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Installs the Tokenizer feature",
      "description": "Calls install(Tokenizer) { ... } inside the AIAgent(...) trailing lambda. Does not roll a custom token-counting wrapper or check usage in tool bodies",
      "max_score": 25
    },
    {
      "name": "Sets a 50000 runBudget",
      "description": "Configures runBudget = 50_000 (or equivalent integer literal) inside the install block — matches the developer's stated cap",
      "max_score": 20
    },
    {
      "name": "Picks BudgetAction.CompressHistory",
      "description": "Sets onBudgetExceeded = BudgetAction.CompressHistory. Does NOT use BudgetAction.Abort (developer explicitly rejected this) and does NOT use DowngradeModel (the developer asked for summarization, not model swap)",
      "max_score": 30
    },
    {
      "name": "Adds the tokenizer dependencies",
      "description": "Adds both ai.koog:agents-features-tokenizer and ai.koog:prompt-tokenizer at 1.0.0+. Without prompt-tokenizer, the feature has no per-model tokenizer to use",
      "max_score": 15
    },
    {
      "name": "Does not lower the model to a cheaper one",
      "description": "Does not change llmModel away from GPT4o — the developer didn't ask to swap models, only to cap spend on the current one",
      "max_score": 5
    },
    {
      "name": "Notes how the cap surfaces in observability if installed",
      "description": "Mentions that if OpenTelemetry is also installed, token usage surfaces in the gen_ai.client.token.usage metric automatically. Not strictly required but helps the developer verify the cap",
      "max_score": 5
    }
  ]
}

evals

README.md

tile.json