Mitchell Hashimoto 的 AI 开发经验
Ghostty 开发者、Vagrant / HashiCorp 创始人分享他超过 2.5 年使用 AI 开发的经验
核心观点
1. 采用 AI 工具的三个阶段
低效期 → 足够期 → 颠覆期
大多数人死在第一阶段,因为他们期待"一用就爽"。Mitchell 用了一个很重的词:"force myself through"——必须强迫自己度过这个痛苦期。
关键洞见:评估 AI 工具的时间尺度不是一两周,而是一两个月。
2. Chatbot 是陷阱,Agent 才是答案
| 类型 | 适合场景 | 不适合场景 |
|---|---|---|
| Chatbot (ChatGPT 网页版) | 头脑风暴、生成想法 | 已有代码库中工作 |
| Agent (Claude Code、Pi) | 读取文件、执行程序、真实开发 | ❌ |
"聊天机器人在已有代码库中表现经常很差,不断复制粘贴、修正,最后发现比我自己做还慢。真正的答案是 Agent。"
3. 做两遍——最笨但最有效的方法
方法:
- 先手工做一遍
- 不让 Agent 看到结果,让它独立做一遍
- 对比两者差异
目的:从第一性原理摸索出 Agent 的能力边界。
结果:三个铁律
- ✅ 不要一个 mega session 画完猫头鹰,拆成清晰可执行的小任务
- ✅ 模糊需求要先开 planning session 再开 execution session
- ✅ 给 Agent 验证自己工作的能力,它大多会自己发现并修复错误
"这很折磨人(excruciating),因为妨碍了 simply getting things done。但通过这种摩擦,我快速找到了 Agent 的能力边界。"
4. End-of-Day Agents
策略:每天最后 30 分钟启动 Agent,让它们在你睡觉、吃饭、陪家人的时候继续工作。
核心:
"Instead of trying to do more in the time I have, try to do more in the time I don't have."
适合的任务:
- 深度研究(调查某个领域的所有库并生成多页分析)
- 并行探索模糊想法(开多个 Agent 尝试不同方向)
- Issue 和 PR 的分类审查(只生成报告)
5. 注意力管理
关键做法:
- ✅ 识别 Agent 的"稳赢任务"后,让它在后台运行
- ✅ 关掉桌面通知
"Context switching is very expensive。作为人类,你的工作应该是控制何时打断 Agent,而不是反过来。"
正确节奏:让 Agent 安静运行,在你自然的休息间隙看一眼,然后继续。
6. 对抗技能退化
方案:不是不用 AI,而是刻意分配。
| Agent 做任务 A | 你手工做任务 B |
|---|---|
| 效率任务 | 你喜欢、需要深度思考的任务 |
"你在做权衡:不为委托给 Agent 的任务形成技能,但在继续手工做的任务中自然形成技能。"
7. Harness Engineering
定义:每当发现 Agent 犯错,就花时间设计解决方案,让 Agent 永远不再犯同样的错误。
两种形式:
-
更好的隐式提示(AGENTS.md)
- 针对简单问题
- Agent 反复运行错误命令、找错 API
- "Ghostty 几乎每一行都基于一个坏行为,几乎完全解决了所有问题"
-
程序化工具
- 截图验证
- 运行筛选后的测试脚本
- 更新 AGENTS.md 让 Agent 知道这些工具
"前期投入时间,后期 Agent 越来越懂事。AGENTS.md 不是一次性文档,是持续迭代的错误日志。"
8. 始终保持一个 Agent 在运行
当前目标:
"Having an agent running at all times"
检查点:如果没有 Agent 在运行,就问自己"现在有没有什么是 Agent 可以帮我做的?"
模型搭配:
- 慢速、深度思考模型(如 Amp's deep mode)
- 30+ 分钟做一个改动,但产出质量很好
现状:
- 只有 10-20% 的时间有效保持后台 Agent 运行
- 目前不想运行多个 Agent,一个是最佳平衡点
"I don't want to run agents for the sake of running agents。目标不是 100% 时间都有 Agent 在跑,而是养成'有没有什么是 AI 可以做的'习惯。"
金句
- "Instead of trying to do more in the time I have, try to do more in the time I don't have."
- "Turn off agent desktop notifications. Context switching is very expensive. It was my job as a human to be in control of when I interrupt the agent, not the other way around."
- "I was firmly in the 'no way I can go back' territory... I could now focus my coding and thinking on tasks I really loved while still adequately completing the tasks I didn't."
相关笔记
- AI 开发环境管理项目 - 与 AI 工具协作的实践经验
- Obsidian 任务管理系统 - 利用 AI 辅助任务管理
参考
- Ghostty: https://ghostty.org
- Mitchell Hashimoto: https://mitchellh.com
- 原文: https://mitchellh.com/writing/my-ai-adoption-journey