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, 多智能体系统, 库, 应急响应, 微服务治理, 故障自愈, 无后门, 请求拦截, 运维监控, 逆向工具