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

{
  "context": "Tests whether the agent recognizes the developer's described shape — runtime-dependent step ordering — as the fit for an LLM-based planner, and wires it correctly with the separate planner module dependency and a sensibly raised maxIterations.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Picks the LLM-based planner primitive",
      "description": "Uses Planners.llmBased(...) (or Planners.llmBasedWithCritic) to construct the strategy. Does NOT build a hand-wired graph DSL with conditional edges, and does NOT use GOAP — neither fits the runtime-dependent shape the developer described",
      "max_score": 30
    },
    {
      "name": "Adds the separate planner module dependency",
      "description": "Adds ai.koog:agents-planner to build.gradle.kts at 1.0.0 or later — the planner lives in its own module since 1.0, the umbrella does not include it",
      "max_score": 20
    },
    {
      "name": "Passes the planner as the strategy parameter",
      "description": "Passes the constructed planner strategy as the strategy = ... named parameter to the top-level AIAgent(...) factory",
      "max_score": 15
    },
    {
      "name": "Sets a much higher maxIterations than the default",
      "description": "Overrides maxIterations significantly above the factory default of 50 (e.g., 200+, the in-repo planner example uses 400). The default would exhaust before the planner finishes for non-trivial cases",
      "max_score": 15
    },
    {
      "name": "Includes the lookup tools in the registry",
      "description": "Constructs a ToolRegistry that contains the outage-lookup and account-lookup tools so the planner has options to chain — the planner's freedom is meaningless without tools to choose from",
      "max_score": 10
    },
    {
      "name": "Uses top-level AIAgent factory",
      "description": "Constructs the agent via top-level AIAgent(...) factory, not via concrete subtype constructors or removed companion-invoke forms",
      "max_score": 10
    }
  ]
}

evals

README.md

tile.json