> ## Documentation Index
> Fetch the complete documentation index at: https://test-8ad8522e-feat-ai-sre.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# IM 平台

> AI SRE 是 IM 原生的——在 Slack、飞书、钉钉、企业微信的群聊或私聊里 @ 它即可发起或续接排查，它在线程内作答；为故障开启作战室时可按集成设置自动跑一轮初步诊断并回贴。

<Info>
  **公测功能**：AI SRE 已全量开放公测，无需申请，登录控制台即可直接使用，公测期间免费。功能与界面可能继续调整。
</Info>

## 概述

***

排障往往就发生在你的 IM 群里——告警推过来、大家在群里讨论、拉个作战室。AI SRE 把 Agent 直接放进这条协作链路：**你不必切换到控制台，就能在 IM 里召唤它排查**，团队成员也能全程看到它的分析过程。

AI SRE 的 IM 集成有两种触发方式：

<CardGroup cols={2}>
  <Card title="@ 提及召唤" icon="at">
    在群聊或私聊里 **@ AI SRE** 并描述问题，即可发起或续接一次排查。它在**线程内**回答，对话上下文与这条 IM 会话绑定。
  </Card>

  <Card title="作战室自动诊断" icon="people-group">
    为故障开启 IM 作战室时，若该集成保留默认开启的 **自动发起 AI 故障分析**，AI SRE 会跑一轮初步诊断，并把结论作为一条分析消息回贴到作战室——无需任何人手动召唤。
  </Card>
</CardGroup>

## 支持的 IM 平台

***

AI SRE 的 IM 交互覆盖四个主流平台，每个平台都支持入站的 @ 提及（webhook）、历史消息读取与出站回复：

| 平台            | 群聊 @ 提及 | 私聊（DM） | 作战室自动诊断 |
| ------------- | ------- | ------ | ------- |
| Slack         | ✅       | ✅      | ✅       |
| 飞书 / Lark     | ✅       | ✅      | ✅       |
| 钉钉 / DingTalk | ✅       | ✅      | ✅       |
| 企业微信 / WeCom  | ✅       | ✅      | ✅       |

<Note>
  IM 交互依赖你已在 Flashduty 中接入对应平台的机器人（用于告警通知与协作的同一套 IM 机器人）。请先在 Flashduty 的 IM 集成中完成机器人配置，AI SRE 才能在该平台收发消息。
</Note>

## IM 集成中的 AI SRE 设置

***

在 **On-call → 集成中心 → 集成列表 → 即时消息** 打开对应 IM 集成详情，在 **增强功能** 中分别配置该集成的 AI SRE 行为。以下开关默认均为开启：

* **自动发起 AI 故障分析**：开启作战室后可配置；集成成功创建作战室时，自动发起一次 AI SRE 初步诊断并把结果回贴到作战室。
* **允许群聊 @ AI SRE**：无需开启作战室即可配置，允许群聊中的 @ 提及进入 AI SRE。Slack 中该开关显示为 **允许群聊 @ AI SRE 和 /fd 命令**；关闭后，群聊 @ 提及和 `/fd` 命令都不会触发 AI SRE。
* **普通群聊中 AI SRE 使用话题回复**：仅飞书/Lark 与 Slack 提供。开启后，普通群聊中的每个话题对应一个独立 Session；作战室仍直接在群内回复。

<Note>
  若账户尚未开通 AI SRE，这些开关不会实际生效；开通后会按各 IM 集成自己的设置生效。
</Note>

## @ 提及召唤

***

在已接入且允许群聊 @ AI SRE 的 IM 群里 **@ 机器人** 并写下你的问题（例如「@AI SRE 看下 payment 服务为什么 5xx 飙升」），消息会通过平台 webhook 转给 AI SRE 处理：

<Steps>
  <Step title="识别提及">
    平台区分**群聊 @ 提及**与**私聊消息**两种入口。被提及后，AI SRE 会做去重，并识别消息里是否带有命令式指令。
  </Step>

  <Step title="绑定会话">
    AI SRE 以「账户 + 平台 + 会话（chat）」为键定位一个会话：同一个 IM 会话里的多次 @ 提及，会续接到**同一个 Agent 会话**，从而保留上下文。若是新会话，平台会带入该 IM 线程的起始消息、以及（若有）关联的故障作为初始上下文。
  </Step>

  <Step title="读取上下文作答">
    AI SRE 读取线程 / 会话的历史消息构建上下文，自主排查，并把结论**在线程内**回复。消息里一并 @ 到的其他人也会被保留为提及对象，在回复中带上，方便多方在群里协作。
  </Step>
