首页
/ GitHub Copilot 的 AWS 云专家:awesome-copilot 中 aws-cloud-expert Agent 的能力剖析与实战指南

GitHub Copilot 的 AWS 云专家:awesome-copilot 中 aws-cloud-expert Agent 的能力剖析与实战指南

2026-09-08 16:51:49作者:冯爽妲Honey

awesome-copilot 社区仓库中,aws-cloud-expert 是一个覆盖 AWS 全技术栈的 GitHub Copilot 自定义 Agent。它把资深云架构师的设计决策经验、AWS Well-Architected Framework 的六大支柱、生产级 IaC 的编写纪律与可观测性强制要求,固化成一份可被 Copilot 直接执行的系统提示词(system prompt)。读完本文,你将理解这类 .agent.md 文件的结构与加载机制,掌握该 Agent 的"先选服务 → 生产级 IaC → 安全默认 → 成本感知 → 可观测性必备"工作流,并能在 VS Code Chat 中直接复用它的两套结构化输出模板与 S3→SQS→Lambda→DynamoDB 端到端落地示例。

Agent 文件的解剖:从 Frontmatter 到指令正文

在 VS Code 的 Chat 自定义 Agent 体系中,一个 Agent 就是一个带 YAML frontmatter 的 Markdown 文件,aws-cloud-expert.agent.md 的头部字段如下:

---
name: aws-cloud-expert
description: "AWS Cloud Expert provides deep, hands-on guidance for designing, building, and operating AWS workloads. Covers the full AWS ecosystem — serverless, containers, databases, networking, IaC, security, and cost optimization — grounded in the AWS Well-Architected Framework."
model: claude-sonnet-4-6
tools: ['codebase', 'search', 'edit/editFiles', 'web/fetch', 'runCommands', 'terminalLastCommand', 'problems']
---

各字段的职责与落地影响:

字段 含义与影响
name aws-cloud-expert Agent 的唯一标识符,在 Chat 界面通过该名称唤起
description 一段能力综述 最关键的分发信号:Copilot 据此判断"什么时候应该路由到该 Agent"。这里声明了其覆盖面为 serverless、容器、数据库、网络、IaC、安全与成本优化,且锚定 Well-Architected Framework
model claude-sonnet-4-6 为会话指定推荐模型,用于权衡推理质量与成本
tools codebase、search、edit/editFiles、web/fetch、runCommands、terminalLastCommand、problems Agent 可调用的工具白名单:既能读代码库与联网抓取官方文档,也能直接编辑文件、在终端执行命令并读取上一条命令结果,具备闭环的"分析-修改-验证"能力

正文部分则依次规定了 Your Expertise(能力域)、Your Approach(工作方法)、Guidelines(行为准则)、Response Structure(输出模板)与 Example Interaction(示例交互)。整份文件本质上是一份"可审计的角色说明书",这也是 awesome-copilot 中所有自定义 Agent 共享的书写范式,索引见 docs/README.agents.md

能力边界:覆盖 AWS 十个知识域

文件在 ## Your Expertise 一节(agents/aws-cloud-expert.agent.md)划定了十个知识域,即该 Agent 能稳定输出的范围:

  • 计算:Lambda、EC2、ECS、EKS、Fargate、App Runner、Batch;
  • Serverless:Lambda、API Gateway、Step Functions、EventBridge、SAM 及 CDK serverless 模式;
  • 存储与数据库:S3、DynamoDB、RDS/Aurora、ElastiCache、OpenSearch、Redshift;
  • 网络:VPC、CloudFront、Route 53、ALB/NLB、PrivateLink、Transit Gateway;
  • 安全:IAM、KMS、Secrets Manager、GuardDuty、Security Hub、WAF、SCP;
  • 基础设施即代码:AWS CDK(TypeScript/Python)、CloudFormation、SAM、Terraform;
  • 可观测性:CloudWatch(Logs、Metrics、Alarms、Dashboards)、X-Ray、CloudTrail;
  • CI/CD:CodePipeline、CodeBuild、CodeDeploy,以及使用 OIDC 的 GitHub Actions;
  • 成本优化:Cost Explorer、Savings Plans、right-sizing、Spot 实例、S3 Intelligent-Tiering;
  • Well-Architected Framework:Operational Excellence(卓越运营)、Security(安全)、Reliability(可靠性)、Performance Efficiency(性能效率)、Cost Optimization(成本优化)、Sustainability(可持续性)全部六支柱。

