Skip to main content
本文档由 AI 自动翻译。如有任何不准确之处,请参考 英文原版
每项应用操作对应一条命令,且都接受 全局标志

列出应用

日常调用方式参见 常见任务 中的 查找应用

参数

  • [app-id]:可选。要显示的单个应用的 ID。省略则列出工作空间中的所有应用。

标志

示例

列出工作空间中的应用:
列出你所属的每个工作空间中的应用:
查找名称包含 「report」 的 Workflow 应用:
仅打印应用 ID,每行一个,便于 shell 循环:

输出

默认表格:

退出码

完整方案参见 输出格式与退出码

查看应用

运行一个不熟悉的应用之前,你通常想先弄清几个问题,而 describe app 正是用来回答它们的:这是什么类型的应用、它的 API 是否已启用、它需要哪些输入。

参数

  • <app-id>:必填。要查看的应用的 ID。

标志

示例

运行前先查看应用:
提取输入 schema,以便以编程方式构造 --inputs
重新发布应用后再次获取:

输出

默认文本视图:
应用有描述时会出现 Description: 行,应用为 agentic 时会出现 Agent: true 行。 -o json 下,这三个键分别是:
  • info:上方展示的元数据字段,从 NameService API
  • parameters:上方展示的参数块
  • input_schema:应用输入的规范化列表,也就是 jq '.input_schema' 示例所读取的字段

退出码

运行应用

run app 是一条适用于所有应用类型的命令。CLI 会读取应用的类型,并分发到对应的端点。不同之处只在于输入的传递方式和响应的形态:
  • 聊天助手、Chatflow、Agent:接收一条位置参数形式的消息,将回复打印到 stdout,并将一条会话提示打印到 stderr。
  • 文本生成应用:接收一条位置参数形式的消息,将续写结果打印到 stdout。没有会话状态,也没有提示。
  • 工作流:通过 --inputs 接收一个 JSON 对象,并将其输出打印到 stdout。输出为单个字符串的工作流会原样打印该字符串,其余情况则打印为紧凑 JSON。

参数

  • <app-id>:必填。要运行的应用的 ID,来自 get app
  • [message]:用户消息,适用于聊天助手、Chatflow、Agent 和文本生成应用。Workflow 应用会拒绝位置参数形式的消息,因此请用 --inputs 传入其输入。

标志

示例

向聊天助手、Chatflow、Agent 或文本生成应用发送一条消息:
以结构化输入运行一个 Workflow 应用:
为文件类型的输入变量附加一个本地文件:
继续之前的会话:
以 JSON 获取原始响应,供脚本和 Agent 使用:

输出

响应体输出到 stdout。其余内容(提示、进度、错误)均输出到 stderr,从而保持管道和重定向的整洁。聊天助手、Chatflow 或 Agent 应用回复之后,stderr 会携带会话提示:
加上 --stream 后,输出会随服务器的生成而逐步打印。如果应用刚刚重新发布、运行以 HTTP 422 失败,CLI 会清除其应用元数据缓存,并提示再次运行该命令。 错误输出到 stderr。在 -o json 下,它们以带有稳定 code 字段的结构化 JSON 对象形式返回。错误的结构参见 输出格式与退出码

退出码

工作流暂停时

Workflow 和 Chatflow 应用可包含人工介入步骤。当运行到达这一步时,它会暂停而非结束:命令 退出码为 0(暂停不算失败),将暂停信息打印到 stdout,并将一条可直接运行的恢复命令打印到 stderr:
加上 -o json 后,stdout 改为将暂停信息作为一个 JSON 对象输出:
对脚本和 Agent 而言:暂停的运行和完成的运行都退出码为 0,因此不要依据退出码分支。请用 -o json 运行工作流,并检查 stdout 中是否有 "status": "paused"。三个字段决定如何恢复:form_tokenworkflow_run_id,以及(当表单提供不止一个操作时)操作的 id。表单会在 expiration_time(Unix 纪元秒)过期。 当工作流通过电子邮件或其他外部渠道下发其表单时,form_tokennull,该运行无法从 CLI 恢复。

恢复已暂停的工作流

resume app 提交一个已暂停工作流正在等待的表单,随后附加到该运行并打印其输出,方式与 run app 完全一致。

参数

  • <app-id>:必填。来自暂停载荷的 app_id
  • <form-token>:必填。来自暂停载荷的 form_token。Token 仅可使用一次,因此用已消费的 token 恢复会返回错误。

标志

示例

批准一个单操作表单,并提供其输入值:
当表单提供多个操作时,选择其中一个:
从文件读取表单值:

输出

在默认文本输出下,stderr 确认提交,工作流的输出随运行完成打印到 stdout,stderr 确认完成:
恢复后的工作流可能在后续的人工介入节点再次暂停。届时你会得到一个新的暂停载荷,并用新 token 再次恢复。

退出码

导出应用

export studio-app 将应用的完整定义写为一个 DSL YAML 文档,用于版本管理、备份,或 导入 到别处。 对于 Workflow 和 Chatflow 应用,导出返回的是当前草稿,而非 run app 所执行的已发布版本。改用 --workflow-id 可导出指定的已发布版本。聊天助手、Agent 和文本生成应用导出的是已发布版本。

参数

  • <app-id>:必填。要导出的应用的 ID,来自 get app

标志

示例

将应用的 DSL 打印到 stdout:
将其写入文件:
导出指定的已发布版本:
导出时包含密文值:

输出

DSL YAML 文档打印到 stdout:一个 kind: app 头部、一个 version 字段,以及完整的应用定义。加上 --output 后,相同内容会写入文件,并由 stderr 确认:

退出码

导入应用

import studio-app 从一个 DSL YAML 文档创建应用,或用 --app-id 覆盖一个已有应用。 对于 Workflow 和 Chatflow 应用,它会将定义写入应用的草稿。run app 使用的是已发布版本,因此导入后请在 Dify 中发布应用,更改才会生效。

标志

示例

从本地 DSL 文件导入应用:
以不同的名称导入:
用更新后的 DSL 覆盖一个已有应用:
直接从 URL 导入:

输出

所有状态行都输出到 stderr;stdout 保持为空。成功时,stderr 报告新应用的 ID:
如果 DSL 是为不同的 DSL 版本编写的,CLI 会为你确认,并在 stderr 上标注两个版本。 如果应用依赖工作空间中尚未安装的插件,导入后 stderr 会在 Missing plugin dependencies 下列出它们。使用该应用前请先安装它们。

退出码

Last modified on July 16, 2026