Amazon Q Developer是一个有用的人工智能编码助手,具有聊天、CLI、模型上下文协议和代理支持以及AWS专业知识。

当我在2024年审查Amazon Q Developer时,我注意到它能够在常见的编程语言中生成整个函数,只需进行一些修复。它对于在您键入时完成代码行、文档字符串和if/for/while/try代码块很有用。它还可以扫描漏洞,并帮助您修复代码问题。然而,它无法为某些用例生成完整的功能,而是恢复为逐行建议。
当时,Amazon Q Developer“由Amazon Bedrock提供支持”,并接受过“高质量AWS内容”的培训。我从来不知道第一个真正意味着什么,但现在没有意义:Amazon Q Developer现在为您提供Claude Sonnet版本的选择,包括4.5,它与GPT-5 Codex具有竞争力。
此时,完成代码行符合“gimme”的条件,相当于高尔夫中的两英尺推杆。生成整个函数很容易,生成复杂的应用程序难度适中,修复大型存储库中报告的错误从中等难度到难度不等。
编码代理目前的一些区别是它们调用工具的能力(例如读取文件、运行应用程序、显示编辑差异以及理解Git和GitHub)以及定义和使用模型上下文协议(MCP)服务器的能力。MCP服务器是允许人工智能模型使用标准统一协议与外部服务(如数据库、API和企业系统)交互的工具。另一个差异化因素是在孤立的环境中运行工具和项目的能力。
亚马逊Q开发人员冒着放弃花言巧言的风险,支持工具,支持MCP服务器,但使配置它们变得比必要的更难,并且没有对隔离云环境的实现。然而,它仍然有用,我们只能希望AWS能填补明显的空白。
Amazon Q Developer与Google Jules、OpenAI Codex Cloud和OpenAI Codex CLI、Claude Code、Windsurf、Augment Code、Amp、Cline、Zencoder和Gemini CLI竞争。截至本文撰写时,当前的Amazon Q Developer版本是插件1.104.0和CLI 1.19.6。
编辑中的亚马逊Q开发人员
Amazon Q Developer在JetBrains IDE、Visual Studio Code、Visual Studio、Eclipse和命令行(CLI)中运行。顺便说一句,Q CLI已更名为Kiro CLI,版本提升到1.20;与我一直在测试的Q CLI/Kiro CLI的一个变化是增加了一个“自动”模型选项。
亚马逊Q开发人员根据您的评论和现有代码生成从片段到完整功能的实时代码建议。它还支持直接在代码编辑器中进行内联聊天,以及命令行中的CLI完成和自然语言到Bash翻译。Q开发人员可以编写单元测试、优化代码和扫描漏洞。如果您启用代理编码,Q Developer可以通过读取和写入文件、生成代码差异和运行shell命令来代表您执行任务,同时结合您的反馈并提供实时更新。
您可以將聊天和內聯聊天用於任何寫程式語言。内联代码建议最适合C、C++、C#、Dart、Go、Java、JavaScript、Kotlin、Lua、PHP、PowerShell、Python、R、Ruby、Rust、Scala、Shell、SQL、Swift、SystemVerilog、TypeScript、CDK(TypeScript、Python)、HCL(Terraform)、JSON和YAML。聊天至少使用13种自然语言,并以您用于查询的语言自动回复。这比去年的语言能力有了很大的进步。
Visual Studio Code中的Amazon Q信息。右边是插件描述。在左侧,您可以看到聊天输入框上方的聊天帮助文本。注意左下角的蓝色开关,它允许您选择是否为当前请求使用代理编码。另请注意模型的选择,Claude Sonnet 4.5。
铸造厂
测试亚马逊Q开发者聊天
为了比较Amazon Q Developer Chat和Codex Chat,我尝试了基本上相同的提示来创建一个命令行程序来计算pi。
生成一个C++程序,以命令行中指定的小数位数计算pi的值。确保程序准确到至少1000位。无论所需的代码量是多少,都可以使用运行时最有效的算法。将程序保存在AmazonQ文件夹中。
我使用了Claude Sonnet 4.5模型,我期望它能很好地完成这项任务。亚马逊Q开发人员回复如下。
我将使用Chudnovsky算法创建一个C++程序,这是已知计算π的最快算法之一。它使用GMP库进行任意精度算术。如果AmazonQ目录不存在,请创建它创建使用Chudnovsky算法以任意精度计算pi的C++程序创建一个Makefile来简化pi计算器的编译创建带有构建和使用说明的README我创建了一个C++程序,使用Chudnovsky算法计算π,这是计算π最有效的算法之一(每次迭代收敛约14位)。创建的文件在/用户/martinheller/代码/AmazonQ/:• pi_计算器.cpp-使用GMP进行任意精度的主要程序•制作文件-为了便于汇编•README.md- 构建和使用说明使用:1. 安装GMP:brew install gmp2. 构建:制作3. 运行:./pi_calculator 1000(1000位)该程序准确处理1000多个数字,并使用已知最快的运行时效率算法。
这听起来比Codex的第一次尝试更有希望,但它没有编译。对于背景,你应该知道GMP有C和C++库;我只安装了C库,但Amazon Q Developer不知道。我要求它在突出显示该输出后修复构建错误,但它没有采取上下文。没关系,它仍然解决了问题:
让我先试着构建它,看看具体的错误:尝试构建程序以识别特定的构建错误删除不必要的gmpxx.h包含并修复C常数计算从Makefile中删除-lgmpxx,因为我们不需要C++包装器再次构建程序,以验证修复工作用100位数字测试程序,以验证其工作正常用正确的路径测试程序运行pi计算器来验证它是否有效固定的。构建问题是缺失的gmpxx.h标题。我删除了不必要的C++包装包,并简化了常量计算。该程序现在正确构建和运行,将π计算到指定的精度。
我让Amazon Q Developer Chat将程序的时间计时为100位和10,000位,这样我就可以将效率与Codex在第二次尝试时生成的MPFR/GMP实现进行比较。不足为奇的是,对于10,000位数字,计算速度要慢得多。我问了Q Developer,对于非常高的数字,它如何使这种计算更有效。
是的,对于非常高的数字计数,有几个优化:1.二进制拆分-最重要的优化。与其按顺序计算项,不如递归地将总和分成两半并。这降低了n项的复杂性,从O(n²)到O(n log n)。2.使用MPFR代替GMP-MPFR针对浮点运算进行了优化,并且对超越函数具有更好的性能。3.避免冗余的阶乘计算-您当前的代码每次迭代都会从头开始重新计算阶乘。二进制拆分自然避免了这种情况。4.内存管理-重复使用mpz_t变量,而不是在循环中分配/去分配。5.并行计算-对于极大的计算(百万位数),将二进制拆分递归并行化。我可以看到你已经有一个更优化的版本了使用MPFR二进制拆分的Code/Codex/pi_mpfr.cpp。对于大数字(10,000+)的实施速度会大大加快。
哎呀。我不是故意让那个文件打开,让亚马逊Q开发人员可以看到它。尽管如此,Q Developer/Claude Sonnet 4.5对所有五分都答对了。

