为编码 agent 打造的 Slack bot 可以把 Slack 消息转化为在你机器上运行的 Claude Code 或 Codex 的请求,并将结果直接回复在 thread 中。muti 为每个 agent 提供拥有独立名字的专属 bot。工作区里的成员只需私聊它或在频道中 @ 它,这条消息就是下发的任务。如果发起者不是该 agent 的主人,请求会挂起等待,由主人在自己的私聊中通过按钮进行审批。无论是谁发起的,push、破坏性删除、消耗额度以及凭据访问操作都绝不会自动执行。
本文将解释该连接器的工作原理、“Allow always”究竟保存了什么,以及为什么将 Slack 视为不可信输入才是关键所在。
大多数 bridge 忽略的问题
常见的桥接工具通常是保存一个 bot token,监听 @ 消息,然后将文本直接 pipe 到本地 CLI。这样确实能跑通,但存在三个问题:频道成员资格直接变成了权限模型、没有任何人对高风险操作进行审批、每个 tool 调用都发一条消息导致进度刷屏。这些并不是 Slack 本身的问题,而是恰好在 Slack 中暴露出来的权限管理问题。
频道 thread 显示请求及其状态;审批按钮位于主人的私聊中;agent 在主人的机器上运行。
每个 agent 一个独立 bot
你可以使用 muti 为该 agent 生成的 manifest 来创建 Slack app,因此 bot 会带有该 agent 的名称以及专属的事件 URL。无需额外绑定,也无需学习任何命令:
- 私聊 bot,输入的文本即是一项任务。该私聊会变成一个由你和 agent 主人共享的房间。
- 在频道中 @ 它,该频道在首次调用时就会变成 muti 中的群组房间。bot 会在 thread 中回复。
- 附加文件,它们会作为房间附件传入,agent 可以直接读取,体验与网页上传一致。
Slack 用户会通过 Slack 中登记的邮箱映射为 muti 用户,该邮箱已由 Slack 在主人自己的工作区内完成验证。如果 Slack 隐藏了邮箱,bot 会发送一个 6 位数的绑定码,在网页上兑换一次即可。无论哪种方式,权限都绑定在账户上,而不是显示名称上。
与 Web 端完全一致的关卡
每个请求都会经过 Web 端使用的同一套把关机制。主人自己发送的消息会立即运行。其他人的消息则必须等待主人批准,除非主人此前已为该 agent 对其设置了永久允许。状态会实时更新在 thread 中:已接受并附带请求 ID、等待中、运行中附带 tool 调用摘要、完成并展示结果。整个过程是一张就地更新的卡片,而不是每个步骤刷一条消息。
审批按钮,以及“always”究竟意味着什么
当收到来自他人的请求,或者运行过程中遇到了需要人工介入的 tool 调用时,主人会在私聊中收到一张带有三个按钮的卡片:Allow、Allow always、Deny。
Allow 仅针对当次调用生效。Allow always 会为该 agent 保存一条与该调用范围完全一致的精准规则:WebFetch 仅限该域名、Bash 仅限该命令前缀、按名称指定的特定技能,或是特定的只读工具。后续命中的调用将由 muti 直接放行,无需再次弹出 prompt。这些规则会列在 agent 的设置面板中,随时可以撤销(Revoke)。
属于危险类别的调用永远没有资格生成规则,也永远无法匹配规则:push 到共享分支、破坏性删除、提权、发布与部署,以及读取或写入凭据路径。这类操作每次都必须单独确认,仅提供 Allow 和 Deny 选项。这就是该连接器对必须始终请示的四种操作的具体实现。未响应的审批与请求一样,会在 24 小时后过期。
频道里能看到什么
请求文本、状态与 ID;tool 调用摘要;diff 路径与代码行数;命令输出的尾部内容;生成的文件与链接。绝对不会展示的内容:环境变量、密钥文件、工作区树,或来自其他房间的任何信息。Slack token 均在 muti 中加密存储;主人的机器上不保留任何与 Slack 相关的信息,只需保持纯出站方向的 daemon 连接。详见 daemon 会上传什么。
安装配置
- 在控制台中,为你想要公开的 agent 打开 Slack 选项,利用生成的 manifest 创建 Slack app。如果需要,可以上传 agent 的头像作为应用图标;配置向导会为你生成好。
- 粘贴来自应用设置中的两串字符串。muti 会调用一次 Slack,通过邮箱找到你,并将你绑定为主人,审批按钮即可立即生效。
- 将应用安装到你的工作区。直接私聊该 bot,或将其邀请进频道并 @ 它。
- 在私聊中批准来自队友的第一个请求。只对范围狭窄、日常常规的调用使用 Allow always;高风险操作请务必保留每次确认。
常见问题
这个 bot 需要 Slack 管理员权限吗? 将应用安装到工作区通常需要一次管理员审批。该应用是你使用 muti 的 manifest 自行创建的,因此没有第三方应用会拿到你的工作区 token。
频道成员可以自行审批吗? 不能。审批权仅属于 agent 的主人,且审批消息只发送至主人的私聊中。频道成员可以执行取消操作或补充上下文。
飞书、Lark 和钉钉的支持情况如何? Feishu/Lark 紧随其后,采用相同的房间和审批模型;详见飞书集成设计方案。钉钉会在之后推出。
这和 Claude Code Dispatch 是一回事吗? Dispatch 是将你自己的 Telegram 消息中继到你自己的会话中。而本连接器面向的是团队中的其他人,并配备了审批流;详见 Dispatch 与房间的对比。
房间负责承载权限模型;Slack 只是通向它的又一扇门。为你的 agent 创建一个房间]。
发布于 · 更新于