换肩 Allomos

博客 · Allomos 换肩 · 实验记录

二十三分钟,做出一个投桃

· @wang3an · X 上的原帖 ↗

我写下一段话描述想要的应用,在换肩(Allomos)里点“开始”,再在 Claude 里按一次回车。Claude 自己拆成两个版本、九个任务,一个接一个做完。午夜过后,我用手机把一张截图发到了电脑上。

二十三分钟,做出一个投桃

根据 @wang3an 2026 年 10 月 16 日到 18 日的串贴与 tosstoss 项目的任务包整理 · 时间均为日本时间

起点:一个小目的

10/16 08:32 串贴第 1 条

我要利用 Allomos 做实验,达到一个小目的:Claude 和 Allomos 可以配合起来,自动开发出一个有实用价值的 WebApp。

换肩(Allomos)原本是一个任务包工具。项目的任务、进度和交接记录放在仓库的 .allomos/taskbag/ 里,AI 智能体用 alm 命令领取任务、标进度、写交接,人在桌面应用里看着。下图是换肩自己的开发项目:Tracking 领域 42 个任务完成了 34 个,每一行都标着“Not human-checked”,等人来亲手验过。

换肩管理自己的开发:任务有领域、迭代、负责的会话,也区分“本地验证过”和“人检查过”。
换肩管理自己的开发:任务有领域、迭代、负责的会话,也区分“本地验证过”和“人检查过”。

这次要试的是另一件事:只给一段描述,看智能体能不能借着这套任务管理,从空文件夹把一个能用的应用做出来,并且每一步都留下记录。

第一步:先让换肩学会“做一个新应用”

08:34 串贴第 2 条

第一步是完善 Allomos,让它支持自动开发软件的功能……我要直接告诉 Claude 我上面的目的,让它帮我想一想应该怎么做。

09:53 串贴第 3 条

保险起见不用默认的 Opus 5.5 Medium,改用 Extra 来考察。

给 Claude 的请求很直白:在换肩里加一个按钮,用户描述想要的应用,换肩把预定的提示词连同描述填进绑定的智能体。整个过程类似 /goal,区别在于从拆任务到最后完成,每一步都要用换肩的任务状态记录和流转。

考察阶段换成了更高的推理档位,Claude 先去读换肩已有的相关任务(A03-01、A03-03、A05-06)。
考察阶段换成了更高的推理档位,Claude 先去读换肩已有的相关任务(A03-01、A03-03、A05-06)。

11:33 串贴第 4 条

考察完成,开始实现 Allomos 新功能本身。完成之后就可以试验自动做 app 了。
考察的产出是四个任务(A03-25 及其三个子任务)和一张“你已定下的事项”清单。
考察的产出是四个任务(A03-25 及其三个子任务)和一张“你已定下的事项”清单。

这张清单基本定下了后面实验的规矩:

这些规则后来都写进了项目的 AGENTS.md,tosstoss 仓库里现在也有一份。

10/17 23:50 串贴第 5 条

实现这个新功能的过程中不断发现其他的改进点。现在终于可以开始测试这个功能了。

换肩改了一天半。首页多了“构建新应用…”,对话框里依次是:空文件夹、应用描述、用哪个智能体、智能体怎么工作。

投桃的全部需求就是这一段话:同一局域网里打开网页的实例自动相互发现,勾选对方、选择或拖放文件、点发送,对方自动接收;可以“下线”;手机浏览器也要能用。
投桃的全部需求就是这一段话:同一局域网里打开网页的实例自动相互发现,勾选对方、选择或拖放文件、点发送,对方自动接收;可以“下线”;手机浏览器也要能用。

按下开始

23:51 串贴第 6 条

默认是安静模式。
安静模式:不等人,常规的事自己决定,问题留到之后再问。下面的提示说得很清楚,换肩从不改智能体的权限,要无人看管地运行,得先打开智能体自己的自动模式。
安静模式:不等人,常规的事自己决定,问题留到之后再问。下面的提示说得很清楚,换肩从不改智能体的权限,要无人看管地运行,得先打开智能体自己的自动模式。

23:57 串贴第 7 条

自动交给 Opus 5.5 Medium 来做。
换肩在空文件夹里建好任务包,打开 Claude 应用,填好请求后等着。
换肩在空文件夹里建好任务包,打开 Claude 应用,填好请求后等着。
填好的提示词写明了收尾条件和汇报方式:每一步都跑 alm progress,好让人在换肩里看到进度。
填好的提示词写明了收尾条件和汇报方式:每一步都跑 alm progress,好让人在换肩里看到进度。

