> 本 SKILL 是 omics-task-skill 的单合集收窄版:仅服务于 CD-GPT Collection (Nextflow) 这一个公共应用合集。
> 所有命令拼接走 scripts/omics_cli.py,统一参数与输出格式。
> 能力范围严格 = omics-platform-cli 7 命令 ∩ 仅运行 CD-GPT Collection 合集下的子应用;任何越界都视为越权。
| 字段 | 值 |
|---|---|
| ------------------------ | -------------------------------------- |
| 合集名称 | CD-GPT Collection (Nextflow) |
| 合集 AppId(锁定) | 5e3b30ee-85a2-4ad7-80c5-fa2f0ecb0d0c |
| PublicAppId | publicapp-nf-cdgpt-collection |
| 应用类型 | NEXTFLOW |
| 分组类型 | APP_COLLECTION(合集,含多个子应用) |
| 标签 | AI 模型 |
应用简介:CD-GPT 是一种生成式生物基础模型,旨在捕捉生物系统中复杂的全系统分子互作关系。
通过对 DNA、RNA 及蛋白质序列等全分子层级数据进行预训练,能高效处理一系列下游任务。
本合集核心子流程:
> ⚠️ 合集(APP_COLLECTION)本身不能直接 omics run——必须先展开找到具体子应用 AppId,再用子应用 AppId 跑。
> 这是平台规则;本 SKILL 流程已内化此约束。
本 SKILL 只能调用以下 7 条 CLI 一级命令的收窄子集:
login whoami config list run status debug
> 注意:omics list public-apps 仅允许以 --parent-app 5e3b30ee-85a2-4ad7-80c5-fa2f0ecb0d0c 形态调用,
> 用于展开本合集的子应用清单;禁止不带 --parent-app 调用(那会列出全平台所有公共应用,越界)。
>
> omics list apps 整体禁用,但仅允许在导入前同名检查这一处调用。
omics run --wdl (本地 WDL)omics run --app (项目内已有应用)omics run --public-app <非本合集子应用 AppId>omics run --public-app 5e3b30ee-85a2-4ad7-80c5-fa2f0ecb0d0c(合集本身不可直接 run)omics run --public-app ... --parent-app 调 list public-apps——本 SKILL 不需要让用户在全平台公共应用里挑。app list / app templates / import 等都已废弃,调用必失败。SQL、文件系统写入等任何旁路通道。
导入是 omics run --public-app 的内部步骤,必须随 run 一起发生。
omics login / omics config set 由用户在本机终端执行,SKILL 永远不主动调(OAuth 浏览器回调 + 交互式输入只能在用户本机完成)。
SKILL 触发 omics run ... 前必须按 §5.2 模板完成二次确认:
| 命令 | 是否需要确认 |
|---|---|
| --------------------------------------------------------------------------------- | ------------------------- |
whoami / status / debug / config show / clear / list public-apps --parent-app ... / list apps(同名检查) | 免确认(只读 / 本地操作) |
run | 必须 |
login / config set | 不调,引导用户本机执行 |
| 退出码 | 含义 | SKILL 处理 |
|---|---|---|
| ------ | -------- | ------------------------------------------------------------------------------------------ |
0 | 成功 | 解析 stdout |
1 | 业务错误 | 把 stderr 转述给用户。如果是"未配置"错误,按 Step 2 引导用户去本机跑 omics config set |
2 | 鉴权失败 | 按 Step 1 引导用户去本机跑 omics login,不要循环重试 |
stderr 中以 ❌ 开头的行为可读错误描述,可直接转述。
> 另外:scripts/omics_cli.py 启动时若在 PATH 与 OMICS_CLI_PATH 都找不到 omics 可执行文件,
> 会以 FileNotFoundError 退出(非 0/1/2 业务退出码),SKILL 必须按下文 Step −1 引导用户安装 CLI,
> 不要自动尝试下载、不要 pip/brew/curl 替用户装。
任何业务命令之前,SKILL 必须先确认本机已安装 omics-platform-cli。
最简单的方式是直接尝试 omics whoami / omics version:
python3 scripts/omics_cli.py whoami / omics whoami 抛出 FileNotFoundError、 shell 提示 command not found: omics、Windows 提示 'omics' 不是内部或外部命令,
或者 stderr 出现 未找到 'omics' 命令 —— 都视为 CLI 未安装。
> 检测到本机尚未安装 omics-platform-cli,无法继续。
>
> 请前往下载页,按页面提供的安装脚本和使用指南完成安装:
> https://cnb.cool/tencenthealthcareomics/omics-platform-cli
>
> 安装完成后回到我这里告诉我「已安装 / done」,我会验一次 omics version 再继续。
强约束:
curl / wget / brew / pip / npm 等任何方式自动下载或安装 CLI; 也不要自行编写解压、加 PATH、导 OMICS_CLI_PATH 之类的操作步骤——下载页已提供官方的安装脚本和使用指南,按页面执行即可。
python3 scripts/omics_cli.py ... 命令(CLI 不存在时这些命令必失败)。omics version 确认通过后才进入 Step 0;若仍失败,仅需再次把下载页链接给用户,让其参照页面指南排查,不要替用户猜路径。
任何业务命令前必须先验证两个条件:
┌──────────────────────────┬──────────────────────────────┐
│ 检查项 │ 命令 / 期望 │
├──────────────────────────┼──────────────────────────────┤
│ 已登录 │ omics whoami → exit 0 │
│ 已配置 region/proj/env │ omics config show -o json │
│ │ → exit 0 且字段都不为空 │
└──────────────────────────┴──────────────────────────────┘
python3 scripts/omics_cli.py whoami
退出码 0 → 进入 Step 0.2;退出码 2 → 跳到 Step 1(登录引导)。
python3 scripts/omics_cli.py config show -o json
判定:
复述当前配置给用户:
> 当前配置:地域 ap-guangzhou,项目 prj-xxx (xxx),环境 env-yyy (yyy),COS Bucket my-bucket。如需切换请告诉我。
SKILL 不要自己调 omics login。 一旦 whoami 返回退出码 2 或任何业务命令报"鉴权失败 / session 过期 / 401",立即给用户下面这段话:
> 检测到当前会话的登录状态已失效或不存在。
>
> 请在你本机的终端中执行下面这条命令完成授权:
>
> ```bash
> omics login
> ```
>
> 完成后回到我这里告诉我「已登录」,我会继续后续操作。
强约束:
omics login 子进程whoami 等待用户登录localhost:18000 必须落到用户本机的 CLI 进程上)收到用户「已登录 / done」类肯定答复后,重新跑一次 omics whoami 确认 → exit 0 才进入 Step 0.2。
SKILL 不要自己调 omics config set。 它是交互式命令,会逐项提示输入 region/projectId/environmentId/bucketName,
SKILL 跑在远程 agent 里无法替用户输入;同时 SKILL 也不应猜测或编造这三个 ID。
一旦 omics config show 返回退出码 1,立即给用户下面这段话:
> 检测到本地尚未完成 region / projectId / environmentId 的配置。
>
> 请在你本机的终端中执行下面这条命令完成配置:
>
> ```bash
> omics config set
> ```
>
> CLI 会依次提示输入 Region → ProjectId → EnvironmentId → COS BucketName。
> COS BucketName 为必填项。
>
> 完成后回到我这里告诉我「已配置」,我会继续后续操作。
收到用户「已配置 / done」类肯定答复后,重新跑一次 omics config show -o json 确认 → exit 0 + 字段齐全才进入业务流程。
| 用户说 | CLI 命令 | 场景 |
|---|---|---|
| -------------------------------------------- | ------------------------------------------------------------------------------------------------ | -------- |
| 「我没装 CLI / 提示 command not found」 | 告诉用户去 https://cnb.cool/tencenthealthcareomics/omics-platform-cli 下载安装,SKILL 不调 | Step −1 |
| 「我登录了吗 / 当前账号是谁」 | omics whoami | Step 0.1 |
| 「我没登录 / session 过期了」 | 告诉用户在本机终端跑 omics login,SKILL 不调 | Step 1 |
| 「现在用的是哪个项目和环境」 | omics config show -o json | Step 0.2 |
| 「配下默认项目 / 切到 xx 项目」 | 告诉用户在本机终端跑 omics config set,SKILL 不调 | Step 2 |
| 「清掉本地配置」 | omics config clear | — |
| 「跑 CD-GPT」「做翻译生成」「做反向翻译」 | 先 §3 展开子应用清单 → 用户挑子应用 → §4 同名检查 → §5 run | §3~5 |
| 「CD-GPT 里有哪些子流程」 | omics list public-apps --parent-app 5e3b30ee-85a2-4ad7-80c5-fa2f0ecb0d0c -o json | §3 |
| 「跑 CD-GPT 的某子应用,参数我自己改过」 | omics run --public-app <子应用AppId> --public-app-name | §5 |
| 「看任务进度」「查批次状态」 | omics status -o json | §6 |
| 「rg-xxx 跑完了吗 / 看子任务」 | omics status | §6 |
| 「rg-xxx 哪些子任务挂了」 | omics debug | §7.1 |
| 「这个失败子任务到底为啥挂的」 | omics debug --run | §7.2 |
| 「钻下 plan-xxx 这个作业的 stderr」 | omics debug --run | §7.3 |
| 「列下平台公共应用」「跑别的应用」 | ❌ 拒绝——本 SKILL 仅服务 CD-GPT Collection;建议用户改用 omics-task-skill | — |
> ❌ 用户说「跑本地 WDL」「跑别的公共应用 X」「跑项目里那个 app-xxx」「跑 CD-GPT 合集本身不挑子应用」:
> 本 SKILL 必须拒绝,引导用户:
> 「我只能帮你跑 CD-GPT Collection 下的某一个具体子应用;如需运行其他应用,请使用 omics-task-skill。」
合集(APP_COLLECTION)本身不可直接 omics run,必须先展开找到具体子应用。
python3 scripts/omics_cli.py list public-apps \
--parent-app 5e3b30ee-85a2-4ad7-80c5-fa2f0ecb0d0c -o json
> ⚠️ --parent-app 值固定为 CD-GPT Collection 的 AppId,不接受替换。
JSON 关键字段(每个子应用):
AppId:用于 omics run --public-app <子应用AppId>AppName:用于 --public-app-name 兜底(合集子应用必须显式传名,否则 CLI 报错)AppType:本合集应固定为 NEXTFLOWAppDesc:简要描述NextflowVersion[]:候选 NF 版本列表(必须从中挑一个)AppTags[]> CD-GPT Collection 包含以下子应用,请挑一个具体的子流程:
>
> ① ) —
> ② ) —
> ...
>
> 你想跑哪一个?(请直接告诉我编号或 AppName)
约束:
Apps[].AppId,不接受用户自填的其它 AppId用户挑定后,SKILL 内部记录:
:将作为 --public-app 入参:将作为 --public-app-name 默认候选(也是同名检查的 candidateName):从该子应用的 NextflowVersion[] 列表中挑一个(多个时让用户挑,不要替选)进入 omics run --public-app ... 之前,SKILL 必须先在 config 项目里检查是否已存在同名应用,避免:
CreateApplication 因 Name 唯一约束直接报错;<原名>-1、<原名>-cli)替用户决策,污染应用列表。> 本 SKILL 整体禁用 omics list apps,但仅允许在导入前同名检查这一处调用,
> 其结果只能用于"是否已有同名应用"的二选一判断,禁止用于让用户挑别的应用运行。
python3 scripts/omics_cli.py list apps -o json
在返回 JSON 的 Applications[] 中查找 Name == (或用户提供的自定义 candidateName):
| 命中情况 | SKILL 行为 |
|---|---|
| -------------- | ------------------------------------------------------------------------------------------------------------------ |
| 0 条命中 | 用 作为 --public-app-name(合集子应用必传) |
| ≥ 1 条命中 | 必须停下来,把命中条目的 ApplicationId / Name / Type / VersionCount / CreateTime 列给用户,二选一询问 |
> 项目里已经存在一个叫 的应用:
>
> - ApplicationId:app-xxxx
> - Type:NEXTFLOW,版本数:3,创建时间:2026-05-20 10:11
>
> 我不会自动改名,请你二选一:
>
> A. 重命名后导入(推荐):给一个新的导入名,比如 /
> → 我会用你给的新名字重新导入这个子应用并运行。
>
> B. 终止本次运行:本 SKILL 仅服务于公共应用 CD-GPT Collection 的子应用导入与运行;
> 如需直接复用项目里已有的 app-xxxx 应用,请使用 omics-task-skill(form C:omics run --app app-xxxx)。
>
> 你选哪个?或者直接告诉我新名字。
> 强约束:
> - SKILL 不要自动给候选名加 -1 / -2 / -cli / 时间戳之类的后缀
> - 如果用户在本 SKILL 内选 B(复用已有应用),必须拒绝——本 SKILL 不能调 omics run --app <已有 AppId>,请引导用户去 omics-task-skill
omics run 在本 SKILL 中只接受以下命令骨架:
omics run --public-app <selectedAppId> \
--public-app-name <importedName> \
--nf-version <selectedNfVersion> \
[--input <path>] \
[--name <runName>] \
-o json
> - --public-app 值必须来自 §3 展开本合集的 Apps[].AppId,不接受其它 AppId。
> - --nf-version 值必须来自该子应用的 NextflowVersion[] 候选;NEXTFLOW 应用必传,CLI 否则报 MISSING_NF_VERSION。
> - --public-app-name 必须显式传入(合集子应用没有 CLI 兜底)。
> - --input 仅在用户明确要求自定义参数时显式传入(覆盖自动 InputTemplate)。
CLI 内部链路:ImportCommonApplication → DescribeInputTemplates → GetInputTemplateFile → baseline+override → RunApplication。
> ⚠️ 合集子应用的导入路径:omics run --public-app <子应用AppId> 会直接把子应用 AppId 作为 CommonAppUuid 调 ImportCommonApplication,
> 不需要也不应该传合集 AppId。
> service 端 DescribeCommonApp 默认强制 f_parent_app_id='' 过滤,所以单独探测元信息可能查不到子应用——这是正常现象。
> 如果导入失败提示"AppId 不存在",第一时间核对:传入的是不是合集自身 AppId?应当传 §3 展开后的子应用 AppId。
--public-app-name:用户原话 / 兜底--nf-version:让用户从 NextflowVersion[] 挑(多个时不要替选)```bash
python3 scripts/omics_cli.py run --public-app
--public-app-name
```
PARAM_MERGE_FAILED:按 §5.4 处理。--input 覆盖自动模板:```bash
python3 scripts/omics_cli.py run --public-app
--public-app-name
```
向用户汇总后等"确认/继续/OK/y"再执行。
即将运行任务,请确认:
┌──────────────────────────────────────────────────┐
│ 形态 : 公共应用(form B,自动模板) │
│ 来源合集 : CD-GPT Collection │
│ 子应用 : <selectedAppName> │
│ AppId : <selectedAppId> │
│ AppType : NEXTFLOW │
│ NF 版本 : <selectedNfVersion> │
│ 导入后命名 : <importedName> │
│ 项目 : prj-yyy (..., ap-guangzhou) ← config│
│ 环境 : env-zzz (...) ← config│
│ 参数模板 : 自动取该应用第一个 InputTemplate │
│ 运行名称 : <Name> │
└──────────────────────────────────────────────────┘
完整命令:
omics run --public-app <selectedAppId> \
--public-app-name <importedName> \
--nf-version <selectedNfVersion> \
--name run-1 -o json
确认无误请回复「确认 / 继续 / y」;如需自定义参数请告诉我(可改走 --input 模式)。
| 用户回复 | SKILL 行为 |
|---|---|
| --------------------------------------------------------------- | ------------------------------------------ |
y / yes / 确认 / 继续 / OK / 是 / 执行 / 开始跑 | 调用 cli.execute(...) |
n / no / 取消 / 等等 / 先别 | 终止流程,等待用户进一步指示 |
| 任何含修改意图的句子("改下 X" / "把 Y 换成 Z") | 解析修改意图 → 重拼命令 → 重走确认 |
| 模糊回复("嗯" / "好" / "可以" / "试试") | ⚠️ 不算肯定 → 再次明确询问"是否执行 y/N?" |
| 用户改口"换一个子应用" | 回到 §3 重新展开 / 让用户重选 |
> CLI 的 omics run 内部按 final = baseline + override 合并参数 JSON:
> - baseline = WDL/NF 中显式声明的默认值(ValidateApplication.Inputs[].Default)
> - override = form B 默认自动取该应用第一个 InputTemplate;用户给 --input 时则替换
| 场景 | SKILL 行为 |
|---|---|
| -------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
omics run 直接 exit 0 + 输出 RunGroupId | 一切顺利,转述结果给用户即可 |
stderr 出现 ❌ 参数模板校验失败 或 JSON 输出 Error: PARAM_MERGE_FAILED | 解析其中的 Report.MissingRequired / TypeErrors / ExtraFields,把缺失字段及类型告诉用户;用户给值后 SKILL 写入本地 run.json 再 --input 重跑 |
JSON 报错的关键字段:
Error:固定为 "PARAM_MERGE_FAILED"ApplicationId / WorkflowName:定位上下文Specs[]:每项 { Name, Optional, TypeName, Default }Baseline / UserOverride / FinalParsed:合并各阶段快照Report.MissingRequired[] / EmptyRequired[] / ExtraFields[] / TypeErrors[]PartialSkeleton:CLI 已拼好的"可保存即用"的 JSONHint[]:CLI 给的下一步重跑命令模板典型话术:
> 跑这次任务时 CLI 已经把 NF 的默认值和模板拼好,但还有 N 个必填项缺值:
>
> - :File(必填)
> - :String(translation / reverse_translation 等,必填)
>
> 请把这些值告诉我,或者直接给我一份本地 JSON 路径,我帮你按 --input 传回去重跑。
| 错误 | 处置建议 |
|---|---|
| ----------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
参数模板校验失败 / PARAM_MERGE_FAILED | 解析 Report.MissingRequired / TypeErrors,按 §5.4 引导用户给值后通过 --input 传回重跑 |
MISSING_NF_VERSION | 让用户从 §3 展开结果中该子应用的 NextflowVersion[] 列表挑一个;不要替选 |
公共应用 X 是一个合集 / AppId 不存在 | 立即核对:--public-app 是否传成了合集 AppId 而非子应用 AppId?合集 AppId(5e3b30ee-...)不可作为 run 的 --public-app |
环境 X 不可用 / 不存在 | 提示用户重跑 config set 或去控制台检查 |
环境 X 下未绑定默认缓存卷 | 提示用户去控制台为该环境配置默认 Volume |
Result=CONFLICT 反复出现 | CLI 内部已尝试回退;说明应用被并发修改,提示用户等待或换新名重新导入 |
| 鉴权失败(exit 2) | 不重试,引导用户在本机跑 omics login |
# 列批次(固定走 config 项目)
python3 scripts/omics_cli.py status -o json
# 列子任务
python3 scripts/omics_cli.py status rg-xxx -o json
> status 不支持跨项目查询。如需查别的项目,先重新 omics config set。
JSON 关键字段:
RunGroupId / Name / Status / TotalRun / RunStatusCounts / ExecutionTimeRunUuid / RunGroupId / UserDefinedId / Status / ExecutionTime / ErrorMessage紧凑总结:最近 N 个 CD-GPT 批次:✅ 已完成 X / ❌ 已失败 Y / 🔄 运行中 Z。
> ⚠️ omics status 列出的是当前项目所有批次(不限于 CD-GPT),SKILL 转述时
> 应优先突出 CD-GPT 相关批次,但不强制过滤——这是平台原生能力。
触发条件:omics status 看到子任务 Status=Failed / Aborted / Error,或用户问「rg-xxx 为啥挂了」。
工具:omics debug 三段式(CLI 端只取证,不做规则匹配;症状判断由 SKILL 模型对照
references/runtime_error_kb.md 决定)。
python3 scripts/omics_cli.py debug <runGroupId> -o json
输出关键字段:
TotalRuns / FailedCountFailedRunUuids[]Runs[]:完整子任务列表SKILL 行为:
FailedCount == 0 → 告诉用户"该批次没有失败子任务,可能是运行中或已成功"FailedCount == 1 → 直接进入段 2FailedCount > 1 → 询问用户先看哪一个,或主动取前 1~2 个钻一遍找共性python3 scripts/omics_cli.py debug --run <runUuid> -o json
输出关键字段(详见 references/cli_commands.md debug 段):
Status:顶层 RunMetadata(RunType / Status / JobId / ErrorMessage / Input / Output / Command)Calls[]:cromwell call 元数据JobLogs[]:CLI 已自动钻取最多 5 个失败 call 的真实 stderr 与 K8s 事件Stderr / StderrTruncated:实际日志正文(已截尾,头 4KB + 尾 24KB)PodEvents[]:保留 FailedMount(前端会过滤但 AI 排障必须看)症状识别流程:
Status.ErrorMessageJobLogs[].Stderr 末尾JobLogs[].PodEventsreferences/runtime_error_kb.md 决策快速表python3 scripts/omics_cli.py debug --run <runUuid> --job <jobId> -o json
输出与段 2 同结构,但 Calls / JobLogs 都按 JobId 过滤。
omics debug —— 用户问"为啥挂了"才用OOMKilled 不要直接改 memory,要先告诉用户"目测内存不足"并询问是否调整omics run 重发 —— 本 SKILL 的重发仍然只能走 form B + 本合集子应用:```bash
omics run --public-app
--public-app-name
```
⚠️ 严禁本 SKILL 用 --app <已导入的 ApplicationId> 复用——那会越界进入 form C,请引导用户去 omics-task-skill。
FileNotFoundError / command not found: omics / 未找到 'omics' 命令 →告知用户去 https://cnb.cool/tencenthealthcareomics/omics-platform-cli 下载页按页面安装脚本和使用指南安装,SKILL 不自动装;
omics version 验证 → 通过后进入场景 A。whoami → 退出 2 → 告知用户去本机终端跑 omics login,等用户回执「已登录」whoami ✓ → 跑 config show → 退出 1 → 告知用户去本机终端跑 omics config set,等用户回执「已配置」config show ✓ → 进入业务流程whoami ✓ + config show ✓ → 复述当前配置list public-apps --parent-app 5e3b30ee-... -o json → 把子应用清单转述给用户cdGPT Translation generation)→ 记录 / / list apps -o json,匹配 Name == ```bash
python3 scripts/omics_cli.py run --public-app
--public-app-name
```
RunGroupId → 提示 omics status /tmp/run.json--input /tmp/run.json)run --public-app --input /tmp/run.json 请使用通用版的 omics-task-skill。"
omics login → 等用户回执CD-GPT Collection 子应用支持 GPU 资源(T4 及以上),可通过用户的 --input run.json 内 nextflow config 段配置:
process.resourceLabels = ["gpuType":"T4", "gpuCount": "1"]> SKILL 不主动替用户决定 GPU 型号与数量;如用户问"用哪个",告知候选并询问其偏好与数据规模。
详细参数与状态枚举:references/cli_commands.md。
症状识别知识库:references/runtime_error_kb.md。
边界契约:CONTRACT.md。
scripts/omics_cli.py 也可作为 Python 模块导入:
from scripts.omics_cli import OmicsCLI
cli = OmicsCLI()
# ✅ 检查类
cli.execute(cli.build_whoami())
cli.execute(cli.build_config_show(output="json"))
# ✅ 唯一允许的 list public-apps 形态:展开本合集
cli.execute(cli.build_list_public_apps(
parent_app="5e3b30ee-85a2-4ad7-80c5-fa2f0ecb0d0c",
output="json",
))
# ✅ 仅在导入前同名检查时使用
cli.execute(cli.build_list_apps(output="json"))
# ✅ 唯一允许的 run(AppId 来自上面合集展开后的子应用 AppId)
cli.execute(cli.build_run(
public_app="<合集展开后的子应用AppId>",
public_app_name="<importedName>",
nf_version="<候选 NF 版本>",
name="run-1",
output="json",
))
# ✅ 用户自定义参数时
cli.execute(cli.build_run(
public_app="<合集展开后的子应用AppId>",
public_app_name="<importedName>",
nf_version="<候选 NF 版本>",
input_json="./run.json",
output="json",
))
# ❌ 禁止:以下任何形态在本 SKILL 中均不允许
# cli.execute(cli.build_run(wdl="./hello.wdl", ...)) # form A
# cli.execute(cli.build_run(app="app-xxx", ...)) # form C
# cli.execute(cli.build_run(public_app="5e3b30ee-85a2-4ad7-80c5-fa2f0ecb0d0c", ...)) # 合集本身不可 run
# cli.execute(cli.build_run(public_app="cm-other-collection-xxx", ...)) # 其它合集
# cli.execute(cli.build_list_public_apps(output="json")) # 不带 parent-app 列全平台
# ✅ 状态
cli.execute(cli.build_status(output="json"))
cli.execute(cli.build_status(run_group_id="rg-xxx", output="json"))
# ✅ debug 三段式
cli.execute(cli.build_debug(run_group_id="rg-xxx", output="json"))
cli.execute(cli.build_debug(run_uuid="uuid-xxx", output="json"))
cli.execute(cli.build_debug(run_uuid="uuid-xxx", job_id="plan-xxx", output="json"))
环境变量 OMICS_CLI_PATH 可覆盖 CLI 可执行文件路径。
共 2 个版本