亚马逊AWS官方博客

使用 Agentic AI 助手 NotiOps 构建可追溯且只读的 AWS 运维工作台

摘要:快速发起故障调查,让每条回复都有据可查,以 AWS DevOps Agent、AWS Knowledge MCP、AWS Labs 开源 MCP servers 和只读 AWS API 为主要调查与取证能力,并将工作负载操作限制在只读边界内。


一、AIOps 新挑战

在生成式 AI 进入云运维场景后,团队通常会先问三个问题:答案和调查结果的依据是什么,使用的是不是可信的 AWS 信息源,以及 Agent 会不会修改生产环境。对运维场景而言,一个听起来合理、却无法追溯来源的答案并不足够;一个拥有广泛写权限的 Agent,也很难直接进入生产值班流程。

NotiOps 是面向 AWS 云的 Agentic AI 助手,提供一个以浏览器为主入口的只读云运维工作台。工程师可以用自然语言查询 AWS 环境、检索官方文档、调查故障、分析成本和资源的健康状况。系统在每条回复旁展示回复来源:既包括调用过的 MCP 或 AWS API,也包括官方文档链接;如果本轮没有调用外部工具,也会明确标注为“模型自身知识,非实时数据”,避免把模型推断伪装成实时事实。

遇到需要跨指标、日志、变更记录和资源关系进行关联分析的复杂故障时,用户可以在 NotiOps 中点击“深度调查”,直接联动目标账号的 AWS DevOps Agent。NotiOps 会自动带上当前账号和问题上下文,在同一个页面展示调查进度、根因结论、缓解建议及原始报告链接。与单独打开 DevOps Agent 控制台相比,NotiOps 将官方文档问答、账号切换、快速只读排查、深度调查、成本分析和 Support Case 协作放在统一入口中,工程师无需在多个控制台之间重复定位资源和整理证据。

本文围绕 NotiOps 的三项核心设计原则展开:所有回复都有来源、AWS 事实优先由官方 MCP 取证、调查路径保持只读。部署部分同时介绍 CloudFormation 一键部署与 setup.sh 完整部署,并说明两条路径各自的升级和环境清理方法。

二、三项设计承诺

  1. 每条回复都有来源: Sources 面板展示本轮使用的工具、MCP 提供方、AWS API、官方文档链接或报告链接。没有调用外部工具时,也会明确披露“模型自身知识,非实时数据”。来源不为空,不代表结论无需复核;它的意义是让工程师知道从哪里开始核验。
  2. AWS 事实优先来自官方 MCP: AWS 概念、服务行为和最佳实践优先通过 AWS Knowledge MCP 检索官方文档;成本、定价、CloudWatch、CloudTrail 和 AWS API 等能力使用 AWS Labs 开源 MCP servers。账号内的实时资源状态则来自只读 AWS API,并同样在 Sources 中标明数据来源。
  3. 调查路径保持只读: NotiOps 的运行时工具以 Describe、Get、List 等读取操作为主,并通过只读工具白名单、系统约束、输出审计和 IAM 权限形成纵深防御。它可以提出修复建议,但不会替用户停止、删除、扩缩容或修改工作负载。

三、解决方案概览

NotiOps 的目标不是替代运维工程师做最终判断,而是缩短“找到证据、组织证据、形成下一步行动建议”的路径。它把官方知识检索、账号实时数据和常见云运维任务组织为可复用的 MCP 工具与 Skills,并把正文、调查过程和来源返回到同一个工作界面。

  • AWS 知识问答:通过 AWS Knowledge MCP 检索官方文档、博客、What’s New 和 Well-Architected 指南,并附上可点击来源。
  • NotiOps 支持直接与 NotiOps Agent 和 AWS DevOps Agent 对话,用户可以根据需求选在其中一个开始对话。
  • 故障调查:使用 DevOps Agent、CloudWatchCloudTrailAWS API MCP,以及只读 AWS API,收集告警、指标、日志、变更历史和资源状态。
  • Skill Hub: 提供 11 个预置运维 Skill,团队也可自定义并验证,还可将文档型 Skill 发布到 AWS DevOps Agent Space
  • 成本与资源健康:通过 AWS Billing and Cost Management MCPPricing MCP 和只读资源工具分析真实成本与配置。
  • 主动通知:将多类 Amazon EventBridge 信号归一化后写入 Web 通知收件箱;Slack 和飞书可作为可选协作入口。
  • 透明来源:所有工具调用、文档 URL、报告和模型知识回退都会进入同一 Sources 面板。
