Decision Models (typed judgments)

v2026.9.6 added an optional Decision Models role: evaluate evidence against a rubric and get a choice, a score, or a Boolean probability. It is not a second chat model. It does not start background work. Official concept page: docs.openclaw.ai/concepts/decision-models.

The Control UI has a separate Decision picker. Decision models never appear in chat, primary, fallback, or utility lists. An unset or empty decisionModel leaves the role off. There is no automatic fallback to the conversational model. ChatGPT/Codex subscription credentials do not authorize OpenAI's Decisions API—use a Platform API key for that provider.

Three model roles

RoleTypical workResult
Primary modelConversation and agent workMessages and tool calls
utilityModelTitles, summaries, short internal textGenerated text
decisionModelClassification, rubric scoring, predicatesTyped answers and probability estimates

Sharing the Decision API does not make providers interchangeable. A local ONNX classifier and a hosted Jev model can both return a choice; their scores are not the same product.

When to turn it on

  • You need a bounded judgment (route this ticket, score urgency, yes/no against a written rubric) and you want that judgment as structured data, not as prose.
  • You can send the evidence to the selected provider. Hosted providers receive that content. Only send data authorized for that destination.

If you only want cheaper titles, use utilityModel. If you want the agent to keep talking, keep the primary model. Autumn chat IDs stay on autumn models.

Providers (configure the plugin first)

  • Liquid AI — hosted d1 / d1 Ultra. Text, JSON, or inline image evidence. Connecting it does not change the chat model.
  • ONNX — local CPU classifiers in a persistent subprocess. No hosted API credential. Download pinned artifacts or prepare a local export before you probe.
  • OpenAI — bundled openai plugin and the Platform Decisions API. Platform usage charges. Subscription login is not enough. Related: Sign in with ChatGPT.
  • SubQ — hosted Snap, text/JSON only on the V1 adapter.
  • TypeSafe AI — hosted Jev or a loopback System One server (Kev). Official plugin notes: released v2026.10.4 still exposes Decision V1; packaged Jev V2 needs a paired host/plugin release. See TypeSafe AI.

Official docs currently list ONNX, SubQ, and TypeSafe adapters as unpublished candidates whose setup pages cover source-checkout use. Do not treat a model reference in the table as proof that the artifact is on your machine.

Config shape

After the provider plugin is set up, select the role. An unset agent override inherits the default. An empty string on an agent disables decisions for that agent only:

{
  agents: {
    ownership: "explicit",
    defaults: { decisionModel: "onnx/gliclass-edge-v3.0" },
    entries: {
      support: { decisionModel: "typesafe/jev-latest" },
      quiet: { decisionModel: "" }
    }
  }
}

Declared references include onnx/gliclass-edge-v3.0, onnx/gliner2.5-small-v1, openai/gpt-6-luna, subq/subq-snap-preview, typesafe/jev-latest, and typesafe/kev-latest (needs a running System One server and an explicit loopback URL). Confirm the catalog on your build; IDs move.

Local ONNX smoke check after download (official CLI):

openclaw onnx models
openclaw onnx probe gliclass-edge-v3.0

How the agent actually calls it

decision_evaluate is a core tool. An agent gets it only when that agent has an effective decisionModel, subject to ordinary tool policy. The tool collects no ambient conversation. You pass shared state and a questions map. Each question sees the same state and cannot see another answer in the batch. Results do not grant permission to act.

Question types: choice (labels → descriptions), score (ordered rubric lines), boolean (true/false descriptions). Experimental Decision assistance for conversational tool filtering is a separate opt-in; explicit decision_evaluate does not depend on Labs.

Related