LOCAL_TRAIN · LODY · 2026-11-02

让任务跨机器流动,
让状态留在执行端。

一个持久协调器,两个资源受控的节点。复用 Lody 的共享角色、会话和机器能力,把准备、求解、审查与发布拆成可追溯的任务。

原 E2 生产保持暂停Python 标准库SQLite 本地持久化CLI 无界面执行 · MCP 交互控制
2真实机器 · Windows + macOS
1 + 1初始并发 · 每节点一个任务
6 / 3 GiBWindows / Mac 保留内存余量
约 26 MiB协调器工作集 · 实测快照

01当前部署拓扑

图中节点职责与当前机器能力对应
CONTROL CLIENTLody 对话 / 浏览器控制面板提交任务 · 查看状态与结果 · 暂停 / 收尾 / 取消
控制窗口关闭,任务状态仍保存在执行端。
HTTP Task API + 可回放 SSE 事件
PERSISTENT COORDINATOR · WINDOWS

项目级协调器

127.0.0.1:8876
任务与依赖幂等键 / 阶段 DAG
资源准入内存余量 / 能力 / 并发
租约与状态启动确认 / 心跳 / 对账
事件与产物递增事件 / SHA-256
节点主动连接;SQLite 不跨机器共享

Windows 工作机

32 GB · x64
GPU / Docker / 数据发布的执行节点
ExecutorDebug既有 DSH / Judge
运行入口
受控命令处理器 + Lody 官方 CLI
工作隔离
原任务 testbed / Docker / Git worktree
资源策略
最多 1 个框架任务;保留 6 GiB
生产依据
原 campaign.sqlite3 与 release / Arrow 门禁

MacBook Air

16 GiB · arm64
审查 / 控制 / 轻量 CPU 的执行节点
ReviewThink / Control轻量 Executor
连接路径
SSH 转发:18876 → Windows 8876
运行入口
节点 worker + 共享 Lody 角色
资源策略
最多 1 个框架任务;保留 3 GiB
能力边界
本机无 Docker,不派发 Docker / GPU 阶段
协调状态 SQLite唯一任务状态 / 租约 / 事件
节点本地收据启动意图 / PID / 会话身份 / 有界日志
内容寻址产物按需传输 / SHA 校验 / 独立结果依据

Lody 负责 Agent 与会话运行;项目协调器负责任务、资源与阶段状态。现有 E2 账本继续决定数据是否真正入库。

02六个抽象层

点击查看合同与边界

03连接现有 E2 生产流程

阶段通过 depends_on 串联,原准入规则保留
01 / PREPARE选题与资格

公开题面、环境隔离、baseline / controls、freeze。

Windows · Docker
02 / SOLVE唯一正常 attempt

调用现有 e2_queue start;记录实际协议和用量。

Windows · DSH / GPU
03 / POSTPROCESS判分与对账

独立 judge、公开 probe、alignment 及正式 handover。

Windows · 原执行入口
04 / REVIEW独立语义审查

只传审查 packet、pending 和安全 judge summary。

Mac · Lody Review
05 / PUBLISH验证并发布

返回独立结论,由原 view 完成 release / SQLite / Arrow。

Windows · 原准入入口
执行前:资源与授权门机器在线 + 能力匹配 + 内存足够 + 依赖成功 + E2 running
→
执行后:数据质量门真实执行 + 独立官方判分 + 语义监督 + 原发布验收

框架中的 succeeded 表示该阶段执行完成。Lody 会话完成属于传输层完成证据,不自动等于任务 resolved 或 SFT admitted。原生产目前为 halted。

04内存预算先于派发

交互示意,不是新的性能测量

准入条件模拟

Windows 策略
系统余量 + 现有预留候选任务剩余可用

运行时的约束

  • 节点每 5 秒报告本机真实内存;心跳超过 30 秒视为过期。
  • 领取任务与预留内存放在同一个 SQLite 写事务中。
  • 启动前再次检查内存与暂停状态。
  • 每节点初始最多一个活动任务,避免多 Agent 同时放大内存峰值。
  • 失联后的执行不明任务继续占用预留,直到停止证据得到确认。
内存预留是调度预算,不是进程的硬内存上限。Docker 内存限制继续由既有执行配置管理。

05故障发生时,任务怎样流转

点击场景
queued
leased
running
succeeded / cancelled
needs_reconciliation

只有未启动的过期租约可以自动回到队列。启动后的未知执行、正常质量失败都不会被静默重抽。

06实现与验收

2026-11-02 · 实际双机、角色调用与控制检查已闭环
77
定向检查

资源、租约、取消、断连、幂等、原 E2 暂停、artifact 与客户端。

2 / 2
双机执行

真实 Windows 与 Mac 命令探针,验证节点归属和回传。

已通过
Lody 无界面闭环

Windows 真实共享角色会话完成;session / turn 匹配,产物已回传。

组件实现入口职责
Coordinatorstorage/orchestration.pySQLite 状态、资源准入、HTTP API、SSE
Node Workerstorage/orchestration_worker.py真实内存、心跳、受控命令、Agent 执行、收据
Lody Transportstorage/lody_client.py官方 CLI / 可选 MCP,对应会话完成证据
E2 Adapterstorage/orchestration_e2.py阶段描述、只读账本、安全审查 bundle
Runtimestorage/orchestration_manage.py初始化私有配置、后台进程启动、重复启动保护
Reconciliationstorage/orchestration_reconcile.py管理员确认停止 → 节点确认收据;不会重跑旧任务
Dashboardstorage/orchestration_dashboard.html资源 / 阶段 / 结果 / 事件 / 暂停与取消
现场检查已通过:超预算拒派、E2 暂停拒派、运行中命令取消并确认停止。首次角色探针在 Windows 工作树长路径阶段失败,保留收据并修复仓库缓存配置后,新的独立验证已成功。原 E2 仍为 halted;没有恢复 SFT 生产或训练。浏览器宿主不可用,界面已通过 HTTP、HTML 锚点和 JavaScript 检查,未做截图验收。

07操作与恢复入口

打开控制面板

Windows · 127.0.0.1:8876
Mac · 127.0.0.1:18876(SSH 转发)

控制令牌位于 Windows 私有运行目录的 admin.token;不写入 Git、报告或 URL。节点使用各自独立的 token。

恢复框架调度不会修改 E2 账本的 halted 状态。生产恢复仍需独立处理原暂停与未结对账。

状态文件放在哪里

Windows:
E:/Deeplearning/local_train/eval/work/orchestration-20261102/
  server.json                 本机配置
  orchestration.sqlite3       任务 / 租约 / 事件
  artifacts/                  校验后的传输产物
  windows/receipts/           本节点执行收据

Mac:
~/.local/state/local-train/orchestration-20261102-mac/
  runtime-code/               固定代码与版本哈希
  worker.json                 节点配置
  receipts/                   会话 / 命令执行收据
  tasks/                      任务输入与有界日志