图 1:NotiOps Web 控制台

[图 1:NotiOps Web 控制台]

工程师可以从问答、通知、调查、成本、安全、案例和 Skills 等入口开展工作。

四、NotiOps 如何工作

  1. 用户提出问题: 工程师通过 Amazon Cognito 登录 Web 控制台,选择账号和模型,然后输入自然语言问题。Web 搜索是可选能力;如果希望以 AWS 官方来源为基线验证,可以保持 Web 搜索关闭。同时,也选择不同的 Agent(NotiOps/DevOps)来进行提问,如果选择 DevOps Agent,对于购买了企业支持服务的客户,可以享受 DevOps Agent 服务的费用减免,降低企业的 Token 消耗。
  2. Agent 先取证: 运行在 Amazon Bedrock AgentCore Runtime 中的 Agent 根据问题选择相应工具。AWS 概念和服务行为优先查询 AWS Knowledge MCP;成本、定价、指标、日志和变更历史优先调用对应的 awslabs MCP server;账号资源现状通过只读 AWS API 获取。
  3. 深度调查: 对于需要跨信号关联和正式根因分析的问题,用户可以点击“深度调查”,由 NotiOps 定位当前账号对应的 AWS DevOps Agent、发起调查并持续返回调查过程。调查完成后,根因、缓解建议、调查编号和可下载报告会回到当前会话;整个调查链路只读取客户环境,不自动执行修复操作。
  4. 只读边界拦截变更: 工具层只暴露经过筛选的读取和分析能力,通用 AWS API 兜底也限制为只读操作。系统提示和输出审计进一步拒绝停止、删除、修改、扩缩容等变更请求;IAM 角色构成最终权限边界。
  5. 系统汇聚来源: 每次工具调用都会映射为一条来源记录。能够返回文档或报告 URL 的工具还会附上可点击链接;如果没有使用外部工具,系统会以模型名称和“非实时数据”标记作为来源兜底。
  6. 正文与 Sources 一起返回: Agent 将证据组织成摘要、发现、风险和建议验证步骤,并把正文与 Sources 流式返回。工程师可以从 Sources 面板打开原始文档,或根据显示的 API 和工具重新核验。

下图展示了 NotiOps 控制平面、模型与工具之间的调用关系,以及客户账号中的只读权限边界。

图 2:NotiOps 的运行位置与只读边界

[图 2:NotiOps 的运行位置与只读边界]

蓝色组件由 NotiOps 部署创建;绿色组件表示客户账号内的只读访问。

这套架构把面向团队的控制平面与客户账号中的取证权限分离:浏览器请求由 Cognito 鉴权,经 BFF Lambda 流式送入 AgentCore Runtime;Agent 再根据任务选择 AWS DevOps Agent 或者 NotiOps 集成 AWS MCP 来进行处理;底层模型由 Amazon Bedrock 来提供。客户账号不需要部署通用写入代理,只需提供经过限定的只读 IAM 角色。

五、安全边界与数据流

本文所说的“只读”: 是指运维调查和资源检查路径不会修改客户工作负载。NotiOps 可以说明建议执行的变更及其风险,但不会输出或自动执行停止、删除、修改、扩缩容等操作。AWS Support Case 和管理员配置属于单独授权的控制面动作,不应与工作负载只读角色混用。

