wisdom99/ai-incident-response-agent

GitHub: wisdom99/ai-incident-response-agent

基于 Spring Boot 的 AI 事件响应 Agent 脚手架,通过分阶段工作流编排实现事件的接入、诊断、策略决策、执行验证与审计追溯。

Stars: 0 | Forks: 0

# AI 事件响应 Agent 基于 Spring Boot 的 AI 事件响应 Agent 基础架构,用于接收事件、通过分阶段响应工作流处理它们,并以强大的默认可观测性记录操作决策。 ## 技术栈 - Java 25 - Spring Boot - PostgreSQL - Flyway - Docker Compose - Spring Boot Actuator - Jakarta Bean Validation - 结构化 JSON 日志 ## 高级架构 该服务被组织为一个工作流 pipeline,在每个操作关注点之间具有明确的边界: 1. `incident ingestion`(事件接入) 从上游系统接收经过验证的事件 payload,并将其转换为内部命令。 2. `diagnosis`(诊断) 为事件生成初步的分类和可能原因评估。 3. `policy`(策略) 应用防护机制并确定是否允许自动化执行。 4. `execution`(执行) 准备或触发策略允许的修复计划。 5. `verification`(验证) 确认执行结果是否应被监控、重试或升级。 6. `audit`(审计) 捕获工作流轨迹,以便决策保持可追溯和可审查。 编排的入口点是 `IncidentResponseWorkflowService`,它将各个阶段连接在一起,同时保持每个阶段可单独测试和替换。 ## 包布局 ``` src/main/java/com/wisdom99/aiincidentresponse ├── AiIncidentResponseAgentApplication.java ├── orchestration │ ├── IncidentResponseSummary.java │ └── IncidentResponseWorkflowService.java ├── incident/ingestion │ ├── api │ └── application ├── diagnosis/application ├── policy/application ├── execution/application ├── verification/application └── audit/application ``` ## 当前基础 此脚手架包含: - Spring Boot 应用程序入口点 - 位于 `POST /api/v1/incidents` 的启动接入 API - 对入站 payload 的验证 - 跨诊断、策略、执行、验证和审计服务的工作流编排 - PostgreSQL 数据源配置 - Flyway 数据库迁移 - 用于本地 Postgres 的 Docker Compose - Actuator 健康和指标端点 - 结构化 JSON 控制台日志 ## 数据库 Flyway 创建了两个初始表: - `incident_record` 存储入站事件元数据和原始 payload - `audit_event` 存储工作流阶段结果以供追溯 ## 本地设置 ### 前提条件 - 本地安装 Java 25 - 本地安装 Maven - Docker Desktop 或兼容的 Docker 运行时 ### 1. 启动 PostgreSQL ``` docker compose up -d ``` ### 2. 配置环境 将 `.env.example` 中的值复制到您的 shell 或您首选的环境管理器中: ``` export DB_HOST=localhost export DB_PORT=5432 export DB_NAME=incident_response export DB_USERNAME=incident export DB_PASSWORD=incident export SERVER_PORT=8080 ``` ### 3. 运行应用程序 ``` mvn spring-boot:run ``` ### 4. 验证服务 健康端点: ``` curl http://localhost:8080/actuator/health ``` 示例事件接入请求: ``` curl --request POST http://localhost:8080/api/v1/incidents \ --header "Content-Type: application/json" \ --data '{ "externalIncidentId": "inc-1001", "sourceSystem": "pagerduty", "severity": "HIGH", "summary": "API error rate increased beyond threshold", "payload": { "service": "payments-api", "region": "eu-west-1", "errorRate": 17.3 } }' ``` ## 可观测性 - 暴露 `health`、`info`、`metrics`、`prometheus` 和 `loggers` 的 Actuator 端点 - 控制台日志配置为结构化 JSON 输出 - MDC 字段(如 `incidentId` 和 `sourceSystem`)在接入期间被附加 ## 建议的后续步骤 - 通过 repository 持久化事件和审计记录 - 添加异步执行和验证 worker - 在明确的 port 后引入 AI 支持的诊断和策略引擎 - 为接入、Flyway 和 PostgreSQL 启动添加集成测试 - 在支持执行的端点周围添加身份验证和授权
标签:域名枚举, 测试用例, 版权保护