Skip to content
Development
Skill

/copilotkit-agui

Use when building custom agent backends, implementing the AG-UI protocol, debugging streaming issues, or understanding how agents communicate with frontends. Covers event types, SSE transport, AbstractAgent/HttpAgent patterns, state synchronization, tool calls, and

From plugin
copilotkit
37k17 skills2 MCP
Install
$ npx -y skills add CopilotKit/CopilotKit --skill copilotkit-agui --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/copilotkit-agui

Context preview

The summary Claude sees to decide when to auto-load this skill.

Use when building custom agent backends, implementing the AG-UI protocol, debugging streaming issues, or understanding how agents communicate with frontends. Covers event types, SSE transport, AbstractAgent/HttpAgent patterns, state synchronization, tool calls, and

SKILL.md

copilotkit-agui.SKILL.md
name: copilotkit-agui
description: "Use when building custom agent backends, implementing the AG-UI protocol, debugging streaming issues, or understanding how agents communicate with frontends. Covers event types, SSE transport, AbstractAgent/HttpAgent patterns, state synchronization, tool calls, and human-in-the-loop flows."
version: 1.0.0

AG-UI Protocol Skill

Overview

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.

When to Use

  • Building a custom agent backend that needs to speak AG-UI
  • Implementing `AbstractAgent.run()` for a new framework integration
  • Debugging why events aren't reaching the frontend or arriving malformed
  • Understanding event ordering (lifecycle, text, tool calls, state)
  • Working with state synchronization (snapshots vs JSON Patch deltas)
  • Implementing human-in-the-loop interrupt/resume flows
  • Troubleshooting SSE streaming or encoding issues

When NOT to Use

  • For CopilotKit React hooks and frontend components, use `copilotkit-develop`
  • For CopilotKit runtime setup and configuration, use `copilotkit-setup`
  • For framework-specific integration guides (LangGraph, Mastra, CrewAI), use `copilotkit-integrations`

Quick Reference

Event Families

| 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 |

Convenience Chunk Events

`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.

SSE Wire Format

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

Packages

| 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 |

Workflow: Building an AG-UI Backend

1. **Define your endpoint** -- Accept POST with `RunAgentInput` body, respond with `text/event-stream` 2. **Parse input** -- Extract `threadId`, `runId`, `messages`, `tools`, `state`, `context` from the request body 3. **Emit events in order** -- `RUN_STARTED` first, then content events, then `RUN_FINISHED` or `RUN_ERROR` 4. **Encode as SSE** -- Use `@ag-ui/encoder`'s `EventEncoder.encode()` or manually write `data: JSON\n\n` 5. **Handle tool results** -- Client sends `TOOL_CALL_RESULT` back; agent processes and continues

See `references/building-agents.md` for a complete working example.

Key Protocol Rules

  • Every run MUST start with `RUN_STARTED` and end with `RUN_FINISHED` or `RUN_ERROR`
  • `TEXT_MESSAGE_CONTENT.delta` must be non-empty
  • Tool call events are linked by `toolCallId`
  • `STATE_DELTA` uses RFC 6902 JSON Patch operations
  • Multiple sequential runs are supported -- each must complete before the next starts
  • Messages accumulate across runs; state continues unless reset by `STATE_SNAPSHOT`

References

  • `references/protocol-spec.md` -- Complete event type reference with schemas and examples
  • `references/building-agents.md` -- Step-by-step guide to building AG-UI backends
  • `references/event-flow-diagrams.md` -- ASCII sequence diagrams for common flows
  • `references/client-sdk.md` -- @ag-ui/client API reference
Read more
Ships withcopilotkit

Docs · Examples · Enterprise Intelligence Platform · Build agent-native applications — on any framework, on any surface. Generative UI, shared state, and human-in-the-loop workflows for React, Angular, Vue, React Native — and beyond the browser.

Get the whole plugin

Other skills on copilotkit.