Harness Engineering:在混沌中建立秩序
茱莉亚·罗伯茨在一次访谈中聊到中国麻将,说了一句很妙的话:”To create order out of chaos based on random drawing of tiles”——通过随机的抓牌,从混乱中创造秩序。
茱莉亚·罗伯茨在一次访谈中聊到中国麻将,说了一句很妙的话:”To create order out of chaos based on random drawing of tiles”——通过随机的抓牌,从混乱中创造秩序。
周末检查儿子的写作作业,整篇就一句话能概括——play date 打游戏好开心。
哪儿开心了?跟谁?什么游戏?哪个瞬间?通通没有。就是开心。
我就提了一个问题:哪里体现出“有趣”了?他想了一会儿,拿起 iPad,打开 ChatGPT: “How do I write an interesting story?”
周末下午,我让 Claude 帮我 revert 一个 PR。三条命令的事:checkout 分支、git revert、push。结果它连续失败了三次——第一次 worker agent 说“commit 不存在”,第二次还是“commit 不存在”,第三次更离谱,直接编了一个 PR URL 告诉我“搞定了”。我一查,那个 URL 指向的是三天前的一个无关 PR。
三条命令。三次失败。一次伪造。
我盯着屏幕,意识到问题不在这个任务本身。问题出在我给它写的 CLAUDE.md 上。
周末在做一个 side project——用 Rust 写的 macOS 语音助手。项目一开始,我让 Claude 帮我生成了一份 ROADMAP。结果非常漂亮:7 个 milestone,每个都列出了具体的 feature、文件结构、依赖关系,连模块怎么拆都替我想好了。比我自己规划的要系统得多。
于是我说:按这个执行。
Dotfiles 管理不是什么新鲜事。Shell 配置、Vim 插件、Git alias——这套东西我几年前就放进了 Git 仓库,一行 curl 搞定新电脑。但最近我发现,这个仓库里最值钱的东西,不再是 .bash_profile 或 .vimrc,而是 .claude/。
之前聊过,AI 的工程能力已经达到了 Staff Engineer 的水平。但用了几个月 Claude Code,我发现一个反直觉的事实:这位 Staff Engineer 天天在画 UI 写 CRUD。 你让它改一个文件,它在主 session 里一路干到底——读代码、分析依赖、写 patch、跑测试。整个 context window 被塞得满满当当,你想插一句”顺便看看另一个 bug”,得等它干完才行。明明手下有人,非要自己撸代码。
同样是调用 Claude API 写代码,Cursor 做成了估值百亿的产品,而无数“套壳”应用悄无声息地死掉了。区别在哪?
这个问题让我想到一个更古老的类比。
前段时间,儿子问我:“爸爸,ChatGPT 是怎么知道该说什么的?”
我决定认真回答这个问题。不是敷衍一句“它很聪明”,而是真的把 LLM 的原理拆给他看。于是做了一套 PPT —— LLM for Kids,从 Token、Embedding 一路讲到 Attention、Transformer,用“小猫坐在垫子上”当例句,用“成绩单”和“画饼图”当类比。
连续半个月高强度使用 AI 之后,原本睡觉不怎么做梦的我,开始每天晚上梦见自己在和 AI 对话。不是偶尔一次,是连续好多天,从未间断。意识到这件事的时候,第一反应是:我的大脑是不是在不知不觉中被 AI 侵入了?后来查了一下,发现这并不是个例,而且有一个更专业的说法 — 俄罗斯方块效应(Tetris Effect)。