买家秀

今年是 Github Copilot 第二年的付费用户了,从 Ask、Edit 到现在的 Agent 模式,AI 编程是越来越好用

刚开始有了 Edit 模式,我还不太爱用,因为有些时候会理解错我的意图,改了一些意料之外的代码

Agent 模式也是一样,个人习惯是一方面,也总感觉刚出来得保守的观望一阵再说


直到最近才接触到系统化的 AI 编程,感觉 Agent 真是越来越流畅,越来越符合我的心意了

当然其中有些技巧大家可能早就知道了,这篇文章只是以我的视角来分享一下我的感悟

AI 编程的特点

我主要讲两点(doge)

上下文遗忘

随着对话的进行,AI 会逐渐忘记前面的重要信息。特别是在长时间的编程会话中,AI 可能会忘记项目的整体架构、之前的约定条件,或者已经确定的方案等

之前遇到的比如说,我有两个文档,需求文档和项目文档,一开始我说的“文档”都是指的需求文档,但后面创建项目文档后,再说“文档”时 AI 就会搞混。你就得花时间撤销内容、重新描述

专注力

AI 的专注力主要会分配在当前的对话中,如果你在一个对话中频繁切换任务内容,那 AI 很容易分心

比如先让 AI 完成了一项任务,然后突然加了一个临时修改另一块代码任务,AI 有可能会在后续的任务中,修改之前已经完成的文件

针对性改进

知识库

对于上下文遗忘,我们可以从全局到项目分别建立知识库,其实也就是写文档,当然这个文档一般也是让 AI 去整理

比如每个项目我会整理项目架构、目录结构、依赖库等

规则

编辑器基本都有配置 AI 规则的功能,一些细枝末节的一句话解释的内容可以通过配置规则

比如之前 AI 生成命令总是 linux 的,就可以通过配置规则约束,比如使用 PowerShell 命令并且多个要用 ; 分隔之类的

任务流

针对专注力问题,可以使用预设的任务流,比如配置好新功能、重构、修复等任务,告诉 AI 每一步做什么

拿新功能来说,我们可以配置几个步骤

  1. 读取新功能知识库(提供目录结构、生成文档路径等约束)
  2. 整理需求,生成需求文档
  3. 生成代码和测试用例
  4. 测试
  5. 用户验收

这样下来 AI 就会按照我们拆分的更细致的步骤来完成任务,再有需求文档的加持

就算你中间临时修改点东西,也不会让 AI 大幅度的偏离主题