LTO 是给主 agent 用的本地 CLI:它不替 agent 规划路线,不替 agent 写代码,而是把长任务的状态、证据、审计、runner 派工、沙箱、resume/recap 和 closeout 闸门落到 .lto/。适合几十轮会话、跨天交付、需要异构审计和可恢复证据的工作。
| 问题 | LTO 的回答 |
|---|---|
| LTO 是什么 | 外置记忆 + 质检 + 刹车。主 agent 仍是 planner,LTO 负责让过程可恢复、可审计、可验证。 |
| 真源在哪里 | .lto/<run-id>/state.json、artifacts、runner logs、audit ledger。am 只是可选投影,本地 .lto/ 永远是项目真源。 |
| 怎么防跑偏 | start 写目标和交付契约,task 记录拆分,runner 写证据,next/resume/recap 拉回上下文,closeout 前检查红线。 |
| 怎么防自审 | audit --auto-dispatch 和 audit --discover-risks 派异构 runner 挑问题;runner 不健康时 fail-closed。 |
| 什么时候不用 | 小 bug、一行改动、普通 review、单次部署,不该套 LTO。 |
术语细节见 references/onboarding.md,完整命令面见 COMMANDS.md。
L="cargo run --quiet --"
# 安装 wrapper 后也可以用:
# L="lto"
# 1. 开工:目标、原因、完成标准
$L start --goal "重构登录模块" --why "线上空指针崩溃" --done-when "测试全绿+审计收敛"
# /goal 型长交付:交付契约进 Rust core state
$L start --goal "提升检索召回" \
--done-when "hidden eval recall 达标且审计收敛" \
--target "hidden eval recall >= 95%" \
--constraint "wall clock <= 4h; paid API <= $50" \
--instrument "hidden-eval::python3 eval/search_recall.py --hidden" \
--entropy-check "on stall, change hypothesis and log overfit reflection"
# 2. 建 task,再执行并落证据
$L task add --task-id T1 --title "给 login 加判空" --command "pytest tests/test_auth.py -x"
$L runner --task-id T1 --kind test --command "pytest tests/test_auth.py -x" --note "验证空指针修复"
# 3. 派外部 agent 跑长任务,别轮询——阻塞等完成事件(v0.6.1+)
$L dispatch-goal --runner codex --goal goal.md # 默认在当前 tmux 会话开窗,不用传 --new-window
$L events --wait --event-type agent.dispatch.completed --timeout 1800 # goal/进程真完成后唤醒
# 4. 迷路时看事实简报
$L next
$L resume
$L recap
# 5. 高风险时异构审计(--prefer-runner 把慢 runner 挪出收口关键路径)
$L audit --auto-dispatch --prefer-runner codex --prefer-runner agy
$L audit --discover-risks
# 独立检查一份 ledger(Rust 是唯一 evaluator;--strict 把非零平轮判 STALLED)
$L check --ledger .lto/<run-id>/audit-ledger.md --strict
# 6. 收尾前硬检查,再 closeout
$L check --to closed --strict
$L closeout --summary "登录重构完成,测试和异构审计已收敛"start 硬要求非空 --goal 和 --done-when;--why、--host 只告警。
空 delivery contract 合法;一旦填写就必须让 --target 与
--instrument [LABEL::]CMD 成对,--constraint、--entropy-check 缺失仅告警。已有 run 用
lto contract set 修补(legacy 非法 instrument 用 --replace-instrument);preflight 的环境探活与 active/显式 run readiness
彼此独立。完整规则见 run-state workflow。
audit 当前命令面是 --auto-dispatch、--discover-risks、--allow-same-family、--prefer-runner。历史文档里出现过的 audit --collect <dir> 不是当前 Rust CLI 命令;已有回复应通过当前 runner/collect-agent-run/artifact 机制登记。
普通 lto check 的文本和 --json 输出都包含 ledger 硬 verdict 与五维 diagnostics(样本充分性、终态、方向、振荡、包络);diagnostics 及可能出现的 forced_entropy advisory 不进入 phase/closeout gate。scripts/audit_ledger_check.py 只保留一个版本的兼容入口,并原样 exec 到 lto check --ledger,不再实现第二套判定逻辑。
dispatch-goal 新建的窗口默认命名为 lto:<runner>:<goal-slug>,程序寻址与清理只使用 tmux 不可变 @window_id。成功完成后自动清理;非零 rc、超时、交互阻塞或 --keep-window 都保留现场。主完成信号是 goal 文件 prompt 注入的 goal-self-report(agent 跑完后执行 lto agent-turn-completed --source goal-self-report --rc 0|1 …,不依赖 runner 端 skill)。Codex Stop hook / pi·agy process-exit 仅作可选旁路。不要再用 turn 事件判断整个 goal 完成。
host agent = planner
|
v
lto-rs CLI primitives
|-- state/task/phase/check/closeout
|-- runner/scheduler/tmux/worktree sandbox
|-- audit/judge/heterogeneous runner selection
|-- plugin data packs and eval-run
|-- events/telemetry/budget readouts
|
v
.lto/<run-id> = local source of truth
|-- state.json / run-state.md / artifacts.json
|-- live logs / replies / audit ledger / handoff
v
optional sinks: am memory publish/resume, release docs, changelog
核心边界:
- Rust v2 是唯一支持的 CLI runtime。Python fallback 已在 v0.5.0 删除;保留的
scripts/*.py是文档检查、ADR 写入等维护工具,audit_ledger_check.py也只是临时 exec proxy,不是 evaluator 或运行时 fallback。 - LTO 是 harness,不是 planner。
next、recap、autopilot --supervised只整理事实;路线判断仍由 host agent 和人决定。 - runner/audit/worktree 是 affordance。它们提供派工、异构检查和可弃沙箱,不改变最终责任归属。
- macOS/Linux 优先。Windows native support 暂停;当前内置 runner 协议依赖
scripts/delegate/runners/*.sh和healthcheck.sh,WSL/Unix-like shell 属于用户侧环境验证。
运行时拓扑(上图)之外,host 侧的使用动线按六域路由——详表唯一真源是 references/INDEX.md,SKILL.md 的 ROUTER 用同一套域名:
| 域 | 核心动作 | 主 reference |
|---|---|---|
| Ⅰ 接管与恢复 | runs/resume/recap/check | onboarding、long-loop-state |
| Ⅱ 立项与契约 | start/task/preflight/delivery contract | run-state-workflow |
| Ⅲ 执行与派工 | runner/dispatch-goal/events/autopilot | execution-loop |
| Ⅳ 验证与收敛 | audit/judge/check/ledger | audit-convergence、playbooks/review |
| Ⅴ 交付与发布 | 部署实测/closeout/release | deploy-sequencing、release-workflow |
| Ⅵ 学习与维护 | decision/memory/telemetry/prune | decision-logging、events-telemetry-contract |
放到业界 loop 工程坐标(L1 agent loop / L2 verification / L3 event-driven / L4 hill-climbing)里,LTO 四层全覆盖;差异化在 L2 用跨族异构 runner 互审抗同族盲区, L4 挖掘只出证据和 brief 喂 host 决策、绝不自动改写 harness / 自动 promote——薄 harness + 人在环。控制回路细节见 references/control-loop-harness.md。
插件是 data-only path plugin:它可以提供 source note、path/playbook JSON、runtime profile、prompt suffix、output schema 和 eval pack;不能执行任意代码、自动提升权限、替 host 选 workflow 或自动 promotion。边界见 references/plugin-boundary.md,真实 A/B eval 设计见 references/plugin-real-eval-runner.md。
当前仓库有 5 个插件:
plugins/adversarial-auditplugins/claim-verify-researchplugins/deep-agent-profilesplugins/dev-workflowplugins/migration-refactor
最小生命周期示例,以下命令已用 plugins/adversarial-audit 实跑验证:
$L plugin list
$L plugin validate plugins/adversarial-audit --json
$L plugin render-profile plugins/adversarial-audit codex-refuter-v1 \
--input .lto/<run-id>/plugin-profile-input.md \
--output .lto/<run-id>/plugin-profile-rendered.md \
--meta-output .lto/<run-id>/plugin-profile-rendered.meta.json \
--json
$L plugin eval plugins/adversarial-audit --json \
--output .lto/<run-id>/plugin-static-eval-adversarial-audit.json
$L plugin mount plugins/adversarial-audit --run-id <run-id>
$L plugin eval-run plugins/adversarial-audit \
--run-id <run-id> \
--case agy-refute-adversarial-path \
--no-persist --json \
--output .lto/<run-id>/plugin-eval-run-adversarial-negative.json数据流是:validate 检查 manifest 和引用文件,render-profile 编译 profile prompt,eval 静态校验 eval pack,mount 只在 run 里写 provenance lock,eval-run 通过 scheduler 跑 baseline vs candidate 并输出 report。
场景插件只在 host 明确选择后挂载,不会自动改 runner 权重或启动 workflow:
$L plugin mount plugins/adversarial-audit --run-id <run-id> # review / feature-dev refute-first 审计
$L plugin mount plugins/claim-verify-research --run-id <run-id> # claim-verify / research 证据完整性核验
$L plugin mount plugins/migration-refactor --run-id <run-id> # migration 分批回归与语义等价审计预设工作流是 host-agent 调度先验,不是 lto workflow run X 这种硬命令。host 读 playbook 后组合 start、task、runner、audit、judge、next、recap、closeout 等 primitive。完整说明见 references/workflow-playbook.md 和 references/dev-workflow-spec.md。
| 工作流 | 何时用 | 关键 primitive | 期望产物 |
|---|---|---|---|
review |
高风险 spec/code/设计需要异构审计 | audit, judge, check |
audit brief、findings、ledger、verdict |
enterprise-audit |
多层级/大厂标准审计 | plugin mount plugins/dev-workflow, audit ledger |
layer findings、redline register、验收证据 |
debug |
同一失败反复出现或 task blocked | runner, next, autopilot --supervised |
最小复现、日志、根因、修复验证 |
migration |
跨模块/schema/API/持久化格式迁移 | task, runner, run parallel, run pipeline, audit |
分片计划、兼容/回滚证据、per-slice evidence |
claim-verify |
文档、研究、版本/API/事实主张要核验 | source notes, runner --kind manual, audit |
claim ledger、supported/refuted/unknown verdict |
research |
多源研究、选型或生态判断 | 分源检索、manual evidence、source critique | source map、矛盾表、confidence labels |
feature-dev |
新功能从 spec 到实现和验收 | start, task, runner, audit, judge, closeout |
开发四证据、实现证据、测试、changelog |
tmux-goal-loop |
长跑 worker + host 亲验 | runner --runner tmux, autopilot --worker-runner tmux |
live log、worker contract、host verification |
docs-sync |
代码大改后文档漂移 | docs drift fan-out, manual evidence | drift union、修复 diff、防漂移测试 |
release |
版本定版和公开交付 | release --dry-run, check, closeout |
release plan、privacy scan、handoff |
direction-review |
架构方向或品味分歧 | evidence adjudication, decision log | 分歧分类、证据裁决、人类拍板点 |
lto-rs 当前版本走 Rust-only path:source build 用 cargo,安装后的 lto wrapper 执行 lto-rs,Python fallback 不再存在。二进制下载是 release-gated:下载前必须实查 GitHub Releases 是否有对应 .tar.gz 和 .sha256,校验 checksum 后再运行 ./lto-rs self-test。不要在未查 live release assets 前声称 GitHub 已有可下载 Rust 二进制。
Release 流程归 host,按确定性 SOP 走:完整步骤见 references/release-workflow.md,发版前必跑 bash scripts/release_preflight.sh --version X.Y.Z(检查版本三处一致 / 隐私扫描 / CI 全部红线 / self-test,全绿才发)。概要:写人话 CHANGELOG → 同步三处版本(Cargo.toml/VERSION/Cargo.lock)→ preflight → commit/push → tag push 触发 CI release-binaries 构建 3 平台二进制并上传。更完整的公开交付门槛见 references/open-source-delivery-requirements.md 和 references/rust-migration-release.md。
- 修一个小 bug、改一行、一次性脚本:直接做。
- 只想让别人 review 一下:走普通 review。
- 只是部署一下:走部署流程,必要时再用 LTO 登记验证证据。
- 没有跨轮状态、异构审计、沙箱、resume/recap、closeout gate 的需求:LTO 只会增加负担。
安装见 INSTALL.md。常用入口:
| 想了解 | 读这里 |
|---|---|
| 完整命令面 | COMMANDS.md |
| agent 手册和术语 | references/onboarding.md |
| 设计哲学 | SKILL.md |
| 工作流 playbook | references/workflow-playbook.md |
| 插件边界 | references/plugin-boundary.md |
| 真实 eval-run | references/plugin-real-eval-runner.md |
| Rust 迁移/release | references/rust-migration-release.md |
| Rust/Python ownership | references/python-rust-ownership.md |
| 本次继承和架构调查 | references/2026-06-17-rust-inheritance-and-architecture-review.md |