跳到内容
返回

我的 AI 采用之旅(Mitchell Hashimoto)

编辑页面

我在采用任何有意义的工具时,通常都会经历三个阶段: (1)低效期 →(2)勉强可用 →(3)改变工作方式甚至人生的阶段。

大多数情况下,我必须强迫自己熬过前两个阶段,因为我已经有一套让我舒服的工作流程。采用新工具本身就是一项工作,而我并不想投入精力。但为了成为一个更全面的开发者,我通常还是会去做。

这篇文章记录了我如何在 AI 工具中找到价值,以及我接下来想尝试什么。在充满夸张和炒作的讨论中,我希望提供一种更克制、更理性的视角。

(顺带一提,这篇文章完全是我亲手写的。)

第一步:放弃聊天机器人

不要再试图用聊天机器人(例如 ChatGPT、Gemini 网页版)来完成“严肃工作”。

聊天工具确实有价值,也是我日常使用的一部分,但在编程场景中,它们效率很低: 你本质上是在“赌”它一次给出正确答案,而纠错需要你反复介入。

大多数人第一次接触 AI 都是聊天界面,也会尝试用它写代码。

我曾有一个“哇”的时刻:把一个 UI 截图丢给 Gemini,让它用 SwiftUI 重现,它做得非常好。

但当我尝试在真实项目中复用这种能力时,体验却很差: 需要反复复制粘贴代码、输出,结果也经常不理想——明显比自己写还慢。

👉 想获得价值,你必须使用“Agent”。

Agent 是一种可以循环执行操作的 LLM,至少要能:

第二步:复现你自己的工作

我开始使用 Claude Code,但一开始并不满意。

于是我做了一件很痛苦但关键的事情: 👉 把我手写完成的工作,再用 Agent 重做一遍(而且不让它看到我的实现)。

这个过程非常折磨,但也让我建立了真正的理解。

我总结出一些关键经验:

  1. 把任务拆成清晰的小步骤,不要一口气做完
  2. 模糊任务要拆成“规划”和“执行”两个阶段
  3. 给 Agent 提供验证机制,它会自动修正错误

我也逐渐理解了:

这让我效率有所提升,但仍然不比自己做更快——只是“差不多”。

但我已经开始接受 AI 作为工具。

第三步:下班前启动 Agent

我尝试一个新模式: 👉 每天下班前 30 分钟启动一些 Agent

目标是:在我不工作的时间,让它们推进进度。

一开始效果一般,但后来发现一些高价值场景:

这些工作不一定直接产出结果,但能让我第二天“热启动”。

第四步:外包“稳赢任务”

随着经验增加,我开始知道哪些任务 Agent 很擅长。

于是我:

👉 把这些“几乎一定能做好”的任务全部交给 Agent

自己则专注更有价值或更喜欢的工作。

一个关键经验:

不要让 Agent 打断你

上下文切换成本非常高。 你应该决定什么时候去查看 Agent,而不是让它通知你。

此时,我已经进入一个状态:

👉 即使效率没有提升很多,我也不想回到没有 AI 的时代了

因为我可以把精力集中在更有趣的事情上。

第五步:工程化“约束系统”(Harness)

Agent 的效率取决于: 👉 它第一次就做对,或接近正确

为此,我开始做“Harness Engineering”(我自己的叫法):

目标是: 👉 一旦 Agent 犯错,就让它“永远不再犯这个错”

方法包括:

1. 改进隐式提示(如 AGENTS.md)

记录规则,让 Agent避免重复错误。

2. 编写工具

例如:

这些工具 + 提示一起使用,让 Agent 自我验证。

第六步:始终让 Agent 在运行

我现在的目标是:

👉 尽可能让 Agent 一直在后台运行

如果没有在跑,我会问自己: “有没有什么可以让 Agent 做?”

我通常只运行一个 Agent,保持平衡:

目前大概只有 10%–20% 的时间有 Agent 在运行,但我在持续优化。

现在的状态

我现在已经找到了 AI 的实际价值,并且用一种比较理性的方式在使用它。

我不关心 AI 是否会长期存在。 我只是一个想写代码、热爱创造的软件工程师。

这个领域变化太快,我可能很快会回头嘲笑现在的自己。

但如果你不会为过去的自己感到“有点尴尬”,那你大概没有成长。

原文链接:https://mitchellh.com/writing/my-ai-adoption-journey


编辑页面
分享本文:

上一篇
Vibe Coding 的三个月黑箱:为什么我选择 AI Coding + TDD
下一篇
为什么我要开发另一款网页划词插件 —— Selectly