适用版本:ChengOS v0.1.0+ | 最后核对:2026-08-13 | 来源:
crates/cheng-nodes/src/nodes/builtin/tools
tools/subflow 调用另一个工作流一次并等待结果 —— 它既是让大图保持可读的手段, 也是复用同一段逻辑的方式。tools/batch_subflow 是同样的调用在集合上的展开, 当条目数量由数据决定而不是画出来时,就该用它。 tools/schedule 管理定时任务:创建、暂停、恢复、取消,以及读回某次已完成运行的结果。
子工作流 — tools/subflow
作为子工作流调用另一个工作流(通过文件路径或工作流 ID)
输入
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
workflow_path |
string | ✅ | — | 工作流文件路径(JSON 格式)或工作流 UUID |
async_execution |
boolean | — | false |
是否异步执行;true 启动后立即返回,false 等待完成. 控件:switch |
input_data |
any | — | null |
传递给子工作流的输入数据(可选)。将后续 feedback 放在此对象内部,不要放在顶层。 |
child_context |
any | — | null |
早期子流程调用返回的上一个子流程上下文.当两者都设置时,优先使用此字段覆盖 input_data.context. |
agent_context |
object | — | null |
上游 AgentContext(通常从路由节点连接)。序列化为子工作流的 context 输入。优先级:child_context > agent_context > input_data.context。 |
conversation_id |
string | — | null |
传递给子工作流的环境父级对话 ID |
child_session_id |
string | — | null |
可选的稳定子会话 ID.复制到子执行元数据和诊断信息中. |
response_path |
string | — | null |
可选的点路径,在启发式提取之前用于从组合结果中提取响应. |
context_path |
string | — | null |
可选的点路径,在启发式提取之前用于从组合结果中提取子上下文. |
return_child_context |
boolean | — | true |
是否在输出数据中返回子流程的更新上下文. 控件:switch |
return_node_outputs |
boolean | — | true |
是否在结果输出中包含子节点输出. 控件:switch |
child_context_max_bytes |
integer | — | 100000 |
返回的内联子上下文最大序列化大小(字节).默认 100_000.超大型上下文会被摘要. 控件:number |
call_stack |
array | — | null |
调用栈,用于检测递归调用(内部使用) |
timeout_seconds |
integer | — | 300 |
超时时间(秒). 控件:number |
max_parallelism |
integer | — | 10 |
最大并行节点数. 控件:number |
输出
| 字段 | 类型 | 说明 |
|---|---|---|
status |
string | 子工作流执行状态 |
agent_context |
object (端口) | 子工作流输出数据(AgentContext). 连接端口,不是表单字段。 |
elapsed_ms |
integer | 执行时间(毫秒) |
error |
string | 错误信息(执行失败时) |
summary |
string | 执行结果摘要 |
批量子工作流工具 — tools/batch_subflow
使用有界并发并行运行多个子工作流并聚合结果
输入
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
items |
array<object> | ✅ | — | 要并发运行的子工作流调用(结果按输入顺序返回) |
max_concurrency |
integer | — | 4 |
批次级并发(并发中的子工作流数).与每个子工作流的 max_parallelism 不同. 控件:number |
timeout_seconds |
integer | — | 300 |
每个子工作流的超时时间(秒). 控件:number |
max_parallelism |
integer | — | 10 |
每个子工作流内部的最大并行节点数(不是批次并发). 控件:number |
return_child_context |
boolean | — | true |
是否每个项目都返回更新后的子上下文. 控件:switch |
return_node_outputs |
boolean | — | true |
是否在 result.outputs 中包含子节点输出. 控件:switch |
child_context_max_bytes |
integer | — | 100000 |
每个项目返回的内联序列化子上下文最大字节数. 控件:number |
call_stack |
array | — | null |
用于递归检测的继承调用栈(内部使用) |
输出
| 字段 | 类型 | 说明 |
|---|---|---|
status |
string | 汇总状态:completed / partial_failed / failed |
results |
array<object> | 结果列表 |
total |
integer | 总数 |
succeeded |
integer | 成功数 |
failed |
integer | 失败数 |
elapsed_ms |
integer | 批层墙钟总耗时(毫秒) |
summary |
string | 摘要 |
计划任务管理器 — tools/schedule
直接管理计划任务:列出,创建,更新,暂停,恢复,取消并查看任务详情.
输入
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
mode |
enum | — | manual |
执行模式:Manual=用户填写参数,Llm=LLM 自动填写参数. 控件:select. 取值:manual, llm |
action |
string | — | "" |
操作类型:list_tasks / get_task / create_task / update_task / pause_task / resume_task / cancel_task. 控件:select. 取值:list_tasks (List Tasks), get_task (Get Task), get_execution_result (Get Execution Result), create_task (Create Task), update_task (Update Task), pause_task (Pause Task), resume_task (Resume Task), cancel_task (Cancel Task), delete_task (Delete Task) |
id |
string | — | null |
计划任务 ID(数字) |
workflow_id |
string | — | null |
工作流 UUID(创建任务必填,列表时可选过滤) |
status |
string | — | null |
列表过滤状态:pending,running,completed,failed,cancelled,paused |
limit |
integer | — | 50 |
最大返回数量(默认 50,最大 500) |
offset |
integer | — | 0 |
分页偏移量(默认 0) |
run_at |
string | — | null |
调度表达式。接受三种格式:(1) 相对延迟(运行一次)— ‘2m’, ’30m’, ‘1h’, ‘1d’;(2) cron 表达式(周期调度)— ‘0 9 * * ‘(每天 09:00)、’0 9 * 1’(周一 09:00)、’0 9 * * 0,6’(周末 09:00);(3) 本地挂钟时间(运行一次)— ‘2026-06-30T09:00’ 或 ‘2026-06-30T09:00:00’(无时区/偏移;节点应用服务器时区)。一次性日期时间必须是未来时间 — 不要猜测当前日期;验证错误会说明当前服务器时间,请读取后修正 run_at。timezone 留空使用服务器系统时区(推荐)。 |
frequency |
string | — | null |
执行频率:once,every_minute,hourly,daily,weekly,monthly,custom |
custom_cron |
string | — | null |
自定义 cron 表达式(仅 frequency=custom 时使用) |
timezone |
string | — | null |
解释 run_at 的 IANA 时区。留空使用服务器系统时区(推荐)。 |
task_text |
string | — | null |
调度运行的工作流输入,纯文本。对于 chat/input 前端工作流,这会成为其 raw_input。将实际运行内容放在这里(或用 params)。不要放在 label 中。 |
target_node_id |
string | — | null |
配合 task_text 使用,将 raw_input 路由到指定节点. |
params |
any | — | null |
显式工作流输入参数对象,如 {“raw_input”: “hello”}。即工作流入口节点接收的内容。使用此或 task_text 提供输入 — 不要用 label。 |
priority |
integer | — | null |
执行优先级(默认 0) |
max_retries |
integer | — | null |
最大重试次数(默认 3) |
label |
string | — | null |
任务可读标签 |
输出
| 字段 | 类型 | 说明 |
|---|---|---|
status |
string | 操作状态:ok / not_found / error / llm_config |
data |
any | 查询或操作结果 |
count |
integer | 当前页结果数量 |
total |
integer | 总数(分页前) |
error |
string | 错误信息 |
下一步
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END

暂无评论内容