Simon Logo
WritingMonthlyProjects
Simon Logo

Thanks for reading!

GitHubGitHubXTwitterZhihu知乎WeChat微信公众号RSSRSS
CC BY-NC-SA 4.0© 2019-2026 Simon Wong.
隐私策略服务条款

On This Page

On This Page

#34 AI 与前端月刊

Jul 31, 2026AgentClaude CodeBunTypeScriptRSC

AI

Loop Engineering:不再自己写 prompt,改为设计循环

Loop Engineering

Peter Steinberger 和 Claude Code 负责人 Boris Cherny 都说过类似的话:他们不再直接给 agent 写 prompt,而是写会去 prompt agent 的循环。Addy Osmani 把这件事拆成五个部件加一份记忆:

  • Automations:定时触发,自己找活、做分诊。
  • Worktrees:多个 agent 并行时各用各的工作目录,不会改到同一个文件。
  • Skills:把项目约定写进 SKILL.md,agent 每轮读一遍,不用每次重新解释。
  • Plugins / Connectors:基于 MCP 接入 issue、数据库、Slack,让循环能自己开 PR、更新工单。
  • Sub-agents:写代码和检查代码的分开,避免自己给自己打分。

记忆可以是一个 markdown 文件或 Linear 看板,记录做过什么、下一步做什么。模型每轮都会忘,仓库不会。Codex 和 Claude Code 现在都具备这五样,名字不同,能力基本对应,所以设计好的循环换工具也能用。

文章后半段写的是风险:无人值守的循环也会无人值守地犯错,"完成"只是 agent 的声明;循环产出越快,你对代码的理解欠账越多。作者自己也说,如果不亲自 review,产品质量会往下掉。

上一篇 Agent Harness Engineering(5 月刊介绍过)讲的是单个 agent 的运行环境,loop 是在 harness 外面再加一层调度。

Claude Code 官方的循环入门

Getting started with loops

Claude Code 团队把 loop 定义为"重复工作直到满足停止条件的 agent",按触发方式和停止方式分成四类:

类型交出去的部分适用场景对应功能
Turn-based检查探索、需要你做判断自定义验证 skill
Goal-based停止条件你知道"完成"长什么样/goal
Time-based触发时机定期任务、等外部系统变化/loop、/schedule
Proactiveprompt 本身重复且边界清楚的工作以上全部 + dynamic workflows

几个可以直接抄的写法:

bash
/goal get the homepage Lighthouse score to 90 or above, stop after 5 tries.
/loop 5m check my PR, address review comments, and fix failing CI

前端相关的一个例子:写一个 verify-frontend-change skill,要求改完 UI 后启动 dev server、点一下新按钮并截图对比、检查控制台零报错、用 Chrome DevTools MCP 跑一次 Core Web Vitals。检查越量化,agent 越能自己验证。

控制 token 的建议也很实际:确定性的步骤写成脚本,不要让模型每次重新推理;dynamic workflows 可能一次拉起上百个 agent,先拿一小部分任务试跑;定时任务的间隔跟着被观察对象的变化频率走。

前端

Bun 用 11 天从 Zig 迁到 Rust

Rewriting Bun in Rust

5 月刊提过这次迁移的 PR,这篇是 Jarred Sumner 的官方复盘。

迁移原因是内存问题。Zig 需要手动管理内存,又要和 JavaScriptCore 的垃圾回收配合,use-after-free、double-free 一直修不完,仅 v1.3.14 就修了 12 个。Rust 的借用检查和 Drop 能在编译期挡掉大部分这类问题。

具体做法:用 Claude Fable 5 预览版跑动态工作流,约 50 个并行任务,高峰时 64 个 Claude 实例同时工作,按"1 个实现、2 个对抗审查、1 个修复"分组。5 月 3 日到 14 日,6,502 次提交,新增 100 多万行代码,API 费用约 16.5 万美元。

结果:Bun.build() 每次调用约 3MB 的内存泄漏降到 0,Linux 和 Windows 二进制体积小了 20%,性能提升 2%–5%,全平台测试通过。

TypeScript 7.0:Go 原生实现正式发布

Announcing TypeScript 7.0

用 Go 重写的 TypeScript 编译器正式发布,支持原生代码和共享内存多线程。

  • 完整构建快 8–12 倍:VS Code 项目从 125.7 秒降到 10.6 秒,Sentry 从 139.8 秒降到 15.7 秒。
  • 内存平均少用 6%–26%。
  • 编辑器里打开项目到显示错误,从 17.5 秒降到 1.3 秒。

升级前要注意默认值变化:strict 默认开启,module 默认 esnext,types 默认空数组,rootDir 默认 ./;ES5 目标、AMD/UMD、经典模块解析不再支持。官方建议先升到 6.0 适应新默认值,再用 npm 别名让 6.0 和 7.0 并存。7.0 还没有稳定的编程 API,Vue、Angular 等框架的集成要等 7.1。

TanStack 官网撤掉 RSC,改回普通 SSR

We Stopped Using RSC on TanStack.com

TanStack 当初用 RSC,是为了把 Markdown 解析和代码高亮这些大依赖留在服务端,光高亮相关就约 358 KiB。

后来他们把客户端渲染器压到约 27 KiB,重新算了一遍:渲染器只下载一次,之后切页只拿 Markdown 原文;RSC 方案则每次切页都要接收服务端生成的组件树。网站访客平均每次浏览约 6 页,渲染器下载一次反复用更划算。

改成普通 SSR 负责首屏、server functions 返回内容数据之后,用旧站对比新站:博客文章页传输量从 1,101 KiB 降到 785 KiB,Lighthouse 分数从 52 到 74,Total Blocking Time 从 1,200ms 降到 260ms;文档页变化小一些,分数从 78 到 81。代码也少了专用文件、序列化和服务端边界的处理。

------
Views
Previous

AI 与前端月刊

Next

AI 与前端月刊

You Might Also Like

  • AI 与前端月刊Jul 31, 2026
  • AI 与前端月刊May 31, 2026
  • 前端月刊Aug 31, 2023