提示词里有两句话很关键。一句给出停下的条件:做到 alm list --json 显示目标的每个任务都已完成、已放弃或在等人;没有 /goal 时也一样,一个任务接一个任务做下去。另一句把进度接回换肩:开始时 alm progress --title "构建应用",之后每一步 --step … --done … --of …,结束时 --finished。

二十三分钟里发生了什么

下面的时间轴按 tosstoss 仓库的提交时间画,横轴是真实比例。23:51:32 换肩建好任务包,00:14:27 Claude 把 v0.2 标为通过、目标交回给人,中间是两个迭代、八个工作任务。

每个点是一次任务完成的提交。一个任务大约两分钟,验收任务稍长,因为要在浏览器里实际收发文件。
每个点是一次任务完成的提交。一个任务大约两分钟,验收任务稍长,因为要在浏览器里实际收发文件。

23:58 串贴第 8 条

Opus 提问一次。
第一个问题:文件夹还不是 Git 仓库,要不要 git init。右侧是 Claude 给自己列的七步计划。
第一个问题:文件夹还不是 Git 仓库,要不要 git init。右侧是 Claude 给自己列的七步计划。

按任务包的规矩,安静模式下常规选择应由智能体自己决定并记下来。在本地建一个 Git 仓库是很容易撤回的事,这一问本来可以省掉。

00:03 串贴第 9 条

Opus 开始努力工作。Allomos(换肩)这边稳稳接住了,不过看起来界面上还是有些小 bug。
Claude 用两个不同的地址(localhost 和 127.0.0.1)各开一个标签页,让它们成为两台“设备”,测试互相发现。
Claude 用两个不同的地址(localhost 和 127.0.0.1)各开一个标签页,让它们成为两台“设备”,测试互相发现。
进度框还停在“A03-01 页面界面(1/8)”,背后的列表里 A03-01 已经完成。
进度框还停在“A03-01 页面界面(1/8)”,背后的列表里 A03-01 已经完成。
转到后台后,右下角叠了两条进度提示,旧的那条没有被新的替换。
转到后台后,右下角叠了两条进度提示,旧的那条没有被新的替换。

换肩这一侧的要点是:任务包每次变化都会自动刷新,Claude 领取、完成任务时,列表里的状态、负责会话和“AI 已决定”标记都实时跟上。小问题集中在进度显示上:旧进度没被替换,还有一条“Codex 尚未为这个项目设置”的提醒,而这次根本没用 Codex。

00:05 – 00:06 串贴第 10、11 条

Opus 又提问两次。还有一次是 javascript 权限请求,手快点了允许,没截图。看来权限给得不够啊。
局域网地址算私有网络,第一次操作要先放行这个站点。
局域网地址算私有网络,第一次操作要先放行这个站点。
执行 JavaScript 还要逐次确认:这个站点不能整站授权。
执行 JavaScript 还要逐次确认:这个站点不能整站授权。

串贴里问“怎么 Opus 又问一次”,答案就在第二张图的小字里:对这个局域网 IP,内置浏览器关掉了整站授权,每次在页面里执行脚本都要单独批准。这类请求来自浏览器的安全规则,换肩的安静模式管不到。要彻底无人值守,验收步骤得改成用自动化测试或命令行来验,少依赖在真实局域网地址上跑页面脚本。

00:12 – 00:15 串贴第 12、13 条

开始弹下载对话框了。难道要做好了?……弹了 N 个。看来是在做测试。好像中毒了一样。
“桃子照片-很长的名字”:在测长文件名在手机窄屏上会不会撑破布局。
“桃子照片-很长的名字”:在测长文件名在手机窄屏上会不会撑破布局。
测试.bin、a.txt、big.bin:中文文件名、小文件、大文件,自动接收真的在触发下载。
测试.bin、a.txt、big.bin:中文文件名、小文件、大文件,自动接收真的在触发下载。
同一时刻的任务包:v0.1 四个任务全部完成,v0.2 只剩验收任务 A01-03 在进行中,右下角“构建应用:A01-03 v0.2 验收检查(7/8)”。
同一时刻的任务包:v0.1 四个任务全部完成,v0.2 只剩验收任务 A01-03 在进行中,右下角“构建应用:A01-03 v0.2 验收检查(7/8)”。

弹窗本身就是证据。需求里写着自动接收是默认且不可关闭的,Claude 在浏览器里验收时,每收到一个文件,系统就弹一次保存框。

00:18 串贴第 14 条

Opus 告诉我说完成了。所有的任务都记录在 Allomos 里面了。快得有点出乎意料。我得测试一下。
收尾时的任务包:两个迭代全部完成。目标任务 A01-01 处于“等待中”,等的是人:在真实手机上照 A01-03 的步骤试一次。
收尾时的任务包:两个迭代全部完成。目标任务 A01-01 处于“等待中”,等的是人:在真实手机上照 A01-03 的步骤试一次。
Claude 的收尾说明分三块:怎么试、测过什么、已知限制。最后一句:试过之后告诉它结果,有问题就作为 v0.3 的任务加进来。
Claude 的收尾说明分三块:怎么试、测过什么、已知限制。最后一句:试过之后告诉它结果,有问题就作为 v0.3 的任务加进来。

