edenciso/service-outage-orchestration-swarm
GitHub: edenciso/service-outage-orchestration-swarm
一个事件响应智能体集群,通过故障检测、根因关联、假设排序和可逆缓解方案编排,加速跨内外部依赖的服务中断处置。
Stars: 1 | Forks: 0
# 服务中断编排集群 v1.0
一个可运行的、以推荐优先的 incident-response agent 集群,能够检测、关联、定位并缓解跨越内部服务以及外部云、CDN、AI 和运营商依赖项的服务中断。
## 已实现的功能
- 任务接收来源包括三个模拟的服务中断场景、手动/告警 API 请求、提供商状态更新以及增量信号。
- 精心管理的服务/依赖图。
- 用于记录故障、因果怀疑、用户痛点、信任、拥堵和缓解成功的 Stigmergic 场域通道。
- 排名前三的假设,包含证据、置信度、受影响节点和爆炸半径。
- Scout、router、repair、sentinel 和 tuner worker 集合。
- 排名列表形式的缓解方案,包含奖励、置信度、影响、风险、策略类别、因素、场域快照引用和回滚计划。
- 具有四个可逆 action adapter 的策略网关 broker:
- feature flag 切换;
- queue retry 调优;
- 服务 throttle 调整;
- 有限流量转移。
- 针对 P2 action 的人工审批队列。
- 内部总结、状态页草稿和高管更新。
- SQLite 审计账本、incident memory 和重放导出。
- 兼容 OpenClaw 的隔离工作区和角色技能。
- 基于 Web 的任务控制 UI。
## 范围优化
PRD 的生产技术栈在 v1.0 中被刻意精简。引入 Redis、Postgres、NATS/Kafka、Ray 和 OPA 会增加配置成本,但对于验证首个核心问题毫无帮助:**受监管的集群能否比纯人工工作流更快地生成可信、可解释且可安全执行的服务中断缓解方案?**
每个本地组件都有明确的替换边界,详见 [`docs/ARCHITECTURE.md`](docs/ARCHITECTURE.md)。产品语义得到了保留;分布式规模扩展和第三方控制集成则被推迟。
## 在本地运行
```
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
uvicorn outage_swarm.api:app --reload
```
打开 `http://localhost:8000`。
broker 默认在 **dry-run 模式**下运行。它会记录提议的状态转换和 rollback token,但不会触及外部基础设施。
### Docker
```
docker compose up --build
```
### CLI 演示
```
outage-swarm scenarios
outage-swarm demo cloud-region-retry-storm
```
### 测试
```
pytest
```
## API 工作流
```
# 创建并分析场景
curl -s -X POST http://localhost:8000/api/missions/scenario/cloud-region-retry-storm
# 阅读任务
curl -s http://localhost:8000/api/missions/
# 批准 P2 推荐
curl -s -X POST http://localhost:8000/api/missions//recommendations//approve \
-H 'Content-Type: application/json' \
-d '{"actor":"incident-commander","decision":"approved","reason":"bounded canary"}'
# 通过 broker 执行
curl -s -X POST http://localhost:8000/api/missions//recommendations//execute \
-H 'Content-Type: application/json' \
-d '{"actor":"execution-broker"}'
```
交互式 API 文档可在 `http://localhost:8000/docs` 获取。
## OpenClaw 集成路径
默认的可执行实现采用确定性的 Python,以确保 incident 循环可复现且可测试。`openclaw/` 目录包含隔离的角色工作区、`AGENTS.md` 约束、自定义的 `SKILL.md` 包以及配置示例。设置:
```
export OUTAGE_SWARM_OPENCLAW_MODE=filesystem
export OUTAGE_SWARM_OPENCLAW_WORKSPACE=./openclaw/workspaces
```
conductor 会将任务数据包发布到相关的工作区收件箱中。生产环境的集成将会使用 Gateway 会话/工具调用来替换文件系统交互,同时保留相同的强类型任务契约和 broker 边界。
## 推荐的 v1.1 演进路线
1. 添加真实的只读 ingestor:Prometheus/OTel webhook、Cloudflare/AWS/OpenAI 类型的状态 adapter。
2. 将本地策略评估器替换为 OPA/Rego,同时保留当前的策略夹具。
3. 在非生产环境中,接入一个真实的可逆平面——例如 LaunchDarkly 或某个 queue 配置 API。
4. 为假设相关性和建议实用性添加操作员反馈控制。
5. 在引入 Ray 或学习型策略之前,对 20-30 个历史 incident 进行重放评估。
## 安全模型
- 只有执行 broker 拥有 action adapter。
- P2 action 需要明确的批准。
- P3 action 将被拒绝。
- 所有 action 必须是可逆的、有作用域限制的,并包含 rollback token。
- 默认采用 dry-run。
- 系统会安全降级为仅推荐模式。
标签:PyRIT, Python, 多智能体系统, 库, 应急响应, 微服务治理, 故障自愈, 无后门, 请求拦截, 运维监控, 逆向工具