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 启动添加集成测试
- 在支持执行的端点周围添加身份验证和授权
标签:域名枚举, 测试用例, 版权保护