我与 AI 的 Pair Programming:一次关于效率、创造力与反思的实验

by Teobler on 03 / 09 / 2025

views

缘起

第一次看到代码和 AI 结合还是在 19 年左右,组里的小伙伴用上了 tabnine,当时惊叹于这个工具的神奇,一起 pair 的时候看他用,虽然有时候很蠢,但是好几次一次补全了整个函数或者测试,虽然现在看起来不算什么,但是在那个时候确实算是我经历 AI 编程的第一个 wow moment

时间来到 23 年底,AI 编程极速升温,白嫖到 Github Copilot 的我第一次真正开始使用 AI 编程工具。虽然以现在的眼光来看 Copilot 已经落后版本很多了,但是当时它的补全能力确实惊艳了我。用注释补全方法 / 测试,叫他帮助重构已经成了理所应当的事情。由于是白嫖的,直到现在它依旧是我在众多工具里的备胎。

中间的时间我几乎与 AI 编程工具脱节,一是懒二是公司出于安全考虑并不支持使用这些工具,我并没有机会在日常工作中使用 AI 工具。在闲暇时间我偶然试用了 Cursor,短暂体验了一把 Tab 工程师。

时间来到 25 年,模型能力的补齐加上 agent 能力的发展,AI 编程工具的能力比拼来到了用户体验和工程能力上,而工程能力则主要体现在了上下文工程的对 agent 能力的编排上。

由于迭代速度过快以及我经常刷推的习惯,幸好没有落后太多。看猪跑总归没有吃猪肉来的实在,想起过去一年都在折腾学习投资,当即决定来一次上手实验,靠 AI 工具做一个符合我投资习惯的投资系统。

timeline_AI_coding

找猪

由于是吃猪肉,我把对各个工具的对比感受叫做找猪,其中的对比可能与真实情况有出入,欢迎指正。

blue_print

Cursor

上一次打开 Cursor 还是上一次,不得不感叹跟 AI 相关的一切迭代速度都很离谱,Cursor 的功能相对于我上次使用已经迭代了很多。但总的来说内核还是没有改变,Cursor 给我的感觉更像是一个没有感情的代码修改机器。

首先 Cursor 的出现对于 Github Copilot 完全是碾压式的。回到之前我的两个观点,从用户体验来说,虽然两者都基于 VSCode,但是 Cursor 对于 VsCode 的定制完全将它往自动化的方向改造,对于用户体验来说是一个进步。

beat_it

同时对于工程来说,Cursor 极大加强了模型的上下文,相较于只给当前和最近的文件,Cursor 直接将整个代码库进行了向量索引。这使得模型对用户的问题有更准确的代码定位,而且范围不仅仅局限在当前文件。

作为额外补充,用户可以非常简单地添加自己认为有用的上下文 -- 拖 和 @,非常符合用户直觉。

再来到主观感受上,在看完一些使用 Cursor 的 tips 之后上手,给我的感觉它能够很好地完成用户交给的代码任务,但是对于完成任务后的验证,范式的遵循高度依赖于用户参与和约束。虽然支持外部工具比如 mcp 的配置,但是调用并没有很积极。

对于项目工程方面,虽然集成了PR review / rules等工具,但还是把重心放在完成用户交代的代码修改任务 上,大多数时候给我一种你就说我代码写完没吧的感觉。

基于最近 Cursor 风评日益下滑的事实,虽然我还没有深度体验它的每一个功能,我还是决定找找别的工具试试看。

Augment

我不确定 Augment 借鉴了多少老前辈的经验,但最终的结果确实很棒。从工程上来说,首先 Augment 默认将代码全库上传云端进行实时索引(宣称可以进行秒级更新),借此给模型提供了最新的更新后的代码库。

stand_on_giant

在给模型提供上下文时,在 Cursor 的思路上更进一步,他们定制了一个特殊的上下文模型,并没有使用通用的 embedding 模型,用他们自己特殊的方式声称能够找到对解决问题最有用的上下文,而不是简单的语义化查找。

同时 Augment 的 Context Lineage 功能将所有 git 纪录也纳入了上下文的一部分,相当于拿到了“沉淀且一直在变化的知识”。

这一套实现下来,我个人非常主观的感受是 Augment 在使用相同模型的情况下要比 Cursor “更懂我”。

回到用户体验上来,Augment 提供了许多解决了实际痛点的功能,让人眼前一亮:

  • Tasklist 功能暗示你复杂的需求需要被拆分,而 agent 在面对复杂问题时也会拆分 task,让你直观看到它现在在做什么
  • Next Edit 是我的下一个 wow moment 功能,它会根据当前上下文预测你下一个修改点在哪里,Tab 会帮你将光标移动到需要编辑的位置并显示补全信息,第一次使用的时候觉得真是神了
  • Easy MCP 让你动动鼠标就集成那些流行且有用的 MCP 和平台,完全将你的日常工作流作为问题的一部分来解决

上面聊的是客观的情况,主观来说 Augment 在我看来更有优秀实习生的样子。它将视野放大到了软件工程这件事上,而不是聚焦于代码本身。

轻松集成各个平台,常用的 MCP 也可以动动鼠标的快速接入,积极验证修改是否正确。在这些功能的加持下 Augment 不仅在帮你写代码,它形成了一种“任务驱动 → 修改 → 验证”的流式工作法。

