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

{
  "context": "Tests whether the agent reaches for nodeLLMRequestStreaming with a chunk handler — the correct streaming primitive — rather than the regular nodeLLMRequest followed by post-hoc string splitting (which doesn't actually stream).",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Uses nodeLLMRequestStreaming",
      "description": "Authors the strategy with nodeLLMRequestStreaming as the LLM-call node. Does NOT use nodeLLMRequest and try to split the result afterwards — that doesn't stream",
      "max_score": 35
    },
    {
      "name": "Supplies a chunk handler lambda",
      "description": "Passes a chunk-handler lambda to nodeLLMRequestStreaming that surfaces each chunk somewhere downstream (channel, callback, print). The handler body is not empty or TODO",
      "max_score": 25
    },
    {
      "name": "Names that the handler must not block",
      "description": "Calls out (in code comment or surrounding prose) that the chunk handler runs synchronously per chunk and must not block — slow handlers stall the LLM stream",
      "max_score": 15
    },
    {
      "name": "Wires the streaming node into a top-level strategy<...>",
      "description": "Builds the strategy with the top-level strategy<Input, Output>(\"name\") { ... } builder. Uses node delegate syntax (val xxx by nodeLLMRequestStreaming(...)) and edge() declarations",
      "max_score": 15
    },
    {
      "name": "Does not include tool nodes",
      "description": "The strategy does not include nodeExecuteTools or nodeLLMSendToolResults — the developer said reply is text-only and streaming doesn't compose with tool calls in the same node anyway",
      "max_score": 10
    }
  ]
}

evals

README.md

tile.json