跳转至

retaintive Agentic Factory 演进路线图

这是 retaintive 自己的工厂演进计划。三个阶段,按需推进——每个阶段都能独立交付价值,不需要等下一阶段才能跑通。

最后更新:2026-03


三阶段总览

Phase 现在(已有)          Phase 中期(1-2 个月)      Phase 成熟期(触发条件满足后)
────────────────────        ──────────────────────        ──────────────────────────────
Claude Code native          + Beads 单独引入              + Gas Town 全套
git worktree 手动管理        共享任务数据库                 Mayor 自动调度
Meegle MCP 已有              依赖图 + 防碰撞               Meegle → Beads bridge
你是调度员                   你还是调度员                   AI 是调度员

核心原则:不要为了"工厂"而工厂。每一步都以"这个阶段是否明显减少你的手动操作"为标准。


Phase 现在:Claude Code native(已有,能用)

你已经有的

基础设施:
  CLAUDE.md(每个 repo)              ← agent 读取规则的入口
  .claude/rules/execution-policy.md  ← 预写决策,agent 遇到分叉不需要问你
  ~/.claude/skills/(23 个 skills)   ← 专业化操作能力
  Meegle MCP(7 个 tools)            ← 任务管理集成

工作流:
  Phase 0-2:你 + AI 交互式设计,产出 Task Spec
  Phase 3:手动启动 Claude Code → git worktree × N → 并行 PR

注意:这里的「Phase 0-2 / Phase 3」指任务工作流阶段(见 操作手册)。本文「Phase 现在 / 中期 / 成熟期」指 factory 工具演进阶段——是两套不同的命名体系,不要混淆。

当前瓶颈

问题 现象
每次 Phase 3 需要你手动启动 睡前还要记得"run agent"
多个 agent 靠你口头分配任务 容易踩到同一个文件
没有任务依赖图 "GAP 7 要等 GAP 3" 靠口头说
Session 结束记忆消失 下次 agent 要重建上下文

现在就能做的增量优化(0 额外工具)

  • 补全 .claude/working-memory/_template.md(防 context 丢失)
  • 补全 .claude/templates/plans/(impl.md 模板)
  • 确保每次 Phase 3 前 Task Spec 里有明确的"受影响文件边界"(防碰撞)

Phase 中期:引入 Beads(单独用,不装 Gas Town)

触发条件(满足任意一个就可以考虑)

  • 一周内出现过 2 次"两个 agent 改了同一文件"
  • 开始并行 > 3 个任务,手动分配开始出错
  • 需要表达任务依赖:"GAP 7 必须等 GAP 3 完成才能开始"

安装(5 分钟)

brew install beads
# 或
npm install -g @beads/bd

# 在 repo 根目录初始化
cd callytics-infrastructure
bd init
# 如果不想把 .beads/ 提交进 git:
bd init --stealth

怎么用

每次 Phase 2 拆完子任务后,用 Beads 管理执行层

# Phase 2 产出子任务后,写进 Beads
bd create "实现 contacts 表 phone 索引" --priority high
bd create "更新 AI 分析 prompt" --priority normal
bd dep add <task-2-id> --depends-on <task-1-id>  # task-2 依赖 task-1

# Agent 启动时认领任务(防止两个 agent 做同一件事)
bd update --claim <task-id>

# 查看当前状态
bd show

# 查看哪些任务现在可以开始(依赖已满足)
bd ready

和 Meegle 的分工

Meegle = 业务/产品层(Phase 0-2,你看的)
             "这个 sprint 做 Feature X"
Beads  = 执行层(Phase 3,agent 看的)
             "Feature X 的 task-1 Agent A 正在做,task-2 等待中"

这个阶段不需要装

  • ❌ Dolt(Beads 单独用有内置的轻量后端)
  • ❌ Go(brew/npm 安装的 Beads 是预编译二进制)
  • ❌ tmux(不装 Gas Town 就不需要)
  • ❌ Gas Town 本体

