Skip to main content

概述

Slack 集成把一个工作空间里的智能体接到您自己的 Slack 应用上。接入完成后,团队成员不必打开控制台:
  • 私聊机器人,或在频道里 @ 它,立刻拿到基于团队记忆库的回答
  • 回答流式分段呈现:先显示「思考中…」占位,随后内容逐段刷新,无需等待完整回答生成
  • 发一份文档或一张截图给它,就能接着追问里面的内容
  • 每次问答都会沉淀为记忆,同事再问时不必有人重复解释
机器人的回答基于您指定的项目记忆,而非通用模型的常识性内容。
Slack 侧的配置无需平台审核,通常十分钟内即可完成。修改权限或事件订阅后,需 Reinstall(重新安装到 workspace)方可生效。

开始之前

MemoryLake 侧

  • 团队的 owneradmin 角色(member 既看不到也改不了集成)
  • 一个工作空间,里面至少有一个项目
  • 至少一个已关联到该工作空间的智能体(在工作空间的「智能体」标签页关联)

Slack 侧

  • 能在目标 workspace 创建应用的账号(多数 workspace 默认允许所有成员创建;若贵司启用了应用安装审批,安装环节需管理员通过)
  • 一个用于测试的频道(可选,但建议)
如果工作空间页里没有「IM」标签页,说明该部署没有启用 IM 渠道功能,或者您的角色是 member。请联系团队管理员确认。

第一部分:在 Slack 创建应用

这部分全部在 api.slack.com/apps 完成,目的是获取两项凭证:Bot User OAuth Tokenxoxb- 开头)和 App-Level Tokenxapp- 开头)。 推荐用 **manifest(应用清单)**创建:把下面一段 JSON 粘贴进去,权限、事件订阅、私聊入口、Socket Mode 一次配齐,不会漏项。
1

用 manifest 创建应用

打开 api.slack.com/appsCreate New App → 选择 From a manifestContinue → 选择要安装到的 workspace → 把下面整段 JSON 粘贴进配置框 → 核对权限与事件列表 → Create
两个名字的规则不同:display_information.name展示名,同事看到的就是它,可用中文,建议改成团队易于辨认的名称;features.bot_user.display_name 是 @ 提及用的机器人用户名,只接受小写字母、数字、短横线与下划线——填中文会报 “The display_name cannot be converted to a username”。manifest 各项对照(核对或手动配置时用):
users:read 严格来说可选:不配则控制台「记忆身份」里每位成员显示为 U08J5K7UXH6 形式的 id,机器人也无法回答「我是谁」,其余功能不受影响。manifest 里已包含,建议保留。
2

生成 App-Level Token

manifest 覆盖不到 App-Level Token,这一步要手动做:应用创建完成后进入 Basic Information → 拉到 App-Level TokensGenerate Token and Scopes → 填写名称、scope 选择 connections:write → 生成后复制这串 xapp- 开头的值。之后可随时回到同一位置再次查看该 token。
3

安装到 workspace,复制 Bot User OAuth Token

左侧 OAuth & Permissions(或 Basic Information 页的 Install your app)→ Install to Workspace → 授权。安装完成后,OAuth & Permissions 页顶部会出现 Bot User OAuth Tokenxoxb- 开头),复制它。
后续每次改动 scope 或事件订阅(无论改 manifest 还是手动点),都需回到此处执行 Reinstall to Workspace,否则新配置不生效。没有审核环节,操作后立即生效。

第二部分:在控制台创建集成

1

打开工作空间的「IM」标签页

MemoryLake 控制台 里进入 MemoryLake → 工作空间,打开目标工作空间,切到 IM 标签页,点 开始接入在「选择要接入的平台」里选 Slack
2

第一步:填写 Slack 应用凭证

填完点 下一步:智能体与记忆
Slack 集成不需要填任何应用 ID——身份(workspace + 机器人)由服务端校验 token 时自动推导,创建后显示在集成卡片的「应用标识」上。同一个 Slack 应用安装在同一个 workspace 里只能接一条集成;装到另一个 workspace 后是另一个身份,可以另建一条。如果发生占用冲突,表单顶部会直接提示。
3

