【译】我的 AI 进阶之路:从怀疑到深度整合

Harness Engineering 最近特别火,一起来读读这个术语的源头文章,Mitchell Hashimoto 在 2026-02-05 发的: My AI Adoption Journey

以下是经过整理后的正文版,感兴趣的朋友可以移步英文原版:My AI Adoption Journey

目录

  • 第 1 步:告别聊天机器人
  • 第 2 步:复现你自己的工作
  • 第 3 步:部署"下班后"智能体
  • 第 4 步:外包那些"稳赢"的任务
  • 第 5 步:构建"工程化约束" (Harness Engineering)
  • 第 6 步:让智能体永不掉线
  • 现状与思考

我在上手任何有意义的工具时,必然会经历三个阶段:

(1) 效率阵痛期

(2) 勉强够用期

(3) 工作流重塑与突破期

大多数情况下,我得强迫自己熬过前两个阶段。毕竟我早已习惯了现有的工作流,用起来既顺手又舒服。

拥抱新工具就像是在"加班",我本心并不想折腾,但为了保持专业素养,成为一个更纯粹的"手艺人",我通常会选择坚持。

这是我如何发掘 AI 工具价值的心路历程。

在当下充斥着浮夸、炒作的舆论大海中,我希望分享一种更细腻、更克制的视角,记录我的观念是如何随时间演变的。

第 1 步:告别聊天机器人

立即停止尝试通过聊天界面(如网页版 ChatGPT、Gemini 等)来处理正式工作。

聊天机器人当然有价值,也是我日常流的一部分,但它们在编程中的作用非常有限。因为你本质上是在赌它能靠以前的训练"蒙"对结果;一旦它错了,你还得像教小孩一样反复告诉它哪儿错了。这种"你一言我一语"的纠错极其低效。

我第一个"真香"时刻,是将 Zed 编辑器的命令面板截图发给 Gemini,让它用 SwiftUI 复现。结果令我震惊------它做得非常棒。现在 Ghostty macOS 版中的命令面板,基本就是 Gemini 几秒钟内生成的初版。

但当我试图在更复杂的"棕地项目"(Brownfield projects,指在现有代码库上开发)中复现这种成功时,我失望了。在复杂的上下文里,聊天机器人经常翻车,我得不停地在编辑器和网页间反复粘贴代码和错误日志。这显然比我自己写要慢得多。

结论:要产生真正的生产力,你必须使用 Agent(智能体)。 Agent 是指能够在一个循环中运行、并能调用外部工具的 LLM。它至少得具备:读取文件、执行程序和发起网络请求的能力。

第 2 步:复刻 AI 已帮你完成的工作

我尝试了 Claude Code。起初印象平平:结果不理想,我还得给它"擦屁股",花的时间比自己写还长。

但我没有放弃,而是强迫自己用 Agent 把我刚写完的代码重写一遍。 我相当于把活儿干了两遍:先手写,然后让 Agent 在看不到我答案的情况下,挑战达到同样的质量和功能。

过程很痛苦,因为它阻碍了我的进度。但作为一个老兵,我知道这种摩擦是必然的。

我总结出了几条核心原则:

  1. 任务拆解: 别指望一步到位,要把任务拆成清晰、可执行的小块。
  2. 规划与执行分离: 模糊的需求要先让 AI 出方案,再执行。
  3. 闭环验证: 给 Agent 提供验证工具(如测试脚本),它通常能自己修好 Bug。

在这个阶段,我摸清了 Agent 的边界,不再盲目使用,达到了"不比手写慢"的平衡点。

第 3 步:部署"下班后"智能体

为了榨取效率,我开启了一个新模式:每天下班前最后 30 分钟,启动一个或多个 Agent。

既然我没法 24 小时工作,那就让 Agent 在我休息时帮我推点进度。

