ModelConnector/schemas/provider_request.json
Meta Vens b115e870f0 connector-reasoning-item (B3b): provider reasoning state is one opaque transcript item; the service refuses it foreign in flight and drops it elsewhere
InputItem::ReasoningState and TransportEventPayload::ReasoningState carry the
connector's own bytes as MessagePack bin. TransportService owns the provider
tag: partition_reasoning is the one place foreignness is decided, begin refuses
foreign state in the in-flight exchange (ForeignReasoningState), drops and
counts it earlier (receipt.foreign_reasoning_dropped), and complete gates the
receipt's provider and count. A backend now receives a ProviderCall holding
only the filtered request and builds its result through call.transported, so it
can neither see foreign state nor write receipt identity.
TransportResult::transcript_items hands a completed result back as items the
caller replays verbatim.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 12:50:55 +01:00

261 lines
5.8 KiB
JSON

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "ProviderRequest",
"type": "object",
"properties": {
"cache_retention": {
"anyOf": [
{
"$ref": "#/$defs/CacheRetention"
},
{
"type": "null"
}
]
},
"conversation_id": {
"type": "string"
},
"input": {
"type": "array",
"items": {
"$ref": "#/$defs/InputItem"
}
},
"instructions": {
"type": "string"
},
"max_output_tokens": {
"type": "integer",
"format": "uint32",
"minimum": 0
},
"model": {
"type": "string"
},
"output_schema_json": {
"type": [
"string",
"null"
]
},
"parallel_tool_calls": {
"type": "boolean"
},
"reasoning_effort": {
"anyOf": [
{
"$ref": "#/$defs/ReasoningEffort"
},
{
"type": "null"
}
]
},
"request_id": {
"type": "string"
},
"schema_id": {
"type": "string"
},
"tool_choice": {
"$ref": "#/$defs/ToolChoice"
},
"tools": {
"type": "array",
"items": {
"$ref": "#/$defs/ToolDefinition"
}
}
},
"additionalProperties": false,
"required": [
"schema_id",
"request_id",
"conversation_id",
"model",
"instructions",
"input",
"tools",
"tool_choice",
"parallel_tool_calls",
"max_output_tokens"
],
"$defs": {
"CacheRetention": {
"type": "string",
"enum": [
"short",
"long"
]
},
"InputItem": {
"oneOf": [
{
"type": "object",
"properties": {
"UserText": {
"type": "object",
"properties": {
"text": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"text"
]
}
},
"additionalProperties": false,
"required": [
"UserText"
]
},
{
"type": "object",
"properties": {
"AssistantText": {
"type": "object",
"properties": {
"text": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"text"
]
}
},
"additionalProperties": false,
"required": [
"AssistantText"
]
},
{
"type": "object",
"properties": {
"ToolCall": {
"type": "object",
"properties": {
"arguments": {
"type": "string"
},
"call_id": {
"type": "string"
},
"name": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"call_id",
"name",
"arguments"
]
}
},
"additionalProperties": false,
"required": [
"ToolCall"
]
},
{
"type": "object",
"properties": {
"ToolResult": {
"type": "object",
"properties": {
"call_id": {
"type": "string"
},
"output": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"call_id",
"output"
]
}
},
"additionalProperties": false,
"required": [
"ToolResult"
]
},
{
"description": "One provider reasoning block, opaque to every caller: `state` is the\nconnector's own encoding of the whole block. Callers replay it\nverbatim in transcript order and never inspect or branch on it; only\nthe connector of `provider` reads it, and the service drops or refuses\nthe state of any other provider before a backend sees the request.",
"type": "object",
"properties": {
"ReasoningState": {
"type": "object",
"properties": {
"model": {
"type": "string"
},
"provider": {
"type": "string"
},
"state": {
"description": "MessagePack bin: raw bytes, never an array of integers",
"type": "string",
"format": "binary"
}
},
"additionalProperties": false,
"required": [
"provider",
"model",
"state"
]
}
},
"additionalProperties": false,
"required": [
"ReasoningState"
]
}
]
},
"ReasoningEffort": {
"type": "string",
"enum": [
"low",
"medium",
"high",
"max"
]
},
"ToolChoice": {
"type": "string",
"enum": [
"auto",
"required"
]
},
"ToolDefinition": {
"type": "object",
"properties": {
"description": {
"type": "string"
},
"name": {
"type": "string"
},
"parameters_json": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"name",
"description",
"parameters_json"
]
}
}
}