跳到主要内容

CLI 参考

可执行命令为 el。业务结果输出 JSON;帮助信息与参数错误使用 argparse 的命令 help。全局选项必须位于资源子命令之前。

el [GLOBAL_OPTIONS] {task,job,profile} COMMAND

Global options​

选项默认 / 行为
--api-url URL平台地址,配置优先级见 Configuration
--workspace-id ID可选;省略由平台选择默认已授权 workspace
--repository-root PATH本地显式仓库顶层
--repository-commit COMMIT本地固定 commit;通常可省略,默认本地 main
--work-dir PATH本地执行与产物目录
--help输出帮助并退出 0

远程地址不能与本地 repository / work-dir 或 Profile 管理组合。Key 只从 ENVLOOP_API_KEY 读取,没有 --api-key 参数。

Task commands​

命令行为
el task submit PATH提交两文件目录;兼容别名 el submit task PATH
el task submit --runner NAME --dataset NAME --task-id ID从 APIServer catalog 提交单个 Dataset Task;不传 PATH
el task status TRIAL_ID查询运行状态
el task result TRIAL_ID获取 stdout、stderr、outputs,不自动等待
el task snapshot TRIAL_ID获取冻结输入快照
el task stop TRIAL_ID请求停止;由后端决定支持情况

Task submit options​

选项含义
--runner NAME[@VERSION] / --dataset NAME[@VERSION]平台解析 runner 和 Dataset;与本地目录互斥
--task-id IDrunner 提交必填;选择 Dataset 中单个 Task
--namespace / --config / --split / --revisionrunner 的 Dataset 选择
--profile-id ID平台不可变 Profile ID;与 --profile 互斥
--job-id ID / --tag TEXTJob 归属与运行标签
--queue-id ID / --priority INT默认 default / 0;较大的 priority 先派发等待中的任务
--profile NAME[@VERSION]命名 Profile;省略版本须有显式默认
--profile-sha256 SHA256校验规范化 ProfileSpec 哈希
--request-id ID幂等请求标识;省略自动生成
--seed INT运行 seed 覆盖,需 Task 自行使用
--timeout-sec INT任务执行期限覆盖
--command SCRIPT覆盖 Runner 默认 shell 脚本,保留多行文本;最多 65536 UTF-8 字节、非空、无 NUL
--executor {local,docker,sandbox}执行后端选择,取决于平台可用能力
--provider {e2b,e2b-local}Sandbox provider 选择
--wait显式等待 HTTP 完成;本地提交总是等待

正常运行无需 --command:Runner 的 execution.command 为可选默认脚本,省略时从 execution.entrypoint 推导 bash main.sh / python main.py。提交覆盖 > Runner 默认脚本 > 入口推导;平台冻结有效命令,客户端保留参数缺省。

没有 task logs/cancel/wait 子命令。wait 的客户端期限不等于 --timeout-sec 的执行期限。

Job commands​

命令行为
el job submit --dataset NAME[@VERSION]Dataset Job 提交;兼容位置参数形式,两种形式只能选一
el job status JOB_ID作业状态详情
el job result JOB_ID聚合结果,不自动等待
el job stop JOB_ID请求取消成员执行
el job list [--limit INT] [--cursor CURSOR]分页;limit 默认 25

Job submit options​

选项默认 / 含义
--dataset NAME[@VERSION]数据集逻辑名称,可带精确作者版本
--runner NAME[@VERSION]APIServer catalog runner,版本省略由平台解析并冻结
--profile-id ID平台不可变 Profile ID;与 --profile 互斥
--job-id ID可选调用方指定的 Job ID
--tag TEXT可选运行标签
--queue-id ID / --priority INT默认 default / 0;数值越大先派发等待中的任务,不抢占运行任务
--namespace NAME为短名补 namespace
--config NAME使用指定 subset;省略用声明默认
--split NAME一个完整 split;省略为 config 全部分组
--revision REFGit branch/tag/commit,须匹配平台绑定快照
--attempts INT每个成员尝试次数,默认 1
--request-id ID重试保留首次冻结的选择
--profile NAME[@VERSION]命名 Profile
--seed INTseed 覆盖
--timeout-sec INT执行期限覆盖
--command SCRIPT所有成员使用同一 shell 脚本覆盖;校验规则同 Task
--executor {local,docker,sandbox}平台执行后端
--provider {e2b,e2b-local}Sandbox provider
--wait等待 HTTP Job 终态;本地提交总是等待

Job submit 没有 --profile-sha256;该选项只在 Task submit 提供。Dataset 默认选择由平台固定,不猜 latest,也不支持 split 切片表达式。

命名 runner 请求需要支持 catalog 的 APIServer。LocalServer / JobMaster 未提供 catalog 时明确拒绝;客户端不自动下载内容或执行 runner。

Profile commands​

仅本地 registry 管理,需要安装 EnvPlatform 并指定 repository-root。

命令选项 / 行为
el --repository-root PATH profile init显式初始化 registry,不替用户初始化 Git
... profile put NAME VERSION --file FILE导入完整 ProfileSpec JSON,name/version 必须匹配
... profile get NAME [--version VERSION]获取指定版本或显式默认
... profile list--name、--include-archived、--limit(默认 50)、--cursor
... profile set-default NAME VERSION可选 --expected-version 做并发检查
... profile archive NAME VERSION归档版本
... profile export NAME VERSION输出 ProfileSpec JSON,可重定向到文件

表中 ... 代表 el --repository-root PATH。没有 CLI profile import 子命令,文件导入用 put。

Exit codes​

code含义
0命令成功,包括取消成功;不表示 verifier reward=1
1API / 执行错误或等待失败
2参数错误,stderr 输出对应完整 help

响应中 status 为 failed 时 CLI 退出 1,包括查询或等待返回的失败状态。HTTP 默认只等待接受,后续执行失败需查询状态确认。Task submit --wait 输出结果字典,本地 Task 提交也采用该行为。