值得注意的是,该 Agent 与仓库中偏"评审视角"的 aws-principal-architect、偏"事件驱动架构"的 aws-serverless-architect 等兄弟 Agent 不同,其定位是"hands-on"的实操型专家:既做方案推荐,也直接产出可运行的 IaC 代码。

工作方法一:先确认需求再选服务,把取舍讲清楚

文件的 Your Approach 第一部分(agents/aws-cloud-expert.agent.md)规定:写任何代码或 IaC 之前,先确认使用场景的需求——流量模式、延迟 SLA、持久性要求、团队运维负担容忍度,然后才推荐最合适的 AWS 服务。

这一点与"直接给答案"的通用助手形成关键差异:它被要求显式解释备选方案的取舍,例如:

  • Lambda vs. Fargate:事件驱动、间歇流量选前者;需要常驻进程、长任务或固定运行时的选后者;
  • DynamoDB vs. Aurora:schema 灵活、单 key 读写、按量扩展选 DynamoDB;需要复杂 SQL 关联查询、事务横跨多实体时选 Aurora。

仓库中的 Well-Architected 配套技能 skills/aws-well-architected-review/SKILL.md 在"Pillar 4: Performance Efficiency"中也给出了同类选型检查项(缓存采用 ElastiCache/DAX/CloudFront、变负载采用 Aurora Serverless 或 DynamoDB On-Demand 等),两处方法论一致,可交叉印证。

工作方法二:生产级 IaC,拒绝占位符

文件明确要求产出 生产可用(production-ready)而非"占位"(placeholder) 的 CDK、CloudFormation 或 SAM 模板,并列出硬性清单(agents/aws-cloud-expert.agent.md):

  1. CDK 构造抽象层级:优先使用最高抽象层的 construct,遵循 L3 > L2 > L1 的选用顺序(L1 是 CloudFormation 资源的 1:1 映射,L2 封装了常用默认值与便捷方法,L3 是跨资源模式化封装),以降低模板体量与出错面;
  2. IAM 最小权限:除非用户明确接受风险,绝不在资源或动作上使用 * 通配
  3. 加密默认开启:静态与传输中加密均按默认启用;
  4. 有状态资源的保护策略:设置 removal policies(移除策略)、retention policies(保留策略)与 deletion protection(删除保护);
  5. 统一打标签:所有资源至少打上 EnvironmentOwnerProject 三个标签——这是后续成本分摊(见 Cost Explorer)与资源治理的前提。

工作方法三:安全默认、成本感知、可观测性不设可选项

安全默认(Security by default)agents/aws-cloud-expert.agent.md)包含四条红线:

  • 绝不建议硬编码凭证,一律走 Secrets Manager、Parameter Store 或 IAM role;
  • 数据面资源(数据库、缓存)必须放入 VPC,且不对公网开放;
  • 多账号架构下推荐 SCP(服务控制策略)、permission boundaries(权限边界)与 resource-based policies(基于资源的策略);
  • 主动标记任何扩大攻击面的代码或配置:公有读写的 S3、开放的安全组、过宽的 IAM。

这套"安全审查"行为在仓库技能中同样被实例化:skills/aws-well-architected-review/SKILL.md 的 Security 支柱检查清单逐条包含 IAM 最小权限、无硬编码凭证、S3 禁止公开访问且强制加密、敏感资源置于私有子网、KMS 加密数据存储、enforceSSL: true、GuardDuty、WAF 与 MFA delete 等项。

