Skip to main content

Capability resolver

The Capability resolver screen lets you see how a reasoning effort level and the parameters of a call are translated into the native parameters of a model, or why they are rejected, without calling the model. Portal path: /llm/resolver. It is used by developers and AI platform engineers who prepare a call, and by support engineers who explain a refusal. The screen is built in portal/src/screens/llm-tools.tsx (Resolver, resolverCfg, ResolveResult).

What the screen shows​

One panel Resolve parameters ("POST /v1/models/resolve with an effort level and call parameters.") in two parts.

The form, on two columns:

FieldContent
ModelRegistry id of the model (required).
Effortnone, low, medium, high or max (required).
TemperatureNumber.
Top PNumber.
Max tokensNumber, checked against the model limit.
Response formattext, json_object or json_schema.
Tool choiceauto, none or required.
StreamYes or no.
Extra parametersJSON object merged into the request body (default {}).

The Result, after Run:

  • a banner Accepted (green) or Rejected (red), with the reason when the API gives one;
  • the warnings of the resolver, one per line;
  • Native parameters: the JSON sent to the provider for this model;
  • Raw response, folded, with the full answer.

Before the first run the result area says "Run the request to see the result here."

Actions​

Button or actionWhat it doesAPI callRoles
RunSends the model, the effort and the parameters (the Extra parameters are merged at the top level) and shows the resolution.POST /v1/models/resolveLLM readers
Raw responseUnfolds the full JSON answer.noneeveryone

Roles​

  • POST /v1/models/resolve requires one of the READ roles of services/control-plane/src/eai/domains/llm/__init__.py, which are the llmReaders of portal/src/lib/kit.ts: tenant_admin, platform_admin, security_officer, finops, developer, auditor, viewer, agent, ai_platform_engineer, ai_governance_officer, support_engineer.
  • The form is not restricted by the portal: the server decides.

Typical tasks​

Check that a model accepts a reasoning effort​

  1. Choose the model. Type its registry id in Model, as shown in the Models registry. Expected result: the field is filled. If it fails: "Model <model_id> not found." means the id is wrong.
  2. Set the effort. Choose Effort high and leave the other fields empty, so that you test the effort alone. Expected result: the form is valid. If it fails: Required under Effort.
  3. Run. Click Run. Expected result: Accepted and the Native parameters the provider receives. If it fails: "Reasoning effort <requested> is not supported by this model." (effort_not_supported); choose a level listed in the Reasoning modes of the model.

The same check from the command line (see docs/sdks/cli-reference.md):

enterprise-ai models --effort high resolve <model-id>

<model-id>: registry id of the model.

Validate the parameters of a structured output call​

  1. Fill the call. Set Model, Effort, Max tokens and Response format json_schema, and put the schema in Extra parameters, so that the resolver sees the same body as the real call. Expected result: valid JSON in Extra parameters. If it fails: Invalid JSON.
  2. Run. Click Run. Expected result: Accepted, possibly with warnings. If it fails: "max_tokens is above the model limit of <n>." or "Parameter response_format is invalid." (schema missing); fix the value and run again.

Troubleshooting​

SymptomCauseFix
"Model <model_id> not found." (model_not_found)Unknown registry id.Copy the id from the Models registry.
"Reasoning effort <requested> is not supported by this model." (effort_not_supported, 422)The level is outside the reasoning modes of the model.Choose a supported level, or none.
"Parameter <parameter> is not supported by this model." (parameter_not_supported, 422)The model does not take this parameter.Remove it from the form or from Extra parameters.
"Parameter <parameter> is out of the allowed range." (parameter_out_of_range, 422)Value outside the bounds of the model, for example Temperature.Use a value inside the range.
"max_tokens is above the model limit of <n>." (max_tokens_exceeded, 422)Max tokens above Max output tokens of the model.Lower Max tokens.
"Parameter <parameter> is invalid." (parameter_invalid, 422)Wrong value, for example json_schema without schema.Fix the value named in the message.
"Input modality <modality> is not supported by this model." (modality_not_supported, 422)Extra parameters carry an image, audio or video input the model does not take.Pick a model with this modality.
Invalid JSON under Extra parametersThe field is not a JSON object.Type a JSON object, {} when empty.