投桃本身

00:21 串贴第 15 条

PC 版
电脑上打开终端打印的局域网地址。设备名是自动起的“形容词 + 水果”:温柔的柠檬、机灵的猕猴桃、机灵的香蕉。
电脑上打开终端打印的局域网地址。设备名是自动起的“形容词 + 水果”:温柔的柠檬、机灵的猕猴桃、机灵的香蕉。

00:33 – 00:37 串贴第 16–18 条

手机版。粉嘟嘟的有点微妙。。。 / 发送试试 / 果然收到了!
手机上:“认真的橘子”,看得到另外 4 台设备。
手机上:“认真的橘子”,看得到另外 4 台设备。
勾选电脑“温柔的柠檬”,发两张截图,显示“已送达”。
勾选电脑“温柔的柠檬”,发两张截图,显示“已送达”。
电脑这边什么都没点,浏览器下载面板里已经有了这两个文件。同名文件被系统自动加上了 ~2,没有互相覆盖。
电脑这边什么都没点,浏览器下载面板里已经有了这两个文件。同名文件被系统自动加上了 ~2,没有互相覆盖。

这是整个实验里第一次真机测试:一部真手机,同一个 Wi-Fi。Claude 之前只能用 375px 宽的模拟窗口测手机,这一步正是它在目标任务上写明要人来做的事。

任务包里留下了什么

实验真正想验证的,是做完之后留下的东西。打开 tosstoss 仓库,alm 能完整说出这个应用是怎么做出来的。

三方共用一份记录:.allomos/taskbag/,随代码一起提交进 Git

完成了,但不等于验过了

八个工作任务都是“已完成 · locally verified”,同时都挂着“待人工检查”。安静模式允许智能体不等人就把任务标为完成,代价是必须说明理由(“Goal run, quiet mode”),并给每个任务写好让人照着检查的步骤。alm human 现在列出 8 个待检查、1 个待回答。

12 条“AI 已决定”

Claude 自己拍板的事都留了记录,等人回头审。几条有代表性的:

交接与项目笔记

交接文件写明了运行模式(安静,由人在换肩里选的)、当前状态、代码结构,以及“如果人报告问题”该怎么办:每个问题在 v0.3 里加一个任务。项目笔记记下了下一个会话必须知道的坑,比如在同一个浏览器里测试时,要用 localhost、127.0.0.1 和局域网 IP 三个不同来源,让每个标签页拿到自己的名字。

数字:24 次提交,打了 v0.1、v0.2 两个标签;代码、样式和测试一共约 1500 行;npm test 8 项通过,其中一项把 200MB 文件同时发给两个接收端并核对 SHA-256;任务包里记了 97 条事件。

这次学到的

可行

一段话的需求,加上一套写清楚的任务规则,Claude 在中档推理下 23 分钟交付了两个版本。最有用的不是速度,而是每一步都落在任务包里:拆成什么任务、谁在做、什么时候完成、凭什么算完成、替人做了哪些决定。人第二天打开换肩,就能接着审。

要修的

人还要做的

真机试用已经做了,发送和接收都通过。剩下的是把它记回任务包:逐个 alm checked,审完 12 条决定后 alm reviewed,最后决定是接受目标,还是把“粉嘟嘟的有点微妙”这类意见作为 v0.3 的任务交回给 Claude。

一些感想

真是快

串贴里我写了“快得有点出乎意料”,现在回头看还是这么觉得。23:51 换肩建好任务包,00:14 Claude 已经交出了 v0.2:服务器、页面、自动接收、传输进度、手机适配、设备改名,还附带测试和说明文档。我在旁边看着任务一个接一个变成“已完成”,偶尔点一下允许,二十几分钟,应用就做好了。

有换肩接着,我很放心

让我安心的是换肩的任务管理。每个任务什么时候被谁领取、凭什么算完成、Claude 替我做了哪些决定、哪里还没验过,全都记在任务包里,和代码一起提交进了 Git。这次很顺利,没有换智能体,也没有换人,一口气就做完了。但我知道,就算中途额度用完、会话断了,或者要换成 Codex、换成别人来做,都能从 alm next 和交接文件接着往下走。有它在后面接着,我就能放手让智能体自己跑。

素材:@wang3an 的串贴(共 18 条,2026-10-16 08:32 至 10-18 00:37)以及 tosstoss 仓库的提交记录、alm list、alm human 与交接文件。截图均来自原帖。


另一篇: