Español
A branch of parallel agent work is a process: born with a purpose, isolated for cause, metered, and reaped. The orchestrator is a scheduler, and inherits a scheduler's obligations.ensayo · standmeet2026.10.07 · ensayo
2026.10.07·lectura de 3 min#agent-os

Branches Are Processes

A branch of parallel agent work is a process: born with a purpose, isolated for cause, metered, and reaped. The orchestrator is a scheduler, and inherits a scheduler's obligations.

分支即进程

第一组对应是其余一切的立足点:并行 agent 工作中的一个分支,就是一个进程。它带着一个目的和世界的一小块出生,它运行而不必知道兄弟的内部,它消耗一种被计量的资源,然后它结束——报告结果,或者失败,或者被杀。编排器是一台调度器,它继承了调度器的全部义务,不管它愿不愿意。

从隔离开始,这是调度器最早学会的义务。进程拥有自己的地址空间,不是因为进程优雅,而是因为进程危险:任何一个都可能有 bug,而系统的存活不能建立在"它们全都是对的"之上。分支被隔离是出于同一个理由。一个跑偏的分支把它的混乱写进自己的上下文和自己的工件;兄弟的世界对它不可寻址,它的错误无处蔓延。跳过隔离的系统——一个共享上下文、人人都在编辑——会以 token 价格重新发现地址空间为什么被发明出来。

cosplay 的弯路

这个行业对并行 agent 的第一次尝试值得在这里占一节,因为它一次性违反了本篇的每一条。早期的多 agent 框架什么也没有 fork:一个模型,在一份共享记录里串行运行,"工作者"之间的区别靠分配职务头衔的 system prompt——产品经理、工程师、QA 负责人,穿着戏服。argv[0] 不同,二进制是同一个。没有地址空间可保护,因为只有一份记忆。没有工件,因为工作者靠入戏聊天沟通。没有退出状态,因为没人设计返回契约——只有一场最终会停下来的群聊。被并行的是自我介绍,不是工作。专精是真的,但它住在状态、工具、契约和目标里,不住在一个让模型去扮演的头衔里。Cosplay 时代作为一个对照实验留了下来:承重的部件它一样都不占,正好让你看清哪些部件是承重的。

再是池子的机械。工作窃取——空闲的工作者从忙碌者的队列里拉任务——是调度器平衡不可预测负载的方式,也是一个分支池对待"分支成本跑起来才知道"的任务图的正确方式。抢占提出它那个不舒服的问题:一个长分支可以被中断吗?中断时保存了什么?不能被检查点化的分支不能被抢占,只能被杀掉并记账。而资源是计量的,这使调度成为一种经济行为:优先级是关于价值的主张,没有优先级的池子按到达顺序花预算——那是唯一保证对价值一无所知的顺序。

最后,是没人做预算的那些死亡。僵尸分支已经跑完,但没人来收它的结果;表里塞满了已完成而未读的条目。孤儿更糟:协调者死了——会话关闭、部署重启、人走开了——分支继续跑,烧着真金白银,去做一件已经没人在等的任务。操作系统的收尸方式是收养或杀死,但绝不是假装它们不存在。Agent 系统却一直在忘,因为它们的进程表是隐式的。把表显式化:每个分支都登记、有主、计量、被回收。这是本系列最不体面的一句话,也是能省下最多钱的一句。

pregúntele a la IA sobre este ensayo·contexto: "branches are processes"
›