欢迎来到煤气镇

分类开源项目
作者Steve Yegge
来源跳转
发表时间

内容

什么是 Gas Town?

Gas Town 是 2026 年对集成开发环境(IDE)的新尝试。Gas Town 帮助您处理运行大量 Claude Code 实例的繁琐工作。东西容易丢失,很难跟踪谁在做什么等等。Gas Town 帮助处理所有这些琐事,让您专注于 Claude Code 的工作。

在这篇博客文章中,“Claude Code”指的是“Claude Code 及其所有外观相同的竞争对手”,即 Codex、Gemini CLI、Amp、Amazon Q-developer CLI 等,因为它们都是克隆品。行业就像一个令人尴尬的小孩子的足球队,追逐 2025 年 Claude Code 的命令行界面(CLI)形式,而不是构建下一代产品。

我已经构建了下一代产品。首先,我在三月份预测了它,在 Revenge of the Junior Developer 中。我预测有人会将 Claude Code 的骆驼绑在一起,变成战车,这正是我用 Gas Town 做的事情。我已经驯服了它们,您可以同时使用 20-30 个实例,长时间高效地工作。

Gas Town 有自己的意见——就像 Kubernetes 或 Temporal 一样,Gas Town 在某些方面与它们相似,至少如果您仔细看的话。它是一个复杂的系统,但它有效。

Gas Town 不是秘密

在《初级开发者的复仇》之后,我全年旅行,向每个人大声宣布需要构建什么,我是说每个人。我并不害羞。我会宣称,“编排器是下一步!”每个人都会慢慢点头,若有所思地点头,皱着眉头说:“嗯。”

我去了像 Temporal 和 Anthropic 这样的公司的高级人员,告诉他们应该构建一个代理编排器,Claude Code 只是一个构建块,未来将是关于人工智能工作流和“代理的 Kubernetes”。我在多个活动的舞台上描述了我的编排器愿景。我去了每个地方,见了每个人。

“它将像 Kubernetes,但适用于代理,”我说。

“它将有多个级别的代理来监督其他代理,”我说。

“它将有一个合并队列,”我说。

“它将编排工作流程,”我说。

“它将有插件和质量门,”我说。

我说了很多关于它的事情,几个月都在说。但是,天哪,我们甚至无法让人们使用 Claude Code,更不用说同时使用 10 到 20 个实例了。

所以在八月,我开始构建自己的编排器,因为似乎没有人在乎。最终它失败了,我扔掉了它,重新开始了 v2,它也失败了,但我们从中得到了 Beads。然后是 v3(Python Gas Town),它持续了大约六到八周。

Gas Town(用 Go 编写)是我在 2025 年的第四个完整、功能齐全的编排器。到达 Gas Town 的故事很有趣,但我们将在另一篇文章中讲述。遗憾的是,这篇文章只讲述 Gas Town 的基本工作原理,就已经足够长了(25+ 页!)。我们以后再讲背景故事。

但是首先,在我们深入 Gas Town 的工作原理之前,我需要快速地摆脱你。

警告:危险:注意

快点离开

你会死的

让我们谈谈你不应该使用 Gas Town 的一些原因。我可以想到更多,但这些应该足够了。

首先,代码库只有三周的历史。在“抛光钻石”到“未经雕琢的粗石”到“我刚刚从 400 英里外的河上偷偷运来了它”的范围内,我会将 Gas Town 归类为“你可能还不想使用它”。它需要一些漂白剂。它也是 100% 的氛围编码。我从未见过代码,也不在乎,这可能会让你犹豫。当然,我也从未看过 Beads,它有 225k 行 Go 代码,成千上万的人每天都在使用。我只是在十月份创建了它。如果这让你感到不舒服,现在就离开

第二,你还没有准备好。让我们谈谈 2024-2026 年程序员的演变,由 Nano Banana 在图 2 中绘制:

图 2:开发人员向人工智能转变的 8 个阶段

首先,你应该在图表中找到自己。你的人工智能辅助编码之旅处于哪个阶段?

第 1 阶段:零或近零人工智能:也许有代码补全,偶尔会问 Chat 问题

