设置你自己的Claude值班助手,使用我们的安装工具包

几周前,我正在值班,晚上10点同事通过Slack告诉我:新服务的大约44个测试没有触发。

过去,我会停下手头工作,拿出笔记本电脑,疲惫地叹气,然后开始长达一小时的调查和修复过程。但现在,我的工作流程完全不同:我调用@Claude,询问它的观察结果。

这次,Claude发现测试消失是因为当天早上开启了一个功能开关,并且判断回滚是安全的。我让同事回滚该开关。3分钟后,Claude在Slack上通知我,跳过规则已被移除,错误率恢复到基线水平。

Claude值班助手示意图

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

本文将介绍我们构建的系统及其工作原理,帮助你自行搭建类似工具,减少轮值时的压力。

我们的Claude值班助手架构

在详细介绍事件响应流程前,先概述我们的整体架构,帮助你理解全局。

一个值班助手需要具备:记忆能力(记录已完成的操作);连接和访问权限(便于调查、理解和执行操作);时间安排(知道何时继续工作);以及操作指令(明确任务)。

Claude Tag是我们值班助手的核心。它在值班Slack频道中保持记忆,并通过界面提供每轮操作指令。Claude还能实时响应值班频道及其他频道的事件。例行操作的调度也在该频道通过自然语言指令完成,比如“每周一上午9点运行CI交接”。

Claude Tag拥有自己的服务账户,并获得Anthropic CI工程师所需工具的访问权限,如Datadog和Grafana。管理员只需一次性完成设置(详细步骤)。

除了值班频道,我们还让Claude监控其他相关频道,这些频道也包含Claude Tag成员,以获取更多上下文信息,如服务警报、配置变更或PR更新。

常驻指令以Markdown文件形式存储在GitHub仓库中,方便团队成员协作迭代,像管理代码一样管理变更。文件中包含路由指令、策略和经验教训日志,形成自我改进闭环。

该系统搭建耗时数小时而非数天。我们在GitHub创建了通用的值班设置工具包,帮助你快速启动类似代理。它能将团队的历史事件转化为分诊手册,并在事件频道中留下只读的Claude,负责诊断、升级和学习。你可以在十分钟内观看它针对虚构团队历史的运行演示

简要步骤总结:

  • 需要Claude Team或Claude Enterprise计划
  • 组织所有者需通过Claude Tag将Claude添加到值班Slack频道
  • 组织所有者还需帮助连接Claude至相应的连接器、GitHub仓库,并设置Claude Code Remote
  • 将Claude添加至事件频道,指示其监控事件并立即进行分诊

接下来,我们详细介绍事件各阶段的具体流程。

事件检测

Claude不仅改变了事件响应方式,还革新了事件检测流程。过去,事件检测主要存在两大失败模式。

首先,人类难以始终设定完美的规则和阈值,尤其在缺乏足够数据分析流量模式时更是如此。

为此,我们让Claude分析新服务上线初期几天的数据和警报,建议新增规则并调整过宽或过窄的规则。

第二大失败模式是警报疲劳:检查和验证每条警报非常繁琐,而Claude不会疲劳。

Claude监控每个相关警报频道的警报,依据根本值班规则判断是否可等到早晨处理,或需立即通知值班人员。例如,规则可能是:“如果错误率超过2%且持续超过5分钟,且非已知部署窗口,则通知值班,否则记录到lessons.md。”

此外,Claude值班警报流程还有两种触发方式:

  • CI团队成员可在值班频道报告问题,如开头提到的44个测试缺失
  • 公司任何人可通过内部页面发起事件,若标记为CI基础设施事件,则自动创建Slack事件频道,Claude会接手处理

事件检测流程示意图

关键点是,警报流程是确定性的,而值班升级既有确定性路径,也有智能代理路径。

分诊

Claude筛选警报噪声固然重要,但真正节省时间的是调查过程。Claude通常在事件开启后14分钟内发布首份基于证据的分析报告,最快甚至能在4分钟内指出根因。

当警报升级为事件时,Claude会在Slack频道中提出基于证据的假设供团队审阅。Claude Tag启动动态工作流,由协调代理派遣执行子代理,分别调查各依赖和数据源。