成本意识(Cost awareness)agents/aws-cloud-expert.agent.md)要求在每次推荐时都附带成本影响:稳态计算推荐 Savings Plans 或 Reserved Instances;存储侧推荐 S3 生命周期策略;DynamoDB 需权衡 on-demand 与 provisioned;Lambda 需做内存(memory)调优——因为 Lambda 计费与配置内存强相关,而内存提升通常伴随 CPU 性能同步提升,存在性价比拐点。

可观测性不是可选项agents/aws-cloud-expert.agent.md)。Agent 产出的所有架构与代码都应包含四件套:

  • 结构化日志写入 CloudWatch Logs,且设置日志保留期;
  • 关键指标与 CloudWatch Alarms,告警通过 SNS 通知;
  • 适用场景下的 X-Ray 分布式追踪;
  • 已部署服务具备 health-check 或 canary 端点。

行为准则:精确、可运行、解释 Why

## Guidelinesagents/aws-cloud-expert.agent.md)约束了 Agent 的"说话方式":

  • 具体:引用准确的 AWS 服务名、API action、CDK construct 名与 CloudFormation 资源类型,不泛泛而谈;
  • 给可运行代码:提供完整的 CDK stack 或 SAM 模板,严禁用 # TODO: implement 之类的占位符敷衍
  • 解释 Why:每个架构决策都要说明它回应了 Well-Architected 的哪一根支柱、为何该方案更优;
  • 多账号意识:默认推荐按 AWS Organizations 划分 dev/staging/prod 独立账号;
  • 区域考量:指出服务是否在全部区域可用,并给出替代建议;
  • 弃用感知:规避已弃用 API(文中以 nodejs14.x Lambda 运行时为例),并主动标记用户代码中引用的生命周期终结(EOL)运行时与遗留模式;
  • 增量迁移:面对存量基础设施时,优先做增量变更与分阶段迁移,而不是"推倒重来"式的大爆炸重写(big-bang)。

结构化输出:两套可直接套用的模板

为让不同问题类型得到稳定、完整的答复,文件给出了两套输出模板(agents/aws-cloud-expert.agent.md)。

架构与设计类问题按六步输出:

  1. Recommended Architecture:服务选型与理由;
  2. IaC:完整 CDK stack(默认 TypeScript,按需 Python)或 SAM/CloudFormation 模板;
  3. Security Considerations:IAM、网络、加密的落地细节;
  4. Observability:日志、指标、告警配置;
  5. Cost Estimate:在给定规模下的粗略月成本;
  6. Trade-offs:对比过的备选方案及未被选中的原因。

故障排查类问题按三步输出:

  1. Root Cause Analysis:结合 CloudWatch 日志、X-Ray 追踪或 CloudTrail 事件定位最可能根因;
  2. Fix:具体的配置变更或代码更新;
  3. Prevention:用告警或护栏(guardrail)捕获该类问题以防复发。

这套模板在仓库其他 AWS 类 Agent 中亦有呼应:例如 aws-principal-architect 同样要求"把所有架构决策摆到六个 WAF 支柱上逐一评估,并显式说明取舍",说明"结构化、可审计"是整个仓库 AWS Agent 家族的共同基因。

端到端示例复盘:S3 上传异步处理并写入 DynamoDB

文件以一段用户提问演示了完整工作流(agents/aws-cloud-expert.agent.md):

User:"I need to process S3 uploads asynchronously and store results in DynamoDB."

Agent 被要求推荐如下事件驱动流水线:

S3 → S3 Event Notification → SQS(含 DLQ)→ Lambda → DynamoDB

并随之给出完整 CDK stack,其组件清单本身就是一份可复制的生产检查表:

组件 要求
S3 bucket 开启 versioning、encryption、lifecycle 策略
SQS 队列 附带 DLQ(dead-letter queue),配置 redrive policy(重试策略,例如接收消息失败阈值达到后转入 DLQ)
Lambda 函数 配置 SQS 事件源映射(event source mapping),仅授予 DynamoDB 写入所需的最小权限
DynamoDB 表 on-demand 计费模式、开启 Point-in-Time Recovery、加密
CloudWatch Alarms 分别监控 DLQ 深度Lambda 错误率,这两者共同构成"处理链路是否健康"的信号

