跳到正文
北京时间
原文
Claude:Blog(网页)·· 2026-08-18精选AI 评分63

Claude Tag 如何担任 Anthropic CI/CD 故障的一线响应者

Claude on call: How Claude Tag serves as Anthropic’s first responder for CI/CD failures

AI 导读

Anthropic 的 CI 工程师用 Claude Tag 构建了值班智能体,作为 CI/CD 故障的一线响应者。Claude 在事故发生后中位 14 分钟发布首份基于证据的分析,最快案例中 3 分钟内验证修复并确认错误率恢复基线。该方案通过 Slack 频道、Datadog 或 Grafana 工具访问及 GitHub 技能文件实现,Anthropic 已发布通用设置套件供其他团队部署。

推荐理由

文章把 AI on-call 从概念落成可复制的工程架构,用 markdown 技能文件和 lessons.md 实现自我迭代,并给出 14 分钟首报、最快 4 分钟定位等实测数据。

正文 · AI 翻译

我们持续集成团队的一位工程师详细介绍了他在 Anthropic 构建的、用于支撑 CI 事故响应的智能体。

用我们的配置套件搭建你自己的 Claude 值班助手。

几周前,我正在值班,我的同事晚上 10 点在 Slack 上给我发了条消息:一个新服务上大约 44 个测试没有触发。

过去,我会停下手中的事,坐到笔记本电脑前,疲惫地叹口气,然后开始长达一小时的排查与修复流程。但现在,我的工作流完全不同了:我拉入 @Claude,问它看到了什么。

在这个案例中,Claude 发现这些测试是在当天早上某个功能开关被打开后消失的,并且还发现回滚是安全的。我请同事回滚了那个开关。3 分钟后,Claude 在 Slack 上私信我,确认跳过规则确实已被移除,错误率也恢复到了基线水平。

Image 2

在过去几个月里,Claude Tag 一直是 Anthropic 内部 CI/CD 故障的值班第一响应者。这不仅改善了我们的社交生活,还让每一起 CI 事故都有了即时第一响应者:在近期每一起有情况报告的事故中,Claude 都撰写了首份情况报告,通常会在 15 分钟内发布其首份分析。

在本文中,我们将介绍我们构建了什么以及它是如何运作的,这样你也可以自己搭建,不再害怕轮到自己值班。

我们的 Claude 值班设置

在我们逐一介绍事件响应流程的每个阶段之前,我会先大致介绍一下我们的整体设置,这样在后续补充细节时,你心中能有一个全局图景。

一个值班智能体需要记忆,这样它才能记住已经做过什么;需要连接与访问权限,这样它才能调查、理解并采取行动;需要日程安排,这样它才知道何时重新投入工作;还需要指令,这样它才知道该做什么。

Claude Tag 是我们值班智能体的骨干。Claude Tag 在我们的值班 Slack 频道中保存记忆,并提供在事件期间逐轮下达指令的界面。Claude 还会实时响应值班频道及其他频道中的事件。例程的调度,也就是 Claude 定期执行的操作,同样在这个频道上通过自然语言提示词完成,比如“每周一东部时间上午 9:00 运行 CI 交接”。

Claude Tag 拥有自己的服务账号,并可访问 Anthropic CI 工程师所需的工具,例如 Datadog 或 Grafana。这是由频道管理员一次性设置完成的(操作方法见此处)。

除了值班频道之外,我们还设置了 Claude 来关注其他相关频道,这些频道也将 Claude Tag 设为成员,这样它就能获取额外的上下文,例如服务告警、配置变更或 PR 更新。

常驻指令以技能的形式存放在 markdown 文件中,提交在 GitHub 仓库里。这样多位队友可以共同迭代这些指令,我们也能像管理代码一样管理变更。它还包括路由指令、策略等关键信息,以及作为自我改进循环一部分的经验教训日志。

这套配置花了几小时,而不是几天。我们在 GitHub 上创建了一个通用的on-call 配置套件,可以帮助你上手搭建类似的智能体。它会把你自己团队的历史事故转化为分诊手册,并最终在你的事故频道中留下一个只读的 Claude,负责诊断、升级和学习。你可以观看它针对一个虚构团队的历史记录运行,大约十分钟。

