On this page
On this page
Providers
Levanto Sage
The optional Levanto plugin connects Sage to OpenClaw's decision model
role. It does not provide chat completions. It requires the prepared version-2
decision provider API. Released OpenClaw 2026.10.4 exposes V1 only and cannot
load this adapter.
For development, use a matching source checkout containing both the prepared V2 runtime and this plugin. Packaged use requires a supporting paired host/plugin release. The normal release process aligns the plugin API and build versions with that host; the package's older installation floor alone does not establish V2 compatibility. Do not override host-version checks to force installation.
Connect and select
Install and enable @openclaw/levanto through the normal plugin installation
flow on a compatible host. Use the normal provider connection flow or:
The common credential owner captures the key with the masked prompt and supports normal
agent-scoped profiles and SecretRefs. LEVANTO_API_KEY is the advertised environment
source. Do not paste keys into chat. Connecting a key does not change either model role
or activate background evaluation.
Select levanto/levanto-sage for agents.defaults.decisionModel or an agent's
decisionModel override. The normal provider/model@profile syntax can pin an
agent-scoped credential profile. Do not set Sage as the conversational primary model.
The default endpoint is https://sage.levanto.ai. Normal configured provider URL
prefixes, effective request headers, proxy/TLS settings and private-network policy
remain owned by OpenClaw's common provider request path. Inference consumes the
host-prepared credential and effective private headers, including resolved SecretRefs;
it does not reread configured auth values, read environment keys, or use headers as an
alternate credential source. A foreign base URL override does not inherit Sage
capabilities: the owning plugin must explicitly declare that native route and
protocol in its model catalog.
An empty chat-model list is not such a declaration.
Native operations
Consumers use api.runtime.decisions.evaluateV2.
The V1 adapter still refuses richer results it cannot represent; selecting Sage
does not establish V1-only consumer or Auto compatibility.
Only explicitly supplied content is sent. One question uses POST /decide;
multiple questions use one grouped POST /decide/batch, not hidden fan-out.
| OpenClaw kind | Sage kind | Semantics and bounds |
|---|---|---|
| Boolean | Yes/No | probabilityTrue is P(yes). answer: null is successful abstention. |
| Choice | Choice | 2–120 options; at most 20 for images. Preserve the chosen option, nullable selected probability and categorical distribution; do not normalize or take its argmax. |
| Score | Scale | 2–26 rubric levels, indexed from zero. Preserve the fractional expectation, provider confidence and supplied per-level distribution. |
| Sort | Sort | A list of 2–120 items; preserves the native order and optional list-level confidence. No image sorting. |
| Tags | Tags | 1–120 labels. Text verdicts may be null; image verdicts are Boolean. |
Text and JSON evidence are rendered as text. List item bodies and rubric entries retain their supplied text or JSON representation. Boolean true/false criteria, when present, are included explicitly in the native question instructions.
Inline PNG, JPEG and WebP images are supported: at most 4 MiB decoded, a longest edge of 8192 pixels and area of 4096² pixels. The common media probe validates image dimensions. Remote image URLs, filesystem paths, list-contained images and image Sort are not accepted. Callers still own authority to submit the image.
The caller can select auto, off or on reasoning. Omission retains Sage's
off default. Its internal reasoning limit is ten seconds, but never extends
the caller's deadline. Allow more than ten seconds when requesting reasoning.
Returned reasoning metadata describes execution, not a prose reasoning trace.
The initial shared V2 request has no grounding authorization input. This adapter therefore omits grounding, even though the vendor supports it. It performs no web search or implicit private fetch. There are no automatic retries, including for abstention, partial batch failure, allowance exhaustion or HTTP 503.
Results, usage and limitations
The V2 result retains the native response in its serializable metadata.native
envelope, including batch partial errors, call-level usage, reported model identity
and reasoning metadata. A failed batch question becomes an explicit error answer,
not a negative decision. Successful questions are retained.
The selectable catalog ID is levanto-sage. A response may report
levanto-sage-v1.3; neither is a request-level version pin. Sage documents no model
selector in these request bodies.
Reported meta.usage.input_tokens and output_tokens flow through the common
usage owner. Sage includes reasoning in those totals; the adapter does not add
meta.reasoning.tokens again. Native usage, including image counts and tokens,
is retained unchanged. If usage is absent, it remains unknown.
Sage charges per input token, output token and grounding search at the account's plan rates. This adapter omits grounding, declares token billing without fixed rates, and does not invent a dollar cost or report missing cost as zero. Plan-dependent context limits are not inferred from the catalog.
See the vendor decision documentation, pricing and OpenAPI.