CtrlK
BlogDocsLog inGet started
Tessl Logo

jbaruch/koog

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

87

1.85x
Quality

88%

Does it follow best practices?

Impact

87%

1.85x

Average score across 45 eval scenarios

SecuritybySnyk

Advisory

Suggest reviewing before use

Overview
Quality
Evals
Security
Files

criteria.jsonevals/scenario-6/

{
  "context": "Tests whether the agent reaches for the trace feature (the deep-diagnostic layer that surfaces edge predicate evaluations and node entries) rather than the event-handler feature (high-level callbacks, won't show predicate evaluations) or expanding OpenTelemetry coverage (wrong shape — production signal, not local diagnostics).",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Installs the Trace feature",
      "description": "Calls install(Trace) { ... } inside the AIAgent(...) trailing lambda. Does NOT install the event-handler (won't surface edge-predicate evaluations) and does NOT extend OpenTelemetry (wrong layer for local diagnostic deep-dives)",
      "max_score": 30
    },
    {
      "name": "Adds the agents-features-trace dependency",
      "description": "Adds ai.koog:agents-features-trace at 1.0.0+. Does not add other observability modules in lieu of it",
      "max_score": 20
    },
    {
      "name": "Captures EDGE_EVALUATION events",
      "description": "Configures the trace feature to include edge-evaluation events (e.g., includeCategories with EDGE_EVALUATION, or accepts the default-on behavior if it's already included). Without this, the developer cannot see which predicate is misfiring on the loop edge",
      "max_score": 25
    },
    {
      "name": "Captures NODE_ENTRY events",
      "description": "Captures node entry events so the trace shows the loop pattern (which two nodes the agent is bouncing between). Without this, the loop is invisible in the trace",
      "max_score": 15
    },
    {
      "name": "Sends trace to a local sink",
      "description": "Configures the sink as stdout or a local file (TraceSink.stdout() or TraceSink.file(...)) — not a network/cloud sink. The developer asked for line-by-line local logs",
      "max_score": 10
    }
  ]
}

evals

README.md

tile.json