背景

凌晨 3 点,手机被 PagerDuty 唤醒。你打开告警面板,几十条 P1/P2 告警同时涌入:CPU 飙升、磁盘 IO 等待拉满、接口超时…… 你需要快速判断哪个是根因、哪些是关联告警,还要一边翻 Confluence 找应急手册。

JiuwenSwarm 提供了 Team 模式(多智能体协作)、Skill 技能系统、Heartbeat 心跳巡检、Cron 定时任务等能力,可以帮助 SRE 团队构建智能值班体系。

JiuwenSwarm 是基于 openJiuwen 框架构建的智能 AI Agent,支持多智能体 Team 协作、技能扩展、心跳定时任务、多渠道接入等能力。


核心能力介绍

在动手之前,先了解 JiuwenSwarm 中与 SRE 场景相关的几个核心能力:

Team 模式(多智能体协作)

JiuwenSwarm 支持 Agent / Code / Team 三种运行模式。其中 Team 模式 支持配置 Leader + 多个 Agent 的协作团队,通过 /mode team 切换。

Team 模式在 config.yaml 中配置:

modes:
  team:
    sre_oncall_team:        # 团队名称
      team_name: sre_oncall_team
      lifecycle: persistent
      teammate_mode: build_mode
      spawn_mode: inprocess
      leader:
        member_name: sre_leader
        display_name: SRE值班长
        persona: "资深SRE工程师,擅长告警分级、根因分析和应急响应协调"
      agents:
        leader:
          workspace:
            stable_base: true
          max_iterations: 200
          completion_timeout: 600.0
      workspace:
        enabled: true
      transport:
        type: inprocess
      storage:
        type: sqlite

Skill 技能系统

Skill 是 JiuwenSwarm 的可安装能力模块。每个 Skill 是一个包含 SKILL.md 的文件夹:

my-skill/
├── SKILL.md              # 技能定义(必须)
├── references/           # 参考文档(可选)
└── scripts/              # 辅助脚本(可选)

技能来源包括:内置技能、SkillNet(基于 GitHub)、ClawHub(技能商店)、本地导入。

Heartbeat 心跳巡检

JiuwenSwarm 的 Heartbeat 机制可以按固定间隔触发 Agent 执行任务。在 HEARTBEAT.md 中定义巡检任务,Agent 会在每次心跳时读取并执行。

配置位于 config.yaml

heartbeat:
  every: 3600        # 间隔秒数,3600 = 每小时
  target: web        # 结果推送到哪个渠道
  active_hours:      # 生效时间段(本地时间)
    start: 08:00
    end: 22:00

也支持 Web UI 直接编辑心跳配置和任务内容。

Cron 定时任务

Cron 功能支持创建定时执行的 Agent 任务,在 Web UI 的 Cron / Scheduled tasks 面板中配置。支持标准 5 字段 cron 表达式,结果可推送到 web、飞书等渠道。


实操:搭建 SRE 值班告警处理体系

一、安装与初始化

pip install jiuwenclaw
jiuwenclaw-init

初始化完成后,工作空间位于 ~/.jiuwenclaw/,可通过 jiuwenclaw-start 启动服务,浏览器访问 http://localhost:5173

二、配置 SRE 值班团队(Team 模式)

编辑 ~/.jiuwenclaw/config/config.yaml,在 modes 部分添加 Team 配置:

modes:
  team:
    sre_oncall_team:
      team_name: sre_oncall_team
      lifecycle: persistent
      teammate_mode: build_mode
      spawn_mode: inprocess
      leader:
        member_name: sre_leader
        display_name: SRE值班长
        persona: "资深SRE工程师,擅长告警分析。收到告警后,你需要:1)对告警进行分级(P0-P3)并去重关联告警;2)进行根因分析,输出根因假设和证据链;3)生成包含诊断步骤、修复步骤、回滚方案的应急操作手册。所有分析结果以结构化格式输出。"
      agents:
        leader:
          workspace:
            stable_base: true
          max_iterations: 200
          completion_timeout: 600.0
      workspace:
        enabled: true
      transport:
        type: inprocess
      storage:
        type: sqlite

