跳转到内容

一个编队怎么算活着

读完这课你可以下的命令:“这个编队的任务书编译过了没有?这一轮收轮五样交了没有?活性时钟指的地址还是今天的吗?”

  • 任务书编译
  • 收轮五输出
  • 外察活性

怎么读:全文两千三百字,二十分钟。今天集团最热的一件事是编队体系 v2.1 推到全部编队:阿匠把同一套七件 Skill 装到五台机,策策给十二个编队负责人各发一条指针,克老师定了四个编队共用一个活性时钟。课里三条外部材料都对着这三件事选:微软 Magentic-One 的进度账本、Kubernetes 用了十年的三种探针、GitHub 的 spec-kit。

六个格里三个停着,谁知道?

今天凌晨零点五十二分,我用活性巡检对 p1hub 编队试跑了一轮,不投话只看。六个成员格,三个屏上写着 DONE 打勾、已经停了二十分钟以上。协调席不知道,因为它在忙自己的卡;克老师不知道,因为没人报。同一个早上,星星的根席从 LX01 搬到了 LN01,克老师把四个编队的路由表重写了一遍:昨天还对的地址,今天指向一个空格。

这两件事合起来就是这课的问题:一个编队“活着”,到底谁在看、看什么、地址变了怎么办。拉一个群、@一圈人、等回复,答不了这三问。

停着不等于坏了,但没人看见的停着,等于编队少了三格。

第 14 课末尾问的,答案在这。

  1. 一份摘要和一份带版本的原文,出事那天差在哪?摘要没有对证,谁改的、改了什么都查不到;原文加版本能指回那一天的那一版。
  2. 为什么“最新的那条”不能自动赢?主语、条件、时间、观点可能都不同,新日期只说明它晚,不说明它对;并列之后由消费者按条件选。
  3. Jev 的打分和人的精读,各管旅程里的哪一段?Jev 管入口的“值不值得精读”排队,人管精读之后的判断和反馈;两段中间是不可擦的原文和版本。
拉个群,把人拉齐,发一段话说清要做什么。先编任务书:消费者结果、欠交、依赖图、每张卡的写域、什么算完;编译器过了才开工,编译过不等于任务书写完。你改下的令:“这个编队的任务书编译过了没有?消费者结果那一栏填的是谁?”
各干各的,直到有人问“到哪了”。按轮走:每轮七段一样不少,轮末收轮,交五样东西;一个 DONE 标记单独不算结果,要有封存的产物、回执和消费。你改下的令:“这轮收轮了吗?五样在哪个目录?DONE 后面有没有产物清单?”
谁停了靠人偶然发现,或者靠他自己吭一声。外面有个时钟定期看每一格:停了二十分钟提醒协调席,卡了四十五分钟升级 owner,连续三轮没动才往上,全队停了才落盘叫人。你改下的令:“活性时钟这轮报了几格?投给协调席的那条,送达状态是醒了还是只投了?”

三个新做法有一个共同点:编队的事实写在编队自己的文件里,不写在聊天里。任务书是起点,收轮五输出是每一轮的终点,活性时钟是外面的人看这两样之间有没有在动。这是第 10 课“少造官僚、多造闭环”落到工程上的样子:闭环有起点、有终点、有人看。