第 2 阶段:IDE 中的编码代理,权限已启用。侧边栏中的狭窄编码代理会要求您运行工具的许可。

第 3 阶段:IDE 中的代理,YOLO 模式:信任度提高。您关闭权限,代理变得更广泛。

第 4 阶段:IDE 中的宽代理:您的代理逐渐填满整个屏幕。代码仅用于差异。

第 5 阶段:CLI,单代理,YOLO。差异会滚动过去。你可能会或可能不会查看它们。

第 6 阶段:CLI,多代理,YOLO。你经常使用 3 到 5 个并行实例。你非常快。

第 7 阶段:10+ 代理手动管理。你开始推动手动管理的极限。

第 8 阶段:构建自己的编排器。你处于前沿,自动化你的工作流程。

如果你还没有达到第 7 阶段,或者可能是第 6 阶段并且非常勇敢,那么你就无法使用 Gas Town。你还没有准备好。Gas Town 是一个由超智能机器人黑猩猩运营的工业化编码工厂,当它们想的时候,可以瞬间摧毁一切。它们会摧毁其他黑猩猩,工作站,客户。它们会撕掉你的脸,如果你还不是一个有经验的黑猩猩驯兽师。所以,不。如果你有任何疑虑,那么你就不能使用它。

在 Gas Town 中有效地工作需要致力于氛围编码。工作变得流畅,像在码头上用木桶装满闪亮的鱼一样,你可以自由地将其抛来抛去。大部分工作都完成了;一些工作会丢失。鱼会从桶里掉出来。一些鱼会逃回海里,或者被踩踏。更多的鱼会来。重点是吞吐量:以思维的速度创造和纠正。

图 3:氛围编码混乱

在 Gas Town 中工作可能会很混乱和凌乱,这就是它得名的原因。有些 bug 会被修复两三次,有人需要选择获胜者。其他修复会丢失。设计会丢失,需要重新完成。这并不重要,因为你正在不懈地向前推进,处理大量的工作,Gas Town 既生成了这些工作,也消耗了这些工作。你可能不是 100% 高效,但你正在飞速地工作。

在 Gas Town 中,您让 Claude Code 做它的事情。您是产品经理,Gas Town 是一个想法编译器。您只需编造功能,设计它们,提交实施计划,然后将工作分配给您的 polecat 和团队。Opus 4.5 可以处理任何合理大小的任务,所以您的工作就是为它创建任务。这就是全部。

您还需要帮助保持 Gas Town 的运行。它大部分时间都能自行运行,但事情经常出错。它可能需要您和工人付出很多努力来保持其平稳运行。这是一个非常需要手动操作的编排系统。

如果你无法以这种方式工作,那么你还在这里做什么?回到你的 IDE 并寻找庇护所。Gas Town 不适合你。

Gas Town 还非常昂贵。你不会喜欢 Gas Town,如果你曾经需要思考,即使只是一瞬间,关于钱从哪里来。我不得不开通我的第二个 Claude Code 账户;他们不允许你从单个账户中无限制地抽取美元,所以你需要多个电子邮件和抽水机,这一切都很荒谬。我的计算表明,既然 Gas Town终于起飞了,我将需要在下周末之前开通我的第三个 Claude Code 账户。它是一个烧钱的机器。

Gas Town 使用 tmux 作为其主要 UI。我不得不学习 tmux。它比我想象的更容易,也更有用。三周后,我爱上了 tmux。你需要学习一些 tmux 的基础知识。或者,你可以等待有人为 Gas Town 编写一个更好的 UI。更好的 UI 将会出现。但是现在,tmux 就是你所拥有的。

图 4:tmux 状态行

无论你喜欢与否,Gas Town 都是建立在 Beads 之上的。它实际上是 Beads 的续集:我的《帝国反击战》是对 Beads 的《星球大战》。没有“替代后端”可用于 Gas Town。Beads 是 Gas Town 中发生的一切的通用 Git 支持数据平面(和控制平面)。你必须使用 Beads 来使用 Gas Town。

你可能不喜欢 Beads。如果你认为 Beads 过于自以为是,你将会经历一段旅程。Gas Town 就是我大步走进公共舆论教堂,抬起腿,放出一个将在全球闻名的屁。很多人可能会对我的品牌感到恶心。但我怀疑你们中的一些人会喜欢成为超级英雄,足以忽略 Gas Town 的怪癖,按照我的方式看待它。这就是工作应该做的方式。它已经是最好的方式了,它会变得更好。

Gas Town 的设计将在三个维度上扩展:(1)模型认知,(2)代理变得更加适合 Gas Town,(3)Gas Town 和 Beads 将成为前沿模型的训练语料库。即使没有所有这些,它也令人震惊的是,代理在 Beads 和 Gas Town 中使用得如此轻松。没有任何训练。

但是现在?它就像 19 世纪末的工厂,有可能会把你撕成两半的机器。

好吧!这就像六个很好的理由不使用 Gas Town。如果我还没有摆脱你,那么我想你就是那些疯狂的人之一。坚持住吧。这将是一段漫长而复杂的旅程。我已经尽力从上往下简化,但这有点像教科书。

我很抱歉。但在我的辩护中,Gas Town 非常有趣。这是我做过的最好的事情。

让我们深入了解。

Gas Town 101

图 5:Gas Town 的工人角色

Gas Town 工人是普通的编码代理,每个代理都被提示扮演七个明确定义的工人角色。还有其他一些关键概念我将简要介绍,包括角色和 Rig。

关于 Gas Town 的一件事需要提前知道:它会优雅地降级。每个工人都可以独立工作,或者成小组工作,您可以随时选择要运行 Gas Town 的哪些部分。即使在没有 tmux 的“无 tmux”模式下,它也能工作,使用裸 Claude Code 会话,没有实时消息。它有点慢,但仍然有效。

Gas Town 的七个角色共同合作以帮助保持 Gas Town 的运行。它有时也需要您的帮助;Gas Town 运行在等量的汽油和肘 grease 上。

以下是关键人物和概念:

🏙️ 城镇:这是你的总部。我的是 ~/gt,所有我的项目 Rig 都在下面:gastown、beads、wyvern、efrit 等。城镇(Go 二进制文件 gt)管理和编排所有工人跨所有你的 Rig。你将其放在一个单独的存储库中,主要是为了配置。

🏗️ Rig:您将 Gas Town 管理下的每个项目(Git 存储库)称为 Rig。一些角色(Witness、Polecats、Refinery、Crew)是每个 Rig 的,而其他角色(Mayor、Deacon、Dogs)是城镇级别的角色。gt rig add 和相关命令管理您的 Rig 在 Gas Town 的控制下。Rig 很容易添加和删除。

👤 监督者:那就是你,人类。第八个角色。我在图片中给了你一些眼影。作为监督者,你在系统中有一个身份,你有自己的收件箱,你可以发送和接收城镇邮件。你是老板,头头,大人物。

🎩 市长:这是您大部分时间与之交谈的主要代理。它是您的礼宾员和首席工作人员。但是如果市长忙了,所有其他工人都是 Claude Code,因此他们都非常聪明和有帮助。市长通常会启动大部分您的工作对话,并在它们完成时接收通知。

😺 Polecats:Gas Town 是一个工作蜂群引擎。Polecats 是每个 Rig 的短暂工人,它们会根据需要启动。Polecats 会以蜂群的形式工作,以产生合并请求(MR),然后将它们交给合并队列(MQ)。合并后,它们会被完全解除职责,尽管它们的名称会被重用。

🏭 精炼厂:一旦您开始部署工人,您就会遇到合并队列(MQ)问题。您的工人会因重新基准/合并而陷入猴子刀战,这可能会变得很糟糕。精炼厂的工作是智能地将所有更改合并到主分支中,一次一个。不能丢失任何工作,尽管它可以升级。

🦉 见证人:一旦您启动足够多的 polecat,您就会意识到您需要一个代理来监视它们并帮助它们摆脱困境。Gas Town 的推进(GUPP)是有效的,但仍然有点不稳定,现在还需要您偶尔去催促 polecat 提交 MR,然后催促精炼厂处理它们。见证人巡逻帮助使其变得几乎完美。