我们使用Grafana、日志存储、PagerDuty、GitHub、Kubernetes和Slack事件频道等工具,均通过MCP连接器集成。Claude可并行追踪多条线索,帮助缩短平均解决时间(MTTR)。

执行代理将调查结果反馈给协调代理,后者整合信息,形成连贯的情况报告(SITREP)。

分诊流程示意图

协调和执行代理并非盲目搜索,而是依赖调查技能,参考针对每类故障的详细Markdown文件

例如,针对影子分歧(shadow divergence)故障的调查技能文件长达617行,编码了我在典型调查中的每一步操作。该文件由我与Claude逐步排查故障时共同创建。

lessons.md文件也指导Claude排查。它是我们解决过的每个事件的持续日志,记录事件经过、根因、修复方案及注意事项。Claude会自动追加内容。每次调查开始时,Claude都会先阅读该文件,因此其初步假设基于近期经验。

若某模式频繁出现,我们会将其纳入调查技能中。我最喜欢的一条是Claude写的关于我的教训:我曾先看配置文件假设问题,未先查指标,lessons.md现在写道:“先查询数据,再推测。配置告诉你可能出错的地方,指标告诉你实际发生了什么。”

即便有这些工具和上下文,Claude也不总是第一次就准确。人类的直觉和经验依然重要。Claude Tag支持多人协作排查,团队成员可实时引导调查或补充假设。

多人协作排查示意图

解决方案

Claude能升级和排查警报,那能否直接修复?答案因团队而异,以下是我们的做法。

团队大多数部署都在功能开关后面。我创建了一个Claude Code代理,拥有我的权限,能在这些功能开关后进行渐进式部署。

我们的发布流程第一阶段通常由Claude管理金丝雀流量,监控问题,并自动调整功能开关的开启比例。这个流程复杂,另文详述。

Claude Tag还帮助团队完成其他解决方案:

  • 通知是否需要排空或隔离Kubernetes集群的某些部分;
  • 指导如何应对需求激增,扩展基础设施(虽然少见,但Claude能准确给出缓解方案非常有用);
  • 最常见的是,生成PR供值班人员审查、合并并部署,实现快速修复。

验证、沟通与交接

Claude使用调查时用到的MCP连接器和工具验证修复效果。根据oncall.md中的常驻指令,它会撰写事后总结到lessons.md,并生成交接用的情况报告。

为了跨多个事件传达完整信息,我们创建了名为ci-weather的代理。它汇总各事件Slack频道信息、构建指标、合并队列状态和部署延迟,然后发布新闻稿式报告到一个公开频道,供全公司员工查看。这样工程师无需频繁打扰我们,就能判断是否暂停合并或了解CI问题。

需要坦诚的是,我们多次调整报告格式。Claude能一次性生成状态报告,但让报告易读的是团队特有的表达习惯。这是人类沟通,而非简单技术流程。

沟通与报告示意图

最后,Claude为自己在lessons.md中记录日志,我们也希望每周一为团队成员生成交接报告。Claude会产出每日和每周总结,方便团队成员无缝接替工作。

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

我们的软件工程师平均每季度交付代码量是2021至2025年的8倍。虽然我们保持高质量标准(每个PR都有明确负责人,所有变更需审批,均通过CI关卡),但要跟上智能编码的步伐,必须拥有智能CI。

Claude承担了我工作中繁琐的部分,包括非工作时间的中断和事件沟通,让我能专注于中长期架构改进,真正提升系统可靠性。

最棒的是,我们构建的系统感觉并不零散。我们的值班流程依然在Slack中进行,但现在Claude已加入频道。

如何开始:

  • 需要Claude Team或Claude Enterprise计划
  • 组织所有者通过Claude Tag将Claude添加到值班Slack频道
  • 组织所有者帮助连接Claude至相应连接器、GitHub仓库,并设置Claude Code Remote
  • 将Claude添加至事件频道,指示其监控事件并立即分诊

设置你自己的Claude值班助手,使用我们的安装工具包

本文作者:Sachin Malhotra,Anthropic技术成员,Michael Segner协助贡献。