我发现这几类工作特别适合"离线运行":

  • 深度调研: 比如"调研某语言下所有符合某种授权协议的库,整理优缺点、活跃度和社区口碑"。
  • 方案探索: 尝试我脑子里一些不成熟的点子,第二天看 Agent 的尝试是否帮我排雷。
  • Issue 过滤: 让 Agent 用 GitHub CLI 把积压的 Issue 过一遍,打好标签,我第二天就能直接处理高价值任务。

第 4 步:外包那些"稳赢"的任务

当我足够了解 Agent 的能力边界后,我开始把那些它肯定能搞定的任务彻底外包出去,而我同时去干别的事。

关键点:关掉 Agent 的桌面通知。 频繁的上下文切换是效率杀手。作为人类,我要掌控干扰的时机。在我工作的自然间隙,切过去扫一眼 Agent 的进度即可。

这种方式让我能专注于那些我真正热爱、需要深度思考的代码,而把琐碎但必须做的杂事交给这位"略显笨拙但任劳任怨"的机器人助手。


第 5 步:构建"工程化约束" (Harness Engineering)

Agent 的效率取决于它能不能"一次跑对"。实现这一点最可靠的方法不是写更长提示词,而是给它一套快速、高质量的工具,让它在犯错时能立刻察觉。

我称之为 "Harness Engineering"(线束/约束工程)

只要 Agent 犯了一次错,我就去写个脚本或更新配置,确保它以后再也不会犯同样的错:

  1. AGENTS.md 记录各种避坑指南和规范,让 Agent 运行时隐式加载。
  2. 定制化工具: 比如自动截图脚本、特定的测试过滤器等。

第 6 步:让智能体永不掉线

现在,我的目标是只要我在电脑前,背景里就一定有一个 Agent 在跑。

如果它没在跑,我会问自己:"现在有什么事是可以分给它做的吗?"

我尤其喜欢用一些"慢而深"的模型(如 Amp 的 Deep Mode),它们可能要跑 30 分钟才能完成一点小改动,但质量极高。

我目前还没打算同时跑多个 Agent。一个背景 Agent 能让我保持专注,同时又像有一个"有点呆但出活"的机器人在旁边搭把手,这种平衡感刚好。

现状与思考

这就是我目前的进度。

我成了一名依然热爱手艺、但学会了使用现代重型武器的软件工匠。

我并不太在意 AI 是否会取代人类,我只想纯粹地因为热爱而创造。

这个领域变化太快,也许几个月后回看此文我会觉得自己很幼稚。

但正如那句话所说:如果你不为过去的自己感到羞愧,说明你没有进步。


名词解释

  • Slam Dunks: 原意为"扣篮",引申为"稳操胜券、手到拿来的事"。
  • Brownfield Projects: 棕地项目。指在已有的陈旧代码库基础上进行开发,通常比从零开始(Greenfield)更复杂。
  • Harness: 原意为马具、吊带。在工程中指"测试台"或"约束框架",这里指为 AI 提供的一套自动化运行和检查环境。
相关推荐
@菜菜_达1 小时前
Vue生命周期
前端·javascript·vue.js
每天吃饭的羊1 小时前
UMD和IIfe
开发语言·前端·javascript
gCode Teacher 格码致知1 小时前
Javascript提高:自定义的占位符替换-由Deepseek产生
开发语言·javascript·ecmascript
无厚2 小时前
Spring Boot中LLM流式交互的核心原理
后端·设计
前端那点事2 小时前
Vue线上代码调试全攻略(安全无侵入,新手也能上手)
前端·vue.js
前端那点事2 小时前
Vue批量文件上传并发踩坑指南:3步解决阻塞、限流、进度混乱
前端·面试
叶落阁主2 小时前
Spring Boot 4 实战:Jackson 2.x 升级到 3.x 踩坑全记录
java·后端·架构
桔筐2 小时前
Vue3 v-model 双向绑定导致循环触发的坑
前端·javascript·vue.js