两年 AI 使用感悟
买家秀
今年是 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 每一步做什么
拿新功能来说,我们可以配置几个步骤
- 读取新功能知识库(提供目录结构、生成文档路径等约束)
- 整理需求,生成需求文档
- 生成代码和测试用例
- 测试
- 用户验收
这样下来 AI 就会按照我们拆分的更细致的步骤来完成任务,再有需求文档的加持
就算你中间临时修改点东西,也不会让 AI 大幅度的偏离主题