Kiro 使用体验及AI辅助编码的一些思考

266 阅读11分钟
  1. Amazon AI IDE Kiro的使用体验及提效思考
  2. AI 辅助编码的一些同行的思路总结
  3. 硅谷巨头 AI 辅助编码的现实情况讨论及思考
  1. Kiro 的使用体验及提效思考

  1. 什么是 Kiro,他有哪些体验好的点

Kiro is an agentic IDE that helps you do your best work with features such as specs, steering, and hooks.

AWS对Anthropic 40亿美元的投资,与Anthropic合作,旨在向全球客户提供最先进的生成式AI技术。Anthropic选择亚马逊云科技(AWS)作为其关键任务工作负载的主要云服务提供商。因此会在Kiro上看到很多Claude的影子,或许会给我们后续改造vscode-huawei或者更好的使用Claude带来一些启发。

  1. Steering

Steering files provide context about your project, helping Kiro understand your codebase, conventions, and requirements.

类似于Claude的init操作

区别在于我们使用Claude进行init的时候生成的md文件实在过于简陋,架构不清晰,从我个人的角度来说,难以作为长期开发过程中对模型有指导作用的文件。

To get started choose Generate Steering Docs from the Kiro pane. Kiro generates project steering documents for you stored in .kiro/steering/ that guide Kiro's behavior. They contain information about:

  • Your product and its purpose
  • Technical stack and frameworks
  • Project structure and conventions

You can also create custom steering files by clicking the + button in the steering section and add things like coding standards, and workflows, and team best practices. Learn about steering here.

总而言之,kiro对Claude的init功能进行了细化,生成了更加详细的项目结构,从项目的目的,技术栈框架,结构等角度描述的更加详细与规范。

并且加入了自定义的功能,允许用户加入类似编码标准等一些,伴随着项目长生命周期的约定。这些文件在模型生成编码结果过程中进行约束,以便生成更加符合期望的代码。

  1. Vibe & Spec

Vibe模式下,输入需求后,Kiro就会直接上手干活,自动生成前后端代码、文件结构。因此,这种模式使用于轻量 AI 辅助的开发场景,比如快速原型、探索性开发等等。特点是操作灵活、快,上手毫无门槛。

两种AI辅助模式代表着两种项目开发思路,Vibe Coding对于Kiro来说,它认为该阶段处在一种思维风暴中,这个时候用户需要的不一定是及其完善的规划和推理链条,而是快速原型,辅助用户从头脑风暴到逐步形成实际方案。

Spec 模式下,Kiro侧重于详细的推理和规划也即进入详细的设计阶段:

  1. Enter a feature description:

    1. Describe your feature in natural language
    2. Example: "Add a user authentication system with login, logout, and password reset functionality"
  2. Follow the Guided Workflow:

    1. Requirements Phase: Kiro will help structure your requirements using EARS notation
    2. Design Phase: Technical architecture and component design will be documented
    3. Implementation Phase: Discrete tasks will be generated for execution

会生成三个文件:

Specs bridge the gap between conceptual product requirements and technical implementation details, ensuring alignment and reducing development iterations. Kiro generates three key files that form the foundation of each specification:

  • requirements.md - Captures user stories and acceptance criteria in structured EARS notation
  • design.md - Documents technical architecture, sequence diagrams, and implementation considerations
  • tasks.md - Provides a detailed implementation plan with discrete, trackable tasks

这三个阶段,恰恰是免去了人为写TODO List的流程。并且由于是IDE工具,整个可视化,以及单步执行AI生成的步骤,都有很好的交互体验。

例如:

Once your spec is complete:

  1. Review Generated Tasks in the tasks.md file
  2. Execute Tasks by clicking on individual task items
  3. Track Progress as tasks automatically update to "In Progress" and "Done"(自动更新执行状态)

实际案例展示:健身管家

最关键的,返璞归真:大家都开始思考产品本身的特点和价值:

