Slack
索引内容
Slack 连接器会索引 Slack Bot 可访问的未归档公开频道和私有频道中的消息串。一条根消息及其回复会成为一个可搜索文档。连接器的频道抓取范围不包括私信。
默认会过滤 Bot 和 App 消息。需要索引自动化信息流时可以将其纳入。还可以通过精确的小写名称或完全匹配的正则表达式限定频道,然后在包含过滤器之后应用单独的排除列表。
前置条件
- OpenCore Admin 必须能够创建凭据和连接器。
- 在工作区安装 Slack App,并确保其 Bot 可以看到所有计划索引的频道。私有频道需要显式添加 Bot。
- 内置 OAuth 流程会请求频道历史/读取、私有频道历史/读取、加入频道、读取用户和邮箱、读取用户组以及私信历史 scope,但内置 OAuth 不会请求
team:read。普通单工作区可以使用该内置 OAuth;索引连接器仍只抓取公开和私有频道,不抓取私信。 - Enterprise Grid 验证会调用
auth.teams.list。当前内置 OAuth 不会请求team:read,因此 Grid 部署必须使用带team:read的手工 Bot Token,除非部署已明确扩展内置 OAuth scope。 - 内置 OAuth 需要
OAUTH_SLACK_CLIENT_ID、OAUTH_SLACK_CLIENT_SECRET、正确的WEB_DOMAIN和部署的 OAuth 状态存储。如果这些条件不具备,请手工创建 Bot Token 凭据。
凭据
Slack 已实现 OAuth。Admin UI 是否提供 OAuth 取决于部署配置。对于 Enterprise Grid,除非部署已扩展内置 OAuth 请求并加入 team:read,否则请使用手工 Bot Token 路径。
在 OpenCore 中配置
- 在 Admin 后台打开 Connectors,选择 Slack,然后创建或选择 Slack 凭据。普通工作区可使用内置 OAuth;Enterprise Grid 应使用带
team:read的手工 Bot Token,除非部署已扩展 OAuth。 - 根据需要输入频道包含列表。频道名会被规范化为小写。
- 仅当每个值都是有效的完全匹配模式时,才启用包含正则表达式。
- 为绝不能索引的频道添加精确或正则排除项。
- 决定是否纳入 Bot 和 App 消息。
- 选择部署提供的文档访问模式,设置刷新和清理选项,然后创建连接器。
- 将生成的文档集附加给 Agent 前,先运行首次索引尝试。
权限
Slack 源权限同步是一项有部署条件的能力。当 Auto Sync Permissions 可用且已选择时,OpenCore 会解析频道访问权,并为已索引消息串保存源访问规则。私有频道仅限解析出的成员。
对于 Enterprise Grid 公开频道,只有当工作区/Team 映射已知且非空,并且所涉及工作区的已解析用户并集不超过 5,000 条时,OpenCore 才会按该用户并集限制访问。如果映射未知或为空、频道所属工作区不在映射中,或用户并集超过 5,000 条的实现上限,权限同步会对该公开频道 fail-open,并将其保存为 OpenCore Public。此后所有 OpenCore 用户都能搜索该频道,范围可能大于 Slack 工作区成员。该回退仅适用于公开频道,不会把私有频道变为 Public。
源权限同步不可用或未选择时,搜索不会自动执行 Slack 频道成员关系。对于受限内容,请使用 OpenCore Private 访问模式并显式分配用户组;只有当所有 OpenCore 账号都可查看全部已索引 Slack 内容时,才使用 Public。
验证
- 确认凭据验证能够完成认证并列出至少一个公开频道。
- 启动索引尝试,确认完成时没有
invalid_auth、not_authed、token_revoked或missing_scope错误。 - 搜索所包含频道中的一条近期根消息和一条回复。
- 确认被排除的频道和默认过滤的 Bot 消息没有出现。
- 如果选择了 Auto Sync Permissions,分别使用一个可访问和一个不可访问私有频道的用户测试。
- 在 Enterprise Grid 上,还要用不属于该频道所共享到任何 Slack 工作区的 OpenCore 用户验证一个公开频道。如果该用户能搜索到它,应将该频道视为 fail-open 的 OpenCore Public,并在发布前确认所有 OpenCore 用户都获准查看其内容。