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

{
  "context": "Tests whether the agent reaches for the Snapshot feature (caller-triggered save points — the right fit for the explicit fork shape the developer described) rather than the Persistence feature (automatic checkpoint loop — wrong shape for explicit fork-and-compare).",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Installs the Snapshot feature",
      "description": "Calls install(Snapshot) { ... } inside the AIAgent(...) trailing lambda. Does NOT install Persistence — that's continuous automatic checkpointing, wrong shape for the explicit save-and-fork use case the developer described",
      "max_score": 30
    },
    {
      "name": "Adds the agents-features-snapshot dependency",
      "description": "Adds ai.koog:agents-features-snapshot at 1.0.0+ to build.gradle.kts. Does not add agents-features-persistence-* (wrong feature)",
      "max_score": 15
    },
    {
      "name": "Calls snapshot() at the decision point",
      "description": "Calls snapshot() inside the node body at the developer's chosen decision point, capturing the snapshot ID for later use. The call is explicit, not at every node",
      "max_score": 20
    },
    {
      "name": "Demonstrates two runFromSnapshot calls",
      "description": "Shows two distinct runFromSnapshot calls from the same snapshot ID with different additional inputs — the fork. Does not show a single resume call (which would not demonstrate the fork)",
      "max_score": 25
    },
    {
      "name": "Notes serializability requirement",
      "description": "Calls out (in code comment or surrounding prose) that snapshot values are serialized — any AIAgentStorage entries must be @Serializable or snapshotting breaks silently",
      "max_score": 10
    }
  ]
}

evals

README.md

tile.json