🐺 庄园主:庄园主是守护进程信标。它以《水世界》中丹尼斯·霍珀饰演的角色命名,该角色受《疯狂麦克斯》宇宙中的洛德·哈曼古斯角色启发,使其成为一个跨界作品。庄园主是一个巡逻代理:它以循环方式运行一个“巡逻”(一个定义明确的工作流程)。Gas Town 有一个守护进程,每隔几分钟就会向庄园主发送“做你的工作”的信号。庄园主智能地将此信号向下传递给其他城镇工人,确保 Gas Town 持续运行。

🐶 狗:受米克·赫伦的 MI5“狗”启发,这是庄园主的个人团队。与 polecat 不同,狗是城镇级别的工人。它们做的事情包括维护(清理过时的分支等)和偶尔为庄园主做杂务,例如运行插件。庄园主的巡逻变得如此繁重,以至于我添加了狗作为助手,以便它可以将复杂的工作和调查委托给它们,这样长时间运行的巡逻步骤就不会干扰城镇的核心事件系统,这是一个合作和基于邮件的系统。

🐕 启动狗:有一只特殊的狗叫启动狗,每 5 分钟由守护进程唤醒,只是为了检查庄园主。那是它唯一的工作。启动狗存在的原因是,守护进程不断用心跳和鼓励的话语打扰庄园主,所以现在狗可以听到它。启动狗决定庄园主是否需要心跳、轻推、重启或只是被留下,然后回到睡眠状态。

👷 团队:团队,尽管在列表中排最后,但是在市长之后,你会使用最多的代理。团队是每个 Rig 的编码代理,为监督者(你)工作,它们不受见证人的管理。你可以选择他们的名称,他们有长期的身份。你可以启动任意多的团队。tmux 绑定允许你在每个 Rig 中循环遍历团队,使用 C-b n/p。团队非常适合设计工作等任务,因为它们涉及大量的来回交流。它们很棒。你会喜欢你的团队。

📬 邮件和消息传递

Beads 是 Gas Town 中的工作单位。Bead 是一种特殊的问题跟踪问题,具有 ID、描述、状态、分配者等。Beads 以 JSON 存储(每行一个问题),并在 Git 中与你的项目存储库一起跟踪。Gas Town 的邮件和消息传递(事件)使用 Beads,其他类型的编排也使用 Beads。

Gas Town 有一个两级 Beads 结构:Rig Beads 和 Town Beads。

图 6:两层 Beads 流程

Gas Town 中有两种工作:Rig 级别和 Town 级别。

  • Rig 级别的工作是项目工作:使你的项目变得更好。功能、错误修复等。这项工作在 polecat 和团队之间分配,其他工人偶尔会介入。
  • Town 级别的工作是编排,包括诸如巡逻(长字符串需要遵循的步骤,编码为链接的 Beads)和一次性工作流程,如发布或生成跨 Rig 代码审查波。

这两种工作都使用 Beads,一般来说,它们是相当灵活的,不太在乎你在哪里提交问题或实例化工作。大多数工人都知道如何在 Gas Town 中导航,如果你给他们来自错误 Rig 的工作,他们也相当放松。

所有 Rig 级别的工人(精炼厂、见证人、polecat 和团队)都完全能够跨 Rig 工作。当他们需要时,他们可以使用 gt worktree 命令来获取任何 Rig 的克隆并进行修复。但通常他们会在单个项目中工作。

Beads 有跨 Rig 路由。Gas Town 配置 Beads 将请求如 bd createbd show 路由到正确的数据库,基于问题前缀,如“bd-”或“wy-”。所有 Beads 命令几乎可以在 Gas Town 的任何地方工作,并且可以找出正确的位置来放置它们,如果找不到,也很容易将 Beads 移动到其他地方。

疯狂麦克斯主题

