From copilotkit
Implements the AG-UI protocol for agent-to-frontend communication via SSE events. Covers event types, state sync, tool calls, and human-in-the-loop flows for custom agent backends.
How this skill is triggered — by the user, by Claude, or both
Slash command
/copilotkit:copilotkit-aguiThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
AG-UI (Agent-User Interaction) is CopilotKit's open event-based protocol for agent-to-UI communication. All agent-frontend interaction flows through typed events streamed over SSE (Server-Sent Events) or binary protobuf transport. Agents implement `AbstractAgent.run()` returning an RxJS `Observable<BaseEvent>`, and the client SDK handles event application, state management, and message history.
AG-UI (Agent-User Interaction) is CopilotKit's open event-based protocol for agent-to-UI communication. All agent-frontend interaction flows through typed events streamed over SSE (Server-Sent Events) or binary protobuf transport. Agents implement AbstractAgent.run() returning an RxJS Observable<BaseEvent>, and the client SDK handles event application, state management, and message history.
AbstractAgent.run() for a new framework integrationcopilotkit-developcopilotkit-setupcopilotkit-integrations| Family | Events | Purpose |
|---|---|---|
| Lifecycle | RUN_STARTED, RUN_FINISHED, RUN_ERROR, STEP_STARTED, STEP_FINISHED | Run boundaries and progress |
| Text | TEXT_MESSAGE_START, TEXT_MESSAGE_CONTENT, TEXT_MESSAGE_END | Streaming text messages |
| Tool Calls | TOOL_CALL_START, TOOL_CALL_ARGS, TOOL_CALL_END, TOOL_CALL_RESULT | Agent tool invocations |
| State | STATE_SNAPSHOT, STATE_DELTA, MESSAGES_SNAPSHOT | State synchronization |
| Reasoning | REASONING_START, REASONING_MESSAGE_START/CONTENT/END, REASONING_END, REASONING_ENCRYPTED_VALUE | Chain-of-thought visibility |
| Activity | ACTIVITY_SNAPSHOT, ACTIVITY_DELTA | Structured progress updates |
| Custom | RAW, CUSTOM | Extension points |
TEXT_MESSAGE_CHUNK and TOOL_CALL_CHUNK auto-expand into Start/Content/End triads via the client's transformChunks pipeline. Use these for simpler backend implementations.
Each event is a JSON object sent as an SSE data line:
data: {"type":"RUN_STARTED","threadId":"t1","runId":"r1"}\n\n
data: {"type":"TEXT_MESSAGE_START","messageId":"m1","role":"assistant"}\n\n
data: {"type":"TEXT_MESSAGE_CONTENT","messageId":"m1","delta":"Hello"}\n\n
data: {"type":"TEXT_MESSAGE_END","messageId":"m1"}\n\n
data: {"type":"RUN_FINISHED","threadId":"t1","runId":"r1"}\n\n
| Package | npm | Purpose |
|---|---|---|
@ag-ui/core | Events, types, schemas | Protocol definition |
@ag-ui/client | AbstractAgent, HttpAgent, middleware, event application | Client SDK |
@ag-ui/encoder | EventEncoder (SSE + protobuf) | Server-side encoding |
RunAgentInput body, respond with text/event-streamthreadId, runId, messages, tools, state, context from the request bodyRUN_STARTED first, then content events, then RUN_FINISHED or RUN_ERROR@ag-ui/encoder's EventEncoder.encode() or manually write data: JSON\n\nTOOL_CALL_RESULT back; agent processes and continuesSee references/building-agents.md for a complete working example.
RUN_STARTED and end with RUN_FINISHED or RUN_ERRORTEXT_MESSAGE_CONTENT.delta must be non-emptytoolCallIdSTATE_DELTA uses RFC 6902 JSON Patch operationsSTATE_SNAPSHOTreferences/protocol-spec.md -- Complete event type reference with schemas and examplesreferences/building-agents.md -- Step-by-step guide to building AG-UI backendsreferences/event-flow-diagrams.md -- ASCII sequence diagrams for common flowsreferences/client-sdk.md -- @ag-ui/client API referencenpx claudepluginhub copilotkit/copilotkit --plugin copilotkitWires external agent frameworks (LangGraph, CrewAI, PydanticAI, etc.) into CopilotKit via the AG-UI protocol. Covers agent servers, adapters, runtime setup, and frontend hooks.
Guides building agent-native apps where agents match UI capabilities via tools and achieve features in loops. For autonomous agents, MCP tools, self-modifying systems.
Builds AI agents on Cloudflare Workers using the Agents SDK. Covers stateful agents, durable workflows, WebSocket apps, scheduled tasks, MCP servers, chat agents, browser automation, and React hooks.