Skip to main content
Conversations give your application a configured assistant that can answer an end user, read platform data through tools, hand work to your own code, and pause for approval before anything changes. You configure the assistant once as a Conversation instance, release it as a numbered version, and then run conversations on it: one thread per end user, each made of turns that stream back over Server-Sent Events (SSE). The platform keeps the transcript, enforces the guardrails you declared, records every tool call, and runs your regression tests before a new version goes live. Your application owns the user interface and any tools that act inside your own systems.

How it works

  1. You create an instance and edit its draft config: system prompt, tools, data access, guardrails, limits, retention, attachments. See Instance configuration.
  2. 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_regression to block and no waiver is recorded; under warn the version releases and the failed run is recorded. Each release is an immutable integer version. See Versions and publish.
  3. Your server creates a conversation for one end user.
  4. Your server posts a turn. The platform runs the model loop on the latest published version and streams frames back. See Turns and streaming.
  5. 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.
  6. 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 with 409 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 one end_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)

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.
Last modified on September 25, 2026