Gas Town 只是 Gas Town。它最初有疯狂麦克斯主题,但没有什么特别之处。没有一个角色是该系列的正确名称,我也从其他来源引入了主题,包括《慢马》宇宙、《水世界》、《猫的摇篮曲》、《绝命毒师》(你很快就会看到),以及《风在柳树中》的纳米香蕉绘图。

如果有人给我发送停止和禁令信,Gas Town 将会通过变形逃避成为 Gastown,以加拿大不列颠哥伦比亚省温哥华的 Gastown 区命名,我们的 polecat 将会在不同的杆上。长话短说,“Gastown”也是对该项目的正确称呼。有了这个……

Gastown 通用推进原理

GUPP 是保持 Gas Town 运行的东西。使用 Claude Code 的最大问题是它会结束。上下文窗口会填满,它会耗尽动力,然后停止。GUPP 是我解决这个问题的方法。

GUPP 的内容很简单:如果你的钩子上有工作,你必须运行它。

所有 Gas Town 工人,在所有角色中,都具有在 Beads 中的持久身份,这意味着在 Git 中。工人的身份类型由一个角色 Bead 表示,它类似于描述该角色的域表。每个工人都有一个代理 Bead,它是代理的持久身份。

角色 Bead 和代理 Bead(以及钩子)都是“固定 Bead”的例子,这意味着它们像黄色便利贴一样漂浮在 Beads 数据平面中,永远不会像普通问题一样关闭(除非身份消失)。它们不会出现在 bd ready(准备工作)中,并以各种方式特殊处理。

在 Gas Town 中,代理不是一个会话。会话是短暂的;它们是 Kubernetes 中“宠物与牲畜”隐喻中的牲畜。Claude Code 会话是 Gas Town 抛向持久工作的牲畜。

在 Gas Town 中,代理就是 一个 Bead,一个具有单例全局地址的身份。它有一些插槽,包括指向其角色 Bead 的指针(其中包含该角色的启动信息等),其邮件收件箱(所有 Beads),其钩子(也是一个 Bead,用于 GUPP),以及一些管理状态(标签和注释)。代理所做的一切的历史都记录在 Git 和 Beads 中。

那么什么是钩子?每个 Gas Town 工人都有自己的钩子 🪝。它是一个特殊的固定 Bead,专门为该代理使用,它是您挂载分子的地方。

图 7:GUPP,Gastown 通用推进原理

东西是如何挂在那里?当然是使用 gt sling。您将工作分配给工人,它就会出现在他们的钩子上。您可以立即启动它,延迟它,甚至让他们重新启动,然后再开始。我们稍后会讨论所有这些。

Gas Town 中的一件事是,任何时候在任何会话中,您都可以说“让我们交接”,工人会优雅地清理并为您重新启动会话。感谢 GUPP,代理会在挂钩时自动继续工作。

不幸的是,Claude Code 太过礼貌,GUPP 并不总是在实践中起作用。我们告诉代理,“你必须运行你的钩子”,但有时它根本不会做任何事情。它只是坐在那里等待用户输入。

所以我们有一个变通方法。

GUPP 推动

Gas Town 工人被提示遵循“物理优先于礼貌”,并被告知在启动时查看其钩子。如果其钩子上有工作,它必须在不等待的情况下开始工作。

不幸的是,在实践中,Claude Code 经常等到您输入任何内容——任何内容——然后才检查其邮件和钩子,报告并开始工作。有时它会这样做,有时不会。这将随着时间的推移而改善,但现在,它有时需要一点推动。

由于 Gas Town 工人不总是遵循 GUPP,因此有一些系统可以在启动后大约 30 到 60 秒内推动代理。有时更快,有时更慢。但是,如果城镇正在运行且没有休眠,它总会在 5 分钟内收到推动。

代理在启动时会收到一个 gt nudge 的推动,Gas Town 的核心实时消息传递命令会向工人(或整个频道)发送一个 tmux 通知。它解决了一些 tmux send-keys 的去抖问题,并确保工人收到通知,就像用户输入一样。这会将工人踢入读取其邮件和钩子,然后采取行动。

