CopilotKit/OpenTag
OpenTag: The Channels SDK starter application, a self-hosted AI on-call triage bot for Slack and Microsoft Teams, built with AG-UI and LangGraph. Fork it and ship your own.
OpenTag – 面向 Slack 和 Teams 的自托管 AI 知识工作助手
是什么 – OpenTag 是一个开箱即用的开源「知识工作代理」。它通过 CopilotKit 的 Channels SDK 将基于 LangGraph 的 Python 代理(由大语言模型驱动)连接到 Slack 和 Microsoft Teams。该仓库包含完整的 Node + Python 堆栈、几个可在 Slack/Teams 内部渲染的 UI 组件,以及适用于 Railway 或 AWS 的部署脚本。
核心组件
| 组件 | 作用 |
|---|---|
agent/ (Python) |
使用 LangGraph 构建的深度代理,可与 OpenAI 通信、执行网络研究,并调用可选工具(GitHub、Linear、Notion 等) |
app/ (Node/TS) |
CopilotKit 运行时,托管一个管理型 Channel,将 AG-UI 协议转换为 Slack/Teams 格式,并渲染图表、表格和审批卡片 |
| Channels SDK | 抽象化 Slack/Teams 适配器的库,处理消息传递、状态管理和重连 |
| 部署配置 | Railway(.railway/railway.ts)和 AWS ECS-Fargate 设置,以及 Docker 镜像 opentag-agent 和 opentag-runtime |
工作原理
- 创建 Channel – 运行 CopilotKit CLI(
channels setup或channels add)注册一个由 CopilotKit Intelligence 管理的 Channel。这将创建一个指向 CopilotKit 托管请求 URL 的 Slack 应用清单。 - 启动运行时 – 执行
pnpm dev启动 Node 运行时和 Python LangGraph 代理。运行时会打开一个出站 WebSocket 连接到 CopilotKit Intelligence;Slack 消息将通过此连接转发。 - 用户交互 – 在 Slack/Teams 中,用户提及
@OpenTag或使用斜杠命令。运行时通过 AG-UI 协议将消息转发给 Python 代理。 - 代理响应 – 代理可能:
- 生成纯文本回答,
- 从上传的 CSV 生成原生 Slack 图表,
- 创建 Linear 问题或 Notion 页面(附带确认卡片),
- 并行执行网络研究并返回带引用来源的表格。
- 渲染 – Node 端将结果格式化为 Slack 块或 Teams 卡片,显示图表、表格或交互式审批按钮。
核心功能
- 原生 Slack UI – 图表、表格和交互式卡片可直接在对话中显示。
- 写入确认 – 修改外部工具(Linear、Notion)的操作会暂停,等待用户确认按钮后才继续。
- 工具集成 – 可选连接 GitHub、PostHog、Linear、Notion 和 Composio 工具包。
- 自托管 – 您运行 Python 代理和 Node 运行时;CopilotKit 服务器上除管理 Channel 的基础架构外,不存储任何代码。
- 可部署 – 一键部署至 Railway,或使用 AWS Fargate 配方;Docker 镜像已发布至 GitHub Container Registry。
快速上手
- 安装 Node 22+、pnpm、Python 3.12 和
uv。 - 运行
pnpm install。 - 使用 CopilotKit CLI 创建管理 Channel(或使用您自己的 Channels SDK 运行器)。
- 将
.env.example复制为.env,并填写您的 OpenAI 密钥、CopilotKit API 密钥和 Slack 凭据。 - 执行
pnpm dev启动两个服务;在 Slack 中使用/invite @OpenTag邀请机器人。
自定义 – 多数方面仅需修改单个文件或目录:
- 人物设定与系统提示 →
agent/prompts/system.py - 代理逻辑 →
agent/agent.py - 工具 →
agent/tools.py - UI 组件 →
app/components/ - Channel 触发器 →
app/channel.tsx - 部署拓扑 →
.railway/railway.ts
适用人群 – 希望在本地部署 AI 助手以自动化日常知识工作(如汇总电子表格、获取研究资料、创建工单)但又希望数据和凭证完全由自己掌控的团队。
相关
- 项目
- 项目
- Dispatch
- 项目
- 项目