Alethe 是一个面向 CLI 编码智能体的编排工具,核心目标是在消耗尽量少的引导上下文与供应商配额的前提下,把工作拆分、委派给有边界的单元并整合结果。它支持 Codex、Claude Code、Agy、Kimi 以及自定义 CLI 作为 worker。
主要概念与配置
- Playbook:定义阶段与角色,决定各阶段由谁执行、哪些阶段可跳过、门禁条件等。
- Profile:定义每个层级(base、savings、aggressive)使用的模型。
- Goal:模式开启时的委派积极程度,可选 save、balanced、max。
- Runner strategy:单个波次的执行方式,可选 economy、balanced、quality、research、parallel、rescue。
使用方式
- 通过技能路径使用时无需 MCP;它会运行有界并发 worker,可选工作树隔离与可恢复会话。CLI worker 不会出现在 Alethe 的看板上。
- 首次运行或环境不确定时运行 scripts/orchestrate.py doctor,检查 Python、供应商、已保存策略与用户 playbook 副本,并汇总配额读数。
- 未配置策略时,按 onboarding 流程盘点 CLI、模型与路由,构建 base、savings、aggressive 三个 profile,经用户批准后保存。
- 设置不会阻塞工作:任务中若未配置,可运行 doctor,使用其已登录的 CLI 与内置 playbook,并用一行说明后继续。
- 提供短命令映射,如 /alethe 或 “alethe” 后的词映射到具体动作:任务、on/off、always、save/balanced/max、careful、report、status、usage、models、editor、list、stop、budget、skip/switch/freeform/add、note、mark、setup、help 等。
模式与长期偏好
- mode on --everywhere 将编排设为所有项目的默认行为,无到期时间;mode off 仅在当前项目关闭,mode off --everywhere 移除默认。
- 项目模式在仓库根或文件夹内保持,直到 mode off 或 12 小时无提示。
- 两种模式均支持 --goal(save/balanced/max)与 --care careful(写入前先读、隔离每个写入者、整合前审阅每个 diff、难以撤销的操作先询问),以及 --rule 保留长期指令(最多 8 条),--clear-rules 清除。
配额与预算
- 每个波次前运行 usage,Codex 读数来自会话文件,Claude 读数来自各 Claude worker 的 rate_limit_event;缺失或过期(>30 分钟)时运行 usage --refresh-claude。
- 在 dry-run 中读取 quotaForecast 预测配额消耗;样本不足时标记为 unknown。
- 某供应商配额低(达到或超过 quota.criticalThreshold)且下一个供应商可执行同层级时,转移工作并告知用户数字与重置时间。
- 如果唯一绕过低配额供应商的方式会降低工作所需层级、所有供应商都低或预测超过 quota.stopAt,则在启动前停止并询问,提供等待重置、换供应商、仅对允许的单元用更低层级、仅运行能容纳的单元、连接另一 CLI 或账户、或经用户同意用 --allow-low-quota 继续等选项。
- run 在供应商达到或超过 quota.stopAt 时拒绝波次并跳过排队 worker(failureKind: quota_low);命中限额的 worker 以 rate_limited 失败。
计划与执行
- 在规划前运行 playbook --pick 获取活动 profile、供应商顺序、选择条件与 playbook 摘要;再运行 playbook <id> 获取选定 playbook 的解析层级与配额、预算规则。
- 按顺序执行阶段;who: lead 表示当前会话中的你,其余阶段为 worker 波次。跳过 if 不成立的阶段。
- 为写入者分配不重叠的职责范围;并发写入者使用隔离工作树;单一写入者可在保留用户已有更改时使用主检出。
- 在仓库外创建 version-1 计划 JSON,可用 scaffold <strategy> --workers N 打印骨架;用 schemas/plan.schema.json 或 validate 校验计划。
- 运行 models 查看模型价格、排名与价格新鲜度;缺失或过期(>60 天)的价格只从供应商官方定价页查询,告知用户并保存来源与 asOf,不得猜测。
- 用 dry-run 预览 runner strategy、供应商、并发、prompt token、预算、listPriceEstimateUsd 与 quotaForecast;修复警告或说明为何不适用。
- 用 new 启动编排并指定 playbook、why 与 lead;每个波次用 run <plan> --in current --detach 启动,再调用 wait(最多 540 秒)直到 done 为 true。
- 读取 state.json、各 outcome.json(先看 workerStatus、failureKind、readOnlyViolation)、简洁的 result.md 与写入者 diff.patch;除非诊断失败,不加载原始日志。
- 整合已审核的更改,在合并检出中运行验证,将每个 worker 的结果标记为 used、partial 或 discarded,然后仅移除临时数据与已处理有用更改的工作树。
- 以 report 收尾并展示输出:工作、原因、变更、报告花费与剩余事项。
Worker 契约 每个 brief 必须说明任务目标、完成定义、拥有的路径、相关仓库规则、检查、禁止的更改与期望的交接。runner 自动追加不变量:不得委派、生成子智能体或启动另一个智能体 CLI;不得提交、推送、打标签、发布或打开 PR;返回简洁的结果、证据、更改文件、检查、失败与风险;以 STATUS: 行(DONE、DONE_WITH_CONCERNS、BLOCKED 或 NEEDS_CONTEXT)与 SUMMARY: 行结尾。Codex 与 Claude worker 无法启动子智能体,runner 会在 CLI 中关闭该能力。
限制与缺失事实
- Python 为可选;若 python、python3、py 均失败或低于 3.9,或用户要求,按 references/manual.md 进行检测、选项、后台 worker 与报告。
- 代理(如 9router)承载模型流量,但不是 worker。
- 资料未提供明确的收费或价格信息;资料未提供支持的平台范围详情;资料未提供安装命令。