Phase 成熟期:Gas Town 全套(Mayor 自动调度)

⚠️ 前提条件:Phase 中期已稳定运行 4+ 周,Beads 已融入日常工作流。

触发条件(必须全部满足

  • 每周并行任务量稳定 > 10 个
  • 有一台可以 24/7 运行的机器(Mac 不睡眠,或专用服务器)
  • Phase 1 的 Task Spec 产出流程已标准化(每个 spec 都有清晰验收标准)
  • Meegle → Beads bridge 已写好并经过测试

如果上面有任何一条没满足,不要进入这个阶段。Mayor 的价值来自于"任务持续涌入",没有量就没有杠杆。

Gas Town 带来什么

能力 现在(手动) Gas Town 之后(自动)
任务分配 你手动启动每个 Claude Code session Mayor 看到 Beads 队列有任务就自动分配
Polecat 管理 不存在 Mayor 知道哪些 Polecat 空闲,自动调度
跨 session 记忆 每次重建上下文 Polecats 有持久 identity,记得上次做了什么
监控 看 terminal 输出 gt feed 实时流 + browser dashboard

安装步骤(届时参考)

# 1. 安装依赖
brew install go dolt
brew install beads  # 如果 Phase 中期已装则跳过

# 2. 安装 Gas Town
go install github.com/steveyegge/gastown/cmd/gt@latest

# 3. 初始化 workspace
mkdir ~/gt && cd ~/gt
gt init

# 4. 添加 repo(Rig)
gt rig add callytics-infrastructure ~/workspace/callytics-infrastructure
gt rig add callytics-dashboard ~/workspace/callytics-dashboard

# 5. 启动 Mayor
gt mayor attach
# 然后告诉 Mayor:"你的任务来自 Beads 队列,请查看并分配"

Meegle → Beads Bridge 设计草图

Gas Town 不原生读 Meegle,需要一个 bridge 脚本(届时实现,现在是设计草图):

逻辑流程:

1. 从 Meegle 拉取 Phase 2 已完成的子任务
   → 使用 Meegle MCP: get_node_detail(sprint_node_id)
   → 过滤条件:task.hasAcceptanceCriteria === true

2. 写入 Beads
   → bd create "<task_title>" --metadata "meegle_id=<id>"
   → 如有依赖:bd dep add <task_id> --depends-on <dep_id>

3. 完成同步(Beads 完成 → 关闭 Meegle 工单)
   → 查询 Beads status=done 的任务
   → 调用 Meegle MCP: finish_node(meegle_id)

关键约束:
  只同步 Phase 2 已完成(有验收标准)的子任务
  Phase 0-1 的模糊任务绝不进 Beads
  Mayor 不会自动执行没有验收标准的任务

阶段对比一览

Phase 现在 Phase 中期 Phase 成熟期
谁是调度员 Mayor(AI)
任务防碰撞 靠口头分配 Beads --claim 原子认领 Beads + Mayor 自动分配
任务依赖 口头说 bd dep add 依赖图 依赖图 + Mayor 自动排队
隔夜自动跑 你要手动启动 你要手动启动 Mayor 自动触发
工具复杂度 低(brew install 1 行) 高(Dolt + Go + tmux 全套)
月成本增加 $0 $0 ~$5/月(VPS)+ Claude API token × N
需要的前提 已有 任务量 > 10/周 + 24/7 机器

不演进也是合理的选择

Gas Town 成熟期不是"终点",是"可选项"。如果:

  • 你的任务量一直维持在 3-5 个/周 → Phase 现在已经够用
  • Phase 中期(Beads)已经解决了碰撞和依赖问题 → 停在这里完全合理
  • Gas Town 的运维成本(版本耦合、tmux 不稳定)超过了收益 → 不引入

正确的问题不是"我们应该用 Gas Town 吗",而是"当前阶段的瓶颈是什么,最小成本的解法是什么"。


参考资料