用 TL;DR 的方式总结一下这些步骤

  • 你需要一个Claude Team 或 Claude Enterprise套餐
  • 组织所有者需要通过 Claude Tag 将 Claude 添加到 on-call Slack 频道
  • 组织所有者还需要帮助将 on-call Slack 频道中的 Claude 连接到相应的连接器、GitHub 仓库,并设置 Claude Code Remote。
  • 将 Claude 添加到你的故障频道,并指示它监控故障并立即进行分诊

现在,让我们深入了解这一转变在故障的每个步骤中具体是什么样子。

检测

Claude 不仅改变了你应对事件的方式,它还从根本上改变了你检测事件的方式。此前,检测事件存在两种主要的失效模式。

人类很难始终具备前瞻性,去设置带有完美阈值的完美规则。当你没有足够的数据来分析流量模式时,这尤其困难。

为了解决这个问题,我们让 Claude 在新服务上线的最初几天分析数据和传入的告警,以建议额外的规则,并对任何过于宽泛或过于狭窄的规则进行微调。

检测事件的第二种主要失效模式是告警疲劳:检查和审核每一条触发的告警十分繁琐。然而,Claude 不会像人类那样感到疲劳。

Claude 会监控每个告警渠道中的每一条相关告警,并逐一核对 根目录下 oncall.md 文件中的标准,以判断该告警可以等到早上处理,还是需要呼叫值班人员。例如,在通过分析数据完成调优后,该文件中的一条规则可以是:“如果错误率超过 2% 且持续超过 5 分钟,并且不在已知的部署窗口内,则呼叫值班人员,否则将其写入 lessons.md。”

Claude 值班告警流程还有另外两种触发方式:

  • CI 团队的成员可以在 on-call 频道中报告问题,正如开头那个 44 个缺失测试的示例一样;或者
  • 公司中的任何人都可以通过内部页面发起事件。如果该事件被标记为 CI 基础设施事件,就会为该事件创建一个 Slack 频道,我们的 on-call Claude 便会接手处理。

Image 3

这里的关键要点是:告警流程是确定性的,而 on-call 升级则同时包含确定性路径和智能体路径。

分诊

让 Claude 过滤告警噪音是一回事,但真正的节省来自调查环节。Claude 在事件开启后中位数 14 分钟内发布其首份基于证据的分析,而在最快的情况下,它会在首份报告中于 4 分钟内指出根本原因。

当某个告警已升级为事件时,Claude 通常已在我们 Slack 频道中准备好一个基于证据的假设供我们审阅。Claude Tag 会启动一个动态工作流,由一个编排智能体启动执行器子智能体,去调查每个依赖项和事实来源。

对我们来说,这些是 Grafana、我们的日志存储、PagerDuty、GitHub、Kubernetes 和 Slack 事件频道——全部通过 MCP Connectors 连接起来。Claude 可以并行追踪多条线索,帮助降低 MTTR(平均解决时间)。

执行器将发现结果回报给编排智能体,由后者综合这些信息,并以一份连贯的 SITREP 呈现出来。

Image 4

编排智能体和执行器智能体并非盲目搜索。它们由一个调查技能引导,该技能带有 针对每一类 bug 的更详细参考 markdown 文件。

例如,一份针对影子分歧 bug 的 617 行调查技能,编码了我在一次典型调查中所采取的每一个步骤。我是在其中一次事故期间与 Claude 逐轮排查问题,然后让它根据那段经历创建了这个文件。

Lessons.md 也指导着 Claude 的故障排查。这个 markdown 文件是我们解决过的每一次事故的持续日志:发生了什么、根本原因、修复方式,以及值得记住的坑。Claude 会自动向其中追加内容。每一次新的调查都从阅读它开始,因此 Claude 的第一个假设总是从最近发生过的事情出发。