由Amazon Q Developer Chat使用Claude Sonnet 4.5模型生成的C++中的Pi计算器。此实现使用GMP库进行高精度整数算术。
测试亚马逊Q开发人员CLI
在测试Amazon Q Developer CLI(再次)之前,我检查了其菜单栏图标下拉菜单以进行更新。它已经是最新的了。然后我在iTerm2运行了q,并向它请求帮助信息。

亚马逊Q开发人员CLI帮助信息显示。这是截至Q 1.19.4。在1.20版本中,Q CLI更名为Kiro CLI。
铸造厂
在第一次测试中,我更改为Cline代表目录,启动Q CLI,将Q切换到claude-sonnet-4.5模型(从默认4.0),并要求它解释当前的存储库。

带有claude-sonnet-4.5的Amazon Q Developer CLI解释了Cline存储库。这是一个合理的高级摘要。它不像Codex上个月给出的解释那样详细,但更容易理解。
然后我重复了实验,让Q解释amazon-q-developer-cli存储库。

接下来,我从我自己的项目分叉中克隆了websocket存储库,切换到该目录,运行Q CLI,切换到claude-sonnet-4.5模型,并要求Q在websocket repo中选择一个未解决的问题,并在新分支中修复它。Q在一些问题上挣扎了一下,但在聊天示例中发现了一个问题,它能够修复。

亚马逊Q开发人员CLI解释了它对websocket的修复。问题 #986 是关于聊天示例由于缺少 CheckOrigin 实现而无法正常工作。这是对示例的简单三行补充。Q创建了修复程序,并将其签入我笔记本电脑上的新分支。
我不得不自己将分支推送到我的GitHub存储库:
martinheller@Mac websocket % git推送致命:当前分支fix-chat-example-checkorigin没有上游分支。要推送当前分支并将远程设置为上游,请使用git push --设置上游源修复-聊天-示例-检查origin在没有跟踪的情况下自动为分行发生这种情况上游,请参阅“git帮助配置”中的“push.autoSetupRemote”。martinheller@Mac websocket % git push --set-upstream origin fix-chat-example-checkorigin枚举对象:9,完成。计数对象:100%(9/9),完成。Delta压缩使用多达12个线程压缩对象:100%(5/5),完成。写入对象:100%(5/5),686字节|137.00 KiB/s,完成。共5个(delta 4),重复使用0个(delta 0),包装重复使用0个(从0个)远程:解析deltas:100%(4/4),完成4个本地对象。遥控器:远程:通过访问:在GitHub上创建“fix-chat-example-checkorigin”的拉取请求:远程:https://github.com/meheller/websocket/pull/new/fix-chat-example-checkorigin遥控器:到https://github.com/meheller/websocket.git* [新分支] fix-chat-example-checkorigin -> fix-chat-example-checkorigin分支“fix-chat-example-checkorigin”设置为跟踪“origin/fix-chat-example-checkorigin”。martinheller@Mac websocket %
我没有为我分叉的上游大猩猩/websocket repo创建拉取请求,因为该repo在八个月内没有更改,这告诉我repo处于非活動狀態。
带有claude-sonnet-4.5的Amazon Q Developer CLI在这项任务上做得不如Codex Cloud好。Codex Cloud直接在GitHub存储库上运行,并能够修复Sonnet误解和跳过的错误。
我查看了我的websocket分叉新分支的GitHub指责视图。修复在第38到40行。

