本文档由 AI 自动翻译。如有任何不准确之处,请参考 英文原版。每项应用操作对应一条命令,且都接受 全局标志。
difyctl get app列出应用describe app显示单个应用的详情和输入run app调用单个应用resume app继续一个 因人工介入而暂停 的工作流export studio-app/import studio-app将应用导出/导入为 DSL 文件
列出应用
参数
[app-id]:可选。要显示的单个应用的 ID。省略则列出工作空间中的所有应用。
标志
示例
列出工作空间中的应用:输出
默认表格:
退出码
完整方案参见 输出格式与退出码。
查看应用
describe app 正是用来回答它们的:这是什么类型的应用、它的 API 是否已启用、它需要哪些输入。
参数
<app-id>:必填。要查看的应用的 ID。
标志
示例
运行前先查看应用:--inputs:
输出
默认文本视图:
Description: 行,应用为 agentic 时会出现 Agent: true 行。
在 -o json 下,这三个键分别是:
info:上方展示的元数据字段,从Name到Service APIparameters:上方展示的参数块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 或文本生成应用发送一条消息:输出
响应体输出到 stdout。其余内容(提示、进度、错误)均输出到 stderr,从而保持管道和重定向的整洁。聊天助手、Chatflow 或 Agent 应用回复之后,stderr 会携带会话提示:
--stream 后,输出会随服务器的生成而逐步打印。如果应用刚刚重新发布、运行以 HTTP 422 失败,CLI 会清除其应用元数据缓存,并提示再次运行该命令。
错误输出到 stderr。在 -o json 下,它们以带有稳定 code 字段的结构化 JSON 对象形式返回。错误的结构参见 输出格式与退出码。
退出码
工作流暂停时
Workflow 和 Chatflow 应用可包含人工介入步骤。当运行到达这一步时,它会暂停而非结束:命令 退出码为 0(暂停不算失败),将暂停信息打印到 stdout,并将一条可直接运行的恢复命令打印到 stderr:-o json 后,stdout 改为将暂停信息作为一个 JSON 对象输出:
-o json 运行工作流,并检查 stdout 中是否有 "status": "paused"。三个字段决定如何恢复:form_token、workflow_run_id,以及(当表单提供不止一个操作时)操作的 id。表单会在 expiration_time(Unix 纪元秒)过期。
当工作流通过电子邮件或其他外部渠道下发其表单时,form_token 为 null,该运行无法从 CLI 恢复。
恢复已暂停的工作流
resume app 提交一个已暂停工作流正在等待的表单,随后附加到该运行并打印其输出,方式与 run app 完全一致。
参数
<app-id>:必填。来自暂停载荷的app_id。<form-token>:必填。来自暂停载荷的form_token。Token 仅可使用一次,因此用已消费的 token 恢复会返回错误。
标志
示例
批准一个单操作表单,并提供其输入值:输出
在默认文本输出下,stderr 确认提交,工作流的输出随运行完成打印到 stdout,stderr 确认完成:
退出码
导出应用
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 文件导入应用:输出
所有状态行都输出到 stderr;stdout 保持为空。成功时,stderr 报告新应用的 ID:Missing plugin dependencies 下列出它们。使用该应用前请先安装它们。