OpenCall,一份用于配置值班智能体的操作指南
摘要
OpenCall 是一套值班智能体工作流剧本:PagerDuty 等告警触发后,智能体集群会在 Slack 中开启讨论串,调查代码与遥测数据,经人工一键批准后自动创建拉取请求以修复问题,并在 Claude、Codex、OpenCode 等运行框架之间自动进行故障切换。
嗨!希望这能帮到大家。这是为你们 Agent Swarm 准备的值班工作流。PagerDuty 触发事件(也可以来自 Datadog、Grafana、Opsgenie、Sentry、SigNoz 或任何 webhook)。智能体群会开启一个 Slack 讨论串,调查代码、git 历史记录和遥测数据,发布根本原因及一键审批链接,并在有人批准后创建修复 PR。如果执行某个步骤的提供方失败,同一步骤就会在下一个运行框架上重新执行:先 Claude,再 Codex,最后 OpenCode。<Mermaid title="Open Oncall:告警在接入时被标准化,随后通过故障转移模块进行调查,经人工批准后,修复也通过故障转移模块执行,最后由 close 发布结果。" chart="`flowchart TD A["告警<br/>PagerDuty、webhook、Slack"] --> I["intake<br/>标准化、规划执行链、确认接收"] I --> G{"gate<br/>是否为告警?"} G -- 是 --> V["investigate<br/>故障转移模块"] V --> D{"是否已查明原因?"} D -- 是 --> P["调查结果 + 审批<br/>根本原因、一键操作"] D -- 否 --> C["close<br/>结果、提供方"] P -- 已批准 --> F["fix<br/>故障转移模块、创建 PR"] P -- 已拒绝或超时 --> C F --> C `" /> Slack 审批流程 机器人将告警发布为讨论串的起始消息,然后发布“正在调查”及计划使用的提供方执行链。调查智能体完成后,会发布根本原因、证据、建议的修复方案,以及“审阅并回复”链接。点击一次即可在控制面板中打开审批请求。批准:修复步骤会在代码仓库中创建一个 PR。不会合并任何内容。拒绝,或在 6 小时内未答复:事件将移交人工处理。只有 approvers 中列出的人员可以答复。智能体会收到 403 响应。讨论串的最后一条消息是处理结果:PR、查明根本原因所用时间、创建 PR 所用时间,以及每个步骤由哪个提供方处理。告警也可以直接来自 Slack:在 ALERT_CHANNELS 所列频道中,匹配 ALERT_PATTERN 的人工消息会启动一次运行。机器人消息绝不会触发运行,因此应让告警工具改用 webhook。提供方故障转移 引擎的节点重试会重新运行同一个智能体,因此重新路由逻辑位于工作流中:intake 读取实时智能体注册表,并为每个步骤规划一条执行链:按照 PROVIDER_ORDER(claude,codex,opencode)的顺序,从每个运行框架中选取一个在线工作智能体,优先选择能力最匹配的。故障转移模块先让第一个工作智能体执行该步骤。失败的尝试会转化为 [FAILED: 原因] 输出,而不会使整次运行失败。属性匹配检测到 [FAILED: 后,会将相同的提示词发送给下一个运行框架中的工作智能体,最多尝试三次。pick 返回第一个成功结果,以及每次尝试对应的一条提供方记录:运行框架、智能体、模型、状态、原因,以及是否看起来属于提供方错误。close 将这些记录写入运行输出(providers.investigate、providers.fix)和最后一条 Slack 消息。应用 Open Oncall 应用读取工作流的运行记录,并展示:事件:状态(正在调查、等待审批、正在修复、已解决、已移交人工)、严重程度、故障转移情况、查明根本原因所用时间和已持续时间。待审批请求:“批准”和“拒绝”答复的是 Slack 讨论串链接指向的同一个请求,因此一次答复即可同时解决两处的审批。事件详情:从告警到解决的时间线,包含每个步骤的提供方、智能体和模型。失败的尝试会显示为 FAILOVER。此应用使用 Apps 功能构建。请让你的 Lead 使用 apps 技能重新设计其样式或添加视图。限制 审批通过链接进行,而非 Slack 按钮。“审阅并回复”会打开控制面板;应用中的“批准”和“拒绝”按钮答复的是同一个请求。PagerDuty 签名。触发器检查的是 X-Open-Oncall-Token 请求头,而非 PagerDuty 的 X-PagerDuty-Signature。任何失败的尝试都会触发故障转移,并非只有提供方错误才会触发。每条提供方记录都会说明属于哪种情况。完全离线的运行框架不会将其任务标记为失败。如果始终没有工作智能体领取任务,就不会触发故障转移。目前尚无单步骤超时机制。告警频道中的每条人工消息都会启动一次运行,并在 gate 处停止。筛选运行记录时,请使用 intake.result.accept = true。
相似文章
AI 智能体参加站会通话
Agent Standup 是一个开源工具,把 Claude Code 会话变成一场虚拟站会:主代理下达指令,子代理加入、共享屏幕并汇报状态,支持 VS Code、Cursor、终端、桌面应用等多种接入方式,主打趣味性与轻量级多代理可视化。
Put your dot on call
OpenAI 工程师 Ali 展示如何将 dot(一个拥有云端计算机、本地访问权限和 Slack 身份的持久云端智能体)接入 Slack,通过一条自然语言提示即可实现告警自动分类、凌晨三点无人值守的事故调查等工作流自动化,并支持跨设备无缝衔接。
开源智能体编排工具,支持Claude Code和Codex的一键安装
一款开源智能体编排工具,支持Claude Code和Codex的一键安装,用户可通过剧本创建智能体团队,并利用网络召回其他开发者构建的智能体。
@lee04052822: https://x.com/lee04052822/status/2111618612158935467
作者分享了一套基于 Claude Code 主 Agent 调度 Codex CLI、Subagent 与 GitHub Issue/PR 的 human-in-the-loop 持续开发工作流,包含仓库初始化规范、任务拆解、审查合并流程,并提供可直接复用的提示词模板。
@CopperForgeAI: https://x.com/CopperForgeAI/status/2108830306014998719
一篇中文教程详细介绍开源 AI 开发工作台 Orca(Stably 出品,Y Combinator 背书):如何在一个窗口里同时指挥多个编程 Agent(Claude Code、Codex、Cursor 等),实现独立工作区、多 Agent 赛跑修复、跨厂商会话交接、逐行批注审查等多智能体协作工作流。