第二步:选智能体与记忆范围

读写项目是一次授权决策。 所有能用这个机器人的人,都在往这个项目里写记忆,也都能读到里面已有的内容。选一个本来就打算团队共享的项目,不要选放着敏感资料的那个。
4

创建并连接

创建并连接。集成创建后默认就是启用状态,服务端会先校验 Bot User OAuth Token,再建立与 Slack 的长连接。
集成卡片上的状态徽标显示已连接,「应用标识」显示 T…:U… 形式的复合身份。
如果创建被拒并提示「Bot User OAuth Token 校验失败」,说明 token 复制有误或已被吊销;如果状态变成「凭证无效,请检查 Bot User OAuth Token / App-Level Token」,回到编辑弹窗核对两个值。

第三部分:验证并开始使用

私聊

成员在 Slack 左侧 Apps 里找到这个应用,直接发问题、不用 @。 回答先出现「思考中…」占位,随后内容分段刷新。消息带 (edited) 标记是正常的——流式更新就是通过编辑同一条消息实现的。

频道(群聊)

先把机器人加进频道(在频道里输入 /invite @机器人名,或 @ 它时按提示邀请),之后 @ 它 + 问题 回答会落在您那条提问消息的线程里——频道主时间线保持整洁,上下文也随线程延续。机器人在某个频道首次被 @ 时,会额外附一句能力说明,之后不再重复。
线程里追问也要 @ 它。 这是 Slack 平台的机制:不 @ 的消息不会投递给机器人,它完全收不到。这也意味着机器人看不到频道里的其他聊天内容。

发文档和截图给它

  • 私聊:直接把文件或图片发给机器人,然后追问内容
  • 频道把文件和 @ 放在同一条消息里发出(选好文件、输入「@机器人 + 一句话」一起发)
频道里单独发送文件(不 @)机器人是收不到的——Slack 不会投递这条消息。请确保文件与 @ 在同一条消息中。

会话与上下文

  • 私聊是连续会话:不因间隔时间而中断,隔夜再问仍衔接上下文。要重新开始,发送 new(不含斜杠,整条消息仅此一词)
  • 频道按线程:一个线程就是一个话题,线程内的追问一直接着上下文,不设过期时间——隔天回到同一线程接着问也连得上。想换话题,开一条新线程(在频道里重新 @ 它)即可
  • 线程内每位成员的上下文相互独立,多人在同一线程 @ 它也不会相互混淆
  • 私聊里发过的文件不会过期,一直跟着这个会话;发送 new 会一并清掉。频道里发的文件在该线程里约 30 分钟内可继续追问
为什么是 new 而不是 /new Slack 客户端会把所有 / 开头的输入当作斜杠命令拦截,根本不会作为消息发出去。所以在 Slack 里重置会话直接发 new 这个词(大小写均可,整条消息只有它)。频道线程里则是 @机器人 new

谁是谁

每个 Slack 用户在 MemoryLake 里对应一个独立的记忆身份,个人相关的记忆归到各自身上;写入项目里的团队记忆则是所有人共享的。 配置 users:read 权限后,记忆身份会显示真实姓名,机器人也能回答「我是谁」。

机器人暂时处理不了的

发送语音或视频消息时,会得到一句明确的提示,不会静默无反应。来自 Slack Connect 共享频道的外部组织用户会被静默忽略——他们的提问不消耗您的额度,也不会写进您的记忆。

管理已有集成

集成的身份(安装的 workspace + 机器人)创建后不可修改。 编辑时贴入另一个 workspace 的 token 会被拒绝。要换成别的 workspace,只能删掉重建。

常见问题

App Home 的 Messages Tab 未完整开启。 到应用配置的 App Home → Show Tabs,打开 Messages Tab 并勾选 “Allow users to send Slash commands and messages from the messages tab”,两项都需开启。修改后无需 Reinstall,刷新 Slack 客户端即可。
按顺序检查:
  • 机器人加进这个频道了吗/invite @机器人名
  • 事件订阅里有 app_mention,加过之后 Reinstall 了吗
  • 是在线程里没 @ 吗:线程内追问也必须 @,不 @ 的消息平台不投递
  • 集成开关是否被停用(停用时机器人会回「机器人当前不可用」)
