- Amazon AI IDE Kiro的使用体验及提效思考
- AI 辅助编码的一些同行的思路总结
- 硅谷巨头 AI 辅助编码的现实情况讨论及思考
-
Kiro 的使用体验及提效思考
-
什么是 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带来一些启发。
-
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功能进行了细化,生成了更加详细的项目结构,从项目的目的,技术栈框架,结构等角度描述的更加详细与规范。
并且加入了自定义的功能,允许用户加入类似编码标准等一些,伴随着项目长生命周期的约定。这些文件在模型生成编码结果过程中进行约束,以便生成更加符合期望的代码。
-
Vibe & Spec
Vibe模式下,输入需求后,Kiro就会直接上手干活,自动生成前后端代码、文件结构。因此,这种模式使用于轻量 AI 辅助的开发场景,比如快速原型、探索性开发等等。特点是操作灵活、快,上手毫无门槛。
两种AI辅助模式代表着两种项目开发思路,Vibe Coding对于Kiro来说,它认为该阶段处在一种思维风暴中,这个时候用户需要的不一定是及其完善的规划和推理链条,而是快速原型,辅助用户从头脑风暴到逐步形成实际方案。
Spec 模式下,Kiro侧重于详细的推理和规划也即进入详细的设计阶段:
-
Enter a feature description:
- Describe your feature in natural language
- Example: "Add a user authentication system with login, logout, and password reset functionality"
-
Follow the Guided Workflow:
- Requirements Phase: Kiro will help structure your requirements using EARS notation
- Design Phase: Technical architecture and component design will be documented
- 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:
- Review Generated Tasks in the
tasks.mdfile - Execute Tasks by clicking on individual task items
- 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的问题还是自己的使用问题。
附其它大佬的创作:拖拽式深度学习编程软件:
-
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 这个功能意味着,我们可以自定义触发操作,它能解决很多问题,比如代码接口修改后的对应单元测试的自动修改,对于某个函数重构后自动触发前后逻辑对比验证,编码之后默认启动代码安全审查等操作。
-
Source Control
Kiro's Source Control view provides comprehensive Git integration with AI-enhanced features to streamline your version control workflow.
-
作为开发者的提效思考
总结Kiro对于Claude的封装,我认为有以下几点值得我们实践与思考:
- 对于项目成员共同受益或者共同维护的规范,应该像.git文件夹一样长期跟随着项目进行迭代,对它们的修改应如正常的代码提交一般进行检视,让好的模型受益规范项目成员共享并持续迭代。
- 个人觉得 AI IDE集合了 CLI工具对整个项目文件的强操作性和IDE插件的便捷性,也许是一个趋势。
-
关于C++不友好的一些交流与思考
存在AI 友好技术栈的概念。
主流的工具、模型,在辅助编码时对于python的支持最佳,java,JS等次之,C++的支持往往力度最小,其中除语言本身的复杂性之外,还有以下因素:
- 语言复杂性与语义歧义性高
- 缺乏统一且成熟的包管理与构建生态,极其不利于其全流程式构建应用
C++ 没有pip、npm等成熟的社区和包管理工具
- 训练数据分布严重偏向高层语言
主流代码大模型(如StarCoder、CodeLlama、DeepSeek-Coder)主要基于GitHub等开源平台的公开代码库进行预训练。C++代码量落后其他主流语言(python、Java)。
-
AI 辅助编码的一些讨论
主要总结或摘录了其他前辈的发言
现状思考:
- 大家最为担忧的点: 不想成为大模型善后工程师
LLM 在生成代码或提供建议时容易出现错误或“幻觉”,反而拖慢了进度,还需要花额外时间验证结果。而且,频繁的上下文切换、提示分解和反复修正也让工作量不减反增。
- 普遍的使用状态:多工具切换
用 ChatGPT 处理需求沟通,用 Copilot 辅助编码,qwen日常知识问答等
- 反直觉:工具的开发者(大厂)的愿景是让非程序员能够简单的开发应用,实际上,受益最大的反而是资深程序员。
资深工程师使用人工智能来:
- 快速对他们已经理解的想法进行原型设计
- 生成基本的实现,然后他们再进行完善
- 探索已知问题的替代方法
- 自动化常规编码任务
初级开发者常常:
- 接受不正确或过时的解决方案
- 忽略关键的安全和性能考量
- 难以调试人工智能生成的代码
- 构建他们并不完全理解的脆弱系统
- 边际递减效应
使用人工智能进行编码时,会遇到一个令人沮丧的瓶颈。他们能出人意料地快速完成 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 生成结果。必须由资深工程师逐行审核,并配合自动化测试、渗透测试和合规检查。
-
国外 AI 辅助编码的现实情况讨论及思考
该点由我现场提问给来自斯坦福的嘉宾,对他的回答做了总结
-
工具&模型百花齐放下的使用困境
meta:Lllma相关模型、强制员工使用,员工吐槽不断反应难用
谷歌:由于安全,数据隐私问题,AI 在核心开发的过程中使用频率并没有那么高
微软:内部使用有限
各大厂都不愿意使用其他公司的产品,具有隐形壁垒
初创:较为鼓励,55%,应用驱动,用户体验。仍然存在风险。
总结:大厂由于规模效应(一旦出事就是大事)反而AI 辅助开发较为谨慎,而初创公司则显得激进很多,他们和许多的个人开发者才是这些工具的主要使用者。
-
巨头关注的重点在于非程序员用户的快速应用开发
各大公司喜欢的谈资普遍在于,使非专业用户达到甚至超过专业程序员的开发能力,能够实现快速应用开发。
似乎从侧面解释了为什么各类平台对于 C++ 的支持普遍弱于 Python 和 Java