How it works
- You create an instance and edit its draft config: system prompt, tools, data access, guardrails, limits, retention, attachments. See Instance configuration.
- You publish the draft. The platform replays your gate eval scenarios against it first. A regression refuses the release only when the config sets
evals.on_regressiontoblockand no waiver is recorded; underwarnthe version releases and the failed run is recorded. Each release is an immutable integer version. See Versions and publish. - Your server creates a conversation for one end user.
- Your server posts a turn. The platform runs the model loop on the latest published version and streams frames back. See Turns and streaming.
- When the model calls one of your client tools, the turn pauses and hands the call to you. When a call has a write, outbound or destructive effect, or the tool is marked
requires_confirmation, the turn pauses for a confirmation first. See Client tools and confirmations. - You read the conversation back, rate turns, and export it for review. See Evaluation and Export and retention.
The objects
One model, platform owned
Every configured assistant runs the same platform-owned model,gpt-6-sol. Instance configs and turn requests have no model field. A config that sets the retired model_policy.default_model or model_policy.deep_model fails validation with invalid_instance_config, and a turn request that sends the retired depth field returns 400 invalid_request. The only model setting you control is model_policy.max_tokens. Engines and the stateless converse endpoint can use other models; every external model provider is listed on Data use.
The stateless converse endpoint is separate: it takes an optional model and stores no conversation.
Turns run released config only
A new message turn resolves the latest published version of the instance. An instance with no published version refuses turns with409 instance_not_published, and file uploads follow the same rule. Editing the draft never changes what live conversations run until you publish.
Conversations are partitioned by end user
A conversation belongs to one organization, one key environment, one instance, and oneend_user. The end_user value is an identifier your server asserts for the person using your application, at most 256 bytes (UTF-8). Every request that reads or writes a conversation must send it. A conversation that exists under a different end user, a different environment, or another org returns 404 conversation_not_found, never 403, so a caller cannot learn that it exists.
The platform does not verify end_user. Your server is responsible for sending the right value, which is one reason these routes must be called server to server. The API sends no CORS headers.
Instance status and ownership
The portal’s built-in assistant is a follower of a platform-managed instance. It appears in the API instance list and does not appear in the portal’s Instances tab.
Credentials
Every public conversation route is under/api/v1/ and takes Authorization: Bearer <key>. Two credential families exist; see Authentication and access.
Authoring is a portal task for most teams. If you hold only a scoped key, create and publish instances in the portal and use the API for conversations.
What you configure (portal)
- Conversations, then New instance: create an instance.
- The instance’s Config tab: edit the draft, including the Data access checkboxes, publish it, and waive a blocked release.
- The Evals tab: write scenarios and start on-demand runs.
- The Versions tab: read each released version and its eval result.
- The Chat, Conversations, Metrics, and Feedback tabs: try the assistant, read transcripts, watch usage, and read ratings. Nexio staff triage the ratings.
What you call (API)
- List instances and read one.
- Create a conversation, then take a turn.
- Read the conversation, annotate turns, and export it.
Limits
Attachment limits are on the Attachments page. All platform limits are on Limits.
Your first conversation
Create a conversation, stream a turn, and read it back.
Turns and streaming
Every frame, stop reason, and error.
Instance configuration
Every config field, bound, and default.
Versions and publish
How the eval gate decides a release.