CtrlK
BlogDocsLog inGet started
Tessl Logo

jbaruch/koog

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

86

1.86x
Quality

88%

Does it follow best practices?

Impact

86%

1.86x

Average score across 45 eval scenarios

SecuritybySnyk

Advisory

Suggest reviewing before use

Overview
Quality
Evals
Security
Files

criteria.jsonevals/scenario-25/

{
  "context": "Negative case — tests whether the agent distinguishes caller-triggered snapshots (semantic save points, fork/replay tooling) from continuous automatic checkpointing (the Persistence feature). The developer's need is crash recovery without sprinkling save calls — that's the Persistence feature, not snapshot. The developer's word choice (\"snapshot\") points the wrong way; the tile expects the agent to surface the mismatch.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Distinguishes caller-triggered from continuous save",
      "description": "Names the contract difference between the two Koog persistence layers — snapshot is caller-triggered, the Persistence feature writes checkpoints automatically. Surfaces that \"automatic, no save calls in code\" maps to one and not the other",
      "max_score": 25
    },
    {
      "name": "Routes to the Persistence feature",
      "description": "Recommends the Persistence feature install path — invokes the appropriate sibling skill or names the install(Persistence) surface. Calls out that AgentCheckpointData / runFromCheckpoint give the resume behavior the developer described",
      "max_score": 30
    },
    {
      "name": "Does NOT recommend installing the snapshot feature",
      "description": "Does NOT produce install(Snapshot) wiring or snapshot()/runFromSnapshot() call patterns to satisfy this need. The developer explicitly does not want to add save-state calls through the code — caller-triggered snapshots would force exactly that",
      "max_score": 25
    },
    {
      "name": "Acknowledges the developer's word choice without capitulating",
      "description": "Engages with the developer's framing (\"snapshots so the agent recovers automatically\") and explains that the snapshot feature is not automatic. Does not just refuse without naming the mismatch",
      "max_score": 10
    },
    {
      "name": "Mentions the cost of frequent checkpoints",
      "description": "Notes that continuous checkpointing has overhead — every-step writes are expensive on long runs and a less aggressive schedule (every N steps, every phase boundary) is usually the right trade-off. The developer needs this to configure the feature sensibly",
      "max_score": 10
    }
  ]
}

evals

README.md

tile.json