Skip to main content
Deprecated — per-agent chat (/v1/companies/:id/agents/:agentId/*). It drives the legacy orchestration runtime, which is FROZEN — it accepts no new capabilities. The durable runtime enforces policy at the tool boundary, not only at the gateway, and it is the only runtime new work is built on.Use instead: POST /v1/teams/:team/tenants/:tenantUserId/sessions/:channel/messages with as“These routes keep answering. Nothing is removed and no response shape changes: the deprecation is announced in headers only, which are purely additive. Every response from this router carries Deprecation (RFC 9745 — the value is a Structured Field Date, @ plus epoch seconds, not the boolean true some pre-RFC clients look for), Link rel="deprecation", Warning: 299 and X-Naive-Deprecation-Id: dep.surface.agent-chat. There is no Sunset header, because this is frozen with no sunset date — a Sunset on a frozen row would be a date the platform has not promised.Announced 2026-07-29. Level frozen. The freeze ends when company_containers with provider='hermes' and status='running' reaches zero — not on a date.Replacement surface: team sessions — declared, and refused in this build; the table above says what to use meanwhile.
Address one specific agent directly, rather than the team lead.
{id} is the company id, not a tenant id. These routes are company-scoped: they address an agent, and an agent belongs to a company. To address work for one customer, use the (team, tenant) surface.
The lead agent has its own address at /v1/companies/{id}/ceo/*. …/run here is for the other agents.

Streaming

…/runs/{runId}/stream is Server-Sent Events. Send Accept: text/event-stream and read frames until the stream closes. It is the legacy runtime’s stream and it works today — the durable runtime’s equivalent is refused until its three prerequisites land.