copilotkit/skills · Archived

copilotkit-agui

Use when building custom agent backends, implementing the AG-UI protocol, debugging streaming issues, or understanding how agents communicate with frontends.

First seen Mar 28, 2026

Installation

$ npx skills add copilotkit/skills --skill copilotkit-agui

Summary

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

Stronger alternatives

This repository is archived — consider an actively maintained alternative.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from copilotkit/skills.

npx skills add copilotkit/skills

Browse all from copilotkit/skills

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 38
License LICENSE
Default branch main
Open issues 0
Status Archived

Skill metadata

Parsed from SKILL.md frontmatter.

Version1.0.0

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 4,660 B
  • docs SUMMARY.md 313 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 549 installs

SKILL.md

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 RUNSTARTED, RUNFINISHED, RUNERROR, STEPSTARTED, STEP_FINISHED Run boundaries and progress
Text TEXTMESSAGESTART, TEXTMESSAGECONTENT, TEXTMESSAGEEND Streaming text messages
Tool Calls TOOLCALLSTART, TOOLCALLARGS, TOOLCALLEND, TOOLCALLRESULT Agent tool invocations
State STATESNAPSHOT, STATEDELTA, MESSAGES_SNAPSHOT State synchronization
Reasoning REASONINGSTART, REASONINGMESSAGESTART/CONTENT/END, REASONINGEND, REASONINGENCRYPTEDVALUE Chain-of-thought visibility
Activity ACTIVITYSNAPSHOT, ACTIVITYDELTA Structured progress updates
Custom RAW, CUSTOM Extension points

Convenience Chunk Events

TEXTMESSAGECHUNK and TOOLCALLCHUNK 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 -- RUNSTARTED first, then content events, then RUNFINISHED 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 TOOLCALLRESULT back; agent processes and continues

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

Key Protocol Rules

  • Every run MUST start with RUNSTARTED and end with RUNFINISHED or RUN_ERROR
  • TEXTMESSAGECONTENT.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