AI 开发阶段性总结
一段时间开发总结
高强度使用AI一个半月,产生了不少成果。
基于一个点子,开发出完整的小型组件,完成特定的技术目标。
事实上,我完成了好几个。效率非常高,基本上,从点子到实现,只需要差不多两天时间。这个过程,我磨合得很顺畅。反思看,其实需要不少的技能储备。
基于输入的描述,组织方案,讨论架构,形成完整的技术方案。
这个之前是通过 web chat 做的。目前通过 cli 来做,更深刻:可以和AI反复磨合多轮,反复讨论,反复完善。相较于 web chat,cli 的体验更友好。这个过程,和第一点一样,需要技能储备。
提供项目的bug,检索、解决。
目前测试过一次,bug 检索、解决,效率非常高。但修改方案并不是最佳,需要熟悉的人引导才能真正修复。
提供一份不熟悉的代码,进行解构分析。
这个是最棒的过程,最棒的方法。直接将一份从没见过的代码,交给AI,设置好关键词,让AI进行解构分析。产出的结果,非常清晰,非常准确。一次性可以通盘了解代码的概貌,比盲人摸象快很多。我用此分析了几个大型开源项目,效果都很好。
我的工作方法
环境准备
我使用的是 opencode + GLM5,外部的 skill 只配置了 superpowers。
自己实现的加强
我自建了一套
AGENT模板,对常见的Java/Ansi C/C++/Python/Rust项目都进行了覆盖。对角色设定、代码质量、行为规范都进行了约束。我自建了一系列的
skill,覆盖了环境设定、代码编译、代码测试、代码重构、代码走查、代码解构、代码性能评估等等skills
├── code-deconstruct # 代码解构
├── code-refactor # 代码重构
├── code-review # 代码走查
├── java-asprof # Java 性能评估
├── java-compile # Java 编译
├── java-env # Java 环境设定
├── java-g2m # Java gradle to maven
├── java-gen-unittest # Java 生成单元测试
├── jmh-bench # Java 运行基准测试
├── long-term-task # 长期任务
└── merge-agents-md # 合并 agent 模板为此配备了一套完整的命令脚本,可快速启动或还原 AI session 环境。
通过这些 skill,我实现了一个 AI 助手,可以完成常见的技术任务。
我的一般工作流程
针对新建项目
创建文件夹,拷贝agent模板,一个命令解决
输入项目描述,AI 通过 superpowers 的 brainstorming 展开思路,发散讨论
讨论结束,复检AI生成的方案。确认则向下继续,生成计划;需要修改则返回上一步,重新讨论。
通过 superpowers 的 write-plan 输出计划。注意,可能计划非常大,这时需要提示 AI 拆分计划。否则AI会因为上下文过长卡死。提示词:
为避免计划过长,将计划拆分成多个文件。
基于计划,AI自动推进创建代码
复检成功,要求进行测试汇报。并调度走查工具评估代码质量。
测试通过,进行代码基准测试,确保基本性能保证。
针对已有未知项目
- 拷贝agent模板,一个命令解决
- 使用 skill 要求解构代码,形成报告
- 基于报告,了解项目概貌
- 输入需求,是修复某个bug,还是新增功能
- 类同新建项目步骤执行
可能的问题
AI非常强大。但并不是说AI不会出错。我就碰到不少。
- 当上下文过长时,AI会趋向于快速推进,降低质量。因为我是包月,不用关心token限制,所以我在agent模板里面就点明了“不需要快速推进,必须完整而正确地实现”。
- 如前所述,AI的计划可能过长,导致卡死。这时需要拆分计划,如提示词:”为避免计划过长,将计划拆分成多个文件。”
- AI的测试,可能是假的。必须要求AI完整测试,进行集成测试,确保实际执行了真实代码。
总结
- AI 可以提速,显而易见地快。
- AI 并不能代替人的经验。每一个抉择每一个决策,仍然应该由人来下。这就涉及到能力问题。能力决定了AI使用的上限和下限。
- AI 提供的方案,并不是最好的。它提供的,一定是一般意义上的方案。项目的约束条件,它是无法感知的。所以,必须将约束条件明确地告知。周边信息越丰富,产出更有针对性。
- AI 的连续执行需要技巧或者切换更合适的平台/工具。
我目前的模式下,
opencode不能做到连续工作超过30m,需要持续地关注着它。也许换openclaw/hermes这些工具,可以做到长时间连续工作。
AI的存在,推动我们工作方式变革,拥抱变化,适应变化,自身变化。所有的过去,所有的经历,所有的经验,只会在AI的帮助下,形成更好的自我。