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代理, 自动化攻击, 自动化运维, 运维监控