起点是任务书,终点是收轮,中间有人从外面看。

  • 微软 Magentic-One:进度账本每轮四问发现:AutoGen 仓库六万一千星,Magentic-One 是它 2024 年底发的多 agent 样板。编排者记两本账:任务账本写目标、已知事实、猜测、计划;进度账本每一轮问四句:做完了吗、在原地打转吗、有进展吗、下一个该谁说什么。连续三轮没进展,就回到外圈重写计划,不是继续催。对指挥者:催不是办法,重规划才是;“没进展”要有计数。落哪一格:载体与调度。我们这:收轮五输出就是进度账本的样子;活性时钟里“连续三轮且二十五分钟”才升级,也是同一个计数思路。AutoGen 本身今年四月起没再动,只借它的账本,不借它的运行时。
  • Kubernetes 三种探针:老手艺,十年不变发现:容器平台给每个服务配三种探针:活性探针,挂了就重启;就绪探针,没准备好就先别给它流量;启动探针,刚起来那段给宽限。默认每十秒看一次,连续三次失败才算数,一次失败不算。对指挥者:“活着”和“能接活”是两件事;判定要连着几次,不能一次就动手。落哪一格:观测与验证。我们这:停了二十分钟是就绪问题,卡了四十五分钟才是活性问题;按批召唤的席位不设就绪门。区别是它重启容器,我们不重启席位,因为重启会丢会话,所以我们升级到人。
  • GitHub spec-kit:先编规格,再编任务发现:十三万八千星,9 月 17 日发 1.0.8。四步:写规格、出计划、拆任务、再实现,规格是真源,代码从规格长出来。对指挥者:说清“要什么结果”比说清“怎么做”重要,而且要写成能被工具检查的格式。落哪一格:能力层。我们这:任务书编译器就是同一个形状,五个字段少一个编译不过。阿匠这轮说得很准:十九组模板编译通过,不代表十九份业务任务书已经写完,那要各队 owner 自己填。

“活着”是他说的,还是你看的?

类比。值班室有两种查法:打卡和查岗。打卡是每个人定时按一下,没按就算不在,可是睡着了也能顺手按;查岗是队长隔一阵走一圈,看人在不在、在干什么。打卡靠自报,查岗靠外察。我们的活性时钟是查岗:它不问席位“你还好吗”,它读屏幕、读原生日志、读交付记录,自己判。

采样读屏、读日志判断五组各一票L1协调席L2ownerL3落盘·叫人停 ≥20 分钟 · 卡 ≥45 分钟连续 3 轮且 ≥25 分钟全队都停才 L3
活性时钟一轮五站。前两站是时钟自己做的,后三站是往人那里升级;每一级只投一次,投了不等于读了。

时钟自己做往人升级最后一步

例子。今天凌晨那一轮:六格采样,三格判成“停了”,年龄都过二十分钟。时钟给协调席拟了一条提醒,末尾写明“收到请写一行到某个 ack 文件”。这轮是试跑,没真投;真投之后,时钟会记下“投了”,下一轮先看 ack 文件在不在:在,记已答;不在,也只记“送达未知”,不重投。这一条是驭驭定的:叫醒工具没有回执号,所以送达是否算数,由业务侧的产物说了算。

白话。活着有两层:在动,而且动的是派给它的那件。停着不是坏,坏是“停着而且没人知道”。时钟负责让人知道,不负责替人干;它每一级只投一次,并且永远不把“已投”写成“已读”。

术语。liveness、readiness、probe、escalation、ack。第 6 课的“探针”在这里长成了一个定时器;第 2 课“送达不等于已读”在这里变成了一张送达状态表。

编译过了才开工只在自己写域里DONE 要有封存产物任务书消费者结果 · 欠交 · 依赖图 · 写域 · 什么算完领卡 · 施工七段一样不少,活性时钟从外面看收轮五输出:判了什么 · 退件 · 用的哪版 · 派了什么 · 各席实况下一轮 / 欠交没收上来的进欠交,不进聊天
一个编队一轮的四层。绿色两层是编队自己写下的事实;中间那层每轮变;最后一层往外交。

活着是看出来的,不是报出来的;已投永远不写成已读。

工作样例:一条坏命令改成好命令

Section titled “工作样例:一条坏命令改成好命令”
坏的“看看 p1hub 有没有人卡住。”
改第一步:先要读数“跑一轮活性巡检,只看不投;报表里哪几格是停了、哪几格是卡了,各多少分钟。”
改第二步:问送达“给协调席的 L1 投了没有?送达状态是醒了、排队、只投了没见处理,还是没送到?ack 文件在不在?”
改第三步:对收轮“那三个 DONE 的格,收轮五输出里有没有它们的封存产物?没有的话进欠交,不算完。”

三步之后,“有没有人卡住”从一句问候变成三个能查的对象:巡检报表、送达状态、收轮五输出。今天克老师的四编队路由表,就是让第一步在四个编队上都能跑起来。

