CopilotKit 项目介绍
CopilotKit 项目介绍
项目定位
CopilotKit 是一个 AI Agent 前端集成框架,让开发者能够将 AI Agent 能力无缝嵌入到任意 Web 应用中。它不是又一个 Agent 框架,而是连接前端 UI 与后端 Agent 的桥梁层。
解决的核心问题:当 AI Agent 需要与用户界面深度交互时(读取上下文、执行前端操作、流式渲染 UI),如何建立一个标准化、可扩展的通信协议?
核心能力
- 三层架构解耦:Frontend(React/Angular/Vue)→ Runtime(Express/Hono)→ Agent(LangGraph/CrewAI/BuiltIn),各层可独立替换
- AG-UI 协议驱动:所有层间通信基于事件驱动的 SSE 流,标准化的事件生命周期(RUN_STARTED → STEP_STARTED → RUN_FINISHED)
- 前端工具注册:Agent 调用的工具可以在浏览器端执行(
useFrontendTool),结果回传给 Agent 继续推理 - 多 Agent 管理:同一运行时注册多个 Agent,各自独立线程、状态和作用域工具
- 上下文注入:应用状态作为 Context 自动附加到每次 Agent 请求,提供 UI 感知能力
- Open Generative UI:中间件实时解析流式 JSON 工具参数,生成沙盒化的增量 UI 组件
- 人类中断(HITL):通过 LangGraph Interrupt 事件实现 Agent 执行过程中的人类审批/确认
- 语音输入:内置语音转文字转录服务,支持语音驱动的 Agent 交互
- 多框架支持:核心逻辑封装在
CopilotKitCore,React/Angular/Vue/Vanilla JS 各有对应的绑定层 - Intelligence 模式:支持持久化线程、WebSocket 实时事件和 Redis 锁的云端增强模式
技术栈
| 层面 | 技术选型 |
|---|---|
| 前端核心 | TypeScript, RxJS (Observable 流), React Context |
| UI 组件 | React, Radix UI, Tailwind CSS |
| 运行时 | Node.js, Express, Hono, Bun, Elysia |
| 通信协议 | AG-UI Protocol (SSE 事件流), GraphQL (客户端) |
| Agent 后端 | LangGraph, CrewAI, OpenAI, Anthropic, Google GenAI, Groq, Bedrock |
| 构建工具 | Nx (Monorepo), pnpm, tsdown |
| 测试 | Vitest, Playwright (E2E) |
架构概览
快速体验
最简安装方式(React 项目):
npm install @copilotkit/react-core @copilotkit/react-ui最小可用示例:
import { CopilotKit } from "@copilotkit/react-core";import { CopilotPopup } from "@copilotkit/react-ui";
function App() { return ( <CopilotKit runtimeUrl="/api/copilotkit"> <YourApp /> <CopilotPopup /> </CopilotKit> );}教程导读
本教程分为 AI 应用知识 和 编程核心技术 两个部分:
AI 篇(ai/ 目录)
从 CopilotKit 的实践中抽象出 AI 应用通用知识:
- AG-UI 事件驱动协议:标准化的 Agent-UI 通信协议,定义事件生命周期、SSE 流式传输、工具调用的前后端协同
- 三层解耦架构:为什么把 Agent 框架拆成 Frontend → Runtime → Agent 三层,每层的职责和边界
- 前端工具注册模式:Agent 如何将工具执行委托给浏览器端,以及这种设计的安全性和灵活性权衡
- 多 Agent 编排:同一运行时管理多个 Agent 的隔离策略、线程管理和作用域工具
- 人类中断(HITL):LangGraph Interrupt 事件如何实现 Agent 执行中的人类审批流程
- 生成式 UI 中间件:实时流式 JSON 解析 + 沙盒 UI 渲染的完整方案
工程篇(dev/ 目录)
聚焦 CopilotKit 的具体工程实践:
- Nx Monorepo 架构:18+ 个包的依赖关系、构建管道和发布策略
- AG-UI 协议实现:SSE 事件编码/解码、事件总线、生命周期管理
- RxJS Observable 流:前端如何用 RxJS 管理 Agent 事件流和状态订阅
- 中间件系统:before/after 双阶段中间件,支持函数内联和 Webhook 两种模式
- 多框架抽象:CopilotKitCore 如何被 React/Angular/Vue 复用
- 服务适配器模式:10+ 个 LLM 提供商的统一抽象层
- AgentRunner 状态管理:InMemory / SQLite / Intelligence 三种 Runner 实现
本教程分析的源码版本为 CopilotKit 74e9568(HEAD at 2026-06-04),部分包版本号为 1.8.2。