在我的大猩猩/websocket分叉的聊天示例中,GitHub指责固定的client.go视图。
铸造厂
亚马逊Q开发人员代理和MCP功能
Amazon Q Developer CLI(新更名为Kiro CLI)目前有以下内置工具可供代理使用:
fs_read–读取文件、目录和图像
fs_write–创建和编辑文件
execute_bash–执行shell命令
use_aws– 进行AWS CLI API调用
knowledge– 存储和检索跨会话的信息
introspect –提供有关Q CLI功能的信息
在内置的默认代理中,只有fs_read可以在未经许可的情况下运行,但所有工具都可用,以及传统的MCP服务器。您可以定义自己的代理,并设置默认代理。
此外,您可以在CLI和IDE中定义和使用MCP服务器和工具。奇怪的是,VS Code的Amazon Q Developer插件不使用VS Code的任何MCP或广泛的工具功能。相反,它和Q CLI/Kiro CLI使用他们自己的JSON MCP配置文件,它们看起来与Claude和MCP规范的配置文件差不多。(如果您感兴趣,您可以在这里找到MCP规范。)
像Claude Code一样,Q CLI/Kiro CLI有文本命令来管理MCP服务器配置;Amazon Q Developer编辑器插件有用于此的表单。兩者都要求您知道呼叫MCP伺服器的命令,但您可以查找公共MCP伺服器。MCP标准组织维护公共MCP服务器的注册;GitHub(也在这里)和Anthropic(Claude)也是如此。
亚马逊Q开发人员的生产力影响
根据AWS的说法,他们的内部开发人员在数量和质量上都使用Q提高了生产力。一个巨大的胜利是将他们的内部亚马逊知识存储库(数百万个文档)摄取到亚马逊Q业务中,以便开发人员可以根据这些存储库中传播的信息获得答案。他们报告说:“我们将亚马逊开发人员等待技术答案的时间减少了超过45万小时,并减少了现有团队成员的'流程状态'中断。”
AWS还解锁了“以前似乎不切实际的大规模技术现代化的可能性”,这“从根本上改变了[他们]对技术债务和系统现代化的看法。”另一个效果是减少学习新语言和代码库的时间。“一位开发人员报告说,使用Q Developer将学习新编程语言的典型三周加速时间缩短到仅一周。”
借助Amazon Q Developer CLI代理,另一位内部开发人员能够与一个不熟悉的代码库合作,在两天内使用Rust(一种他们不知道的编程语言)构建和实现一个非同小可小节的功能,他说:“如果我以'老式的方式'这样做,由于语言和代码库的启动时间,我估计需要五到六周的时间。更现实的是,我根本不会这样做,因为我没有那种时间投入。”
AWS上的亚马逊Q开发人员
AWS指出,Amazon Q Developer是AWS的专家。Q在AWS管理控制台(以及Microsoft Teams和Slack)中可用,以帮助优化用户的云成本和资源,提供架构实践指导,调查运营事件,以及诊断和解决网络问题。当然,AWS很容易根据自己的文档、程序、实践和API来训练自己的模型。这对客户来说可能有点困难。
亚马逊Q开发者。NET移植和Java升级
亚马逊Q开发人员有代理可以帮助移植。从Windows到Linux的NET代码,并帮助将代码从Java 8升级到Java 17。据AWS称,这些代理已经升级了1000多个生产Java应用程序。
亚马逊Q开发人员、数据和人工智能
除了直接代码外,Amazon Q开发人员还了解数据集成工作流程。它可以生成ETL脚本,对错误进行故障排除,将自然语言翻译成SQL查询,并处理20多个数据源的数据。AWS提供20多个数据源作为付费服务,这可能不会造成伤害。Q Developer可以帮助您构建机器学习模型,并减少在SageMaker Studio中构建、训练、评估和部署人工智能模型的时间。
亚马逊Q开发者定价
亚马逊Q开发人员永久免费层每月为您提供50个代理聊天互动。您还可以每月转换多达1000行代码。Pro Tier 扩大了每个用户每月 19 美元的限额。我能够使用免费层级进行此审查。
结论
亚马逊Q开发人员在过去一年中有了很大的进步。我当然可以向AWS客户推荐它。免费层对我来说已经足够了,但如果我整天使用它,每天我很可能都要升级到专业层。