APIFeedback
Feedback API
Collect ratings, labels, and reasons on task results. Build thumbs-up/down UIs, case-review workflows, and automated evaluation pipelines directly on agent tasks.POST /v2/agentic/contexts/{contextId}/tasks/{taskId}/feedback— submit a binary rating, up to five labels (correct,helpful,incorrect,missingInformation, etc.), and an optional reasonGET /v2/agentic/contexts/{contextId}/tasks/{taskId}/feedback— list the caller’s feedback for a task, newest firstDELETE /v2/agentic/contexts/{contextId}/tasks/{taskId}/feedback— remove all feedback the caller submitted (idempotent)
target.messageId. Track provenance with metadata fields for collection method, client reference, and a pseudonymous actor ID.Read the guide: Submit feedback on tasks.APITracing
OpenInference trace export
Export execution traces for any context in the OpenInference format. See which connectors were called, how many tokens were consumed, what inputs were sent, and how long each step took.GET /v2/agentic/contexts/{contextId}/trace— returns traces and their spans, newest first, with pagination viapageSizeandpageToken
ConnectorsAPI
Schema connectors GA
Define a custom tool with a JSON Schema. No server, no MCP, no remote agent — just a schema on the agent.The LLM uses the schema’sname and description to decide when to call it. Set transition: "complete" to stop the agent loop after the tool fires — perfect for structured-output agents that must return a coded diagnosis, a confidence score, or a filled-in form.A2AReliability
A2A runtime reliability
Three server-side improvements, no client changes required:- Stuck tasks auto-killed — tasks that go silent are terminated automatically, freeing resources and unblocking workflows
- Burst traffic handled — a configurable concurrency cap per agent prevents resource exhaustion during traffic spikes
- Automatic memory cleanup — completed and failed executions are cleaned up automatically
MCPConnectorsReliability
MCP connector freshness
- Idle connection cleanup — MCP connectors not used recently drop from the connection pool automatically, keeping resource usage low for agents with many MCP connectors
- Automatic config updates — when a registry connector’s config schema changes, all agents referencing it re-resolve with the new defaults. Per-agent overrides are preserved.
AgentContext
Artifacts in multi-turn history
Agents carry their own previous results into the next turn. A coding suggestion, extracted data structure, or calculated score from an earlier turn is included in the conversation history automatically — the client doesn’t re-send it.Agent-produced data is tagged distinctly from user-supplied data, so the agent always knows what it produced versus what it was given. No client changes required.API
X-Request-ID on all responses
Every response includes anX-Request-ID header that ties your client-side request to server-side logs and traces. Set on all v2 endpoints. Use it when reporting issues to Corti support.ConnectorsAPI
Five connector types
The unified connector model now spans five types — every way to extend an agent, from pre-built clinical tools to custom JSON Schema tools:See Connectors.
APIv2Release
Agentic Framework v2.0.0
The v2 API is generally available. New endpoint families, unified connectors, A2A v1.0, and first-class resources for contexts, connectors, usage, feedback, and traces. All endpoints live under/v2/agentic/.The v1 API remains available and deprecated. See the v1-to-v2 migration guide.Connectors
v1 had three concepts: Experts, MCP servers, and sub-agents. v2 unifies them into one connectors model and adds two new types:Manage connectors via the
connectors array on agent create/patch, or via dedicated sub-resource endpoints for individual attach/update/remove.A2A v1.0
The A2A protocol is upgraded to v1.0. Two protocol bindings at the same base URL — pick whichever fits your stack:- HTTP+JSON — REST endpoints, simplest for most use cases
- JSON-RPC — a single endpoint for clients that prefer JSON-RPC envelopes
Connect any third-party A2A agent. The runtime reads the remote agent’s card and negotiates the wire dialect — native v1.0, or the legacy 0.x dialect for agents that haven’t upgraded. No adapters needed.
Endpoint map
Everything under/v2/agentic/:AgentsConnectors
Messaging & tasks
Contexts
Feedback
Registry
Agent metadata
Prefixed IDs
All resource IDs use type-prefixed UUIDv7 — tell what a resource is from the ID alone:Streaming
Two SSE endpoints for real-time updates:message:stream— send a message and watch the response unfoldtasks:subscribe— subscribe to updates for an existing task
Credit pre-flight check
Tasks are checked for sufficient credits before any tokens are consumed. Insufficient balance = rejected task, zero spend. Per-task usage ($usage, credits) is in the task metadata. Agent-level metrics at GET /agents/{agentId}/usage. See the usage guide.JSON Merge Patch
PATCH uses JSON Merge Patch (RFC 7386). Omit a field to leave it unchanged; send null to clear it. Content-Type: application/merge-patch+json.Errors
A2Agoogle.rpc.Status format with structured details for programmatic handling.v1 to v2 changes
Full details: v1-to-v2 migration guide.
AgentOutput quality
Part provenance
Every data part in a conversation carries an origin tag the agent can see:user_text_NN/user_data_NN— what you senttool_data_NN— what a connector returnedagent_data_NN— what the agent produced in a previous turn
AgentToolsOutput quality
Built-in data inspection tools
Two tools the agent uses automatically when the conversation contains data or text parts. No configuration needed.query_data_parts — jq over structured data
Run jq programs over data parts. Navigate, filter, search, and join across parts — the agent pulls exactly the fields it needs without loading the whole payload into the prompt.- Navigate: first five lab results —
.user_data_01.results[0:5] - Filter: flagged results —
.user_data_01.results[] | select(.flag == "H") - Search: where “metformin” appears in the structure
- Join: match patients to labs across two parts —
.user_data_01.patients[] as $p | .user_data_03.labs[] | select(.mrn == $p.mrn)
Offered automatically when the conversation has at least one data part.
read_part — read and search text
Read a window of text or search for terms in long content — encounter transcripts, referral letters, clinical notes.- Windowed read: read 5,000 characters from any offset, with markers showing what’s hidden before and after
- Search: find every occurrence of a term or regex pattern, with 200 characters of context per match
Offered automatically when the conversation has at least one text or data part.
Why this matters
Agents work with real clinical data sizes. Scan a 50-page transcript for every mention of chest pain. Cross-reference a full lab panel against a medication list. Produce a summary without hallucinating details that didn’t fit. The tools reference parts by GID, so the agent always knows whether it’s inspecting your data, a connector’s output, or its own prior turn.A2AContext
Shared agents across contexts
Use the same agent across multiple conversations, sessions, and patients. No more creating duplicate agents for each context. No client changes required.MCPConnectors
MCP 2025-11-25 spec compliance
MCP connectors follow the Model Context Protocol 2025-11-25 specification, including the latest tool-registration andlist_changed refresh semantics. MCP servers you operate — open-source or in-house — work with the framework.UsageAPI
Credit pre-flight and usage metering
Tasks are checked for sufficient credits before processing. Insufficient balance = rejected task, no tokens consumed. Per-task usage in task metadata:$usage— input and output tokenscredits— credit balance and spend
GET /v2/agentic/agents/{agentId}/usage with daily buckets. See the usage guide.