copilotkit-integrations
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseCopilotKit Integrations
CopilotKit 集成
Live Documentation (MCP)
实时文档(MCP)
This plugin includes an MCP server () that provides and tools for querying live CopilotKit documentation and source code. Useful for looking up framework-specific integration details.
copilotkit-docssearch-docssearch-code- Claude Code: Auto-configured by the plugin's -- no setup needed.
.mcp.json - Codex: Requires manual configuration. See the copilotkit-debug skill for setup instructions.
本插件包含一个MCP服务器(),提供和工具,可用于查询CopilotKit实时文档和源代码,适用于查询框架特定的集成详情。
copilotkit-docssearch-docssearch-code- Claude Code: 由插件的自动配置,无需额外设置。
.mcp.json - Codex: 需要手动配置,查看copilotkit-debug skill获取设置指南。
Overview
概述
CopilotKit connects to external agent frameworks through the AG-UI (Agent-UI) protocol -- a streaming protocol that enables bidirectional communication between a frontend CopilotKit application and a backend agent. Every integration follows the same architectural pattern:
- Agent server -- your agent framework runs as an HTTP server (usually FastAPI/uvicorn for Python, or an Express/Next.js route for JS/TS)
- AG-UI adapter -- a framework-specific adapter translates between the agent's native interface and the AG-UI wire protocol
- CopilotKit runtime -- the Next.js API route creates a that connects to the agent via an AG-UI client class
CopilotRuntime - Frontend -- React components use ,
useAgent,useFrontendTool, anduseRenderToolCallto interact with the agentuseHumanInTheLoop
CopilotKit通过AG-UI (Agent-UI) 协议连接外部Agent框架,这是一种流式协议,支持前端CopilotKit应用与后端Agent之间的双向通信。所有集成都遵循相同的架构模式:
- Agent服务端 -- 你的Agent框架以HTTP服务的形式运行(Python端通常是FastAPI/uvicorn,JS/TS端通常是Express/Next.js路由)
- AG-UI适配器 -- 特定于框架的适配器负责在Agent原生接口和AG-UI传输协议之间做转换
- CopilotKit runtime -- Next.js API路由创建一个实例,通过AG-UI客户端类连接到Agent
CopilotRuntime - 前端 -- React组件使用、
useAgent、useFrontendTool和useRenderToolCall与Agent交互useHumanInTheLoop
Supported Integrations
支持的集成
| Framework | Language | AG-UI Client (route.ts) | AG-UI Server Adapter | Agent Port |
|---|---|---|---|---|
| LangGraph (Python, self-hosted) | Python | | | 8123 |
| LangGraph (Python, LangGraph Platform) | Python | | LangGraph Platform (managed) | varies |
| LangGraph (JS) | TypeScript | | Built into | 8123 |
| CrewAI Flows | Python | | | 8000 |
| CrewAI Crews | Python | | | 8000 |
| PydanticAI | Python | | | 8000 |
| Mastra | TypeScript | | Built into | Next.js dev server |
| Google ADK | Python | | | 8000 |
| LlamaIndex | Python | | | 9000 |
| Agno | Python | | | 8000 |
| Strands | Python | | | 8000 |
| Microsoft Agent Framework (Python) | Python | | | 8000 |
| Microsoft Agent Framework (.NET) | C# | | | 8000 |
| A2A Middleware | Python + TS | | Per-agent (mixed frameworks) | 9000-9002 |
| MCP Apps | TypeScript | | N/A (middleware on BuiltInAgent) | 3108 |
| 框架 | 语言 | AG-UI Client (route.ts) | AG-UI Server Adapter | Agent 端口 |
|---|---|---|---|---|
| LangGraph (Python, 自托管) | Python | | | 8123 |
| LangGraph (Python, LangGraph Platform) | Python | | LangGraph Platform (托管版) | 不固定 |
| LangGraph (JS) | TypeScript | | 内置于 | 8123 |
| CrewAI Flows | Python | | | 8000 |
| CrewAI Crews | Python | | | 8000 |
| PydanticAI | Python | | | 8000 |
| Mastra | TypeScript | | 内置于 | Next.js 开发服务器 |
| Google ADK | Python | | | 8000 |
| LlamaIndex | Python | | | 9000 |
| Agno | Python | | | 8000 |
| Strands | Python | | | 8000 |
| Microsoft Agent Framework (Python) | Python | | | 8000 |
| Microsoft Agent Framework (.NET) | C# | | | 8000 |
| A2A 中间件 | Python + TS | | 各Agent对应实现(混合框架) | 9000-9002 |
| MCP 应用 | TypeScript | 内置 | 无(BuiltInAgent上的中间件) | 3108 |
Decision Tree
决策树
Use this to pick the right integration:
Is your agent written in TypeScript/JavaScript?
YES --> Is it a Mastra agent?
YES --> Use Mastra integration (references/integrations/mastra.md)
NO --> Is it a LangGraph JS agent?
YES --> Use LangGraph JS integration (references/integrations/langgraph.md, JS section)
NO --> Use BuiltInAgent with MCP Apps middleware or HttpAgent
NO (Python or .NET) -->
Which framework?
LangGraph --> references/integrations/langgraph.md
CrewAI --> references/integrations/crewai.md
PydanticAI --> references/integrations/pydantic-ai.md
Google ADK --> references/integrations/adk.md
LlamaIndex --> references/integrations/llamaindex.md
Agno --> references/integrations/agno.md
Strands --> references/integrations/strands.md
MS Agent Fw --> references/integrations/ms-agent-framework.md
Multiple agents (A2A) --> references/integrations/a2a.md使用以下决策树选择合适的集成方案:
Is your agent written in TypeScript/JavaScript?
YES --> Is it a Mastra agent?
YES --> Use Mastra integration (references/integrations/mastra.md)
NO --> Is it a LangGraph JS agent?
YES --> Use LangGraph JS integration (references/integrations/langgraph.md, JS section)
NO --> Use BuiltInAgent with MCP Apps middleware or HttpAgent
NO (Python or .NET) -->
Which framework?
LangGraph --> references/integrations/langgraph.md
CrewAI --> references/integrations/crewai.md
PydanticAI --> references/integrations/pydantic-ai.md
Google ADK --> references/integrations/adk.md
LlamaIndex --> references/integrations/llamaindex.md
Agno --> references/integrations/agno.md
Strands --> references/integrations/strands.md
MS Agent Fw --> references/integrations/ms-agent-framework.md
Multiple agents (A2A) --> references/integrations/a2a.mdCommon AG-UI Protocol Patterns
通用AG-UI协议模式
Every integration shares these patterns on the frontend side.
所有集成在前端侧都遵循以下模式。
CopilotKit Provider (layout.tsx)
CopilotKit Provider (layout.tsx)
tsx
import { CopilotKitProvider } from "@copilotkit/react";
import "@copilotkit/react/styles.css";
export default function RootLayout({ children }) {
return (
<CopilotKitProvider runtimeUrl="/api/copilotkit" agent="my_agent_name">
{children}
</CopilotKitProvider>
);
}The prop must match the key used in .
agentCopilotRuntime({ agents: { my_agent_name: ... } })tsx
import { CopilotKitProvider } from "@copilotkit/react";
import "@copilotkit/react/styles.css";
export default function RootLayout({ children }) {
return (
<CopilotKitProvider runtimeUrl="/api/copilotkit" agent="my_agent_name">
{children}
</CopilotKitProvider>
);
}agentCopilotRuntime({ agents: { my_agent_name: ... } })API Route Pattern (route.ts)
API路由模式 (route.ts)
All integrations create a Next.js API route at :
src/app/api/copilotkit/route.tstsx
import {
CopilotRuntime,
ExperimentalEmptyAdapter,
copilotRuntimeNextJSAppRouterEndpoint,
} from "@copilotkit/runtime";
import { NextRequest } from "next/server";
// Import the appropriate agent class for your framework
const runtime = new CopilotRuntime({
agents: {
my_agent: new SomeAgentClass({ url: "http://localhost:8000/" }),
},
});
export const POST = async (req: NextRequest) => {
const { handleRequest } = copilotRuntimeNextJSAppRouterEndpoint({
runtime,
serviceAdapter: new ExperimentalEmptyAdapter(),
endpoint: "/api/copilotkit",
});
return handleRequest(req);
};所有集成都会在路径下创建一个Next.js API路由:
src/app/api/copilotkit/route.tstsx
import {
CopilotRuntime,
ExperimentalEmptyAdapter,
copilotRuntimeNextJSAppRouterEndpoint,
} from "@copilotkit/runtime";
import { NextRequest } from "next/server";
// 为你的框架导入对应的agent类
const runtime = new CopilotRuntime({
agents: {
my_agent: new SomeAgentClass({ url: "http://localhost:8000/" }),
},
});
export const POST = async (req: NextRequest) => {
const { handleRequest } = copilotRuntimeNextJSAppRouterEndpoint({
runtime,
serviceAdapter: new ExperimentalEmptyAdapter(),
endpoint: "/api/copilotkit",
});
return handleRequest(req);
};Shared State (useAgent)
共享状态 (useAgent)
tsx
const { state, setState } = useAgent<{ proverbs: string[] }>({
name: "my_agent",
initialState: { proverbs: [] },
});tsx
const { state, setState } = useAgent<{ proverbs: string[] }>({
name: "my_agent",
initialState: { proverbs: [] },
});Frontend Tools (useFrontendTool)
前端工具 (useFrontendTool)
tsx
useFrontendTool({
name: "setThemeColor",
parameters: [
{ name: "themeColor", description: "Hex color value", required: true },
],
handler({ themeColor }) {
setThemeColor(themeColor);
},
});tsx
useFrontendTool({
name: "setThemeColor",
parameters: [
{ name: "themeColor", description: "Hex color value", required: true },
],
handler({ themeColor }) {
setThemeColor(themeColor);
},
});Generative UI (useRenderToolCall)
生成式UI (useRenderToolCall)
tsx
useRenderToolCall({
name: "get_weather",
description: "Get weather for a location.",
parameters: [{ name: "location", type: "string", required: true }],
render: ({ args }) => <WeatherCard location={args.location} />,
}, []);tsx
useRenderToolCall({
name: "get_weather",
description: "Get weather for a location.",
parameters: [{ name: "location", type: "string", required: true }],
render: ({ args }) => <WeatherCard location={args.location} />,
}, []);Human in the Loop (useHumanInTheLoop)
人在回路 (useHumanInTheLoop)
tsx
useHumanInTheLoop({
name: "go_to_moon",
description: "Go to the moon on request.",
render: ({ respond, status }) => (
<MoonCard status={status} respond={respond} />
),
}, []);tsx
useHumanInTheLoop({
name: "go_to_moon",
description: "Go to the moon on request.",
render: ({ respond, status }) => (
<MoonCard status={status} respond={respond} />
),
}, []);Agent-Side State Management
Agent侧状态管理
On the agent side, shared state is managed differently per framework, but the protocol is the same -- agents emit events to update the frontend. See each integration guide for framework-specific patterns.
STATE_SNAPSHOT在Agent侧,共享状态的管理方式因框架而异,但协议是统一的——Agent会发出事件来更新前端。查看各集成指南获取框架特定的实现模式。
STATE_SNAPSHOTKey Packages
核心包
Frontend (all integrations):
- -- hooks (
@copilotkit/react,useAgent,useFrontendTool,useRenderToolCall) and UI components (useHumanInTheLoop,CopilotSidebar)CopilotPopup - -- server runtime (
@copilotkit/runtime,CopilotRuntime)ExperimentalEmptyAdapter
AG-UI client classes (choose one per integration):
- --
@copilotkit/runtime/langgraph,LangGraphAgentLangGraphHttpAgent - --
@ag-ui/client(generic, works with any AG-UI server)HttpAgent - --
@ag-ui/crewaiCrewAIAgent - --
@ag-ui/mastraMastraAgent - --
@ag-ui/llamaindexLlamaIndexAgent - --
@ag-ui/a2a-middlewareA2AMiddlewareAgent - --
@ag-ui/mcp-apps-middlewareMCPAppsMiddleware
前端(所有集成通用):
- -- 钩子函数(
@copilotkit/react、useAgent、useFrontendTool、useRenderToolCall)和UI组件(useHumanInTheLoop、CopilotSidebar)CopilotPopup - -- 服务端runtime(
@copilotkit/runtime、CopilotRuntime)ExperimentalEmptyAdapter
AG-UI客户端类(每个集成选一个):
- --
@copilotkit/runtime/langgraph、LangGraphAgentLangGraphHttpAgent - --
@ag-ui/client(通用,支持任意AG-UI服务端)HttpAgent - --
@ag-ui/crewaiCrewAIAgent - --
@ag-ui/mastraMastraAgent - --
@ag-ui/llamaindexLlamaIndexAgent - --
@ag-ui/a2a-middlewareA2AMiddlewareAgent - --
@ag-ui/mcp-apps-middlewareMCPAppsMiddleware