结合 CLI/TUI,它不仅按照你的要求修改了代码,还能积极调用 terminal 帮你跑测试、执行命令、验证结果,把工程闭环融入 AI 流程。

另一个有意思的点是,每次增加了新的功能或者修了 bug,它都会总结一个 doc 放到代码库里,记录当时的状态,虽然随着代码库的更改这些文档也会过期,但确实也是部分解决了不爱写文档的问题。

从上面这些点可以发现,Augment Code 本质上是一家披着 AI 代码工具外衣的基础设施和数据公司。其核心竞争力来自于用户没有感知的后端系统。

这个系统解决了在规模化应用中实时、个性化地提供具有历史感知能力的上下文这一极其困难的问题。他们的博客文章反复淡化具体使用的LLM模型 ,却用大量技术篇幅详细阐述其“Context Engine” 、“Context Lineage” 和自定义推理栈 。

不难理解,他们将 LLM 视为可替换的组件,而提供上下文的基础设施才是其专有的、可防御的资产,价值将从模型转向应用。模型的更新将加速产品的产品力。

Claude Code

在深入使用 Augment 一段时间后它一度成为我决定长期使用的工具,但确实按耐不住风评最盛的 Claude Code。Claude Code 的风格与前两者完全不同,这不仅体现在用户体验上,也体现在工程方面。

从用户体验来说,它不是 IDE 也不是插件,而是一个 CLI 工具。它能直接编辑文件、运行命令、创建提交,把“AI Agent”放进开发者的终端流里。

本质上来讲用户体验比起 IDE 和插件肯定会下降,但是这种方式提供了绝佳的兼容性。比如我一个长期使用 Intellj 的人现在根本用不了 VSCode,而 cli 就不受这种约束。这种方式打通了所有开发者,不管你是前端、后端还是别的角色,你始终要与 terminal 打交道,terminal 也贯穿了不同角色开发者的整个开发流程。

而提到 terminal 就不得不提 Warp,它为 terminal 这个黑框框提供了碾压其他产品的用户体验,加上后来的 AI 功能,它提供了一个更加优秀的用户体验,可惜 Warp 与各种编辑器完全隔离,开发体验过于割裂。

回到工具本身,相比 Cursor 和 Augment 的全库索引,Claude Code 索性不建立索引,所有上下文查找都由 Agent 通过 Agentic Search 来进行。说是 Agentic Search,其本质就是单纯靠 unix 命令行(比如 grep 命令)来进行上下文查找。

这一决策受到了社区的一些质疑,比如 token 消耗高,查找不够精准,时间消耗长等。我没有具体分析过其中的差别,但是当我要求 Claude Code 帮我补齐测试并修复已有的失败测试时,一个半小时烧了我 700万 GLM-4.5 的 token。我很难讲是 Claude Code 的策略有问题还是 GLM 太笨了导致的🙃

由于天生是 cli,它的工作是全链路的,terminal 里它能调用的东西太多了,bash 跑命令和测试当然不在话下。顺手写个脚本验证新的功能完整性,bug修好没。后台启动 service 然后利用各种 mcp 验证代码正确性和可行性。

用了一段时间后我的主观感受是可能 Claude 自家的模型更适合这种“暴力”的解决方案,使用 Sonnet 和 GLM 确实给我带来了不一样的编码体验,但是由于我没有在其他工具里面评测过 GLM,所以这只是我的个人猜测。

至于他目前唯一的问题可能就是付费困难,要么你用 API,可以有官方和非官方的选择,但是一天随便几十刀就花出去了。要么你订阅不同的计划,但我已经看到很多人莫名其妙被封控封号,所以你最好有稳定的 IP 和付费方式。

最后

可以说今年 AI 编程工具的爆发又将成为另一个标志,它让我们转变了写代码的固有范式,在工具的支撑下,我们需要找到新的范式。

new_centry

在这里我没有提到的是,它虽然是一定意义上的作弊器,但如果你觉得有 AI 就可以完全撒手不管,网上铺天盖地的 AI “屎山”梗确实会塞满你的仓库。

在开发个人工具的过程中我尽力去挖掘每个工具的能力,但是需要说明的是我确实没有花多少心思研究 Cursor。主观上来说我觉得三款工具各有侧重:Cursor 更像是一个“没有感情的代码修改机器”,它的价值在于快速完成开发者交代的改动,IDE 内的体验顺滑但工程思维有限,却又非常适合依赖现有架构快速 Tab 添加新功能;

Augment 则尝试把视野放大到整个软件工程流程,用全库索引、任务驱动和 CLI/TUI 将“修改—验证—提交”串成闭环,像一个积极能干的实习生,帮你推进项目;

Claude Code 完全跳脱编辑器束缚,以 CLI 为核心,带来全链路的灵活性和透明度,更像是可以托付任务的初级工程师。

AI 编程的发展已经从最初的“补全代码”走到了“Agent”,在大家都能使用相同模型的前提下,未来的比拼不再只是模型能力,而是如何把智能融入开发者的真实工作流

就像最初看到 Tabnine 补全时的惊艳一样,或许现在我们正处在另一个 wow moment 的起点。或许几年之后再回头看,Cursor / Augment / Claude Code 也只是一个过渡形态,但对当下的我们而言,它们已经开始重塑写代码这件事。

Reference

  • https://www.augmentcode.com/blog
  • https://www.anthropic.com/engineering/claude-code-best-practices