有了 Gupp 推动“黑客”和 Deacon 向下的分层心跳,GUPP 通常会顺利运行并保持 Gas Town 运行,只要有工作可做。车队会启动、完成并着陆而无需干预。工人会跨会话继续分子。Gas Town 可以整夜工作,如果你给它足够的工作。

与死祖先交谈

GUPP 推动导致了一个有趣的功能,gt seance,它允许 Gas Town 工人直接与其前任在其角色中交谈。即当前的市长可以与上一个市长交谈,依此类推。他们通过 Claude Code 的 /resume 功能来实现这一点,该功能允许您重新启动已被杀死的旧会话。

这是有用的,因为经常会出现这样的情况:一个工人会说,“好吧,我已经将这大堆工作和建议交给了我的继任者!再见! /handoff”,然后消失,然后新的工人会启动并说,“什么?我什么也没看到。”您曾经不得不笨拙地弄清楚哪个会话是前一个会话,来自您最后 40 个会话中的任何一个,它们都以“让我们开始”开头,因为您一直在手动执行 GUPP 推动。这真的很笨拙,几乎不值得。

gt seance 的出现是这样的:不管你在推动中告诉代理什么都无所谓。因为他们的提示非常严格关于 GUPP 和 Gas Town 的运作理论,以及他们作为机器中的齿轮的重要性,等等,所以代理会完全忽略你输入的任何内容,除非你直接覆盖了他们的钩子指令。

图 8:使用 gt seance 与死祖先交谈

所以你只需要说“嗨”,或者“埃隆·马斯克说月亮是由绿色奶酪制成的”,或者“做你的工作”,代理就会运行钩子。

我一周前的想法是:既然我们需要推动所有会话,无论如何,我决定在推动中包含 Claude Code 的 session_id(以及 Gas Town 角色和 PID)。这为每个 /resume 会话提供了一个唯一且有用的标题。

使用 gt seance,工人会在子进程中启动 Claude Code,使用 /resume 来复活其前任,然后问它,“你把我的东西放在哪里?”

好时光,我告诉你。Gas Town 是好时光。

我想是时候谈谈 MEOW 堆栈了。我想你已经准备好了。

分子表达式(MEOW)

Gas Town 只是深冰山的一小部分。Gas Town 本身可能不会比 12 个月寿命更长,但 Gas Town 的骨骼——MEOW 堆栈——可能会在未来几年继续存在。它感觉更像是一种发现,而不是一种发明。

图 9:分子表达式(MEOW)

首先出现的是 Beads。十月份,我对 Claude 说,我很沮丧,我想把所有工作放在一个轻量级的问题跟踪器中。我想要 Git 来做这件事。Claude 想要 SQLite。我们妥协了,Beads 就这样诞生了,大约花了 15 分钟的疯狂设计时间。这些是基本的工作单位。

不久之后出现了 史诗:具有子任务的 Beads,它们本身也可以是史诗。这给了你很多灵活性来构建自上而下的计划。史诗的子任务默认是并行的,但你可以在它们之间放入显式依赖关系,以强制它们被序列化。史诗允许创建“倒置”的计划,其中最后要做的事情是根,第一要做的事情是史诗树的叶子。有点丑陋,但人工智能可以轻松地弄清楚。

接下来出现了 分子。我在 12 月 17 日有了这个想法,就在从澳大利亚回来几天后。我的前两个编排器的工作让我想要将代理工作分解为序列化的小任务,它们必须逐一检查。它们已经这样做了,但我想提前做到这一点,这样我就可以提前设置几个小时的工作,并让它们以正确的顺序原子地执行。

换句话说,分子是工作流程,使用 Beads 链接在一起。它们可以具有任意形状,与史诗不同,它们可以在运行时以任意方式连接在一起。

然后我想出了 原子分子,它们就像类或模板一样,由实际的 Beads 组成,所有指令和依赖关系都提前设置好,整个模板问题图(例如“设计”,“计划”,“实现”,“审查”,“测试”,在一个简单的例子中),你将其实例化为一个分子。实例化涉及复制原子分子中的所有 Beads 并对其执行变量替换,以创建一个真实的工作流程。

