marinakim44/ai-incident-agent
GitHub: marinakim44/ai-incident-agent
基于 Amazon Bedrock AgentCore 的半自主故障响应 Agent,能自动调查 AWS 生产环境故障、收集证据、定位根因并生成结构化报告,同时为构建生产级 Agent 系统提供工程参考。
Stars: 0 | Forks: 0
# AI 故障响应 Agent
一个使用 Amazon Bedrock AgentCore 构建的开源 AI 故障响应 agent。
该 AI agent 可以通过从云基础设施收集证据、对收集到的信息进行推理以及生成故障报告来调查生产环境故障。它还探讨了在 prompt 工程之外,构建可靠的 agentic 系统所涉及的工程挑战。
本仓库旨在为希望构建能与真实基础设施交互的 AI agent 的开发者提供学习资源和参考实现。
## Agent 的功能?
当检测到故障时,该 agent 可以:
- 调查应用程序可用性
- 检查 AWS 基础设施
- 分析 CloudWatch 指标和日志
- 检查 Elastic Beanstalk 环境
- 识别可能的根本原因
- 建议修复措施
- 执行已批准的修复工具
- 生成结构化的故障报告
确切的调查工作流取决于提供给 agent 的可用工具。
## 架构 / Terraform
本仓库包含一个 Terraform 项目,用于配置在 AWS 上运行 AI 故障响应系统所需的基础设施。
默认架构包括:
- Amazon EventBridge 计划任务,以可配置的间隔触发监控 Lambda
- 负责监控一个或多个系统组件健康状况的 AWS Lambda 函数
- 用于跟踪故障状态并防止重复调查的 Amazon DynamoDB 表
- 托管 AI 故障响应 agent 的 Amazon Bedrock AgentCore runtime
- 在执行期间保护 agent 的 Amazon Bedrock Guardrails
- 授予监控和调查所需最低权限的 IAM 角色和策略
### 监控 Lambda
监控 Lambda 对配置的 endpoint 执行健康检查。如果一个或多个组件不可用且当前没有处于活动状态的故障,它将调用 AI agent,并将监控结果作为调查的起始上下文传递给它。
然后,该 agent 可以:
- 使用可用的工具调查故障
- 从 AWS 服务收集证据
- 执行修复操作(在已配置的情况下)
- 生成结构化的故障报告
- 可选择通过电子邮件发送报告
Terraform 配置旨在作为参考实现。监控层可以替换为任何能够调用该 agent 的系统,例如 CloudWatch 告警、第三方监控平台或现有的故障管理系统。
## 在本地运行
### 前置条件
- Node.js 22+
- 已配置 AWS CLI
- 已启用 Bedrock 模型访问
- 具备适当的 IAM 权限
1. 安装依赖 `npm install`
2. 配置环境变量 `cp .env.example .env`
3. 在本地运行 `npm start`
重要提示:请调整 agentic 系统的组件以使其与您的应用程序保持一致,例如:
- prompt.js
- .env
- aws-targets.json
- toolsConfig.js
- 您的 Bedrock Guardrail ID
- 您的 Lambda 函数列表
# 部署
部署
在将 agent 部署到您的 AWS 账户之前,请更新部署配置。
1. 配置部署目标
编辑 incidentagent/aws-targets.json 并将账户 ID 替换为您自己的 AWS 账户。
2. 配置基础设施
使用适合您环境的值更新 infra/terraform.tfvars,例如:
- 项目名称
- 前端 URL
- 后端 URL
- AgentCore runtime ARN
3. 配置基础设施
- cd infra
- terraform init
- terraform apply
4. 部署 agent
使用 AgentCore CLI `cdk deploy` 将 agent 部署到 Amazon Bedrock AgentCore,但如果适合您的话,您也可以使用 AgentCore CLI 命令 `agentcore deploy`。
## 配置
大多数行为可以通过以下方式进行配置:
- 系统 prompt
- 工具配置
- IAM 权限
- Bedrock Guardrails
- 执行限制
agent 本身包含极少的基础设施特定逻辑。
# 生产环境考量
本仓库有意包含了一些在构建生产级 agent 时变得非常重要的模式。
示例包括:
- 确定性代码与 LLM 推理之间的职责明确分离
- 受 IAM 作用域限制的工具权限
- 工具白名单
- 执行限制
- 可观测性 / 调查时间线 / 审计追踪
- 结构化的故障报告
- 启用的 guardrails
# 局限性
本项目旨在作为参考实现。
它不是一个完整的故障管理平台,不包括:
- 监控
- 告警
- 身份验证
- 仪表盘
- CI/CD
- 生产环境部署 pipeline
这些组件将根据 agent 部署的环境而有所不同。
因此,在使用本仓库之前,我建议执行以下操作:
- 确定您希望 agent 监控的环境
- 分析该环境的各个组件
- 调整 AI agent 工具
- 调整 Terraform 脚本并部署适合您应用程序的环境
- 按照本 README 中的说明调整环境和其他配置
- 有关 AgentCore,请参阅 incidentagent 文件夹中提供的默认 README
标签:AI智能体, AWS, DPI, MITM代理, 自动化攻击, 自动化运维, 运维监控