NotiOps 的只读承诺不是只依赖提示词。代码通过工具白名单限制 Agent 可调用的能力,系统提示拒绝变更意图,输出审计检查可能泄漏的变更命令,部署角色的 IAM 权限则构成不可绕过的最终边界。对于通用 AWS API MCP,运行时还通过只读模式和敏感读取 denylist 做纵深防御。

  • 从单账号和最小权限开始,仅开放验证场景所需的 API。
  • 重要结论应从 Sources 回到原始指标、日志、CloudTrail 事件、成本数据或官方文档核实。
  • 对 Support Case 和管理配置等控制面写操作使用独立权限、显式确认和审计记录。
  • 不要在提示词中输入密码、访问密钥、令牌、个人信息或其他不应进入模型上下文的数据。
  • 联网搜索是可选能力。启用后,外部网页会作为独立来源显示;如果组织要求答案仅依赖 AWS 官方来源,可以保持该开关关闭。

六、前提条件

如果使用 CloudFormation 一键部署方式,客户侧需要准备:

  • 一个可以登录 AWS Management Console,并创建 CloudFormation 栈和相关 IAM 资源的身份。
  • 一个可接收 Amazon Cognito 临时密码的真实邮箱,以及在目标区域可用的 Amazon Bedrock 模型。
  • 如需 AWS DevOps Agent 深度调查,请选择服务支持的区域;不支持时模板会跳过 Agent Space,而不会导致栈失败。
  • 如需 AWS Organizations 多账号模式,请从组织管理账号或 CloudFormation StackSets 委派管理员账号部署。

如果使用 setup.sh 完整部署,还需要 git、Node.js、Python、uv、AWS CDK 和一份能够部署所需资源的 AWS 凭证;只有启用 Slack 或飞书 IM 机器人时才需要 Finch、Docker 等容器运行时。

七、部署 NotiOps

NotiOps 提供两条部署路径。CloudFormation 一键部署适合只使用浏览器的环境,可部署 Web Chat、官方文档问答、资源巡检、DevOps Agent 深度调查、AWS Support、Skills、模型管理,以及部署账号范围内的 FinOps 页面;setup.sh 完整部署在此基础上增加 IM、主动事件推送、每日巡检、完整管理仪表盘和 CUR/Athena 明细分析。

7.1 方式 A:CloudFormation 一键部署

这条路径不需要在本地安装 CDK、Node.js、Python 或容器运行时,也不需要长期 Access Key。客户只需通过浏览器下载模板并登录 AWS Management Console。

  1. 下载模板。 打开 NotiOps GitHub Releases 最新版本,下载 notiops-webchat.template.json。
  2. 上传模板。 在目标区域打开 AWS CloudFormation,选择 Create stack > With new resources > Upload a template file,然后上传模板。
  3. 填写参数。 输入可接收邮件的 AdministratorEmail;首次部署可以保留其他默认值。
  4. 确认可选能力。EnableDeepInvestigation 默认为 Yes;当区域支持 AWS DevOps Agent 时会创建 Agent Space,不支持时自动跳过。
  5. 创建并登录。 勾选 CloudFormation 的 IAM capability 确认框并提交。CREATE_COMPLETE 后,从 Outputs 打开 ChatUrl,使用 admin 和邮件中的临时密码登录。

7.2 方式 B:setup.sh 完整部署

需要 IM、主动推送、定时巡检、管理仪表盘或 CUR/Athena 时,从公开 GitHub 仓库下载代码并运行交互式脚本:

git clone https://github.com/aws-samples/sample-notiops.git
cd sample-notiops
./setup.sh

首次运行时,脚本会检查本地依赖和 AWS 身份,引导确认账号、区域和可选 IM 平台。若启用 IM,CDK 会创建空的 Secrets,部署完成后需通过管理界面或 Secrets Manager 填写凭据。

默认命令为单账号模式。如果需要在 AWS Organizations 中跨成员账号开展只读调查和事件转发,请从组织管理账号,或已注册为 CloudFormation StackSets 委派管理员的成员账号运行:

./setup.sh --multi-account

部署建议: 先以一键部署或 setup.sh 单账号模式验证登录、Sources、官方 MCP、实时数据查询和只读拒绝行为,再决定是否启用多账号、IM、主动巡检和 CUR/Athena。

八、升级 NotiOps

8.1 方式 A:CloudFormation 一键部署

