从脚本运行动态工作流
向已定义工作流传入 JSON 参数,解析结果并检查专用退出码。
This page has not been translated into English yet. The original Chinese version is shown below.
copilot workflow run WORKFLOW-NAME 用于直接执行已经定义的 dynamic workflow,等待它完成或停止。该入口与自由提示 -p 不同:传入的是工作流接受的参数,并产生专门的运行状态记录。
参数输入
copilot workflow run WORKFLOW-NAME \
--args @workflow-input.json \
--silent --output-format json--args 接受内联 JSON 或 @ 前缀的 JSON 文件路径,不从 stdin 读取参数。应先配置认证和所需工具权限,因为此命令不会显示权限批准提示。
支持 --model、--allow-tool、--allow-url、--add-dir 等共享选项;不支持 -p、-i、--agent、--fleet、--autopilot、--resume、--continue 等提示和会话模式选项。
项目扩展只从可信目录加载,或通过 GITHUB_COPILOT_PROMPT_MODE_EXTENSIONS=true 显式为本次调用允许。该变量允许加载项目代码,不授予工具权限,只应对可信项目启用。
JSONL 结果
--output-format json 在 stdout 输出 JSONL。--silent 可抑制过程事件;结束或停止后的最终记录使用 type: workflow.result。
| 字段 | 含义 |
|---|---|
data.name | 工作流名称 |
data.run.runId | 运行 ID |
data.run.status | completed、halted、paused、cancelled 或 error |
data.run.result | 返回值;使用 result-file 时省略 |
data.run.pauseInfo、reason、error、failure | 可用时说明停止原因 |
data.resultFile | 只有成功写入结果文件后才存在 |
启动前错误或中断可能没有最终 JSON 记录。即使 silent,未完成运行的错误和诊断仍写到 stderr。
结果文件
--result-file PATH 只把返回值作为 JSON 写入文件。失败、暂停或中断不会覆盖旧结果文件;成功但无返回值的运行也不会创建结果文件。
因此不能仅根据“文件存在”判断本次成功。最终状态是 completed 也不保证结果文件保存成功,需要同时检查退出码。
专用退出码
| 退出码 | 含义 |
|---|---|
0 | 工作流成功完成,若需要写结果也已成功;无返回值时可无文件 |
1 | 未完成、暂停、限额、取消、失败,或一般命令 / 结果保存错误 |
2 | 找不到工作流,或参数读取、JSON 解析、输入校验失败 |
130 | SIGINT / SIGTERM 中断 |
这些是 workflow run 的约定,不能直接扩展为普通 Copilot CLI 所有命令的退出码表。
交互式创建、共享、监控和恢复见 Dynamic workflows。CLI 当前需启用实验功能;会话扩展需先放入个人/项目扩展或插件,才能由新终端调用发现。--result-file 的相对路径以启动命令的目录为基准,文件只含返回值,不含进度和运行元数据。