Slack 把 / 开头的输入拦截成了斜杠命令,这条消息根本没发出去。在 Slack 里重置会话不带斜杠:私聊直接发 new,频道线程里发 @机器人 new
Slack 的 scope 和事件改动必须 Reinstall to Workspace 才生效:应用配置 → OAuth & Permissions → Reinstall to Workspace。没有审核环节,操作后立即生效。
需要 users:read 权限,添加后 Reinstall
已经建出来的记忆身份不会自动改名。 姓名只在这个人第一次与机器人对话时写入一次,补权限只对新用户生效。想让某个人改过来,在「记忆身份」里删掉他那条,他下次发消息时会重新建立。
如果订阅了 tokens_revokedapp_uninstalled 事件,集成状态会在几秒内变为异常,原因写着「Bot User OAuth Token 已失效…」。没订阅的话,状态可能要等几小时(连接例行重建时)才变红——这就是为什么创建应用时强调四个事件都要订。注意:吊销 Bot User OAuth Token 等于卸载应用,机器人会从 workspace 里消失。恢复方式:应用配置 → OAuth & Permissions → Reinstall to Workspace 生成新 token,然后回控制台编辑集成、只更换 Bot User OAuth Token 即可(App-Level Token 不受影响,不用动)。
Slack 侧拒绝了我们的连接,通常为以下三种情况:
  • 某个 token 复制时多了空格、少了字符
  • Bot User OAuth Token 被吊销 / 应用被卸载后重装过(重装会生成新的 token,控制台里还是旧值)
  • App-Level Token 被删除
处理方式:编辑这条集成,点对应字段旁的「更换」填入新值,保存会立刻重连。
这是 Slack 侧的实现边界:我们通过编辑同一条消息来流式更新(所以带 (edited) 标记),Slack 对消息编辑没有打字机动画,且对更新频率有限流。回答前 12 秒每 0.5 秒刷新一段,之后放缓——内容完整性不受影响。
两种当前不支持的应用形态:
  • Token rotationxoxe 开头的 token):轮换型 token 每 12 小时过期,与集成的静态凭证模型不兼容。在应用配置里关闭 token rotation 后重新安装取 token。
  • Enterprise Grid 的 org-wide 安装:请按单个 workspace 安装(Install to Workspace 而不是 org-wide),每个 workspace 各建一条集成。
按「安装」算:同一个应用装在同一个 Slack workspace 只能被一条集成占用;把它安装到另一个 Slack workspace 之后是另一个身份,可以在任意 MemoryLake 工作空间再建一条集成。需要一个机器人服务多个项目的记忆,正确做法是把这些项目作为只读项目加进同一条集成。
访问范围完全由 Slack 侧决定,我们刻意不做第二套白名单:
  • 私聊:应用装在 workspace 里,成员就能在 Apps 里找到它
  • 频道:机器人被拉进哪个频道,该频道成员就能 @ 它
  • Slack Connect 外部用户:始终被忽略,不消耗额度、不写记忆
分两层看:
  • 对话上下文是按人隔离的。同一线程里 A 的提问不会出现在 B 的对话里。
  • 项目记忆是共享的。 沉淀进读写项目的记忆,所有能用这个机器人的人都能检索到——这正是这个功能的价值,也是为什么创建时要把读写项目当成一次授权决策来选。
两句话对应两件不同的事:
  • 「当前账户额度已用尽,请联系管理员升级套餐后再试。」 团队的套餐额度耗尽了。不充值不会自动恢复
  • 「当前请求较多,正在排队,请稍后再发一次。」 是我们这边一时繁忙,稍后重发即可。
会一并清除这条集成的会话记录、Slack 用户与记忆身份的映射关系,以及会话里挂着的附件引用,且不可恢复。已经沉淀进项目的记忆和已入库的文件不会被删——它们属于项目,不属于集成。只是临时停用的话,用卡片上的开关就够了,不要删。