


























| Claude Code Dynamic Workflows | OpenClaw.NET MetaSKILL | |
|---|---|---|
| 本质 | 可执行 JavaScript 编排脚本,在会话内动态驱动多 Agent 协作 | YAML 声明的 DAG 编排引擎,由 .NET 运行时调度执行 |
| 设计范式 | 代码即编排(Code-as-Orchestration) | 声明即编排(Declaration-as-Orchestration) |
| 运行环境 | Claude Code CLI 会话内,Node.js 沙箱 | OpenClaw.NET Gateway 服务器进程内 |
| 触发方式 | 用户调用 /workflow 或使用 Workflow 工具 |
自然语言触发器匹配 + meta_invoke 工具 |
export const meta = {
name: 'review-changes',
description: 'Review changed files across dimensions, verify each finding',
phases: [{ title: 'Review' }, { title: 'Verify' }],
}
// Pipeline: items 流经 Review → Verify 两阶段,无 barrier
const DIMENSIONS = [
{key: 'bugs', prompt: 'Find security and correctness bugs'},
{key: 'perf', prompt: 'Find performance issues'},
]
const results = await pipeline(
DIMENSIONS,
d => agent(d.prompt, {
phase: 'Review',
schema: FINDINGS_SCHEMA,
}),
review => parallel(review.findings.map(f => () =>
agent(`Verify: ${f.title}`, {
phase: 'Verify',
schema: VERDICT_SCHEMA,
}).then(v => ({...f, verdict: v}))
))
)
const confirmed = results.flat().filter(Boolean)
.filter(f => f.verdict?.isReal)
核心特点:
agent() — 生成一个子 Agent 执行特定任务pipeline() — 流式多阶段处理,无同步屏障parallel() — 并行执行多个任务,有同步屏障phase() — 进度分组显示log() — 实时日志输出budget — Token 预算感知isolation: 'worktree' 隔离并行修改name: review-changes
kind: meta
composition:
steps:
- id: review_all
kind: fan_out
iterable: "['bugs', 'perf', 'security']"
fan_out_max_concurrency: 3
fan_out_template:
kind: llm_chat
with:
instruction: "Review {{ item }} issues"
- id: verify_all
kind: fan_out
iterable: "{{ outputs.review_all | from_json }}"
fan_out_max_concurrency: 3
depends_on: [review_all]
fan_out_template:
kind: llm_chat
with:
instruction: "Verify finding: {{ item }}"
核心特点:
depends_on 声明 DAG 依赖fan_out 动态展开并行子步骤routes 条件路由分支on_failure 失败替换步骤user_input 人机交互暂停点| 维度 | Claude Code Workflows | OpenClaw.NET MetaSKILL |
|---|---|---|
| 编排语言 | JavaScript(图灵完备) | YAML(声明式,非图灵完备) |
| 学习曲线 | 需要 JS 编程能力 | 需要理解 YAML 结构和运行时语义 |
| 表达力 | 极高:循环、条件、动态计算、try-catch | 中等:DAG + 条件路由 + fan_out 覆盖主流场景 |
| 安全性 | 运行时沙箱约束(无文件系统/网络) | 三步门禁:tool_allowlist + capabilities + MetaSkill.Enabled |
| 状态恢复 | 会话级 checkpoint + resume | SessionMetaRunRecord + CLI replay/reconstruct |
| 审计能力 | 会话内追踪 | 持久化审计记录,CLI 可查询 |
| 超时保护 | Agent 级超时 | 4 层保护:step / retry / session contract / agent loop |
| 输出校验 | JSON Schema(schema option) |
output_contract 每步 JSON Schema |
| 并行策略 | parallel() barrier, pipeline() streaming |
Wave-based 调度,同 wave 内并行 |
| Claude Code Workflows | MetaSKILL | 说明 |
|---|---|---|
agent(prompt, {schema}) |
kind: agent / kind: llm_chat |
单次 LLM 调用或子 Agent |
pipeline(items, stage1, stage2, ...) |
depends_on 链 |
流式多阶段,无 barrier |
parallel(thunks) |
fan_out + wave 调度 |
并行执行 |
while (condition) { agent() } |
无原生循环 | Workflows 支持图灵完备循环 |
if (result.foo) { ... } |
routes / when |
条件分支 |
phase('Verify') |
步骤分组(隐式) | 进度组织 |
budget.remaining() |
timeout_seconds / contract |
资源边界 |
| — | user_input |
人机交互暂停 |
| — | on_failure |
声明式失败替换 |
| — | skill_exec (子进程) |
确定性脚本执行 |
"编排就是代码" — 开发者用熟悉的 JavaScript 表达编排逻辑。循环、条件、递归、try-catch 全都可以。适合需要动态决策的复杂场景。
优势:
pipeline() 流式处理避免不必要的 barrier代价:
user_input 暂停点"声明就是约束" — 用 YAML 描述 DAG 结构,运行时保证执行正确性。适合需要长期维护、多人协作的生产工作流。
优势:
代价:
| 场景 | 推荐 |
|---|---|
| 快速审查 PR、寻找 bug | Claude Code Workflows(灵活的 ad-hoc 脚本) |
| 多维度研究分析 | Claude Code Workflows(循环探索、动态调整) |
| 生产环境 CI/CD 工作流 | MetaSKILL(审计、CLI、持久化) |
| 需要人机交互暂停审批 | MetaSKILL(user_input 检查点) |
| 多人长期维护的重复任务 | MetaSKILL(声明式修改边界清晰) |
| 需要跨运行时一致执行 | MetaSKILL(双运行时 parity 保证) |
| 一次性探索性分析 | Claude Code Workflows |
| 确定性脚本 + LLM 混合编排 | MetaSKILL(skill_exec + llm_chat 混合) |
两者不是竞争,而是覆盖编排光谱的两端:
理想的组合:用 Claude Code Workflows 做原型和探索,模式稳定后用 MetaSKILL 模板固化成可审计、可回放的生产级工作流。
| Claude Code Workflows | MetaSKILL | |
|---|---|---|
| 编排形式 | JavaScript 可执行脚本 | YAML 声明式 DAG |
| 图灵完备 | 是 | 否(DAG,无循环) |
| 声明期验证 | 运行时 | 解析时 + 运行时 |
| 安全门禁 | 沙箱 | 三步 tool_allowlist + capabilities + policy |
| 审计持久化 | 会话内 | 持久化 + CLI 查询 |
| 人机交互 | 无原生暂停点 | user_input 检查点 |
| Token 预算感知 | budget 全局变量 |
4 层超时保护 |
| 部署方式 | Claude Code CLI 会话 | .NET Gateway 服务器 |
| 最适合 | 探索性、一次性、程序员驱动 | 生产级、可审计、长期维护 |
两者共同的核心洞察:复杂 AI 工作流不能靠单一长 prompt 驱动,需要显式的编排结构。区别在于 Claude Code 选择"用代码表达编排",MetaSKILL 选择"用声明约束编排"。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。