Amazon Q 对比 GitHub Copilot:一位程序员的 AI 编程助手实测对决
作为一名拥有十多年全栈开发经验的程序员,我长期深耕 AWS 技术栈(Lambda、DynamoDB、Step Functions)和开源项目(React、Node.js、Python)。当 AI 编程助手爆发式增长时,我同时试用了 Amazon Q Developer(原名 CodeWhisperer,截至 2025 年 3 月版本 1.2.0)和 GitHub Copilot(版本 1.230.0,基于 GPT-4o 和定制 Codex 模型)。以下是我连续三个月日常使用后的真实、第一人称对比——期间我构建了一个无服务器电商后端和一个 React 仪表盘。
快速对比表
| 特性 | Amazon Q Developer | GitHub Copilot |
|---|---|---|
| 定价(个人版) | 免费层(每月 50 次请求)或 19 美元/月(专业版,无限制) | 10 美元/月(个人版)或 100 美元/用户/月(企业版) |
| 上下文窗口 | 约 8K tokens | 约 16K tokens(聊天)/ 约 4K(内联) |
| IDE 支持 | VS Code、JetBrains、AWS Cloud9 | VS Code、JetBrains、Neovim、Visual Studio、Xcode 等 |
| 安全扫描 | 内置(查找密钥、漏洞) | 通过 Copilot Chat + CodeQL 实现外部扫描 |
| AWS 集成 | 深度集成(Lambda、CDK、DynamoDB 等) | 极少(仅通过聊天插件) |
| 多行补全 | 支持(最多 10 行) | 支持(最多 20 行) |
| 聊天功能 | 支持(Q Chat,可引用 AWS 文档) | 支持(Copilot Chat,支持斜杠命令) |
| 训练数据 | 来自 Amazon、GitHub、公共仓库的代码 | 公共 GitHub 仓库(已按许可证过滤) |
| 实时延迟 | 平均约 300ms | 平均约 150ms |
| 离线模式 | 不支持 | 不支持 |
特性第一轮:代码补全(日常核心工作)
我在同一个项目中对两个工具进行了测试:一个处理 Stripe Webhook 的 Node.js Lambda 函数。使用 Amazon Q 时,我输入 exports.handler = async (event) => {,它建议了一个完整的 DynamoDB put item 模式——正确地从我的 CDK 堆栈推断出了表名(得益于其 AWS 感知的上下文)。它还添加了 console.error 的错误日志。令人印象深刻,但建议在 10 行处停止,我需要按两次 Tab 才能接受整个代码块。延迟很明显:热启动时大约 400ms。
GitHub Copilot 感觉更敏捷。在同一文件中,输入 const stripe = require('stripe'); 后,它在一个 15 行的代码块中完成了整个 Webhook 验证逻辑——签名检查、事件类型切换和重试机制。它还从之前的函数中学习了我项目的 async/await 风格。内联补全在大约 100ms 后出现,我可以按 Tab 接受或按 Alt+] 切换备选方案。Copilot 的多行建议更长,上下文更精确,尤其对于非 AWS 的样板代码,如 Joi 验证或 Express 中间件。
胜出者:GitHub Copilot(补全速度和长度)。
特性第二轮:AWS 特定场景
现在进入真正考验:编写一个基于 SQS 的 Lambda 的 CDK 堆栈。我在 VS Code 中打开了一个 TypeScript 文件。使用 Amazon Q,我输入 new sqs.Queue,它立即建议了完整的构造,包含 deadLetterQueue、retentionPeriod 和 QueueProcessingLambda 模式——所有导入都正确无误。然后我使用 Q Chat(Ctrl+Shift+Q)提问:"添加一个带自动扩缩和全局二级索引的 DynamoDB 表。"它生成了 40 行 CDK 代码,包括 TableV2 构造、AutoScalingSettings 和一个全局二级索引。它甚至指出我缺少了一个 IAM 策略。这简直是金矿。
GitHub Copilot 在这里表现不佳。它建议了通用的 new sqs.Queue,但缺少 AWS 特定模式(没有死信队列,没有 Lambda 集成)。当我用 Copilot Chat(Ctrl+I)询问"DynamoDB 自动扩缩 CDK"时,它给出了 v1 和 v2 构造的混合体,IAM 策略也不完整。我不得不手动修复分区键类型。Copilot 的训练数据严重偏向开源,而非专有的 AWS SDK 模式。
胜出者:Amazon Q(深度 AWS 集成,尤其对 CDK 和 Lambda)。
特性第三轮:调试与安全
在调试一个从 API Gateway 获取数据的 React 组件时,我遇到了 CORS 错误。Amazon Q Chat 扫描了代码,识别出后端缺少 CORS 头,并建议在 API Gateway 资源的 cors 块中修复。它还标记了我 .env 文件中硬编码的 API 密钥(安全扫描功能),并警告我使用 Secrets Manager。这个内置安全扫描器是一个杀手级功能——它捕捉到了我不小心提交的一个散落的 AWS 密钥。
GitHub Copilot 没有标记安全漏洞。对于 CORS 错误,Copilot Chat 建议在前端添加 Access-Control-Allow-Origin: *,这是一个变通方案,但并非真正的修复。不过,Copilot 的聊天可以引用我打开的文件,甚至终端输出(通过"@terminal"代理),这通过建议 --max-old-space-size 标志帮助调试了一个 Node.js 内存泄漏问题。Amazon Q 的聊天感觉更死板——它只回答与代码相关的问题,没有终端上下文。
胜出者:Amazon Q(内置安全扫描和 AWS 感知的调试)。
特性第四轮:学习曲线与文档
我不是 AWS 专家,所以我经常问:"如何设置带回调模式的 Step Function?" Amazon Q 在侧面板中打开 AWS 文档,并高亮显示相关部分。它还提供了 Python 和 TypeScript 的代码示例。与 AWS Knowledge Center 的集成无缝顺畅。
GitHub Copilot 无法直接访问 AWS 文档。我不得不使用单独的浏览器标签页。但 Copilot 的内联文档生成更胜一筹——当我悬停在一个函数上时,它会生成带参数描述和返回类型的 JSDoc 注释,这在团队代码审查时节省了时间。
胜出者:平局(Amazon Q 在 AWS 文档方面胜出,Copilot 在内联文档方面胜出)。
特性第五轮:定价与许可
作为一名独立开发者,成本很重要。Amazon Q 有慷慨的免费层(每月 50 次代码建议,无限 Q Developer 聊天),但专业版每月 19 美元对于所获得的功能(主要是 AWS 中心功能)来说感觉偏高。GitHub Copilot 个人版每月 10 美元,补全功能适用于任何语言和框架。对于非 AWS 项目(例如 Python ML 脚本),Copilot 的建议更准确、更快速。此外,Copilot 的企业版计划(每用户每月 100 美元)包括许可赔偿,这对企业至关重要。
胜出者:GitHub Copilot(更低成本,更广泛适用性)。
优点与缺点
Amazon Q Developer
优点:
- 无与伦比的 AWS 服务集成(CDK、Lambda、DynamoDB、Step Functions)。
- 内置安全漏洞扫描(捕捉密钥、IAM 配置错误)。
- 免费层对 AWS 密集型项目可用。
- 聊天可直接引用 AWS 文档。
缺点:
- 补全速度较慢(约 300ms vs Copilot 的约 150ms)。
- 多行建议较短(最多 10 行)。
- 在 AWS 生态系统之外表现较弱(例如 Python Flask、React hooks)。
- 专业版每月 19 美元对非 AWS 工作来说较贵。
- IDE 支持有限(不支持 Xcode,不支持 Neovim)。
GitHub Copilot
优点:
- 更快、更长的补全(最多 20 行)。
- 更广泛的语言/框架支持(React、Django、Rust)。
- 更低价格(个人版每月 10 美元)。
- 带终端和文件上下文的聊天(通过 @terminal、@workspace)。
- 出色的内联文档生成。
缺点:
- AWS 特定模式较弱(通用建议)。
- 没有内置安全扫描(需要单独的 CodeQL)。
- 无法访问专有文档(例如 AWS Knowledge Center)。
- 免费层仅限于 30 天试用,之后付费。
- 可能建议有许可问题的代码(尽管已过滤)。
最终结论
经过三个月的实际使用,我将切换回 GitHub Copilot 作为我的主要助手。原因如下:我 80% 的工作是非 AWS 的(React、Node.js、Python),Copilot 的速度、准确性和更低成本胜出。对于 20% 的 AWS 特定工作,我会在第二个 VS Code 窗口中保持 Amazon Q 的免费层打开——主要用于 CDK 生成和安全扫描。但如果你是一名以 AWS 为中心的开发者(构建无服务器应用,日常使用 CDK),Amazon Q 是明确的赢家:其深度集成和安全功能值得每月 19 美元。
我的建议:
- 你是一名全职 AWS 开发者 → 选择 Amazon Q。
- 你是一名全栈或开源开发者 → 选择 GitHub Copilot。
- 你预算有限 → 从 Amazon Q 的免费层开始,如果需要更广泛的支持,再升级到 Copilot。
最终胜出者:GitHub Copilot(以微弱优势胜出,得益于整体多功能性和性价比)。