之后通过spec模式对话:

接下来他会为我生成详细的需求分析,架构设计和分步执行:

这一步其实IDE的可视化优势就开始慢慢体现了

整个设计和分步执行都非常详细。执行过程中观察到输出不对可以随时输出命令反馈。这个能力比较拟人化。

可以点击启动,也可以通过对话,根据执行结果自动更新task列表。

比较简单的一个小案例,但是背后涉及前后端知识,非相关专业程序员很难完成开发,前后时长(包括我解npm install的问题)不到1小时。

另外,多模态能力,IDE也有集成,不过我还没有试用。

至此,大功告成:

这一套流程下来,是模型能力和IDE易用性的整体体现,但其实也是工具的执行链条越来越完善的原因。

其它功能试用:hook功能,个人理解,集成了Claude的agent功能,创建更加方便纯对话创建,执行更靠谱。

初始化steering功能试用:优于init,看起来像init的包装:

另外交互全程没有受到读写文件失败的困扰,这个不知道是claude的问题还是自己的使用问题。

附其它大佬的创作:拖拽式深度学习编程软件:

  1. Agent Hooks

一个智能事件触发器。当某些事件发生,Hooks 就会根据你设定的规则自动调用Agent执行后续流程。比如可以配置保存时自动格式化、运行测试、扫描漏洞,或新建文件时自动生成代码模板。

Agent Hooks eliminate manual work by automatically executing predefined actions when:

  • Files are created, saved, or deleted
  • Manual triggers are activated
  • Specific file patterns are modified

支持和AI交互辅助生成hooks

Agents Hooks 这个功能意味着,我们可以自定义触发操作,它能解决很多问题,比如代码接口修改后的对应单元测试的自动修改,对于某个函数重构后自动触发前后逻辑对比验证,编码之后默认启动代码安全审查等操作。

  1. Source Control

Kiro's Source Control view provides comprehensive Git integration with AI-enhanced features to streamline your version control workflow.

  1. 作为开发者的提效思考

总结Kiro对于Claude的封装,我认为有以下几点值得我们实践与思考:

  • 对于项目成员共同受益或者共同维护的规范,应该像.git文件夹一样长期跟随着项目进行迭代,对它们的修改应如正常的代码提交一般进行检视,让好的模型受益规范项目成员共享并持续迭代。
  • 个人觉得 AI IDE集合了 CLI工具对整个项目文件的强操作性和IDE插件的便捷性,也许是一个趋势。
  1. 关于C++不友好的一些交流与思考

存在AI 友好技术栈的概念。

主流的工具、模型,在辅助编码时对于python的支持最佳,java,JS等次之,C++的支持往往力度最小,其中除语言本身的复杂性之外,还有以下因素:

  1. 语言复杂性与语义歧义性高
  2. 缺乏统一且成熟的包管理与构建生态,极其不利于其全流程式构建应用

C++ 没有pip、npm等成熟的社区和包管理工具

  1. 训练数据分布严重偏向高层语言

主流代码大模型(如StarCoder、CodeLlama、DeepSeek-Coder)主要基于GitHub等开源平台的公开代码库进行预训练。C++代码量落后其他主流语言(python、Java)。

  1. AI 辅助编码的一些讨论

主要总结或摘录了其他前辈的发言

现状思考:

  1. 大家最为担忧的点: 不想成为大模型善后工程师

LLM 在生成代码或提供建议时容易出现错误或“幻觉”,反而拖慢了进度,还需要花额外时间验证结果。而且,频繁的上下文切换、提示分解和反复修正也让工作量不减反增。

  1. 普遍的使用状态:多工具切换

用 ChatGPT 处理需求沟通,用 Copilot 辅助编码,qwen日常知识问答等

  1. 反直觉:工具的开发者(大厂)的愿景是让非程序员能够简单的开发应用,实际上,受益最大的反而是资深程序员。

