我所知道的全部智能体工程技巧
作者:Matt Van Horn | 发布于 2026 年 6 月 4 日
三个月前我发过一篇《我所知道的全部 Claude Code 技巧》,拿到了 91.3 万阅读。
当时 Kevin Rose 问我该用哪个 IDE,我的回答是:“不用 IDE,只用 plan.md 文件加语音。”
这种做法过去叫 vibe coding。
大约在去年感恩节前后,模型强到让这个"玩具"变成了真家伙,也就是现在大家说的 Agentic Engineering(智能体工程)。
它是我现在还能持续交付产品的唯一原因。
今年我做出了 last30days(2.7 万 star)、Printing Press(4000+ star)、刚上线的 Agent Cookie,还成了几个超大型开源项目的头部贡献者:Python、Go、GStack、Paperclip。
上一次我做出别人觉得有价值的软件,还是高中时候的事。
下面这些就是我的技巧。
YOLO 极速版技巧:把这整篇文章粘贴给你的 AI 智能体,让它据此做一份"把文中所有东西都搭起来"的计划,然后一条一条照着执行。这就是我的全套工作流,你连读都不用读。
1. 有想法的那一刻,就用 CE 做一个 plan.md
依然是第一条铁律,也依然是我学到的最重要的一件事。
我一有想法,就立刻 /ce-plan 生成一个 plan.md【译注:/ce-plan 是下文 Compound Engineering 插件提供的"斜杠命令",作用是自动生成计划文件】。
不是"让我想想",也不是"先开始写代码",而是每次都 /ce-plan。
它还能吃图片,所以任何你能截下来的东西都能当起点:
- 脑洞产品点子:
/ce-plan。 - GitHub 上的某个 bug:复制 issue 链接,粘贴,
/ce-plan。 - 终端报错:Cmd+Shift+4 截图,Ctrl+V 粘贴,
/ce-plan fix this(修一下这个)。 - 截图、报错信息、设计稿、Slack 对话串,随便哪个,丢进去就行。
当想法还很模糊、我自己都不知道想要什么时,我会先用 /ce-brainstorm 跟智能体一起把它想清楚,等思路锐利了再 /ce-plan。
/ce-plan 的内部机制是:并行地扇出多个研究型智能体。
一个读你的代码库、找出其中的模式、核对你的代码规范;一个翻你过去的解决方案、提炼经验;如果话题需要,还会有更多智能体去查外部文档和最佳实践。
全部同时进行。
然后它汇总成果,写出一份结构化的 plan.md:问题出在哪、采用什么思路、要改哪些文件、带勾选框的验收标准、以及从你自己代码里总结出的可遵循模式。
一切都扎根于你的仓库、你的规范、你的历史,而不是泛泛而谈的建议。
/ce-work 则拿这份计划去落地。
上下文爆了?新开一个会话,指向那份计划,从断点继续。
计划就是那个能扛过一切的存档点。
传统开发是 80% 写代码、20% 做规划,这套打法把它反了过来:思考全压进计划里,执行就成了机械活。
让这一切真正跑起来的,是 Kieran Klaassen 和 Trevin Chow 的 Compound Engineering(复利工程) 插件【译注:"复利工程"取义于每次积累都让后续更省力,像利滚利】。
我从它的铁粉变成了贡献者,如今是仅次于核心团队的第三大贡献者。
我现在的规矩是:除非真的只是改一行字,否则永远先有一个 plan.md。
技巧
- 安装 Compound Engineering:
/plugin marketplace add EveryInc/compound-engineering-plugin- 粘贴截图、bug 链接或报错,然后
/ce-plan,再/ce-work。- 想法模糊?先
/ce-brainstorm。
2. 别去读那个 plan.md
我总是会做 plan.md,但几乎从不读它。
计划是给智能体看的,傻乎乎的人类。
强制一份计划存在,能让智能体不偷懒:逼它去研究、敲定一个思路、写下验收标准,然后真的去逐条达成。
有计划的编码智能体交付的是完整成品;没计划的会偷工减料、半途收手。
计划就是那根牵狗绳。
所以我让它写计划,我只扫一眼标题,然后就跑 /ce-work。
有疑问我就当场在会话里直接问:"等等,为什么用这个思路?"或者要个 TLDR。
实在看不懂时就说"eli5 这个计划"【译注:eli5 = “Explain Like I’m 5”,“像跟五岁小孩解释一样”,要求把复杂内容讲到极简】。
我拿到一段话版本,点点头,继续往下走。
我绝不会坐那儿读 300 行 Markdown,那是智能体的作业,不是我的。
做计划。
信计划。
别读计划。
技巧:管住自己别去读计划。要看就当场追问:
TLDR?、eli5 这个计划,或者"等等,为什么用这个思路?"
3. 把 /ce-plan 用在你最硬核的非工程工作上——给计划做个计划
大家以为 /ce-plan 和 /ce-work 是写代码用的。
我从三月以来学到的最大一件事是:它们不止于此。
我现在最深度的知识工作都跑在同一个循环里,而诀窍是——让第一份计划成为"给计划做的计划"。
这也不是我硬把一个写代码的工具掰去干别的:/ce-plan 内置了一个通用规划模式,本来就是为这种非代码工作设计的。
而且不只是商业问题。
策略文档、产品规格书、竞品分析、董事会汇报,全都走同一个循环。
举个真实例子。
我去见了 Michael Margolis——前 GV【译注:GV = Google Ventures,谷歌旗下的风险投资基金】的研究合伙人,以"靶心客户法"闻名——聊我正在酝酿的一个商业难题。
他让我读他的书,他网站上有免费 PDF。
换作过去,我会大致翻翻就过去了。
这次我打开 Claude Code,大意是这么说的:
"
/ce-plan,给计划做个计划。我马上要给你两样东西:Margolis 的书(PDF),以及我刚和他开的那场两小时会议的 Granola 转录全文
- 【译注:Granola 是一款自动记录、转录会议的工具】,里面有我们讨论的全部上下文。我想要一份深思熟虑的计划,说明如何把我的商业难题、那场对话、和书里的洞见融合成我真正能用的东西。现在先别写那份文档。写出来才是真正的活。此刻我只要计划:你打算怎么读这本书、怎么从转录里挖料、怎么产出一份出色的文档。"
接下来它花了 45 分钟,做出了一份史诗级的计划。
这也是我所知最能让大语言模型不偷懒的单一诀窍。
直接叫它出成品,它会偷工减料;叫它先规划"我将如何产出这个成品"、再去执行那份规划,它每次都会给你下足功夫的深度版。
技巧:深度非代码工作——
/ce-plan给计划做个计划,把你所有上下文和转录都喂给它,然后/ce-work。
4. 被"语音化"
语音转 LLM 跟语音转其他任何东西都不一样。
转录不必完美,因为听的那一方懂上下文,它会猜出麦克风听错的地方。
你可以含糊、可以说一半停掉、可以一句话重说。
语音之所以终于好用,是因为对面那东西聪明到能补上空缺。
我的配置:
- Mac:Monologue(来自 Every)或 Wispr Flow,二选一,把语音直接灌进当前聚焦的任何 App,对着 Claude Code 说话就行。我还给办公室买了个鹅颈麦。
- 手机:跳过 Monologue 和 Wispr Flow,在 iOS 上切换它们太烦。苹果自带的听写就够用了,因为你是在跟 LLM 说话,不是跟人。它把一半词都识别错,智能体照样能懂。潦草的笔记没关系。
老实交代一点:我独处时用语音如鱼得水,在办公室就费劲。
大家说你可以对着麦克风小声说,但我发现自己其实做不到,因为不想显得没礼貌、不想打扰旁边的人。
所以合用办公室里的一张桌子,至今仍是我整套工作流的软肋。
如果你能在开放式办公室里搞定语音又不变成"那种人",请告诉我怎么做,我是真心求教。
技巧:Mac 装 Monologue 或 Wispr Flow;手机用苹果听写;搞一个鹅颈麦。
5. 在 cmux 里开一大堆标签页
这就是我真实的一天。
四到六个 cmux【译注:cmux 是一款终端会话管理/多路复用工具,能在一个窗口里管理多个独立终端会话】标签页,有时更多,每个都是一个独立会话:
- 一个在写计划。
- 一个在照另一份计划搭东西。
- 一个在跑 last30days。
- 一个在修我测上一件东西时发现的 bug。
当 /ce-plan 在一个窗口里跑研究时,我切到另一个窗口去 /ce-work 一份已经写好的计划;趁那个在搭建,第三个窗口又贴进来一个新 bug。
等我转一圈回来,第一个已经做完、在那儿等着了。
我听说 Orca 在移动端做得很棒。
我以前也是 Ghostty【译注:Ghostty、Orca 都是终端模拟器软件】的纯粹主义者,但在 Ghostty 里我老是漏掉太多通知。
技巧:用 cmux(来自 Manaflow);常开 4 到 6 个标签页,每个跑一件不同的任务。
6. 让终端默认打开就是 Claude 或 Codex,而不是 Shell
新标签页应该直接进入 Claude Code,而不是一个 Shell。
开一个标签页,你就已经在跟智能体对话了。
不用 cd,不用敲 claude。
当开一个新会话只要一个按键时,你就会开很多很多个。
我也不用文件夹,你的智能体自己能找到项目。
技巧:把下面这段粘给你的智能体:
“让每个新终端标签页都直接打开 Claude Code。在~/.config/ghostty/config里加一行command = ~/.local/bin/claude-launcher.sh,不要动该文件里已有的任何其他设置。然后创建~/.local/bin/claude-launcher.sh,让它运行claude --dangerously-skip-permissions,并在 Claude 退出后打印一句简短提示、把我丢进一个交互式登录 zsh。给脚本chmod +x。这对 Ghostty 和 cmux 都管用,因为 cmux 读的是同一份 Ghostty 配置。”
7. 远程控制每一个窗口,并给 Claude Code 或 Codex 配个邮箱
两个让每个会话从任何地方都能触达的技巧。
每次开新窗口都打开远程控制:把远程控制设成对每个会话自动开启。
这样每个窗口都能从 Claude 手机 App 触达。
在桌前开个会话,起身走人,在手机上接着同一个正在跑的任务继续。
某种意义上,你是在遥控你家 Mac 上正埋头干活的东西。
给你的 Claude 配个邮箱:Claude Code 可以借助 AgentMail 拥有一个邮箱地址【译注:AgentMail 是专门给 AI 智能体用的邮箱服务】。
创始人 Adi Singh 教我的。
给那个收件箱发邮件,一个全新会话就会打开,并开始处理邮件主题和正文里的内容,附件也能按路径调用。
晚饭时发现个 bug?用手机把它发过去,你还没回到电脑前,一个会话就已经在跑了。
我把整套东西开源了:github.com/mvanhorn/agentmail-to-claude-code。
三个部件:
- 一个守护进程通过 WebSocket【译注:一种保持长连接、能实时收推送的网络协议】盯着一个 AgentMail(YC S25 项目【译注:YC = Y Combinator,知名创业孵化器;S25 指 2025 年夏季批次】)收件箱。每收到一封在白名单上的邮件,它就开一个全新 Claude 会话,把邮件写进一个提示词文件,让 Claude 读取并据此行动。
- 两个终端后端,cmux 或独立的 Ghostty,让它能驱动你本来就在用的那个。
- 一个发送器。我把它接到了我 Hermes 里的一个
cc命令上,于是在手机上跑cc <任务>,它就会作为一个正在干活的会话落到我的 Mac 上,不用 VPN,不用 SSH。
白名单是那道闸门。
只有你自己掌控的地址能进,任何过不了 DKIM 或 SPF【译注:DKIM、SPF 是验证邮件"真的来自所声称发件人"的反伪造机制】的邮件,在会话开启前就被丢弃。
技巧
- 常开远程控制:在
~/.claude/settings.json里加"remoteControlAtStartup": true。- 给 Claude 配邮箱:把这段粘给你的智能体——“用
github.com/mvanhorn/agentmail-to-claude-code给 Claude Code 配个邮箱。克隆它,建一个 AgentMail 收件箱,在cc.env里填我的 API key、收件箱、只含我自己地址的白名单、以及我的终端(cmux 或 Ghostty),然后跑守护进程并把它装成一个 launchd 任务【译注:launchd 是 macOS 管理后台常驻任务的系统服务】。当我给那个收件箱发邮件时,这台 Mac 上应该打开一个全新 Claude Code 会话,开始处理主题和正文。”
8. 危险地跳过权限确认——对,我是认真的
Claude Code 每次编辑、每条命令都要请示许可。
开着六个会话时你没法盯着它。
两个设置能让它变得可用。
有人说"auto"模式是更"安全"的做法,但它把我拖得太慢。
skipDangerousModePermissionPrompt: true 是关键。
没有它,Claude 每个会话都要你确认一遍。
你也可以用 Shift+Tab 来回切换。
有人跟我说较新的"auto"模式能在更安全的前提下达到差不多效果。
也许吧。
我选 YOLO。
这是我自己的电脑。
真把一切搞砸了,还有 GitHub 兜底【译注:指代码都提交到了 GitHub,出事能回滚】。
我给一个朋友配 Claude Code 时,那 AI 还主动劝他别开这个模式。
你得对它态度强硬点。
另一个设置是声音钩子【译注:hook,“钩子”,指在某事件发生时自动触发的小程序】,开六个会话时它不可或缺:
走开,听到声音再回来。
六个会话都在跑时,靠声音你才知道是哪个刚做完。
技巧
粘进
~/.claude/settings.json:
{ "hooks": { "Stop": [ { "hooks": [ { "type": "command", "command": "afplay /System/Library/Sounds/Blow.aiff" } ] } ] } }
【译注:
afplay是 macOS 播放音频的命令,这里在会话停止时播一声提示音】
Codex 有同样的 YOLO 模式。在
~/.codex/config.toml:
approval_policy = "never"
sandbox_mode = "danger-full-access"
或者用
codex --yolo临时起一个。
9. 我如何让大部分代码都跑在 Codex 上,却从不打开 Codex CLI
我一整天都在把活派给 Codex,却几乎从不为此打开 Codex 的 CLI。
Claude 做规划,Codex 来搭建,而我从不离开我的 Claude 会话。
不离开 Claude 就把活交给 Codex 的三种方式:
- Codex IDE 扩展:派一个任务,应用结果,从不掉进 Codex 终端里。
/ce-work --codex:在 Compound Engineering 循环里把搭建直接委托给 Codex。- Printing Press 的 Codex 模式:在生成新 CLI 的提示词末尾加上
codex,它就把搭建交给 Codex。
我的设置,两个引擎都拉满到超高推理强度:
- Codex:推理 xhigh,快速模式常开。
- Claude Code:推理 xhigh,快速模式关闭。它的快速模式会在你那 200 美元的 Max 套餐之外按 token 另收费,所以我跳过。
两个各 200 美元的套餐并排开,等于一整套第二引擎。
我把大规模并行搭建推给 Codex,让 Claude 专注规划和品味。
有些朋友反着用:Codex 搭建,Claude 审查。
技巧
- Codex:推理 xhigh,快速模式开。Claude Code:xhigh,快速模式关。
- 把活交给 Codex:用 Codex IDE 扩展、
/ce-work --codex,或在 Printing Press 提示词末尾加codex。
10. 规划之前先做研究:last30days
在 /ce-plan 之前,我通常会先对它跑一遍 /last30days。
我当时在 Vercel 的 agent-browser 和 Playwright【译注:两者都是让程序自动操作网页/浏览器的工具】之间纠结。
我没去读文档,而是跑了 /last30days Vercel agent browser vs Playwright。
几分钟内:几十条 Reddit 帖、X 帖、YouTube 视频、HN【译注:HN = Hacker News,技术圈高人气的新闻社区】话题。
结论是 agent-browser 每次调用占用的上下文少得多,Playwright 光是工具定义就要灌进去几千个 token。
我把整份输出喂进 /ce-plan integrate agent-browser。
出来的计划扎根于社区此刻真正掌握的认知,而不是半年前的训练数据。
last30days 是开源项目,现在已超过 2.6 万 star。
它并行搜索 Reddit、X、YouTube、TikTok、Instagram、HN、Polymarket【译注:Polymarket 是一个预测市场平台,用下注价格反映大众对未来事件的判断】、GitHub 以及全网。
我会在挑库之前、做功能之前、见商业伙伴之前、写文章之前都跑一遍。
本文里有几样东西我就跑过它。
研究、规划、搭建,这才是真正的循环。
技巧:安装 last30days(@slashlast30days)。在
/ce-plan之前,跑/last30days <主题>。记得配好 ScrapeCreators 的 key【译注:ScrapeCreators 是抓取社交平台内容的第三方接口,需要 API 密钥】。
11. 万物皆 Granola,并把原始转录丢进你的 LLM
我和一位候选人吃了顿午饭,聊产品、聊吃的、聊孩子,九十分钟的正常闲聊,中间穿插着一个产品点子。
Granola 一直开着。
事后我把完整的原始转录粘进 Claude Code:/ce-plan 把这个变成一份产品提案。
诀窍在于 原始。
我不先做摘要,把整段乱糟糟的转录原样丢进去——连那些关于寿司的跑题也一起——让 Claude 对着我真实的代码库和我写过的每一份历史策略计划去做提取。
Granola 的上下文 + 代码库 + 历史计划 = 金子。
它一次就产出了一份提案【译注:原文 one-shotted,指 AI 一遍到位、无需返工】,自动忽略了餐厅闲聊,我当晚就发了出去。
那位现在全职和我们一起干。
而三月以来的升级是:Printing Press 的 Granola CLI,简直魔法。
我能把任何一场会议作为干净的结构化数据直接拉进会话,搜遍我开过的每一场会,找出三周前某人说过的那一句话,再把它接进一份计划。
再也不用复制粘贴。
每一场会议的上下文,都只差一条命令。
技巧:把 Granola(@meetgranola)的 原始 转录丢进
/ce-plan,别先做摘要。安装 Printing Press 的 Granola CLI。
12. 人类信号
这是我花了最久才完成的心态转变。
当你同时跑六个智能体时,你的工作不是去干活,而是去当那个 信号。
智能体提供产量,你提供品味、方向,以及"看一眼—再纠偏"的循环。
你看它交回什么,你说"方案二更接近,但用方案一的措辞"、“先解决最大的风险”、“这段太长”,它们就动起来。
这个循环里稀缺而宝贵的东西,是你的判断力,不是你的打字。
我越是投入去当那个"人类信号"、越是不再试图同时也当那只亲手干活的手,我交付得就越多。
去当品味,让它们当手。
技巧:用你的脑子去指挥你的智能体,以此给世界创造价值。这件事仍然有价值。
13. 用 HyperFrames 做视频,做任何东西
视频曾经是我要么外包、要么干脆跳过的东西。
现在我用做其他一切的同样方式做它:我说,智能体搭,我反馈。
技巧:复制这整篇文章,粘进你的智能体,让它把能搭的都搭起来。好事会降临到你的智能体工程工作流上。