Cohere Streaming and Application Events
Overview
Separate response-stream events from durable business events and replace deprecated managed connectors with application-owned v2 tools.
Prerequisites
- The target repository, runtime, environment, and accountable owner
- An approved Cohere team and key for any live verification
- Current quality, security, privacy, capacity, and change-control requirements
Tool Discipline
Use Read, Glob, and Grep to inspect code, configuration, and evidence. Use WebFetch only for current Cohere primary documentation. Use Write or Edit only when the user requested implementation and the exact target files are known; never write credentials or customer content.
Current Contract
- Chat v2 streaming is a server-sent response stream, not an inbound signed webhook surface.
- Handle typed content, citation, tool-call, and terminal events and tolerate additive unknown event types.
- Managed v1 connectors are deprecated; v2 retrieval and web search use user-defined tools.
- If the application emits durable callbacks, define its own authentication, signing, idempotency key, retries, and dead-letter policy.
Authentication
Use an environment-specific key injected from an approved secret manager. Never print, persist, commit, or place CO_API_KEY in an example. Confirm access with the least costly bounded operation appropriate to the task, and treat key creation, rotation, revocation, role changes, and production-capacity requests as owner-approved actions.
Instructions
- Choose response streaming, tool streaming, or an application-owned durable event; do not conflate them.
- Implement an async iterator with cancellation, timeout, terminal-state validation, and unknown-event telemetry.
- Buffer partial content only within explicit memory and latency bounds.
- Correlate tool calls and results before continuing the v2 message loop.
- For durable internal events, persist state before delivery and enforce signature and replay-window validation.
- Test disconnects, duplicate delivery, out-of-order events, partial streams, unknown types, and terminal errors.
Approval Boundaries
Do not expose or rotate keys, change Cohere Team roles, accept commercial terms, enable sensitive production data, increase spend or capacity, switch production models, send a support bundle, or execute model-proposed side effects without the accountable owner's approval. Keep diagnosis read-only unless implementation was requested.
Output
Return the resolved API and model contract, files or settings inspected, evidence collected, validation result, remaining risk, owner, and rollback or next action. Redact keys, authorization headers, prompts, retrieved documents, embeddings, customer identifiers, and unrestricted environment output.
Error Handling
| Condition | Response |
|---|---|
| Partial stream | Mark output incomplete and do not treat it as a successful durable result. |
| Unknown event | Record its type safely and continue only when semantics allow. |
| Duplicate internal event | Return the prior idempotent result without repeating side effects. |
| Connector dependency | Migrate it to an application-owned v2 tool. |
Examples
Use this compact handoff shape to keep the selected scope, validation evidence, and operational result reviewable.
Input:
mode=chat-stream; tool-use=true; durable-callback=application-owned
Expected handoff:
stream=typed; cancellation=tested; connector-v1=absent; events=idempotent