从 GitHub Releases 下载新版 notiops-webchat.template.json。在 CloudFormation 中选中现有栈,选择 Update > Replace existing template,上传新版模板;参数页保留 Use existing value,检查变更集后提交。

升级不会重新发送管理员邀请邮件,也不会清空聊天历史、配置表或数据桶。需要回滚时,使用旧版模板再次更新栈。

8.2 方式 B:setup.sh 完整部署

git pull
./setup.sh

setup.sh 是增量部署,只更新有变化的组件;之前保存在 AWS Secrets Manager 中的 IM 凭据不会被覆盖。升级前建议查看 Release Notes,并在测试账号验证登录、Sources、深度调查和只读边界。

九、典型使用场景

9.1 新对话

用户可以从一个新对话开始,先选择目标账号、会话主题和模型,再直接用自然语言描述问题,例如 “过去 24 小时哪些告警触发过” 或 “这个服务最近是否有部署变更”。NotiOps 会根据问题选择官方 MCP、只读 AWS API 或相应 Skill,并把正文、调用过的工具和可点击来源一起返回。用户无需预先知道具体控制台位置或 API 名称,也可以在后续问题中继续沿用同一会话上下文。

[图 3]

9.2 告警调查

当 CloudWatch 告警或 AWS Health 事件到达时,工程师可以从通知中带入账号、区域、资源和时间窗口,继续查询关联指标、日志、资源状态和 CloudTrail 变更历史。Sources 会显示使用过的 CloudWatch、CloudTrail 或 AWS API MCP 工具,最终结论仍由工程师根据原始证据确认。

[图 4]

9.3 故障调查

故障调查提供两种深度。对于范围明确的问题,工程师可以先使用快速只读调查,查看指标、日志、资源状态和近期变更;当问题需要跨服务关联或正式根因分析时,可以点击“深度调查”联动 AWS DevOps Agent。调查过程会显示在侧边面板,完成后把摘要、根因、缓解计划、调查编号和在线报告带回当前会话,方便继续追问或转入 Support Case。

[图 5]

9.4 成本和闲置资源分析

工程师可以从“为什么本周成本上升”这类问题开始,逐步缩小到服务、账号、区域和使用类型。对于闲置或低利用率资源,NotiOps 输出候选项和估算依据,而不是直接删除资源。执行任何优化前,应确认业务所有者、依赖关系、保留策略和回滚方案。

除了自然语言提问,还可以通过 Skill 来完成更复杂的操作,比如:可以让 NotiOps 通过成本突增 Skill 来深度调查并生成报告。

[图 6]

9.5 AWS Support Case 协作

在具备相应权限和 Support plan 时,NotiOps 可以把案例列表、来往回复和当前状态汇总到工作台,减少在调查和案例页面之间切换。同时,还支持通过自然语言创建、更新、总结和关闭案例。

在需要 AWS Support 协作时,工程师可以先让 NotiOps 汇总问题现象、影响范围、时间线、已检查的证据和 DevOps Agent 调查结论,再创建或更新案例。后续回复、案例状态和 Support 通信线程仍在同一工作台中查看。创建、回复和关闭案例属于显式授权的控制面操作,应使用独立权限并由用户确认,不会与客户工作负载的只读调查权限混用。

[图 7]

9.6 Skill Hub

将高频运维流程沉淀为可复用、可版本化的任务模板。NotiOps 提供 11 个预置 Skill,覆盖成本突增、资源健康、事件调查等场景;团队也可以创建自己的 Skill,配置输入、步骤和输出,通过已知案例进行回归验证。需要让 AWS DevOps Agent 在调查中复用团队知识时,还可以把文档型 Skill 发布到目标 Agent Space。

[图 8]

9.7 管理

管理员可以维护对外开放的模型目录、默认模型和后台任务模型,并管理 Skills、凭据和部署配置。完整部署还提供目标账号、通知阈值和主动巡检相关的管理能力。配置变更应遵循最小权限和审计要求;模型目录更新可以即时生效,不需要重新部署整个应用。

十、成本注意事项