说明: Team 模式中 Leader 的 persona 字段定义了该角色的行为方式。我们在 persona 中注入了 SRE 告警分析的完整指令:分级 → 根因分析 → 应急手册生成。

启动或重启服务后,在 Web 对话框中输入 /mode team 切换到团队模式。

三、创建 SRE 告警分析技能(Skill)

除了 Team 模式,也可以创建一个专用的 Skill 来处理告警分析。

方法 1:本地创建 Skill 文件

~/.jiuwenclaw/agent/jiuwenclaw_workspace/skills/ 下创建技能目录:

cd ~/.jiuwenclaw/agent/jiuwenclaw_workspace/skills
mkdir sre-alert-analysis

创建 SKILL.md

---
name: sre-alert-analysis
version: 1.0.0
description: SRE告警分析技能,支持告警分级、根因分析和应急手册生成
tags: [sre, alert, monitoring, runbook]
allowed_tools: [webSearch, readFile]
---

# SRE 告警分析

当收到告警信息需要分析时,按以下流程处理:

## 步骤

1. 告警分级:按影响面和紧急程度将告警分为 P0(全局不可用)、P1(核心功能受损)、P2(非核心异常)、P3(性能预警)。将同一服务的关联告警归为一组并去重。

2. 根因分析:对最高优先级的告警组使用 5-Whys 方法进行根因分析,输出根因假设、置信度评分(0-1.0)和证据链。

3. 生成应急手册:基于根因分析结果,生成包含以下三部分的应急操作手册:
   - 诊断步骤:用于确认问题的只读命令
   - 修复步骤:解决问题的操作命令
   - 回滚方案:修复失败时的回退操作

方法 2:通过 Web UI 导入

在 Web 界面左侧栏 → SkillsLocal import → 选择上述技能文件夹即可安装。

技能自演进: JiuwenSwarm 支持技能自演进(Skill Evolution)。开启后,Agent 会根据使用反馈自动优化 SKILL.md 内容。在 config.yaml 中配置:

evolution: enabled: true auto_scan: false # 建议先用手动 /evolve skill_base_dir: "workspace/agent/skills"

四、配置心跳巡检(Heartbeat)

编辑 ~/.jiuwenclaw/agent/jiuwenclaw_workspace/HEARTBEAT.md,添加 SRE 巡检任务:

心跳任务

检查是否有新增的 P0/P1 级别告警
如有新告警,按 sre-alert-analysis 技能流程进行分析
汇总过去一段时间的告警统计

config.yaml 中调整心跳间隔(SRE 值班场景建议缩短间隔):

heartbeat:
  every: 300         # 每 5 分钟巡检一次
  target: web        # 结果推送到 Web 界面
  active_hours:      # 24小时覆盖
    start: 00:00
    end: 23:59

也可以在 Web UI 的 Heartbeat 面板中直接编辑配置和任务。

五、配置定时告警汇总(Cron)

在 Web UI 中打开 Cron / Scheduled tasks → 点击 New job

  • namedaily_alert_summary
  • cron_expr0 9 * * *(每天上午 9 点)
  • timezoneAsia/Shanghai
  • targetsweb
  • description:汇总过去 24 小时的告警数据,包括各级别告警数量、Top-5 频繁告警、未解决的 P0/P1 事件列表

保存后,Agent 会在每天 9:00 自动执行汇总任务。

提示: 也可以通过对话创建定时任务。例如在对话框中说:"创建一个每天早上 9 点的定时任务,汇总过去 24 小时告警统计,推送到 web。"


实际使用示例

场景:数据库主从延迟引发的服务异常

在 JiuwenSwarm 的 Web 对话框中(使用 /mode team 切换到 Team 模式后)输入:

收到以下告警:
[prod-db-master] MySQL replication lag > 60s
[prod-api-gateway] HTTP 500 rate spike to 15%
[prod-cache-redis] connection pool exhausted
[prod-api-gateway] response time P99 > 3s
[monitor] disk usage > 90% on /data partition (prod-db-master)

Agent 响应示例:

告警分级:

根因分析:

应急操作手册:


特性总结

暂时无法在飞书文档外展示此内容


相关资源

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