Agent Completion output_schema shaped like a Clef or Decider answer

Map Clef and Strands Decider answer types (yes/no, choice, score) onto a Sume output_schema with enum and integer bounds, and see what it does not check.

5 min readSume
All posts

Yes, within limits. Clef and Strands Decider answer three kinds of question: yes/no, pick one option, and rate on a scale. An Agent Completion can return a typed object with the same three shapes if you bind an output_schema with a boolean, an enum and a bounded integer. The difference is the source. A decision model scores the options itself. Sume reads the object back from a finished agent run, so the numbers in it are the run's report, not a calibrated probability.

The three answer types in Sume's subset

Cloudflare's post describes noul (yes/no), choice and score fields in its API example. The Strands model card names the same three primitives. Sume's schema subset accepts enum, minimum and maximum, and it requires additionalProperties: false on each object, with every property listed in required.

Decision primitive to schema node (read 2026-10-05)
PrimitiveQuestion shapeSume output_schema nodeNote
Yes/noIs it urgent?{"type": "boolean"}Required, never optional
ChoiceWhich team?{"type": "string", "enum": [...]}Options fixed in the schema
ScoreHow severe?{"type": "integer", "minimum": 1, "maximum": 4}Bounds you choose
ConfidenceHow sure?{"type": "number", "minimum": 0, "maximum": 1}The agent's report, not calibrated

A triage schema

Bind the schema in the Agent Completion request. The name takes a namespace, and strict stays true.

{
  "output_schema": {
    "name": "acme/triage/v1",
    "strict": true,
    "schema": {
      "type": "object",
      "additionalProperties": false,
      "required": ["urgent", "team", "severity", "confidence"],
      "properties": {
        "urgent": { "type": "boolean" },
        "team": { "type": "string", "enum": ["billing", "technical", "sales"] },
        "severity": { "type": "integer", "minimum": 1, "maximum": 4 },
        "confidence": { "type": "number", "minimum": 0, "maximum": 1 }
      }
    }
  }
}

What the schema does not promise

Read filled_by on the receipt. agent means that the run submitted the object. projection means that a separate pass built it from the run's media and closing text, and that pass does not see your input. If the object is null, output_error gives the reason, and Sume never returns a schema-shaped guess.

Do not use a run for a job that a 39 ms decision model can do. This pattern fits tasks where the run already looks at media or calls tools and you want its verdict in a fixed shape.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume