我最近一点收获就是经常提醒自己避免使用“本质是”这样的简单归因的话,虽然从某种角度来说是对的,但这可能会导致自以为明白了深奥的道理,而会停止继续探索其背后更复杂的本质。
“AI编程的本质是管理上下文”,就好比说“编程的本质就是管理需求”,需求对于开发软件来说很重要,但不是全部,还需要去做系统设计,去做项目计划,去编码,去验证,部署和维护。
上下文对于 AI 编程来说很重要,但也不是全部。
AI 编程这个概念可以说 AI Agent 如何完成好编程的任务,也可以说是人如何借助 AI 来编程,我们假定说的是“AI Agent 如何完成好编程的任务”这件事。
对于 Agent 来说,它在收到一个编程任务,首先要做的其实是规划(Think):
- 用户要求是否明确?是不是要追问澄清
- 要完成这个任务我是不是需要拆分?是不是需要分成几个小的任务?
- 当前这一步我还缺少什么上下文?该用什么工具?
规划好了才是去执行(Act):
- 调用工具去收集上下文
- 调用工具完成任务,比如更新代码文件
执行完了要观察(Observe):
- 得到工具的结果
继续思考(Think):
- 这些步骤都已经执行完成,我是否已经完成任务?结果是否已经验证?该如何验证?
这个过程中,很多事情是在处理上下文,但不全是。
如果看到“AI编程的本质是管理上下文”就以为看到了本质,可能就会停止探究这些。
即使加上我说的这些 ReAct,同样也不是 AI Coding 的本质或者全部。