NotiOps 会根据启用的功能使用 Amazon BedrockAmazon Bedrock AgentCoreAWS LambdaAmazon DynamoDBAmazon S3Amazon EventBridgeAmazon CloudWatch、Amazon ECR,以及可选的 Amazon ECS on AWS Fargate 和跨账号资源。费用取决于模型调用量、Agent 运行时间、事件数量、日志量、存储量、数据扫描和 IM 服务是否常驻。

建议先使用 CloudFormation 一键部署建立 Web Chat 的基线,记录官方文档问答、账号查询和成本分析的模型与工具调用量;需要 IM、主动通知和 CUR/Athena 后,再评估完整版的额外成本。正式推广前,可以使用 AWS Pricing Calculator 建立预算模型,并为异常支出设置告警。

成本估算工具:AWS Pricing Calculator

十一、清理资源

11.1 方式 A:CloudFormation 一键部署

栈参数 TeardownMode 默认为 KeepData:删除栈时保留配置表、聊天记录表和数据桶;DeleteEverything 会删除这些数据。两种模式都会删除 Amazon Cognito 用户池,因此重新部署后需要重新邀请用户。

要完整删除, 必须先 Update 栈,把 TeardownMode 改为 DeleteEverything,等待更新成功后再 Delete stack。直接在删除确认窗口操作不会改变参数,CloudFormation 会使用最后一次成功部署的值。

11.2 方式 B:setup.sh 完整部署

./teardown.sh --dry-run
./teardown.sh
./teardown.sh --delete-everything

建议先运行 –dry-run 查看清单。默认命令删除运行时和栈,但保留三张 RETAIN 表;–delete-everything 还会删除表、CUR 报告和存储桶、Athena 保存查询及残留日志组。脚本要求输入账号号码确认,并会在删除数据桶前默认备份到本地;不需要备份时可加 –no-backup。

跨账号资源默认不会被自动删除:成员账号 StackSets 需要显式增加 –delete-member-stacksets,各 linked 账号中的 AWS Health 转发栈需要运行 ./setup.sh –phd –remove。脚本不会删除 CDKToolkit 等可能被其他项目共享的 CDK bootstrap 资源。

十二、总结

NotiOps 展示了一种更适合云运维的 Agentic AI 工作方式:每条回复都有据可查,AWS 相关信息优先由 AWS 官方 MCP 取证,账号实时状态来自只读 AWS API,工作负载变更则被排除在 Agent 的执行边界之外。它的价值不只是生成答案,而是帮助工程师更快建立一条可以回到原始数据和官方文档复核的证据链。

您可以先从 GitHub Release 下载 CloudFormation 模板,在浏览器中完成 Web Chat 一键部署,并通过日常的运维问题验收 Sources、官方 MCP 和只读行为。之后再根据团队的协作方式、FinOps 数据深度和多账号需求,选择 setup.sh 完整部署。对于生产使用,请把 sample code 视为起点,并完成必要的安全评审、可观测性、测试、成本治理和运维加固。

➡️ 下一步行动:

相关产品:

相关文章:

十三、参考资源

*前述特定亚马逊云科技生成式人工智能相关的服务目前在亚马逊云科技海外区域可用。亚马逊云科技中国区域相关云服务由西云数据和光环新网运营,具体信息以中国区域官网为准。

本篇作者

朱修磊

亚马逊云科技技术客户经理,负责企业级客户的架构和成本优化、技术支持等工作,拥有多年的产品研发、技术布道、IT 架构设计和运维经验。

王润秋

亚马逊云科技技术客户经理,负责企业级客户的云架构规划、成本优化及技术咨询,在云平台架构、IT服务管理优化和运维体系建设方面具有丰富经验。

张伯阳

亚马逊云科技技术客户经理,主要支持游戏和零售电商行业客户的架构优化、成本管理、技术咨询与交付工作。曾在 IBM Cloud 担任开发工程师,专注于多个 VMware 云解决方案的研发工作,拥有多年企业级产品研发经验。


AWS 架构师中心:云端创新的引领者

探索 AWS 架构师中心,获取经实战验证的最佳实践与架构指南,助您高效构建安全、可靠的云上应用