Skip to main content
Detailed documentation about the Agentic Framework is available here.
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 reason
  • GET /v2/agentic/contexts/{contextId}/tasks/{taskId}/feedback — list the caller’s feedback for a task, newest first
  • DELETE /v2/agentic/contexts/{contextId}/tasks/{taskId}/feedback — remove all feedback the caller submitted (idempotent)
Target a specific message with 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 via pageSize and pageToken
Feed traces into any OpenInference-compatible observability platform to debug agent behavior, audit clinical workflows, and optimize connector usage.Read the guide: Export OpenInference traces.
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’s name 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.
See Connectors.
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 an X-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/:AgentsConnectorsMessaging & tasksContextsFeedbackRegistry
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 unfold
  • tasks:subscribe — subscribe to updates for an existing task
See Stream agent responses.
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
A2A google.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 sent
  • tool_data_NN — what a connector returned
  • agent_data_NN — what the agent produced in a previous turn
This stops the agent from echoing your input as its own answer and keeps multi-turn conversations accurate. No client changes required.
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 and list_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 tokens
  • credits — credit balance and spend
Agent-level metrics at GET /v2/agentic/agents/{agentId}/usage with daily buckets. See the usage guide.