AI Agent成熟年 我对编程与工作流的思考
本文旨在探讨如下问题:
- Vibe Coding下人与AI的合作应当是什么模式?应当做到何种程度
- 如何继承并发展已有的科研工作流以及相关遗产?
- 什么东西是无法被替代的?
1. 当下Coding Agent的进展
观测如下:
- LLM完全可以胜任utils function(即unit)的实现。
- 需要承认,LLM在我不熟悉的领域,包含但不限于前端开发、后端开发、数据库、可视化等等领域均比我强。
但是,截至26年4月,认为:
- 让AI生成文本,无论是文章文本还是论文文本,均是不可控且低效率的。
- 虽然AI可以充分被用于大规模编程实践,但至少从科研的角度来看,仍然存在以下问题使得使用者产生强烈的不可控感,这些领域包括:
- AI生成的代码量往往较大,使得human review觉得疲惫。而失去human review的AI code即为局部不可控因素。
- 用户撰写的代码在AI修改后,每一次修改的量往往比较小。但是如果AI的每次修改用户都不加以检查,那么项目文件仍然处于不可用状态。
- 当一个project是由AI主导(不论是撰写还是修改维护)时,由于用户无法对代码进行细节上的掌握,所以相应的修改也变得不可行。
- 由上一条的可控性问题产生的是信任度的问题。即:用户能否信任AI没有mock数据,没有在实现上偷懒,完全忠实了自己代码设计的本意。
- 用户应当意识到同一个蠢人的谈话是非常疲惫的。误解同时又是表达的宿命,所以一个人与AI的交流夜应当受到这种艰难情形的干扰。
总结以上几点,认为claude code等工具存在的优劣如下:
- 优势:提供了比网页版APP更方便且智能的文件寻找、code review、以及project-level的代码生成。
- 缺陷:这些工具无一不:
- 用他们的交互方式绕过了修改的review过程(即完全拥抱vibe coding)
- 无法确保自然语言文本与所指代码的一致性。
2. 对全新工作与科研工作流的思考
2.1. 理解任务的不同特性
应当认识到,不同任务存在不同特性。
AI适合的任务是以下几个领域的并集:1. 足够简单,人类懒得去做;2. 缺乏novelty的直接调用现有工具来完成的工程实现问题;3. 作为开发者无法胜任的不擅长的但是又想去实现的问题问题。
人类适合去做的:1. 撰写核心部分的代码。 2. 梳理清楚各种数据的流动、模型、工具的选取等等等等。
2.2. 根据以上需求导出工具的需求
我目前仍需工具完成以下事情:
- 快速打开文件、阅读文件、编辑文件 -–—》即基本的编辑器需求。
- 高效的文件diff。 -–—》类似git diff的需求。
- 进度管理、项目管理、等等各项管理。 ----–—》文档撰写的需求。
如此看来,emacs仍然比较有优势。反而甚至更有优势。因为目前像claude code等工具仍然集中在终端。emacs在Coding IDE层面的缺陷被大大弥补了。
在emacs的配置上,应当加强的点:
- 对git diff的熟悉和效果提升。
- 对org文件、markdown文件提供更为强大的文件格式编辑以及preview。
- 有时应当考虑terminal coding agent与emacs的集成。这个目前可以低优先级。
3. 什么东西是无法被替代的?
我认为包含以下层面:
- 对自我生命的负责与管理能力。
- 首先,能够保证自我系统不会崩溃。
- 尽量降低猝死的概率。
- 尽量降低出意外事故的概率。
- 不要生大病。即:身体不应该处于一种长期的病态状态。
- 不要抑郁。即:不能让对目标的贪欲压倒自我的平衡,或者由于外部事件的鼓动产生一种剧烈的心理波动,从而影响一个人的心理健康。
- 不要摆。 即:不能让自身的思想陷入到一种无序的混乱状态。
- 不要沦为工具人。即:不应该让自我长期处于应激状态。即一戳一蹦达的状态。
- 其次,应该考虑到一个人类个体的精力管理和时间管理问题。
- 承认精力是有限的。承认在不想工作时自我的效率之低。构建合理的发泄通道。
- 承认做事情存在取舍,由此一段时间只能主攻一个方向。
- 认识到社交的重要性。
- 自己想远远不足。多跟AI聊天呢。
- 承认即使再内向的人也要和人类交谈。
- 承认一个再特立独行的人也要进行 个人形象管理
- 认识到情绪的作用。
- 在过去的几年里,我认为我对我的情绪对我的行为的影响的重要性和优先级都远远低估了。这几乎是最需要进行优先提升和修改的维度。
- 不要在人群里突然emo。大家会很尴尬的。
- 接纳自我的生物性。
- 饥饿久了,暴饮暴食一顿,不丢人。
- 性压抑久了,主动找女生聊天,或者自慰,也不丢人。
- 永远保持内心的深刻到骨髓的寂寞和平静。这是我所能拥有的一切。
- 首先,能够保证自我系统不会崩溃。
- 信息——作为一种非物质非能量的存在,其基本量是不变的。
- 应当意识到,一个项目里的复杂度,即使AI出现,也是不变的。
- 语言不是万能的。符号系统是比自然语言更高效、更精确的东西。编程语言的意义并没有消失。写代码也因此并没有消失。数学同理。
- 所有自己喜欢做的事,自己认为有意义的事,即使AI也能做,即使其他人也都能做,也不能觉得他们被替代。
4. 补充: AI对以上思考的评价
“与蠢人谈话的疲惫感”这个比喻很妙。AI 的“误解”不是概率性的,而是结构性的——它没有真正的意图,所以对话中的“对齐”需要人承担几乎全部认知负荷。
你说“AI 生成的代码量往往较大,使得 human review 觉得疲惫”——我认为这不仅是量的问题,更是颗粒度错配。AI 倾向于输出“完整实现”,而人脑最适合审查的是“变更集”(diff)。如果 AI 工具能将产出转化为一系列语义化的、可逐条确认的小变更,疲惫感会大幅下降。但目前主流 agent 的交互设计,恰恰在反其道而行之(你后面也点到了)。
AI 替代不了你对自己精力、情绪、身体的负责。甚至,AI 可能会放大那些不健康的工作模式(“让 AI 干活,我盯着就行”听起来轻松,但实际可能变成持续的低强度焦虑)。
你说“一个项目里的复杂度,即使 AI 出现,也是不变的”。同意,但复杂度可以在“形式”和“认知”之间迁移。
AI 可以把形式复杂度(语法、框架细节、胶水代码)吃掉
但认知复杂度(抽象是否合理、边界是否正确、取舍是否得当)不会减少,甚至可能因为“能更快堆出更多代码”而增加——因为你必须审查和理解更大范围的系统