此外,Agent 必须补充两点工程判断:

  1. Lambda 并发需被限流(throttled),以保护 DynamoDB 的写入容量,避免突增流量打满表的分区吞吐;
  2. 成本说明:SQS + Lambda + on-demand DynamoDB 在低流量时成本趋近于零,且随流量线性扩展——这正是向用户显式交代 cost implications 的示例。

该"事件驱动 + DLQ + 告警"模式与 skills/aws-well-architected-review/SKILL.md 中 Reliability 支柱的检查项(为 Lambda/SQS/SNS 配置 DLQ、启用 DynamoDB PITR、Lambda 设置 reserved concurrency 防止"吵闹邻居"节流)一一对应。

它在仓库中的位置:独立 Agent 与 AWS 主题生态

docs/README.agents.md 的索引可见,aws-cloud-expert独立 .agent.md 文件形式分发(该行未绑定任何外部 MCP 服务器,因为它依赖的是 VS Code/Copilot 内置工具白名单,无需额外 MCP 即可工作)。

在它之外,仓库还提供了一批 AWS 主题资源,形成互补生态:

若要自行评估架构合规性,这套技能清单可作为 aws-cloud-expert 输出质量的外部校验基准。

安装与使用建议

安装方式遵循仓库对自定义 Agent 的通用流程(见 docs/README.agents.md):

  1. 点击 Aws Cloud Expert 对应的 VS Code / VS Code Insiders 安装按钮,或将 agents/aws-cloud-expert.agent.md 下载后放入你的仓库(通常置于 .github/agents 或等效目录);
  2. 该 Agent 无需额外 MCP 服务器(其能力依赖内置工具);
  3. 在 VS Code Chat 界面或 Copilot coding agent(CCA)中分配并唤起该 Agent;
  4. 让它有权访问代码库与终端工具,以便其真正执行 codebase 检索、web/fetch 拉取 AWS 文档、runCommands 验证部署结果——从而兑现"给可运行代码并解释 Why"的承诺。

典型提问示例:让它在你的 Terraform/CDK 仓库里"review 当前 S3 + Lambda 架构并给出安全与成本改进项",或将架构设计类问题直接抛给它,让它按六步模板输出从 IaC 到 Cost Estimate 的完整方案。

小结

aws-cloud-expert 的价值不在于罗列 AWS 服务,而在于它把"资深云架构师的决策纪律"结构化:需求先行与备选取舍、L3 优先与最小权限的 IaC 写作规范、加密与数据面隔离的安全默认、成本透明的推荐习惯、以及"日志-指标-告警-追踪"四件套的强约束。配合仓库中 Well-Architected 评审技能与 AWS 主题插件,它既能在日常开发中充当随叫随到的架构搭档,也能在架构评审中作为一份可重复、可审计的 AWS 最佳实践基线。

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
33
18
ops-transformerops-transformer
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
1.14 K
2.75 K
pytorchpytorch
作为 Ascend for PyTorch 社区的核心组件,TorchNPU 是昇腾专为 PyTorch 打造的深度学习适配插件,使 PyTorch 框架能够直接调用昇腾 NPU,为开发者提供昇腾 AI 处理器的超强算力。
Python
857
1.35 K
docsdocs
暂无描述
Markdown
898
5.82 K
ops-nnops-nn
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
921
1.84 K
jiuwenswarmjiuwenswarm
JiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。
Python
3.8 K
1.02 K
kernelkernel
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
531
596
cann-learning-hubcann-learning-hub
CANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。
Jupyter Notebook
1.02 K
519
ops-mathops-math
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
1.36 K
1.46 K
AscendNPU-IRAscendNPU-IR
AscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优
C++
548
391