任务书编译开工前把编队要做的事写成五个字段:消费者结果、欠交、依赖图、写域、什么算完;用编译器检查,过了才开工。拉个群发一段话。阿匠今天给知识中心编了七张卡的真任务书;其余十九组是模板,等各队 owner 填。第 15 课 · 命令:“任务书编译过了没有?消费者结果填的是谁?” · 不是:编译过就等于任务书写完
收轮五输出每轮结束交五样:判了什么、有没有退件、用的哪一版、派了什么、派完各席实况;一个 DONE 标记单独不算结果。“这轮差不多了”。阿匠线 B 首轮已经人工交了五输出;机械闭合还没通过,如实写着。第 15 课 · 命令:“这轮五样在哪个目录?” · 不是:DONE 打勾就是交付
外察活性外面的时钟定期读屏和日志判每一格活没活;停了提醒协调席、卡了升级 owner、全停才叫人;每级只投一次,已投不写成已读。等他自己吭一声,或者靠人偶然发现。p1hub 已装 v0.4.2,v0.5 候选等克老师换;四编队统一时钟是克老师今天定的线 A。第 15 课 · 命令:“活性时钟这轮报了几格?L1 送达状态是什么?” · 不是:报警发出去了就完事

本课其余的词(就绪探针、进度账本、规格驱动、升级链)已进术语手册,不要求本课记住。

  1. 为什么 Kubernetes 挂了就重启,我们挂了却要叫人?
  2. 一个格屏上写着 DONE 打勾,什么情况下它仍然算“没完”?
  3. 叫醒工具没有回执号,那“投了没被读”和“投了已经读了”靠什么分?
忍不住要看答案?下一课开头会揭,现在点开也行。

重启容器不丢东西,重启席位丢会话和上下文,所以只能升级到能判断的人。DONE 后面没有封存的产物清单、没有回执、没有消费者签收,就只是一个标记,进欠交。靠业务侧的产物:提醒里写明“收到请写一行到某个 ack 文件”,下一轮先看文件在不在;不在也只记送达未知,不重投。

从这课里挑的五个,卡式和代码英语一样,点 🔊 听念法。这五个词已经记进第 2 批。

orchestrator 奥克斯崔特

编排者:不亲自演奏,负责谁在什么时候进来、下一步该谁。

来历
orchestra 是管弦乐团,orchestrate 是编排一整支乐队怎么合奏。软件借它指“调度一群部件的那一个”。
词族
orchestrate 编排、orchestration 编排层;近邻 coordinator 协调者、scheduler 调度器、supervisor 监管者。
在我们这
编队的协调席就是 orchestrator;Magentic-One 里叫 Orchestrator 的那个 agent,记两本账、每轮四问。
别误读
不是“领导”。它不做决定的内容,只管顺序和谁来;结果 owner 另有其人。
你能这么说
“这个编队的 orchestrator 是哪一格?它这轮问了四句没有?”
ledger 莱杰

账本:只往后记、不擦前面的记录簿。

来历
本义是放在柜台上摊开的大账簿,会计一笔一笔往下记。区块链把它叫 distributed ledger,意思一样:记了不改。
词族
task ledger 任务账本、progress ledger 进度账本;近邻 log 日志、journal 流水、append-only 只追加。
在我们这
收轮五输出是编队每轮的进度账本;records 目录接近账本,缺统一格式(第 4 课)。
别误读
不是“表格”。表格可以改格子,账本只能追加一条新的。
你能这么说
“这条改动记进 ledger 了吗,还是把旧的改掉了?”
liveness / readiness 莱夫尼斯 / 瑞迪尼斯

活性 / 就绪:活着是一回事,能接活是另一回事。

来历
live 活的,ready 准备好的,加 -ness 变成名词。Kubernetes 给每个服务配 liveness probe 和 readiness probe 两根探针,十年没变。
词族
liveness probe 活性探针、readiness probe 就绪探针、startup probe 启动探针;反义 dead 死了、stalled 卡住。
在我们这
停了二十分钟是 readiness 问题,卡了四十五分钟才是 liveness 问题;formation-liveness 这个 Skill 名字里就是它。
别误读
不是“在线”。进程在、屏幕亮,不等于活;活要看在不在动、动的是不是派的那件。
你能这么说
“这格是 liveness 问题还是 readiness 问题?多少分钟了?”
idempotent 艾登坡藤特

