description: "通过共享的沙箱化 PTC Node 进程运行时执行工作流编排,保留工作流钩子、subagent 路由和调用方拥有的取消能力。"
English | 中文
在全新 Node 进程中按调用 Session 的文件沙箱策略运行 JavaScript 工作流。脚本保留 agent()、parallel()、pipeline()、phase() 和 log() 钩子,委派的工作由 subagent 完成。同一个执行提供方服务 PTC 与工作流,包括需显式启用的 Ralph 循环。运行没有整体经过时间截止;取消会停止受管进程并释放子 agent。所选沙箱与子进程提供方决定强制能力和清理限制。
在提供 subagent、沙箱策略和 Node PTC 运行时的组合中挂载本引擎。它为 dsh-tool-workflow 及显式启用时的 dsh-tool-ralph 提供工作流执行。Ralph 在已发布默认组合中保持禁用。引擎在加载时拒绝非 TypeScript 的 PTC 提供方。Python PTC 组合必须禁用 workflow-ptc、tool-workflow 以及任何已启用的 tool-ralph 条目。
上述依赖可用后,挂载引擎及其面向模型的消费方:
- name: '@deepseek-ai/dsh-workflow-ptc'
- name: '@deepseek-ai/dsh-tool-workflow'
| 字段 | 默认值 | 含义 |
|---|---|---|
provider |
spawn |
agent() 调用使用的宿主侧 subagent 提供方。 |
maxConcurrentAgents |
0 |
并发 agent() 上限;0 根据可用 CPU 并行度解析。 |
maxTotalAgents |
1000 |
一次运行最多启动的 agent() 调用数。 |
maxItemsPerCall |
4096 |
一次 parallel() 或 pipeline() 调用接受的条目数。 |
syncTimeoutMs |
5000 |
脚本最初同步片段的 VM 超时时间,单位为毫秒。 |
负责运行的消费方可以为一次运行设置 WorkflowStartRequest.subagentProvider 并降低 WorkflowStartRequest.maxTotalAgents。脚本钩子不能更改这两项选择。进程堆、输出、控制通信和终止限制由 Node PTC 提供方负责;引擎不增加整体经过时间定时器。生成的配置目录定义可接受的引擎字段。
Node PTC 提供方的 maxPendingCalls 也限制工作流并发:子 agent 启动、结果等待与资源释放会占用这些名额。进度批次至多再占用一个名额。设置 maxConcurrentAgents 时应预留余量。
脚本支持顶层 await;meta 和 args 作为 JSON 数据传入。每次 agent() 调用使用配置的 subagent 提供方及运行固定的父级。最终的无损 JSON 返回值成为运行结果;普通子 agent 失败使 agent() 以 null 兑现。
无效元数据、无法解析的正文、不可用的提供方路由或高于上限的单次运行上限,在运行发布前被拒绝。执行期间,钩子误用与超出协作式上限会使工作流失败。进程失败、所需约束不可用,以及超出 PTC 输出或控制限制也会使运行失败。
引擎为 PTC 执行解析调用 Session 的常设文件策略与 cwd。VM 保留文档说明的辅助 API,但它不是安全边界:触达 Node 的代码仍受所选 OS 文件策略约束。程序可见的环境为空。文件策略不限制网络访问。
工作流向 PTC 请求 timeoutMs: null。最初的 VM 片段仍受 syncTimeoutMs 限制,调用方的中止信号仍然生效,包括外层工具的截止。取消立即中止 PTC 进程及待启动或活跃的 subagent。调用方必须释放每次运行并等待子 agent 清理;不另设工作流清理定时器。
共享执行保证与工作流约定见以下参考。
脚本每次调用 agent(),都会把提示词原样发送给 subagent 提供方,并附带可选模型或结构化输出 schema。每个子 agent 看到该提供方自己的上下文;phase 与 log 叙述只留在观察器事件中。
每个子 agent 消耗自己的模型上下文。协作式并发、agent 总数与条目上限限制普通脚本的扇出;子 agent 历史不会直接加入父级历史。
与父级请求缓存及同级子 agent 相互独立。每个子 agent 只能在自己的提供方、模型、提示词和 schema 下复用逐字节相同的前缀。
工具消费方呈现最终 JSON 值与子 agent 数量,或工作流失败。中间子 agent 输出仍可供脚本使用。脚本解析、辅助函数误用、子 agent 基础设施失败与 PTC 执行失败会产生错误;普通子 agent 失败产生 null,由脚本处理。
引擎不直接向父级增加 token。PTC 限制外层程序结果,工具消费方负责其面向模型的渲染与保留。
仅追加;新增可见内容位于可复用请求前缀之后。
这些限制界定工作流执行与清理。
instanceof Error——根据 name 与 code 等稳定字段分支。