</Steps>

<Tip>
  **回复模式**可配置（off / first / all），决定 AI SRE 是否在回复时 @ 提问者、以及是在**线程内**还是主频道作答。在嘈杂的大群里，线程内回复能让排查讨论保持聚拢、不刷屏。
</Tip>

## 作战室自动诊断

***

当你为一个故障在 IM 中开启**作战室**（war room）且该集成保留 **自动发起 AI 故障分析** 开关时，AI SRE 会自动介入——无需任何人 @ 它：

<Steps>
  <Step title="创建作战室">
    在故障的协作流程中创建作战室（飞书 / 钉钉 / 企业微信 / Slack 群）。
  </Step>

  <Step title="后台拉起诊断">
    作战室建好后，平台会以**非阻塞后台任务**触发一轮初步诊断，让 AI SRE 带着该故障的上下文进入排查。
  </Step>

  <Step title="回贴结论">
    诊断完成后，AI SRE 把分析结果作为一条消息发回作战室。人还没开始排查，第一手分析就已经摆在群里了。
  </Step>
</Steps>

<Note>
  作战室自动诊断与故障上下文绑定：进入排查时，对应的 `incident_id` 会绑定到本次运行，AI SRE 可据此读取故障详情、时间线与近期变更。关于故障 / 作战室与 A2A 的联动细节，见 [Agent · 故障与作战室联动](/zh/ai-sre/agents#故障与作战室联动)。
</Note>

## 常驻任务与监控中卡片

***

Agent 的当前回合结束时，如果它留下的**常驻进程类任务**还在运行（例如 monitor 监视器、后台命令），AI SRE 会向聊天中投递一条监控中卡片：

```
🔭 监控中：<任务描述>（最多 N 分钟）
🔭 监控中：<任务描述>（无限期）
```

每个常驻任务占一行：任务自带截止时间的显示剩余分钟数（不足 1 分钟按 1 分钟计），没有截止时间的显示「无限期」。常驻任务列表发生变化时卡片会重新投递。

<Note>
  常驻任务存活期间，本次 IM 会话的根消息保持打开（不关闭事故视图）：后续由任务通知触发的回合继续投递到**同一个聊天**，无需重新 @ 召唤。
</Note>

通知回合遵循「无消息 = 没有新进展」的静默语义：如果某个通知回合没有新内容要投递，AI SRE 会静默关闭该回合，**不向聊天发送任何占位回执**，也不会重复投递监控中卡片；只有真正有新结论时才会在聊天里出现新消息。

## IM 会话内切换命令

***

IM 会话没有控制台那样的选择器 UI，但支持两条斜杠命令在**对话进行中**动态切换绑定——控制台会话不支持这两个操作，其环境与团队绑定在创建时固定、不可变更。

### /env — 切换运行环境

在群聊或私聊里向机器人发送 `/env <目标>`，可将当前 IM 会话重新绑定到另一个运行环境，对话历史与上下文完整保留。切换后，旧环境的工作目录不再可用：本次对话中在旧环境里创建或修改的文件已丢失，技能与知识包文件会在新环境中按需重新挂载。

`<目标>` 有三种写法：

| 写法                   | 切换到                       |
| -------------------- | ------------------------- |
| `/env <runner名称>`    | 指定的在线 BYOC Runner         |
| `/env sandbox`       | 默认的云端沙箱                   |
| `/env sandbox <模板名>` | 指定的云端沙箱模板（共享模板，或您所在团队的模板） |

直接发送不带参数的 `/env`，机器人会列出当前可切换的全部目标：共享环境、您所在团队的环境，以及云端沙箱（默认沙箱与各个命名模板）。找不到指定的沙箱模板时，机器人会回复「未找到名为「x」的云端沙箱模板。使用 /env sandbox 选择默认沙箱。」并附上可选模板列表。

<Note>
  切换在当前轮次结束、下一条消息处理之前生效，不会打断正在进行的工具调用。若目标 Runner 离线或不存在，命令会立即报错且绑定不变。
</Note>

<Note>
  **私有化部署没有云端沙箱**：私有化部署不运行云端沙箱设施，因此 `/env` 的沙箱选项、沙箱列表项与相关提示文案都不会出现，只能在 BYOC Runner 与「自动」之间切换。
</Note>

### /scope — 切换团队作用域

在群聊或私聊里向机器人发送 `/scope <团队名>`（或 `/scope personal` 切回个人作用域），可将当前 IM 会话重新绑定到指定团队，无需结束对话并新建会话。团队绑定是**使用权操作**，账户内任意成员均可将会话绑定到账户内的任意团队——这与作战室中响应人员通常不属于故障所属团队的场景一致。

切换后，AI SRE 会：

1. 将记忆快照刷新为新团队作用域下的记忆（旧团队的记忆不再适用于本次会话）。
2. 把新团队的知识包排入挂载队列，在下一条消息处理时自动注入上下文。
3. 检查本次会话钉定的运行环境是否仍然可用：如果钉定的是**另一个团队独有**的 BYOC Runner 或云端沙箱模板，会把运行环境改回「自动选择」，并回复「「x」不属于当前团队，运行环境已改回自动选择。」共享环境与账户级环境不受影响；无法确认归属时（例如模板列表拉取失败）保持原有钉定不变。

<Note>
  已挂载到本次会话的知识包不会被移除——挂载是对话级别的，切回之前挂载过的团队不会重复注入提醒。
</Note>

## /feedback — 评价 AI SRE 的回复

***

AI SRE 的回复进入群聊后，群里任何人都可以评价它——不只是发起排查的人。向机器人发送 `/feedback`，即可对你正在看的那条回复给出评价或评论：

* **入口与定位**：`/feedback` 由 AI SRE 侧提供后端（POST /safari/session/latest-reply → POST /safari/feedback/create），它能把你「当前看中的那条消息」解析为对应的回复事件，即使你没有参与过那次对话。
* **评价资格**：**不限会话成员**——账户内任何可使用 AI SRE 的成员都可以评价（只读群聊读者同样可以）；群聊里 AI SRE 的回答是公开的，看错的人正是我们想收集反馈的人。
* **评价方式**：可选 `like` / `dislike` / `none`；只写评论不选评价也可以提交（空评价不会清掉你之前给过的评价），显式的 `none` 才会清除已有评价。
* **独立存储**：每条回复按 **(回复事件, 评价人)** 分开存储——同一条回复被群里多个人评价，会各留一行，互不覆盖。
* **控制台侧**：控制台会话头部也有对回复的点赞反馈（见 [会话反馈](/zh/ai-sre/sessions#反馈)），与 IM 的 `/feedback` 共用同一套评价体系。

## 与控制台会话的关系

***

无论从 IM 还是控制台发起，**都是同一个 AI SRE**：按顺序处理消息、流式输出、长对话自动压缩上下文、可绑定团队与运行环境。区别只在入口——

* **控制台**：在「对话」工作区里逐条提问、查看完整的工具调用与子会话面板；环境与团队绑定在创建时固定，后续不可变更。
* **IM**：在你日常协作的群里 @ 召唤，结论回贴到线程；支持 `/env` 和 `/scope` 命令在对话中途动态切换绑定，适合在故障现场快速拿到分析，再到控制台深入。

会话的更多细节见 [对话](/zh/ai-sre/sessions)。

## 相关页面

***

<CardGroup cols={2}>
  <Card title="概述" icon="gauge-high" href="/zh/ai-sre/overview">
    了解 AI SRE 的整体能力、典型场景与控制台导航。
  </Card>

  <Card title="控制台" icon="comments" href="/zh/ai-sre/sessions">
    了解会话、流式输出、取消与上下文压缩。
  </Card>

  <Card title="Agent" icon="satellite-dish" href="/zh/ai-sre/agents">
    入站 Agent Card 与故障 / 作战室联动。
  </Card>

  <Card title="使用洞察" icon="chart-line" href="/zh/ai-sre/insight">
    用 /insight 复盘近 30 天会话，发现运维摩擦。
  </Card>
</CardGroup>
