将 Slack 桥接到你的工作区
你将构建什么
标题为“你将构建什么”的部分学完本教程,你将拥有:
- 一个为你的工作区创建的 Slack 应用,权限和事件都已设置妥当
- Slack 与 Control Center 之间的一条实时连接
- 你自己的 Slack 账户已关联到你的 Control Center 用户
- 一个在 Slack 话题中回答你的智能体,以及一张由斜杠命令登记的工单
先决条件:
- 你的第一个工作区 与 派发你的第一个智能体 已完成——没有智能体的工作区能收到 Slack 消息,却没有人来回答它
- 工作区的 CEO 智能体已在 设置 → 工作区 → 智能体中设置好适配器和模型。桥接唤醒的是 CEO,而不是你在上一个教程中配置的智能体;没有适配器的智能体会在内置循环上运行,并使用 Anthropic 的默认模型。
- 在 Control Center 工作区中拥有
owner或admin角色(连接聊天应用代表的是整个工作区) - 在你的 Slack 工作区中创建和安装应用的权限
这里不需要公网地址、隧道或入站端口。Control Center 会通过 Socket Mode 向 Slack 主动外连,因此这在 NAT 之后的笔记本电脑上也能用。
第 1 步:获取 Slack 应用配置 token
标题为“第 1 步:获取 Slack 应用配置 token”的部分这是唯一需要你手动获取的密钥。有了它,Control Center 才能替你创建、并在之后编辑这个应用。
- 打开 api.slack.com/apps
- 滚动到页面底部的应用配置 token 部分
- 为你的 Slack 工作区生成一对 token
- 复制 refresh token——它以
xoxe-开头
第 2 步:让 Control Center 创建应用
标题为“第 2 步:让 Control Center 创建应用”的部分- 在 Control Center 中,前往 设置 → 工作区 → 通用,找到 聊天桥接 卡片
- 在 Slack 区块上,点击 为我创建应用
- 粘贴应用配置 token
- 查看机器人将呈现的样子:
- 应用名称:Slack 中该应用的显示名,例如
Control Center · Acme - 机器人名称:成员在
@之后输入的内容,例如control-center - 简短描述与机器人对自己能力的介绍
- 斜杠命令:默认为
cc,因此命令是/cc - 私信:保持开启,成员就能私信机器人
- 应用名称:Slack 中该应用的显示名,例如
- 点击 创建应用
Control Center 会组装出完整的应用定义——开启 Socket Mode、机器人所需的权限范围和事件订阅、斜杠命令、Messages 标签页——并在 Slack 中创建它。
第 3 步:完成只有 Slack 能做的两个步骤
标题为“第 3 步:完成只有 Slack 能做的两个步骤”的部分Slack 没有用于生成应用级 token 或安装应用的 API,所以对话框会把这两件事都以链接的形式交给你:
- 生成应用级 token——打开 Basic Information → App-Level Tokens。创建一个具有
connections:write权限范围的 token 并复制它。它以xapp-开头 - 安装应用——打开 Install App。安装到你的工作区,然后复制 Bot User OAuth Token。它以
xoxb-开头
把这两个值留到下一步使用。
第 4 步:连接
标题为“第 4 步:连接”的部分- 回到对话框中,点击 粘贴凭据
- 输入 机器人 token(
xoxb-…)和 应用级 token(xapp-…) - 将 应用配置 token 留空——第 1 步中的那个已经存好了(Slack 轮换了它,Control Center 保存了新的那个)
- 点击 连接
Control Center 会先向 Slack 验证机器人 token,然后才存储任何内容,接着打开套接字。这一行现在会显示机器人的名称和你的 Slack 工作区名称,并带有一个 已连接 标签。
第 5 步:关联你自己的 Slack 账户
标题为“第 5 步:关联你自己的 Slack 账户”的部分连接让机器人可以被触达;关联则让机器人能认出_你_。在你的 Slack 身份被关联之前,机器人不会对你的消息采取行动——它绝不会把消息归属到安装应用的人身上。
关联是个人行为,因此它与整个工作区共享的连接位于不同的页面上。
- 前往 设置 → 工作区 → 个人资料与身份,找到 已关联的聊天账户 卡片
- 点击 关联我的 Slack 账户
- 复制它显示的命令,例如
/cc link K7M2QP - 在 Slack 中,通过私信把该命令发送给机器人
- 机器人会回答“已关联到 …”
该代码只能使用一次,并在 15 分钟后过期。如果你的 Slack 邮箱与某个已经是此工作区成员的 Control Center 用户匹配,那么你第一次与桥接对话时它就会自动完成关联,你可以跳过这一步。
如果在这之前你就提及了机器人,它会拒绝并说明原因。三种拒绝各不相同,因此请看清你遇到的是哪一种:
- 未关联的发送者:机器人会告诉你如何关联。请回到这一步。
- 已关联,但不是此工作区的成员:请让管理员邀请你。
- 角色为只读的成员(
viewer或guest):机器人不会代表你启动工作。
第 6 步:让智能体着手某件事
标题为“第 6 步:让智能体着手某件事”的部分-
在 Slack 中,把机器人邀请进某个频道:
/invite @control-center -
用一个真实请求提及它:
@control-center 总结一下 api 仓库上所有打开的 PR
桥接会:
- 为该 Slack 话题创建一个 Control Center 空间,以 Slack 频道名和你的请求命名
- 唤醒工作区的入口智能体(有 CEO 智能体时就是它,否则就是第一个智能体)
- 在智能体的回答被写出的同时,把它流式传回该 Slack 话题
在同一个 Slack 话题中回复即可继续——无需再次提及,因为该 Slack 话题现在已被桥接。你也可以不用频道,改为私信机器人;每个私信会话都会驱动它自己的 Control Center 空间,并带有一个标题,以及在智能体工作期间显示“正在思考…”的状态行。
流式输出需要 Slack 的流式 API,而并非每个套餐都有。如果你的应用被它拒绝,桥接会在这条连接的整个生命周期内不再尝试,改为把每条回复作为单条消息发送,并且 聊天桥接 卡片会显示“此 Slack 应用未开启实时流式传输——回复会作为一条消息送达。”其他一切照旧。
第 7 步:不离开 Slack 就能登记工单
标题为“第 7 步:不离开 Slack 就能登记工单”的部分/cc ticket Fix the flaky login test | It fails on CI about once a day.机器人会用它所登记工单的工单键作答。该工单是一张普通的本地 Control Center 工单,由你报告,随时可以分配给某个智能体。/cc help 会列出该命令能做的一切。
你从 Control Center 创建了一个 Slack 应用,通过出站套接字连接了它,把你的 Slack 身份关联到了你的 Control Center 用户,并从一条 Slack 话题驱动了一个智能体。Slack 中发生的一切在 Control Center 里同样存在:Slack 话题是一个空间,回复是一份转录,工单就是工单。
下一步: 设置 Slack 集成 介绍了手动操作路径、轮换 token 和故障排查。要了解其背后的模型,请阅读 聊天桥接。