GGitHub采集材料
MoAI-ADK:分会话运行 Claude Code 任务
发布时间未知 · 北京时间
AI 编程
有实践材料可继续查看
代码仓库安装说明使用说明示例代码
原文与观测指标
1 个来源GGitHub
查看原文 MoAI-ADK:分会话运行 Claude Code 任务
modu-ai星标1,238采集时的累计值
每小时增长待观察星标 / 小时 · 观测区间平均值
最近提交10-27 10:02提交时间不是项目发布时间
发布时间:未知 · 首次发现 10-27 15:47 · 北京时间
指标采集:10-27 15:47 · 指标已取得
项目文档有线索安装说明有线索使用说明有线索示例有线索
仅反映文档与示例线索,未实际运行项目。
摘要
MoAI-ADK 的 Factory Mode 将工作拆分给一个负责人会话和多个独立 lane,每个 lane 按 plan、run、sync 顺序处理任务卡,并在完成后清空上下文。材料提供了启动负责人及不同后端 lane 的命令。
摘要由 AI 生成,请以原文为准。观测历史 · 最近 1 条 展开 / 收起
缺失不计为零;增长只比较同一指标来源的有效记录,按实际间隔折算每小时。上游缓存可能延迟数值更新。
| 采集时间 · 北京时间 | 指标 | 数值 | 来源 | 状态 |
|---|---|---|---|---|
| 10-27 15:47:21 | Star | 1,238 | GitHub 公开页面 | 已取得 |
采集原文 展开 / 收起
moai-adk
Agentic development harness for Claude Code — SPEC-driven plan/run/sync, TRUST 5 quality gates, model+effort routing, and Claude×GLM mult…
项目说明 展开 / 收起
MoAI-ADK A verification-driven agent orchestration harness — the structure that makes Claude Code's code trustworthy English · 한국어 · 日本語 · 中文 Official Documentation · Book: Practical Agentic Coding with Claude Code · Discord "The model is a stochastic worker moving token by token. It cannot remember, turn to turn, what it used this turn and how much, whether the result is good, or how far the last session got. A harness enforces all three from the outside." What's New in v3.2 — Factory Mode A session spends one context window. A long SPEC fills it, and every later task carries everything before it. The plan is long finished yet stays in the window through the whole review, and the review stays through the whole write-up. The usual escape, /clear, throws away the context along with the baggage. Factory Mode splits the work across one leader session and several numbered lane sessions. The leader watches the queue and hands cards to free lanes. A card does not change sessions at each stage; it goes whole into one lane, and that lane carries it through plan → run → sync in order, inside its own session. Each stage is spawned as an Agent() subagent, and the lane itself only orchestrates. Nothing is uncapped: each session's limit is still there. What changes is that one card's history accumulates only in the lane that owns it. The same budget therefore goes much further, and a lane empties its context after each card before taking the next. Getting started moai cc -f # leader — opens the factory moai cc -l # a lane, each in its own terminal — joins as the next free number moai cc -l # lane-1, lane-2 … in order moai glm -l # a lane on the GLM backend moai codex -l # a Codex lane -f (long form --factory) opens the leader, and -l (long form --lane) joins the running factory as a lane. Neither takes an argument. The operator never picks a lane number; it is assigned automatically. Lanes are launched by hand, one fresh terminal each, because a session cannot launch another session. moai codex has no leader entry and can only join as a lane. A launch carries one entry token, so -f together with -l is an error. A value after either token (moai cc -f <value>, moai cc -l lane-2) is refused with a one-line error that names the correct form. The -k entry of the former multi-session board mode is removed. GPT models run through moai codex. Which backend to run The backend is chosen per lane: moai cc -l is a Claude lane, moai glm -l a GLM lane, moai codex -l a Codex lane. The leader's seat is not for passing verdicts but for watching the queue and carrying cards, so GLM (moai glm -f), which is cheap to leave waiting, suits it. When one account starts hitting 429s, spreading lanes across accounts works. This mix is only one example — putting every session on a single backend is fine too. Many cards at once across N lanes Grow the run one lane at a time by running -l once more. The number is assigned automatically, so passing --name/-n alongside is an error. A number is skipped only while a live session holds it — a dead lane's claim no longer blocks its number, but automatic assignment always takes the highest live number + 1, so it never backfills a gap in the middle. Lane ownership is recorded in ~/.moai/db/<project-key>/factory/factory.db. When the base directory is a temporary directory (and no absolute MOAI_HOME override is set), it is recorded under the project-local <base>/.moai/db/<project-key>/factory/ instead — the same exception the backlog queue makes. The old .moai/state/factory/workers.json is imported once and kept only as rollback evidence. Find the database paths with moai paths instead of guessing them. Opening a guessed path such as ~/.moai/db/todo.db with sqlite3 creates an empty file, so never do it. If you must read directly, read only a snapshot copy of .db, .db-wal, and .db-shm together; otherwise prefer the CLI, such as moai todo list --json and moai factory status. A lane runs at most 10 Agent() subagents at once, and write-capable spawns are isolated in their own worktrees. Don't light up the lanes all at once: bring up the first lane, confirm it is actually producing output, then start the rest. A card is never split across lanes. A factory run records the process identity of the session that owns it. A run whose leader has died is retired automatically when the next lane joins, so the join does not stall on AMBIGUOUS_FACTORY. The reverse is covered too: when a lane joins and the run record is missing or retired while a live leader session exists, the join verifies that leader (pid plus process start fingerprint; the target is picked with the long form --leader <name>, default leader), restores the run record, and joins as usual — with more than one verified leader it fails closed, naming every candidate. --leader is a selector that composes with -l/--lane only; it is not a short form of any entry token. moai factory runs lists every run with its owner's liveness, and moai factory runs --retire <run-id> retires one named run by hand. It refuses if the owner is not actually dead, and it also refuses when the run still holds cards that are not done, failed, or abandoned: it lists those cards together with the exits you can use instead (join with moai cc -l --factory-run <run-id>, adopt with moai cc -f --factory-run <run-id>, or end each card with moai factory decide <card> --choice abandon --run <run-id>). Joining and adopting work only while the run is active, and abandoning a card cannot be undone. There is no force flag. Pointing it at a run that is already retired reports the result without a second write and lists the cards still stranded there. For an active run that still holds such cards, moai factory relaunch --from-run also leaves the run active and reports left active (N in-progress cards); an already-retired run is left untouched (not active (retired), left untouched). After a run dies or is replaced, a lane session keeps pointing at the old run baked into its environme