资深工程师使用人工智能来:

  • 快速对他们已经理解的想法进行原型设计
  • 生成基本的实现,然后他们再进行完善
  • 探索已知问题的替代方法
  • 自动化常规编码任务

初级开发者常常:

  • 接受不正确或过时的解决方案
  • 忽略关键的安全和性能考量
  • 难以调试人工智能生成的代码
  • 构建他们并不完全理解的脆弱系统
  1. 边际递减效应

使用人工智能进行编码时,会遇到一个令人沮丧的瓶颈。他们能出人意料地快速完成 70% 的工作,但最后的 30% 却变成了收益递减的过程。

通常会发生的事情遵循一个可预测的模式:

  • 试图修复一个小错误
  • 人工智能给出一个看似合理的更改建议
  • 这个修复导致其他地方出错
  • 你要求人工智能修复新出现的问题
  • 这又产生了另外两个问题
  • 如此反复

前辈的建议:

5A法则,核心思想分层辅助开发,对于关键代码或不易在表象察觉的代码严格人工审查。

1. Alert(警惕前端(易于觉察)改动)⭐

适用场景:UI/UX、前端界面代码(HTML/CSS/React/Vue等) 说明:AI 擅长生成模板式前端代码,但容易忽略设计一致性、无障碍访问(a11y)、响应式细节等。简单改动看似无害,实则可能破坏用户体验或引入样式冲突。需人工复核视觉效果和交互逻辑。


2. Algorithm(关注核心逻辑)⭐⭐

适用场景:业务逻辑、算法实现、状态管理、数据流 说明:AI 可能生成“看起来正确”但边界条件处理错误的逻辑(如空值、并发、循环终止条件)。必须重点审查输入输出、异常路径、性能瓶颈。不要盲目信任 AI 的“聪明解法”。


3. Access & SQL(严控数据访问)⭐⭐⭐

适用场景:数据库查询、ORM 操作、API 权限 说明:AI 容易写出低效 SQL(如 N+1 查询)、缺少索引优化,甚至引入 SQL 注入风险(尤其在拼接字符串时)。所有涉及数据读写的代码必须经过安全与性能评审。


4. Annihilate(慎用删除操作)⭐⭐⭐⭐

关键词:remove, delete, drop, destroy, purge 说明:任何不可逆操作(尤其是物理删除)都必须人工确认。AI 不理解“数据不可恢复”的后果。建议默认使用软删除(soft delete)或加二次确认机制。


5. Audit(关键功能强制审计)⭐⭐⭐⭐⭐

适用场景:支付、身份认证、隐私数据(PII)、合规相关(GDPR/HIPAA) 说明:涉及金钱、用户隐私、法律合规的代码,禁止直接使用 AI 生成结果。必须由资深工程师逐行审核,并配合自动化测试、渗透测试和合规检查。

  1. 国外 AI 辅助编码的现实情况讨论及思考

该点由我现场提问给来自斯坦福的嘉宾,对他的回答做了总结

  1. 工具&模型百花齐放下的使用困境

meta:Lllma相关模型、强制员工使用,员工吐槽不断反应难用

谷歌:由于安全,数据隐私问题,AI 在核心开发的过程中使用频率并没有那么高

微软:内部使用有限

各大厂都不愿意使用其他公司的产品,具有隐形壁垒

初创:较为鼓励,55%,应用驱动,用户体验。仍然存在风险。

总结:大厂由于规模效应(一旦出事就是大事)反而AI 辅助开发较为谨慎,而初创公司则显得激进很多,他们和许多的个人开发者才是这些工具的主要使用者。

  1. 巨头关注的重点在于非程序员用户的快速应用开发

各大公司喜欢的谈资普遍在于,使非专业用户达到甚至超过专业程序员的开发能力,能够实现快速应用开发。

似乎从侧面解释了为什么各类平台对于 C++ 的支持普遍弱于 Python 和 Java