AI 开发阶段性总结

一段时间开发总结

高强度使用AI一个半月,产生了不少成果。

  1. 基于一个点子,开发出完整的小型组件,完成特定的技术目标。

    事实上,我完成了好几个。效率非常高,基本上,从点子到实现,只需要差不多两天时间。这个过程,我磨合得很顺畅。反思看,其实需要不少的技能储备。

  2. 基于输入的描述,组织方案,讨论架构,形成完整的技术方案。

    这个之前是通过 web chat 做的。目前通过 cli 来做,更深刻:可以和AI反复磨合多轮,反复讨论,反复完善。相较于 web chat,cli 的体验更友好。这个过程,和第一点一样,需要技能储备。

  3. 提供项目的bug,检索、解决。

    目前测试过一次,bug 检索、解决,效率非常高。但修改方案并不是最佳,需要熟悉的人引导才能真正修复。

  4. 提供一份不熟悉的代码,进行解构分析。

    这个是最棒的过程,最棒的方法。直接将一份从没见过的代码,交给AI,设置好关键词,让AI进行解构分析。产出的结果,非常清晰,非常准确。一次性可以通盘了解代码的概貌,比盲人摸象快很多。我用此分析了几个大型开源项目,效果都很好。

我的工作方法

环境准备

我使用的是 opencode + GLM5,外部的 skill 只配置了 superpowers

自己实现的加强

  1. 我自建了一套 AGENT 模板,对常见的 Java/Ansi C/C++/Python/Rust 项目都进行了覆盖。对角色设定、代码质量、行为规范都进行了约束。

  2. 我自建了一系列的 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 模板
  3. 为此配备了一套完整的命令脚本,可快速启动或还原 AI session 环境。

通过这些 skill,我实现了一个 AI 助手,可以完成常见的技术任务。

我的一般工作流程

针对新建项目

  1. 创建文件夹,拷贝agent模板,一个命令解决

  2. 输入项目描述,AI 通过 superpowers 的 brainstorming 展开思路,发散讨论

  3. 讨论结束,复检AI生成的方案。确认则向下继续,生成计划;需要修改则返回上一步,重新讨论。

  4. 通过 superpowers 的 write-plan 输出计划。注意,可能计划非常大,这时需要提示 AI 拆分计划。否则AI会因为上下文过长卡死。提示词:

    为避免计划过长,将计划拆分成多个文件。

  5. 基于计划,AI自动推进创建代码

  6. 复检成功,要求进行测试汇报。并调度走查工具评估代码质量。

  7. 测试通过,进行代码基准测试,确保基本性能保证。

针对已有未知项目

  1. 拷贝agent模板,一个命令解决
  2. 使用 skill 要求解构代码,形成报告
  3. 基于报告,了解项目概貌
  4. 输入需求,是修复某个bug,还是新增功能
  5. 类同新建项目步骤执行

可能的问题

AI非常强大。但并不是说AI不会出错。我就碰到不少。

  • 当上下文过长时,AI会趋向于快速推进,降低质量。因为我是包月,不用关心token限制,所以我在agent模板里面就点明了“不需要快速推进,必须完整而正确地实现”。
  • 如前所述,AI的计划可能过长,导致卡死。这时需要拆分计划,如提示词:”为避免计划过长,将计划拆分成多个文件。”
  • AI的测试,可能是假的。必须要求AI完整测试,进行集成测试,确保实际执行了真实代码。

总结

  1. AI 可以提速,显而易见地快。
  2. AI 并不能代替人的经验。每一个抉择每一个决策,仍然应该由人来下。这就涉及到能力问题。能力决定了AI使用的上限和下限。
  3. AI 提供的方案,并不是最好的。它提供的,一定是一般意义上的方案。项目的约束条件,它是无法感知的。所以,必须将约束条件明确地告知。周边信息越丰富,产出更有针对性。
  4. AI 的连续执行需要技巧或者切换更合适的平台/工具。

我目前的模式下,opencode 不能做到连续工作超过 30m,需要持续地关注着它。也许换 openclaw/hermes 这些工具,可以做到长时间连续工作。

AI的存在,推动我们工作方式变革,拥抱变化,适应变化,自身变化。所有的过去,所有的经历,所有的经验,只会在AI的帮助下,形成更好的自我。