跳到主要内容

Core API 总览

Core API 分组记录业务 workflow 可直接使用的 workflow.* 运行时 API。这里的边界以 Core 仓库 src/runtime-api.ts 为准:平台、CLI、Desktop 和 server 会把这些方法注入到 globalThis.workflow,业务 workflow 不需要从 "workflow-code" 导入它们。

入口边界

入口说明
workflow.*业务 workflow 使用的全局 API,来源是 Core 仓库 src/runtime-api.ts
workflow-code 包入口CLI、Desktop、server、测试和高级宿主使用的工具入口,来源是 Core 仓库 src/index.ts

Runtime API 索引

API说明
defineWorkflow定义 workflow 本体,描述主执行函数。
defineEntrypoint定义 Workflow 项目中可独立运行的扁平入口及其参数、工具和 registry。
defineExecutor定义 Workflow 的入口目录,或 Conversation 的单入口执行配置。
parseConversationDefaultInputArgs解析 conversation 默认输入框序列化出的 --message--images--files
createInputNode创建输入解析节点。
createFileInputNode创建文件输入节点,把 file param 引用解析成文件对象。
createUserInputNode创建可持久恢复的人工输入节点,让 workflow 暂停为 waiting_for_input
createToolApprovalGate创建工具审批包装器;结合 executor tools 注册项和 context.toolPermissions 复用 user-input 等待/恢复协议审批工具调用。
createLLMNode创建非流式 LLM 调用节点。
createLLMStreamNode创建流式 LLM 调用节点。
createLLMProviderFromEnv从 workflow runtime 环境变量创建 LLM provider。
getServerLLMCredentials获取当前登录账户可用的服务器 AI 配置,并创建不暴露上游 Key 的代理 provider。
createLLMProviderRef创建可延迟解析的 provider 引用。
createOutputNode创建同步或流式输出节点;createOutputItemcreateOutputPayloadaddOutputItemcreateOutputItemChunk 也在该页说明。
createDetailsOutputNode创建独立可折叠 output item 的便捷输出节点。
createTimerNode / endTimer创建业务计时节点,并在显式结束或 workflow 收尾时写入计时卡片。
createQuestionClassifierNode创建基于 LLM 的问题分类节点。
runNode执行普通节点并触发节点执行 hook。
runStreamNode执行流式节点,收集 chunks,并产出 finalize 结果。
runIf执行 if / else-if / else 分支,并把分支选择写入运行报告和 Diagram。
runFor执行可追踪的 for 循环,并让 Diagram 用循环容器展示循环体。
runWhile执行可追踪的 while 循环,并让 Diagram 用循环容器展示循环体。
runWorkflow在当前上下文中调用另一个 workflow,复用 KV、会话、provider、token usage 和 trace。
Knowledge Documents通过显式的本地或服务器存储上下文管理项目内 markdown 知识库文档。
getEnv读取当前 runtime 环境中的非空变量。
getRuntimePlatform / isCli / isWeb / isDesktop判断当前 workflow 的执行宿主是 CLI、Desktop 还是 server web。
getRuntimeLocale读取当前运行宿主选择的简体中文或英文,用于已启用国际化的用户可见输出。
getLLMProvider按上下文、节点名和 provider source 解析 LLM provider。
WorkflowError标准 workflow 错误类型。

核心运行对象

多数 API 会围绕 inputcontextnodepayload 运行。

对象类型说明
inputInput 或节点 Output当前 workflow 或节点的输入数据。
contextWorkflowContext / NodeContext包含 provider、storage、conversation、files、metadata、hooks、abortSignal。
payloadWorkflowPayload 子类型节点 payload 应继承 WorkflowPayload,成功时 errCode: 0errMessage: ""
providerLLMProviderSource / LLMProviderLLM 节点通过 provider source 解析实际 provider。

NodeContext 核心字段

字段类型说明
providersProviderRegistryLLM provider 注册表和绑定表。
storageWorkflowStorageContextlocalserver 两个显式位置,每个位置都包含三层 kvpersistentValue。项目 dataStorage.mode 严格限制可访问位置;Core 0.2 不再提供顶层 context.kv / context.persistentValue
conversationWorkflowConversationContext会话状态读写入口。setTitle 可安全建议 UI 标题;未启用会话时其它读写会抛错。
tokenUsageWorkflowTokenUsageContexttoken 用量统计入口。未启用时 report() 是 no-op;启用后会写入 KV、运行报告和 runtime event。
userInputWorkflowUserInputContext | undefined用户输入和工具审批的等待/恢复入口。CLI、Desktop、server runner 会按宿主能力注入。
filesWorkflowFileStore | undefined文件引用解析入口;createFile 可生成 server-backed 运行文件。
metadataobject | undefined当前执行元信息,例如 workflow、runId、conversationId;Workflow 运行还包含 entrypointIdentrypointTitle
nodeHooksNodeExecutionHooks | undefined节点开始、chunk、完成等事件回调。
timersWorkflowTimerContext | undefined业务计时节点上下文;createTimerNode 启动计时,endTimer 结束计时。
toolPermissionsWorkflowToolPermissionContext | undefined当前 run 的工具权限上下文。按 executor tools 默认值和宿主覆盖值解析,供 createToolApprovalGate() 或自定义工具调用逻辑判断启用、自动批准和人工审批。
abortSignalAbortSignal | undefined中断执行和 provider 调用。

Payload 约束

字段说明
errCode业务错误码。成功值为 0
errMessage错误说明。成功时统一为空字符串。