Mitchell Hashimoto 的 AI 采用之旅:从怀疑到离不开
原文: My AI Adoption Journey by Mitchell Hashimoto
作者: Mitchell Hashimoto(Vagrant、Terraform、Vault 等工具的创始人)
整理: AI 工具实践总结
前言
Mitchell Hashimoto 是 HashiCorp 的创始人,开发了 Vagrant、Terraform、Vault 等一系列影响深远的 DevOps 工具。作为一名资深工程师和工具制造者,他对 AI 的采用历程具有很强的参考价值。
他将自己的工具采用经历归纳为三个阶段:
- 低效期 - 新工具用起来比原来还慢
- ** adequacy 期** - 能达到和原来差不多的效率
- 变革期 - 工具彻底改变工作方式
这篇文章记录了他如何从 AI 怀疑者变成重度用户的过程。
第一阶段:扔掉聊天机器人
核心观点
不要用 ChatGPT 网页版做正经工作。
Chatbot 有价值,但在编码场景下效率很低:
- 你只能靠运气希望它基于训练数据给出正确结果
- 纠正错误需要人类反复告诉它哪里错了
- 在 Brownfield 项目(已有代码库)中表现很差
Mitchell 的”哇”时刻
他把 Zed 编辑器的命令面板截图发给 Gemini,让它用 SwiftUI 复现。结果 Gemin 在几秒内完成得非常好——现在 Ghostty 终端的 macOS 命令面板基本就是基于那个版本微调的。
关键转折
要真正获得价值,必须使用 Agent(代理):
- 能聊天的 LLM
- 能循环调用外部工具
- 至少具备:读文件、执行程序、发起 HTTP 请求的能力
第二阶段:复现自己的工作
Mitchell 开始使用 Claude Code,但起初并不满意:
- 生成的代码总需要手动修改
- 感觉比自己写还慢
他的训练方法
强迫自己用 Agent 复现所有手动提交。
他 literally 把工作做两遍:
- 手动完成工作
- 不让 Agent 看到手动方案,尝试让它生成质量和功能相同的代码
这个过程很痛苦,但让他形成了深刻的理解:
| 最佳实践 | 说明 |
|---|---|
| 拆分任务 | 把会话拆分成清晰、可操作的小任务,不要试图”一口气画完猫头鹰” |
| 规划 vs 执行分离 | 模糊需求时,先做规划会话,再做执行会话 |
| 给验证手段 | 如果给 Agent 验证工作的方法,它通常能自己发现并修复错误 |
重要认知
知道什么时候不用 Agent 也是效率的一部分。 用 Agent 做它很可能失败的事是浪费时间。
第三阶段:下班前的 Agent
策略
每天最后 30 分钟启动一个或多个 Agent,让它在你无法工作的时间里继续产出。
有效的任务类型
- 深度研究 - 调研某个领域的所有库,按许可证类型筛选,生成多页对比报告
- 并行探索 - 把模糊想法丢给多个 Agent 同时尝试,第二天看哪个方向有潜力
- Issue/PR 分类 - 用脚本并行启动多个 Agent 分类 Issues,生成次日待办优先级报告(不让 Agent 直接回复)
效果
下班前通常已经疲惫、难以进入心流,把这段时间用来启动 Agent,第二天早上能获得”暖启动”,比往常更快进入工作状态。
第四阶段:外包”稳拿分”的任务
策略
筛选出 Agent 几乎一定能做好的任务,让它在后台运行,自己去做其他深度思考的工作。
重要规则
关闭 Agent 的桌面通知!
- 上下文切换成本极高
- 应该由人控制何时检查 Agent,而不是让 Agent 打断人
- 在自然休息时切过去看一眼,然后继续自己的深度工作
技能形成的权衡
Anthropic 有篇论文说用 AI 辅助会降低技能形成。Mitchell 的应对:
- 把不想做的任务外包给 Agent
- 继续手动做自己热爱的任务,自然形成技能
第五阶段:工程化 Harness(工具链)
核心理念
Harness Engineering - 每当发现 Agent 犯错,就工程化解决方案让它永远不再犯。
两种形式
1. 更好的隐式提示(AGENTS.md)
对于简单错误(如反复运行错误命令、找错 API),更新 AGENTS.md。
Ghostty 的 AGENTS.md 示例 - 每一行都对应一个曾出现的坏行为,更新后基本解决了所有问题。
2. 实际编程的工具
- 截图脚本
- 过滤测试运行器
- 配合 AGENTS.md 告诉 Agent 这些工具存在
第六阶段:永远有一个 Agent 在运行
目标
如果 Agent 没在运行,就问自己:“现在有什么任务可以让 Agent 帮我做吗?”
搭配慢模型
特别喜欢配合 Amp 的 Deep Mode(本质是 GPT-5.2-Codex),虽然小改动可能要 30 分钟,但结果通常非常好。
现状
目前大约 10-20% 的工作日能有效保持后台 Agent 运行,正在努力提升。
重要原则:不是为了运行而运行 Agent,只在没有它也能真正有帮助时才运行。这倒逼自己改进工作流,确保总有高质量任务可委派——这本身也是好事!
总结:Mitchell 今天的状态
通过这段旅程,Mitchell 认为:
- 他对现代 AI 工具取得了成功
- 他对 AI 的态度是务实的,不关心 AI 是否会长期存在
- 他只是想作为软件工匠,出于对技术的热爱而造东西
他的立场
- 没有利益相关(不为 AI 公司工作、投资或顾问)
- 完全尊重任何人关于使用 AI 的个人决定
- 特别是初级工程师,如果基础不牢就用 AI,技能形成问题让他深感担忧
我的收获
- Agent > Chatbot - 能调用工具的 Agent 才是真正的生产力工具
- 训练需要投入 - 要像训练实习生一样训练 Agent,前期投入后期收益
- 任务分类 - 识别”稳拿分”的任务外包,保留深度思考给自己
- 工具链建设 - 每次犯错都是改进 Harness 的机会
- 异步工作 - 让 Agent 在你无法工作时继续产出
“如果你不能为过去的自己感到尴尬,你可能没有在成长。”
— Mitchell Hashimoto