- 一个现成的聊天运行时,而不是自己连接
stream.messages - 一个自定义服务器端点,可以在部署的图旁边添加特定于提供商的行为
- 从受限组件注册表渲染的结构化生成式 UI
有关 CopilotKit 特定的 API、UI 模式和运行时配置,请参阅
CopilotKit 文档。
工作原理
从高层次来看,CopilotKit 位于您的 React 应用和 LangGraph 部署之间。前端将对话状态发送到与图 API 一起挂载的自定义/api/copilotkit 路由,该路由将请求转发给 LangGraph,响应返回时包含助手消息以及您的组件注册表可以渲染的任何结构化 UI 载荷。
- 像往常一样部署图,使用 LangSmith 或使用 LangGraph 开发服务器。
- 使用 HTTP 应用扩展部署,在图 API 旁边挂载一个 CopilotKit 路由。
- 将前端包装在
CopilotKit中,并将其指向该自定义运行时 URL。 - 注册动态 UI 组件,并在渲染时将助手响应解析为这些组件。
安装
对于后端端点:使用自定义端点扩展 LangGraph 部署
关键思想是 LangGraph 部署不仅提供图服务。它还可以加载一个 HTTP 应用,这使您可以在部署本身旁边挂载额外的路由。 在langgraph.json 中,将 http.app 指向您的自定义应用入口点:
FastAPI 应用,并通过 CopilotKit 的 AG-UI 桥接暴露 LangGraph 代理:
main.py
useAgentContext(...) 中的 output_schema 转发到模型的结构化输出配置中。
src/middleware.py
- LangGraph 仍然拥有图执行和持久化
- CopilotKit 拥有面向聊天的运行时契约
- 您的自定义端点将它们粘合在一个部署内
构建前端应用
在前端,将您的应用包装在CopilotKit 中,并将其指向自定义运行时 URL:
runtimeUrl="/api/copilotkit"将聊天发送到您的自定义后端路由,而不是直接发送到原始的 LangGraph APIuseAgentContext(...)将 UI 模式发送给代理,以便模型知道它应该产生什么结构化输出格式
注册动态组件
组件注册表位于useChatKit() 中。这是您定义代理允许发出的组件集的地方,例如卡片、行、列、图表、代码块和按钮。
将助手消息渲染为动态 UI
一旦助手响应到达,自定义消息渲染器决定如何显示它。在此示例中:- 助手消息根据 UI 套件模式被解析为结构化 JSON
- 有效的结构化输出被渲染为真实的 React 组件
- 用户消息被渲染为普通的聊天气泡
- CopilotKit 处理聊天状态和传输
- 自定义渲染器决定助手载荷如何变成 UI
- Hashbrown 将经过验证的结构化数据转换为具体的 React 元素
最佳实践
- 保持自定义端点精简: 用它来将 CopilotKit 适配到您的图部署,而不是复制图内部已有的业务逻辑
- 显式发送模式:
useAgentContext应在每次页面挂载时描述 UI 契约 - 注册受限的组件集: 仅暴露您实际希望模型使用的组件和 props
- 将渲染视为解析步骤: 在渲染之前,根据您的模式解析助手内容
- 保持用户消息简单: 只有助手消息需要结构化渲染器;用户消息可以保持为普通的聊天气泡
将这些文档连接到 Claude、VSCode 等,通过 MCP 获取实时答案。

