SuperAPI AI 工具集

workflow-rig

智能体与模型

查看项目

更新于 10-16 09:10

技能介绍

Workflow Rig 是 joelclaw 中由智能体驱动工作的统一入口。用户无需在 agent-workloads、restate-workflows、队列内部机制或运行时细节之间做选择;当用户说出指定触发语句时,应先加载本技能。

一、用途与职责 该技能负责:工作负载形态设计(串行、并行、链式);在内联工作、持久化运行时或纯交接之间做出选择;调用 joelclaw workload plan / dispatch / run;通过 --stages-from 定义显式阶段 DAG;说明当前 restate-worker 能做什么、还不能做什么;在运行时扇出前建立验证契约;并为真实工作负载验证提供 canary/dogfood 姿态。

核心规则:意图优先,底层次之——调用方描述工作,workflow rig 选择最窄且诚实的执行路径。验证优先,循环次之——在规划持久化或并行运行时工作前先问:智能体能否在不依赖人工盯守的情况下证明其成功?若不能,应先把验证/工具阶段设计出来。除该权衡本身是决策点外,不应把 Redis、Restate、沙箱等底层细节推给调用方。

二、当前已验证状态(截至 2026-03-17,会话 StubbornFerret) joelclaw workload plan、dispatch、run 均可用。已验证的持久化路径为:joelclaw workload plan → Redis 队列 → Restate dagOrchestrator → dagWorker → 执行。带 dependsOn 的多阶段 DAG 已在 3–5 阶段流水线上验证,下游阶段可通过 {{nodeId}} 插值消费上游输出。--stages-from stages.json 已验证:重复 id、未知依赖、自依赖和循环在运行时准入前即被拒绝,并计算关键路径与阶段分组。shell 处理器可在 k8s restate-worker pod 中运行命令;git clone、pi 智能体写文件、git commit、git push 均已验证。infer 处理器为具备 read、edit、write、bash 工具的完整 pi 智能体,pi -p 模式启用全部工具,可读取、编辑文件、运行命令并产出可工作的代码变更,而非仅文本生成。microvm 处理器代码可用(pod 内通过 bun test 验证了一次性 exec 模型),但 ADR-0230 已暂停——Colima 嵌套虚拟化在负载下会崩溃 VM,请勿使用。restate-worker 镜像为完整智能体环境:pi 0.58.4、76 项技能、来自 k8s secret 的 GitHub push 认证、从宿主机挂载的 pi 认证(保持新鲜)。自主代码生成已验证:infer 处理器读取并编辑文件,shell 处理器处理 git clone/commit/push,可将二者链入 DAG 实现完整自主编码循环。预克隆仓库缓存位于 /app/repo-cache(复制约 200ms,对比 clone 约 3s)。dagWorker 使用 15 分钟不活动超时与 30 分钟硬中止。重试上限:dagWorker maxAttempts=5,dagOrchestrator maxAttempts=3,不再有无限重试污染。

三、尚不可用的能力 microvm 处理器已暂停(ADR-0230),需要带原生 KVM 的专用 Linux 硬件。DAG 完成通知尚未接入网关,操作者需轮询或查看 OTEL。大文件 pi 智能体编辑可能较慢(3–5 分钟),但可在 15 分钟超时内成功。

四、标准操作流程

  1. 用 joelclaw workload plan 设计工作,为每个阶段包含验证契约。2. 呈现设计好的工作负载与验证路径,使用已有授权提出范围内的运行请求;仅就缺失的重大选择或额外范围进行询问。3. 在授权范围内:若任务有界、本地且可逆则内联执行;真实持久化执行使用 joelclaw workload run;仅在真正交接时使用 joelclaw workload dispatch。4. 若入队运行时工作,用 joelclaw runs、joelclaw run <run-id> 或 OTEL 轮询进度;目前没有自动完成通知。5. 简洁报告结果:已变更、已验证、剩余事项、下一步。6. 若缺少证明路径,应在运行时准入前停止,先编写可复用的验证器技能/工具/检查。