幂等:同一件事做一次和做十次,结果一样。

来历
数学词,idem 是拉丁语“同一个”,potent 是“力”;一个操作自己乘自己还是自己。工程借它指“重复执行不会多出副作用”。
词族
idempotency 幂等性、idempotency key 幂等键;近邻 retry 重试、dedupe 去重、at-least-once 至少一次。
在我们这
活性时钟每级只投一次,重跑不重投,靠 ack 文件判有没有送到;驭驭说的“送达幂等走业务侧”就是这个。
别误读
不是“不能重试”。恰恰相反,幂等是为了敢重试:重试了也不会发两遍。
你能这么说
“这条提醒是 idempotent 的吗?我重跑一遍会不会再发一次?”
handoff 汉德奥夫

交接:一件事从一只手交到另一只手,交的那一刻责任也换了。

来历
hand off 是接力赛把棒交出去。手机从一个基站切到另一个基站也叫 handoff,通话不断。
词族
hand over 移交、handover 交接期;近邻 delegate 委派、escalate 升级、route 路由。
在我们这
活性时钟从 L1 升到 L2 是一次 handoff;星星根席从 LX01 搬到 LN01,克老师改路由表,也是 handoff,同一条 native 会话没断。
别误读
不是“通知一下”。通知了对方没接,棒还在你手里。
你能这么说
“这件事 handoff 给谁了?对方接了没有,证据是什么?”

第 1 批是昨天发的,今天是第一次回头(1、3、7、21 天)。先看中文想英文,再点开对答案。答完在 Telegram 告诉我对了几个、哪几个卡住,我记进度。

一个席位跑在哪个程序、哪台机、哪个壳里,叫什么?

carrier(凯瑞尔)。换壳 = 换 carrier 不换人。

从开始到结束一整段状态连着的时间,叫什么?

session(赛申)。herdr --session 后面跟的就是它。

屏幕里切出来的一格,w2:p1 里那个 p,是什么?

pane(佩恩)。不是 panel。

断了以后接着上次的上下文继续,那个动作叫什么?

resume(瑞休姆)。漏了它,上下文归零。

主动去戳一下看它活没活,叫什么?

probe(普罗布)。今天课里的活性探针就是它。

超过这条线才算数,那条线叫什么?

threshold(斯瑞什霍德)。二十分钟、四十五分钟都是它。

等太久就放弃,那个上限叫什么?

timeout(泰姆奥特)。herdr 叫醒等二十秒没动静就是它。

程序退出时留下的那个数,零是好,叫什么?

exit code(艾格西特 扣德)。活性巡检 105 是没钥匙,104 是被占。

接口上一个具体的地址,叫什么?

endpoint(恩德坡因特)。Jev 那条 /v1/systemone 就是一个。

请求里真正装的货,叫什么?

payload(佩洛德)。信封是 request,货是 payload。

集团部分:阿匠 2026-09-21《补 74 交付|五机同版安装+全编队配置模板+知识中心任务书》与线 B 首轮回执、策策 2026-09-21《编队体系 v2.1|Root 路由记录》、克老师 2026-09-21《线 A 统一活性时钟:四编队路由与既有时钟》、驭驭 2026-09-21 星星根席迁 LN01 记录、阿麦 formation-liveness v0.5 候选与 p1hub 试跑(均为内部件,只引用不照抄)。v2.1 包本身是外部回传的候选,按规矩不引原文。外部项目数据经 GitHub API 于 2026-09-21 核证。

  1. microsoft/autogen,MIT,61,084 星,最近发布 python-v0.7.5(2025-09-30),2026 年 4 月后无提交。github.com · Magentic-One 技术报告(2024-11)。microsoft.com
  2. Kubernetes 官方文档:Liveness, Readiness and Startup Probes(默认 periodSeconds 10、failureThreshold 3)。kubernetes.io
  3. github/spec-kit,MIT,138,111 星,v1.0.8(2026-09-17)。github.com