例如,我有一个 20 步的 Beads 发布流程。代理曾经难以完成它,因为它有长时间的等待状态,例如等待 GitHub Actions 完成,等待 CI 完成,以及等待各种工件部署。我不得不催促代理完成它,它总是会跳过步骤。

使用分子,想法是,创建 20 个 Beads 来表示发布步骤,将它们以正确的顺序链接起来,让代理一步一步地走过链。附带的好处是,它会自动产生活动提要,因为它们会认领和关闭问题。

如果工作流程被捕获为分子,那么它就可以在代理崩溃、压缩、重启和中断时幸存下来。只要在同一个沙盒中启动代理会话,让它找到分子中的位置,然后继续它离开的地方。

原子分子很棒。Claude 坚持使用《太空无垠》这个参考,我相信我们最终会被几乎所有主要电影公司起诉。但我们很快发现我们需要一个宏展开阶段来正确地组合分子,具有循环和门。所以我想出了一个 TOML 格式的工作流程源代码,称为 公式,它可以“烹饪”成原子分子,然后实例化为 Beads 数据库中的分子或 wisp。

公式提供了一种描述和组合几乎所有知识工作的方法。我正在为它们创建一个名为 Mol Mall 的市场。敬请期待。

图 10:公式和烹饪

最后,我需要一个词来表示“分子化工作”——代理可以一步一步地完成的工作形式。表示所有工作分子的术语是“汽油”,尽管我们在文档中并不经常使用它。这只是一个 Gas Town 习语,类似于 War Rig,它是给定 Rig 对 Convoy 的贡献。你偶尔会听到它,但它并不是日常命名法的重要组成部分。

非确定性等幂性

Gas Town 操作基于我称之为非确定性等幂性(NDI)的原则。它与 Temporal 的确定性、持久重放类似,但 Gas Town 通过完全不同的机制实现其持久性和保证执行。

图 11:非确定性等幂性

在 Gas Town 中,使用 MEOW 堆栈,所有工作都以分子形式表达。其中有一种代数,一种我在过去两周内发现的代数。分子是工作流程。它们可以具有复杂的形状、循环和门,并且实际上是图灵完备的。每个工作流程步骤都由超智能人工智能执行。

由于人工智能非常擅长遵循待办事项列表和验收标准,因此它们在遵循分子方面是可靠的。它们理解 GUPP 的概念,并且知道检查问题、更新活动提要并将工作放在永久账本上的重要性。这种推理足以让它们继续工作并保持在正轨上。它们不会感到“无聊”,并且由于它们不管理自己的待办事项列表(除了在单个小步骤内),因此它们出错的可能性较小。

这意味着分子工作流程是持久的。如果分子在代理的钩子上,则:

  1. 代理是持久的:一个由 Git 支持的 Bead。
  2. 钩子是持久的,也是一个由 Git 支持的 Bead。
  3. 分子是持久的——一串 Beads,也在 Git 中。

所以如果 Claude Code 崩溃或耗尽上下文并不重要。只要代理角色启动了新的会话,它就会立即开始处理分子中的步骤(通过 GUPP 或当它被巡逻代理之一推动时)。如果它发现自己在最后一步崩溃了,也没关系,它会弄清楚正确的修复,执行它,然后继续。

所以,即使路径是完全非确定性的,结果——您想要运行的工作流程——最终会完成,“保证”,只要您不断向其投入代理。代理甚至可能在途中犯错,但可以自我纠正,因为分子的验收标准是由设计分子的人明确定义的。

有很多边缘情况。这对 NDI 的描述是过于简化的。Gas Town 不是 Temporal 的替代品。请咨询您的医生,看看 Gas Town 是否适合您。但是,Gas Town 提供了足够好的工作流保证,足以成为开发人员工具!如果您是我!

短暂的编排珠子

有几个 Gas Town 编排的角落我们应该触及。通常,您不关心这些内容,您关心的是车队的启动和完成,以及监视您的活动提要和仪表板。但是,Gas Town 的分子“化学”有很多丰富的角落正在积极

评论

(0)
未配置登录方式
暂无评论