如果同一个模式出现足够多次,我们就会把它提升进调查技能本身。我最喜欢的一条是 Claude 写下的关于我的。我在查看指标之前就先从配置文件里做了一个假设,现在 lessons.md 文件里写着:“先查询数据,再提出理论。配置告诉你可能出什么问题;指标告诉你实际出了什么问题。”

即便有这些工具和上下文,Claude 也不总能一次就做对。人类的直觉和经验仍然重要。Claude Tag 让团队能够以多人协作模式排查事故。我们中的任何一方都可以实时引导调查或添加假设,共同进行。

Image 5

解决

如果 Claude 能够升级并排查告警,它是否也能修复它们?这个问题的答案因团队而异,但以下是我们团队的做法。

我们团队内的大多数部署都在功能开关之后进行。我在 Claude Code 中创建了一个独立的智能体,拥有我的权限,能够在每个功能开关之后进行渐进式部署。

我们发布流程的第一阶段通常涉及 Claude 管理金丝雀流量、监控问题,并自动调高或调低某个功能开关。这完全可以单独写一篇文章,所以我不在这里展开更多细节。

Claude Tag 帮助我团队处理的其他解决路径包括:

  • 告知我们是否需要排空或隔离 Kubernetes 集群的某些部分;
  • 为我们提供如何扩容部分基础设施以应对需求激增的指令(这种情况很少见,但当 Claude 返回我们可以采取的确切缓解措施时,这非常有帮助);以及最常见的,
  • 以 PR 的形式提供修复,值班人员可以审查、合并,然后部署以实现快速解决。

验证、沟通与交接

Claude 使用了许多与调查时相同的 MCP Connectors 和工具,来验证修复是否按预期生效。作为 oncall.md 中常驻指令的一部分,它会将事后复盘写入 lessons.md,并为交接 SITREP 撰写报告。

为了在多个事件之间传达完整的情况,我们创建了一个名为 ci-weather 的智能体。它汇总来自每个事件 Slack 频道的信息、构建指标、合并队列统计数据和部署延迟。然后,它向一个公司内任何人都可以阅读的公共频道发布一份新闻编辑室风格的报告。现在,我们的工程师在试图判断是否应该暂缓合并,或试图回答“CI 出了什么问题?”时,可以查阅那个频道,而不必来 ping 我们。

一个坦诚的说明:我们需要多次迭代报告格式。Claude 可以一次性生成一个生成状态报告的技能,但让它真正可读的是团队特有的品味。这是人类沟通,不是管道工程。

Image 6

最后,虽然 Claude 在 lessons.md 中为自己保留一份日志,我们也希望每周一为人类生成交接报告。Claude 会生成每日和每周摘要,这样团队中的一名成员就能接续另一名成员的工作。

从监控事件到监控事件响应系统

我们的软件工程师平均每季度交付的代码量是 2021 至 2025 年期间的 8 倍。尽管我们始终维持着高标准的质量要求(每个 PR 都有明确的真人负责人,每次变更都需要审批才能合并,每次变更都要经过同一套 CI 关卡),但要想跟上智能体编码的步伐,唯一的办法就是智能体 CI。

Claude 已经接过了我工作中那些繁琐的部分——非工作时间的突发干扰和事故沟通,让我能够专注于真正能提升系统可靠性的中长期架构变更。

我们所构建的东西最棒的一点是,它不会让人感到零散。我们的值班流程都在 Slack 里,而现在 Claude 也加入了这个频道。

如何开始:

  • 你需要一个 Claude Team 或 Claude Enterprise 方案
  • 组织所有者需要通过 Claude Tag 将 Claude 添加到值班 Slack 频道
  • 组织所有者还需要帮助将值班 Slack 频道中的 Claude 连接到相应的连接器、GitHub 仓库,并设置 Claude Code Remote。
  • 将 Claude 添加到你的事故频道,并指示它监控事故并立即进行分诊

用我们的配置套件搭建你自己的 Claude 值班助手。

本文由 Anthropic 技术团队成员 Sachin Malhotra 撰写。

来源:Claude:Blog(网页) · claude.com