Mitchell Hashimoto
节选自 Agentic Engineering Sessions
播出时间:2025年6月19日
在这场对话中,Mitchell Hashimoto 向 Richard Feldman 展示了他在构建 Ghostty 时如何使用 AI。具体来说,他们详细走读了一个近期的提交。你可以在 YouTube 上观看完整视频,或阅读以下节选引言。
保持架构控制(Maintaining Architectural Control)
"我的做法是,我在软件项目里基本上还是那个架构师。我依旧喜欢自己设计代码结构、应用的数据流、状态存放的位置。我会给工具这些指导,就像:'我希望你实现这个最终目标,但要用这种形状来实现。'"
"如果我只是说'这里有个 bug,请修复',它可能能修,但会用一种锤子砸钉子式的方式,结果长期来看根本不可维护。"
像辅导初级工程师一样写提示(Prompting Like Coaching Junior Engineers)
"我发现辅导新人最好的方式,就是给他们一个范围明确、带有很多护栏的问题......就像打保龄球时加上护栏,他们能在保护下打到球瓶。"
"这完全就是我对新加入项目的初级工程师会说的话:给他们一个范围明确的问题去做。我发现让初级工程师去做开放性问题往往是灾难。而 AI 现在的状态也差不多。"
"我把 AI 当成一个高效的新人,可以跟它说:'你能帮我调试下,看看为什么会这样吗?去做吧。'------这就是我使用 AI 的方式。"
与代理并行工作(Working in Parallel with Agents)
"我本来完全可以在前面几个提示里自己做完这些清理,但我没法在做清理的同时又去做 QA 测试。所以我把这些简单的工作交给 AI,而我同时在跑应用、点击、压力测试,结果我发现了一个 bug。"
"AI 工具的一个好处是,你不需要立刻回应。当 Claude 弹出一个通知说需要我关注时,我完全可以不理会。如果我正忙于别的,我会先把手头的事做完。"
从能跑的代码到可维护的代码(From Working Code to Maintainable Code)
"bug 虽然修了,但接下来要把它打磨成我真正想要看到的样子。这其实是个取舍:要么我自己手动改,要么让 AI 做些显而易见的快速调整。在这个例子里,它能快速做出一些合理的改进。"
"这些代理在重构上真的很强。如果不是修 bug 或写新功能,它们做重命名、调整结构、重组------几乎完美。每次我让它做这些,它都做得非常好。"
"我现在用 LLM 的大部分工作,就是让它们更接近资深工程师的视角。我会想:未来我们如何持续修复这个问题?如何验证不会回归?团队里的其他人如何理解?------这些它们还做得不够好。"
代理的当前局限(Current Limitations with Agents)
"对 Zig 代码库来说,只要不是特别小的改动,现在基本都没戏。我的解决办法是:在合适的时候,我让它先用它更擅长的语言(C、Rust、Swift 或 Python)写解决方案,然后我再手动转回 Zig。"
"我认为它在架构性问题上表现很差。在高性能数据结构方面也很弱。它虽然懂很多标准数据结构,但无法理解你在具体上下文里想要达到的目标。"
模型选择与测试(Model Selection and Testing)
"有时我会同时检出多个 Ghostty 仓库副本------ghostty、ghostty2、ghostty3、ghostty4。我会在不同的代码库上用不同的模型和代理跑同一个任务、同一个提示 。这是种竞赛机制。"
"目前我用 Claude 的成功率最高。Gemini 曾经一度表现不错,但它回答简单问题时经常给出巨量的冗长文本,对我来说效率太低。"
学到更多关于 Agentic Engineering
在这个时代,代码生产已不再是瓶颈。我们追求的是真正高质量的软件。欢迎阅读我们对 Agentic Engineering 的理解,并查看与专家们的系列对话,持续推动这一话题的发展。