Agentic 应急响应
在 WebUI 中启动 Claude / Codex / Qoder / Pi,或在服务端 REPL 中启动 Claude 辅助排查会话
Agentic 应急响应(AIR)用于把 Claude Code、Codex、Qoder 或 Pi 接入 SIREN 的调查现场。Agent 可以读取告警上下文,通过 SIREN MCP 工具查看在线客户端、执行排查命令,并协助整理应急响应报告。
AIR 是交互式会话。操作员可以在结构化时间线或真实终端中观察执行过程、回答追问、补充指令或停止会话,不应把它当成完全无人值守的自动处置流程。
前置条件
需要在服务端配置可用的 Claude、Codex、Qoder 或 Pi CLI 路径(air.providers.<name>.cliPath),并启用、配置独立凭证的 MCP 服务。Event 模式需要设置 SOAR 平台访问凭证。服务端 REPL 的 air 命令固定使用 Claude,并需要 tmux。
使用方式
Agentic IR -> 选择 Provider ->(可选)切换 Terminal 开关 -> 选择 Manual / Custom / Event / Resume -> StartWebUI AIR
在 Web 控制台 的 Agentic IR 页面中,入口模式和呈现方式相互独立。首次使用默认选择 GUI;此后页面会记住当前浏览器最后选择的 GUI 或 Terminal,新建会话及刷新页面后保持选择。当前 Provider 不支持所选界面时,会临时使用可用界面。
- GUI:按轮次组织的调查时间线,Agent 的回复原文与操作记录按发生顺序交错展示。连续操作聚合为可折叠的摘要行(点击展开输入与输出),计划以内联进度块呈现,审批和提问以卡片出现在对应位置。多轮会话时左侧有导航刻度,悬停预览各轮内容、点击跳转;向上翻阅后可一键回到最新。
- Terminal:运行真实的 Claude Code、Codex、Qoder 或 Pi TUI,保留 Provider 的斜杠命令、自定义 statusline、ANSI 界面和 PTY 交互,适合作为兼容回退或高级操作入口。
在 GUI 时间线中按 Cmd/Ctrl+F 可打开搜索条,按关键词检索当前会话内容,并可叠加过滤 chip:Failed(仅看失败)、Commands(命令)、Files(文件)、Requests(审批与提问)。多个 chip 之间取并集,与关键词同时生效;命中处会高亮,可按 n/m 计数器逐条跳转。
命令输出等等宽输出块可以在换行与不换行之间切换:不换行时块内横向滚动,适合 ps aux 这类依赖列对齐的输出;超过 30 行的输出会标注总行数。Provider 通知行带有时间戳,附带数据的通知可以展开查看详情,warning 与 error 级通知会以醒目颜色区分。
审批与提问解决后,卡片会保留决定、时间和具体内容的记录,提问还包括所选答案。这些记录来自服务端事件流,刷新页面或换浏览器重新接入后依然保留。存在待处理的审批或提问时,浏览器标签页标题会显示 “● Approval” 或 “● Question” 前缀(审批优先),处理后自动恢复;等待中的会话即使位于后台标签页也同样会提示。
GUI 输入框下方有一条 TUI 风格的状态条,显示当前模型、上下文占用和 Provider 订阅额度(含重置倒计时),并可手动刷新;不支持可编程额度查询时会明确标注,不做估算。状态条动作区还提供导出按钮,可将当前会话时间线导出为 Markdown 文件,内容涵盖各轮次、命令与输出摘录以及审批、提问的决策记录;超长输出会带截断标记。
在输入框键入 / 会打开命令菜单,支持方向键、Tab、Enter、Esc 和鼠标选择。Enter 会直接执行当前高亮命令,Tab 或鼠标选择会补全命令文本;已经输入的命令参数会保留。已识别的命令不能附带图片;运行期间仍会显示仅空闲时可用的命令,但不能执行。Qoder GUI 会在发送前拒绝当前会话未公布的 /foo,避免它被当作普通问题送入模型;需要使用 TUI 专属命令时请切换到 Terminal。
GUI 固定提供以下常用命令:
/status:显示连接、Provider、模型、会话、Project、轮次、上下文及已有额度窗口,仅在本地展示,不写入 Provider 历史。- Codex
/compact:在空闲时压缩上下文,进度显示在时间线中。 - Codex
/review:选择未提交改动、基准分支、指定 Commit 或自定义要求,结果以内联 Review 形式返回。 - Codex / Qoder
/model:读取当前 CLI 提供的模型,选择后更新当前会话模型;Qoder 仅在当前会话公布模型配置时显示。 - Codex
/mcp:只读查看 MCP Server 的认证状态和工具数量,运行期间也可使用。
Claude 会补充其当前会话通过机器协议公布的命令,这些命令仅在空闲时执行。Qoder 的 Skills、插件、MCP prompts 和 workflows 可能触发模型推理,GUI 不把它们混入本地命令菜单;请在 Terminal 中使用。若 CLI 版本不支持某项 GUI 命令,只有该命令会失败,会话仍可继续。Terminal 仍是 Skills、更多 Provider 设置和其他高级斜杠命令的完整入口。
GUI 输入框支持直接粘贴图片(如告警截图、拓扑图),每条消息最多 4 张、单张不超过 8 MiB,支持 png / jpeg / webp / gif。粘贴后以缩略图形式暂存,可单独移除,随消息一并发送给 Agent;会话时间线中以图片数量徽标呈现。Claude 与 Codex 支持图片,Qoder 以其 CLI 上报的能力为准;Pi 当前使用的 Qwen Aegis 不接受图片输入。
需要集中查看长输出时,可点击侧栏分隔线上的箭头收起启动、Running 和 History 区域;再次点击即可恢复。刷新页面后侧栏总是展开,从 Clients 行内进入 Agentic IR 时也会自动展开。History 默认收起在侧栏底部,点击标题即可展开。
启动新会话时先选择 Provider,再选择入口模式:
- Manual:启动不带客户端或种子 prompt 的空白会话,适合临时通用操作;仍会注入当前范围的 SIREN MCP。
- Custom:选择客户端并输入自定义 prompt,SIREN 会追加客户端上下文并注入 SIREN MCP。
- Event:选择客户端,输入 Alibaba Cloud UID,并选择一种事件目标:安全中心告警 ID(Event)、ECS 实例 ID(ECS)或云安全中心资产 UUID(Asset)。告警 ID 直接定位单条告警;实例或资产目标会让 Agent 查询其关联告警,并可展开 Time range 高级选项限定告警时间范围(最近 3/7/30 天,或自定义起止时间,默认不限定)。
- Resume:从当前视图工作目录对应的历史会话中选择一条。点击历史只会读取本地记录;确认 Continue session 后才用原 session ID 继续。
会话托管在 SIREN Server 上。刷新浏览器、切换页面或短暂断连后,可以从 Running 列表重新接入并回放此前内容;点击 Stop 会结束对应会话。会话结束后(Agent 进程退出、被 Stop、或服务端重启后会话已不存在),面板顶部会显示 “Session ended” 与原因;Terminal 自动重连次数用尽时显示 Reconnect 按钮。air.maxSessions 同时限制 GUI 与 Terminal 会话,air.replayBufferBytes 则分别限制 GUI 结构化事件或 Terminal 原始输出的断线回放容量。长会话重新接入时,如果更早的内容已超出回放缓冲,GUI 时间线顶部会显示已丢弃多少条更早事件的横幅,并提供 Open full transcript 按钮打开该会话的完整历史(只读时间线)。同一个 Provider 会话不能同时在两个界面运行,停止后可以换一种界面继续。
报告、证据和文件变更只会显示 Project 范围内的安全相对路径。历史时间线初始为只读,长内容和较早记录按需加载。
额度显示遵循 Provider 当前公开能力:Codex 与 Claude 以 5h / 7d 窗口展示订阅额度和重置倒计时,Claude 的额度在收到用量事件或手动刷新后更新;Qoder Personal 在状态条显示模型与上下文,并提供 Usage 页面入口;Pi 显示 Qwen Aegis 模型与上下文占用,不估算订阅额度。上下文占用和订阅额度始终分开展示,过期数据会标记为 stale。
SIREN Server 正常重启时会结束仍在运行的 Provider,并给 Claude、Codex、Qoder 和 Pi 最多 5 秒完成各自的历史落盘。服务恢复后,页面会重新读取当前 Provider 和工作目录的 History;已经由 Provider 保存的会话可以继续 Resume,不需要刷新整个页面。强制杀进程、主机断电,或 Provider 尚未创建会话记录时只能尽力恢复,不能保证历史一定存在。
Project 作用域
在 Project 视图下启动 WebUI AIR 时,Provider 工作目录会切到当前 Project 目录,History 只列出该目录下的历史会话。SIREN 注入 /mcp/project/<id>,工具只能操作当前 Project 的客户端;Global 视图注入 /mcp,可访问全局范围。
配置边界
- SIREN 只做:使用
air.providers.<name>.cliPath和args启动对应 CLI,为所有入口注入当前范围的 SIREN MCP,并按需加入种子 prompt 或恢复会话 ID;GUI 只使用 Provider 公开的机器协议。 - Claude、Codex、Qoder:模型、权限、沙箱、普通 Shell 审批和操作者已有 MCP 的工具确认规则由 CLI 自身决定。
- Pi:复用服务端用户的全局 Pi、插件、Skills、配置和 memory,固定使用 Qwen Aegis;文件、Shell、MCP 和子 agent 操作直接执行,不产生权限审批。ask-user 只用于补充信息或业务选择。
- GUI 审批:Claude、Codex 和 Qoder 仅在 Provider 返回需要确认时显示“允许一次 / 本会话允许 / 拒绝”;本会话规则只保存在当前会话,不写入用户级永久配置。
- Qoder:不会修改全局 Qoder 设置或强制跳过权限确认。
- 如需限制其他可用工具,请在对应 CLI 的用户配置中处理。
服务端 REPL
服务端 REPL 的 air 命令适合已经登录控制主机并在 tmux 中操作的场景。它会打开新的 tmux 面板并启动 Claude Provider 中配置的大模型 CLI。
告警事件模式
当有明确的阿里云安全中心告警时,使用 UID 和告警 ID 启动会话:
>>> air 0 1601097845544644 674382943Security Center Alert ID
这里的 Security Center Alert ID 指阿里云安全中心告警详情页“基础信息”中的“告警 ID”,不是页面下方“关联安全事件”里的“事件 ID”。
自定义 Prompt
当需要执行通用排查任务时,直接提供 prompt:
>>> air 0 检查是否存在后门或恶意进程
>>> air 0 分析最近 24 小时内的异常登录行为
>>> air 0 排查 Webshell 并生成报告SIREN 会在 prompt 前追加 Client ID 上下文,再传给 Claude Provider。
典型流程
启动会话
在 WebUI 或服务端 REPL 中选择适合当前任务的入口并启动会话。
注入上下文
需要 SIREN 上下文的模式会带上客户端、prompt、事件目标(告警、ECS 实例或资产)或恢复会话 ID;Project 视图会限制到当前 Project。
交互式排查
Agent 通过 MCP 集成 使用 ls、run、recon 获取客户端线索。用户明确要求向某台 ECS 部署 SIREN 时,Agent 也可以调用 deploy 并等待客户端实际连接;调查或诊断请求本身不构成部署授权。操作员可以在 GUI 时间线或 Terminal 中继续追问或调整方向。
整理报告
Agent 可以把调查结论整理成 Markdown 报告。WebUI Project 视图下生成或整理的文件通常保存在当前 Project 目录;Global 视图和服务端 REPL 使用服务端当前工作目录。
报告效果可参考 示例报告。
相关内容
Web 控制台:Agentic IR
在浏览器中启动、恢复和管理 AIR 会话
MCP 集成
查看 AIR 可用工具、Project 作用域和命令黑名单
配置文件
配置 AIR Provider、prompt 模板和 CLI 参数
示例报告
查看 Agentic 应急响应生成的报告示例
MCP 会话凭证
Claude、Codex、Qoder、Pi 的 GUI 与 Terminal 会自动获得当前范围的 MCP 凭证:Project 会话只能访问本项目,全局会话使用全局范围。凭证随会话结束失效,服务端重启后也失效,不会因为调查超过一小时而中途到期。长期管理凭证不会注入 Provider 会话,工具审批行为保持原有配置。服务端 REPL 的 Claude 仍使用操作员自己的 MCP 配置,升级时需同步添加认证 Header。