连接频道
频道将 Themis 连接到外部服务。所有频道凭据由空间所有者或经理按空间配置。
可用频道
| 频道 | 功能 | 认证 |
|---|---|---|
| GitHub | 审查 PR、检查 CI 状态、浏览代码、创建工单 | GitHub App 安装 |
| Linear | 创建和管理工单、跟踪项目、分类 Bug | 按空间 API 密钥 |
| Sentry | 监控错误、分类警报、更新问题状态 | 按空间 API 令牌 |
| Metabase | 查询数据库、生成图表、分析业务数据 | 按空间 API 密钥 |
| Google Drive | 搜索和阅读共享云端硬盘中的文档 | 按用户 OAuth |
| Google Calendar | 查看和管理日程、查询忙闲状态、外出和专注时间 | 按用户 OAuth |
| Gmail | 读取、搜索、打标签、归档(不支持发送) | 按用户 OAuth |
| Google Analytics | 查询 GA4 属性、自定义报表、实时指标 | 按空间服务账号 |
| Google Maps | 地理编码、地点、路线、距离矩阵、天气、空气质量 | 按空间 API 密钥 |
| Flight Search | 通过 Google Flights 搜索航班和灵活日期 | 无需凭据(按需启用) |
| Microsoft Teams | 在 Teams 频道和私信中与 Themis 对话 | 按空间机器人应用 |
| Telegram | 通过 Telegram 机器人与 Themis 对话、发送语音消息 | 按空间机器人令牌 |
设置频道
- 前往空间设置(侧边栏中的齿轮图标)
- 选择频道
- 选择您要连接的服务
- 输入所需的凭据(API 令牌、密钥)
- 保存 —— Themis 将验证连接
每个频道显示其必填和可选字段,并提示在哪里可以找到它们。凭据以加密方式存储,保存后以遮蔽值显示。
GitHub
Themis 通过 Themis AI Agent GitHub App 进行认证 —— 不再使用个人访问令牌。在频道设置中点击 Install GitHub App;安装完成后,空间会保存 installation_id,令牌按需生成。关于部署级别的注册,请参阅 GitHub App 设置。
机器人别名(可选,用于自我提及过滤):
| 字段 | 用途 |
|---|---|
| Bot Aliases | 应触发 Themis 的额外 GitHub 登录名 —— 在 @提及和 PR 审查者请求中匹配。逗号分隔。App 自带的机器人已包含在内,仅当您还希望其他句柄(例如预发布环境的安装)也能触发智能体时才需要此项。 |
代码生成提交归属于触发用户的 git 身份(在个人资料中设置),GitHub App 作为推送者。
Linear
使用 Linear 设置 > API 中的 API 密钥。Linear MCP 服务器由 Linear 托管 —— 无需本地安装。
Linear 设置:
| 字段 | 用途 |
|---|---|
| Organization Slug | 您的 Linear 组织 slug(例如 my-org)。用于在 PR 描述和收件箱中构建工单 URL。回退到 THEMIS_LINEAR_ORG_SLUG。留空时会默默省略 Linear 链接。 |
| Bot Display Names | 用于标识此机器人的 Linear 显示名称或邮箱片段列表(逗号分隔,例如 Themis,themis@)。用于防止自我回复,以及检测工单何时被分配给机器人。回退到智能体的显示名称。 |
将 Linear 工单分配给匹配任一 Bot Display Names 的用户会触发该工单的代码生成。
Sentry
需要具有项目和问题权限的认证令牌。可选配置组织 slug 以进行范围化访问。
Metabase
需要 Metabase 实例 URL 和 API 密钥(Metabase 管理员 > 设置 > 认证 > API 密钥)。Metabase MCP 服务器必须安装在主机上并位于应用程序的 PATH 中(如需要可通过 METABASE_MCP_COMMAND 覆盖)。
Teams
需要 Bot Framework 应用注册,包含应用 ID、密码和租户 ID。请参阅 Microsoft Teams Bot Framework 文档进行设置。
Telegram
需要从 @BotFather 获取的机器人令牌。Themis 提供按钮来自动设置和验证 Webhook。配置允许的聊天 ID 列表以限制机器人响应的群组。
Google Drive、Google Calendar 和 Gmail
三个 Google Workspace 频道共享同一个按用户 OAuth 流程 —— 每个用户通过个人资料 > 关联帐号连接自己的 Google 帐号。无需空间级凭据;每个频道有自己的权限范围和工具集:
| 频道 | 权限范围 | 工具 |
|---|---|---|
| Google Drive | 只读 | 搜索、列出、读取文件内容、权限、共享链接 |
| Google Calendar | 读取 + 写入 | 列出日历、读取/创建/更新/删除事件、忙闲查询、外出、专注时间 |
| Gmail | 整理(读取 + 标签 + 归档;不可发送) | 搜索、读取邮件、标签管理、归档、删除 |
在空间中启用每个频道,然后让每位用户通过个人资料进行授权。仅当发言者已连接自己的 Google 帐号时,聊天中才能使用对应频道。
Google Analytics
需要 GCP 服务账号 JSON,并在同一项目中启用 Analytics Admin API 和 Analytics Data API。在 GA4 管理界面中,将服务账号邮箱作为查看者授予要查询的属性访问权限。
| 字段 | 用途 |
|---|---|
| Service Account JSON | 服务账号密钥的完整 JSON 内容。加密存储,仅在 MCP 服务器启动时以内容的 SHA 哈希为键写入磁盘。 |
| GCP Project ID(可选) | 设置 MCP 进程的 GOOGLE_CLOUD_PROJECT。 |
提供 GA4 账号发现、属性详情、自定义维度/指标、核心报表和实时报表。
Google Maps
需要启用了 Maps Platform APIs(Places、Geocoding、Directions、Distance Matrix、Elevation、Time Zone、Weather、Air Quality)的 Google Cloud API 密钥。在 GCP 控制台生成密钥并粘贴到频道中。
提供附近搜索 + 文本搜索、地点详情、地理编码(正向/反向/批量)、路线规划、距离矩阵、路径规划、海拔、时区查询、天气和空气质量。高 token 消耗的复合工具默认禁用。
Flight Search
无需凭据 —— MCP 服务器访问 Google Flights 的公开 API。但空间仍须显式启用该频道,否则在不需要的上下文中会浪费 tokens。提供 search_flights(特定日期)和 search_dates(灵活日期日历)。结果默认上限为 20(FLI_MCP_MAX_RESULTS),保持聊天上下文简洁。
Webhooks
要接收实时事件,请在您的外部服务中注册 Webhook URL:
| 服务 | Webhook URL | 事件 |
|---|---|---|
| GitHub | https://yourhost/webhooks/github | Pull Request、工单、评论、推送 |
| Linear | https://yourhost/webhooks/linear | 工单、评论 |
| Sentry | https://yourhost/webhooks/sentry | 问题警报 |
| Teams | https://yourhost/webhooks/teams | 频道消息 |
| Telegram | https://yourhost/webhooks/telegram | 消息、语音笔记 |
Webhook 认证自动处理 —— GitHub 使用 HMAC 签名,Linear 使用 JWT,Telegram 使用签名请求。Themis 通过匹配 Webhook 密钥来解析目标空间。