Skip to content
FunCoding

Search

Search docs, Skills and MCP

从脚本运行动态工作流

向已定义工作流传入 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.statuscompleted、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 解析、输入校验失败
130SIGINT / SIGTERM 中断

这些是 workflow run 的约定,不能直接扩展为普通 Copilot CLI 所有命令的退出码表。

交互式创建、共享、监控和恢复见 Dynamic workflows。CLI 当前需启用实验功能;会话扩展需先放入个人/项目扩展或插件,才能由新终端调用发现。--result-file 的相对路径以启动命令的目录为基准,文件只含返回值,不含进度和运行元数据。