五、触发语句与规范命令。仅规划:joelclaw workload plan "<intent>" --repo <repo> [--paths a,b,c] [--stages-from <path>] [--write-plan <path>]。真实运行时 canary/dogfood:joelclaw workload run <plan-artifact> 可带 --stage、--tool pi|codex|claude、--timeout、--model、--execution-mode auto|host|sandbox、--sandbox-backend local|k8s、--sandbox-mode minimal|full、--repo-url、--dry-run、--skip-dep-check。仅交接不执行:joelclaw workload dispatch <plan-artifact> 可带 --stage、--project、--from、--to、--send-mail、--write-dispatch。

六、沙箱模式指引 当证明需要真实运行时表面(服务/网络生命周期、完整环境物化、清理证据,或本地最小沙箱会掩盖真实失败模式)时,使用 --sandbox-mode full;对于廉价代码/文档/测试切片,使用 --sandbox-mode minimal。已有真实阶段 DAG 时使用 --stages-from,规划器会保留每阶段验收、校验依赖/循环、计算关键路径元数据,并保留 DAG 而不折叠为模板阶段。--skip-dep-check 仅用于刻意的手动恢复。不要使用 microvm,ADR-0230 已暂停,Colima 嵌套虚拟化不稳定;所有工作使用 shell + infer。

七、当前运行时事实 joelclaw workload run 是工作负载工件到运行时准入的真实桥梁。持久化路径为 Redis 队列准入 → Restate dagOrchestrator → dagWorker。dagOrchestrator 为链式多阶段 DAG 正确解析依赖波次。{{nodeId}} 插值已验证,用于将上游输出传入下游阶段。shell 处理器是 git 操作(clone、commit、push)与任意 CLI 工作的已验证路径。infer 处理器是完整 pi 智能体,通过工具读取、编辑、写入文件,适用于代码生成、分析及任何受益于 LLM 与文件访问的任务。将 infer(编辑文件)→ shell(git commit + push)链式组合即可实现自主编码循环。microvm 处理器已暂停,请勿使用。目前完成为轮询式,DAG 落地时不会发出网关完成事件。

八、真实链式示例 一个当前可运行的诚实四阶段形态:research(手动,验收“Facts gathered”)→ plan(dependsOn research,手动,验收“Implementation plan written”)→ implement(dependsOn plan,执行模式 pi,验收“Requested files updated”“Commit pushed”,备注“Use {{plan}} as the downstream input.”)→ verify(dependsOn implement,手动,验收“Exact proof command/artifact captured”“Quality bar checked”“Closeout ready”,备注“Use {{implement}} for verification context. If this cannot be proven by an agent, split out a verifier skill/tool stage before implementation.”)。通过入口运行:joelclaw workload plan "Research, plan, implement, then verify the change" --repo ~/Code/joelhooks/joelclaw --stages-from stages.json --write-plan plan.json。

九、兼容性技能与 dogfood 姿态 agent-workloads 仅当旧提示词已点名它时作为兼容别名使用;restate-workflows 仅当工作具体涉及外部仓库运行时桥接或底层契约时使用。证明运行时工作时:优先 canary;使用真实入口(joelclaw workload run),而非手写 system/agent.requested,除非在 rig 之下调试;从队列准入、Restate、dagWorker 及结果 git/验证工件中捕获诚实证据;自行轮询运行,目前没有面向网关的完成事件;在沙箱阶段运行内,不要启动另一个 workflow-rig canary;若 rig 损坏就直说,不要将队列/worker 故障归咎于沙箱或网关;若任务需要大文件智能体编辑,按分钟而非秒估算。

十、规则 不要在 docs/workloads.md 已定义时发明新的工作负载词汇;当 joelclaw workload run 是正确桥梁时,不要强迫操作者选择队列、Restate 或沙箱;不要使用 microvm(ADR-0230 已暂停);除非真实运行时路径已移动并产出证据,否则不要声称 dogfood 证明成功;不要暗示存在并不存在的自动完成通知。