arkcli agent:管理 ARK Managed Agents,包括 Agent / Skill / Env / Session / File / Memory Store / Vault / MCP OAuth。控制面优先走 ForTop/OpenTOP,Session 运行时和 Files 走数据面直联。
日本語の概要は準備中です。原文の説明を表示しています。
火山方舟 Ark 图片/视频生成入口:支持 profile 默认资源与临时 API Key/Base URL/Endpoint;显式 Endpoint 不受当前 plan profile 误导。图片同步返回,视频异步轮询。
インストール方法を見るインストールする前に、エージェントに与えられる指示の中身を確認できます。
CRITICAL — 开始前 MUST 先用 Read 工具读取 ../arkcli-shared/SKILL.md(认证闸门、模型查找回退、共享安全规则)。
CRITICAL — 真实生成是工作流,不是猜一条命令:按 Step 1 → Step 2 → 必要时 Step 2.5 → Step 3 执行。用户只要求 --dry-run 时例外:全程本地,不先跑在线 Resources / Models / Usage 准入;在线未知项保留 unresolved。执行前务必读 references/arkcli-gen.md。
CRITICAL — 用户显式给出 API Key / Base URL / Endpoint 时,MUST 先读 ../arkcli-shared/references/execution-context.md。显式 Endpoint 的权威元数据优先于当前 profile。
火山额外约束:不要因为 active profile 是 Agent/Coding Plan 就把用户给出的 Endpoint 当套餐模型调用。
先把用户要求拆成可验收项,再按资源、能力、整批预算、执行、成品检查推进。执行前读取
references/intent-and-validation.md:它约定不完整意图的默认值、
参数组合、凭证错误分流和成品验收。参数表是候选能力,不代表每个模型都支持。
用户已明确要图片或视频时,生成命令显式带 --modality image|video;不要让名称解析覆盖用户意图。
只使用用户本轮提供或明确授权复用的素材;不得从历史目录、旧任务或相似文件名擅自加入额外参考图/视频。
生成模型能出图,不代表驱动当前 Agent 的宿主模型能看图。Read 工具描述说支持图片, 也不是当前宿主模型的视觉能力证明。 当前会话没有可靠的视觉能力声明或已验证的兼容性时, 按“未准入”处理:不要原生 Read 图片、视频或抽出的帧,也不要用成品试探能否读取。 本 Skill、参考说明和 JSON 等文本仍可正常 Read。
arkcli-chat 或有固定产出形态的 arkcli-understand。用户说"生成一个视频/一张图",本质是至少三件独立的事,必须按序;批量或多阶段任务还要先确认整批可完成:
① 本次资源从哪里来 ── 用户显式 Endpoint 优先;否则看当前 profile
② 该模型支持哪些参数 ── 不查就传参 = 瞎猜 = 被校验拒/被后端拒
②.5 多候选/多阶段额度与任务数 ── 先算完整批次,额度已耗尽就不启动半批任务
③ 按可用参数真去生成 ── 每个请求只提交一次并立即保存 task_id
把这三步压成"直接 +gen 猜一条命令",正是失败之源:模型名形态不对会 404,参数模型不支持会被拒。
+gen 的生产调用按以下固定优先级解析能力:
explicit --modality > output_modalities > task types > unknown
output_modalities;缺失时再读取 FoundationModel 的 task_types / filter_task_types。ep-* 时,先读取 Endpoint 的 ModelReference.FoundationModel(name, version),再精确匹配同版本模型的上述结构化元数据。seedream、seedance 或任何国内/海外品牌前缀推断 image/video。unknown,提示用户显式传 --modality image|video;禁止静默猜测。+gen --dry-run 是纯本地 Client Preview:不读取 Endpoint/模型元数据、不调用
生成 API,也不下载或打开文件。显式 --modality 最可靠;已知
seedream/seedance 模型名可本地判断,其他模型或 Endpoint 必须显式传
--modality image|video。在线才能补齐的执行上下文会以 unresolved 和
fidelity=partial 明示。用户意图: "生成 X"
│
▼ Step 1【强制】解析本次资源
│ 用户给 Endpoint → arkcli resources resolve <ep-id>
│ 未给 Endpoint → arkcli resources list --modality image|video
│
│ 当前 profile 可用资源:
│ platform → 列 EP (ep-xxx) ┐
│ agent-plan → 列视觉模型名 ├─ 选一个,记为 $MODEL
│ coding-plan → 列 EP (借道 platform) ┘
│
▼ Step 2【强制】查可用参数 ──► models get(EP 用 resolve 得到的绑定模型查能力)
│ 模型名 + 有 sp → **只能**用列出的参数,取值落 min/max/enum 内
│ 模型名 + sp 空(未配置或当前不可解析) → +gen 自动套 modality 兜底默认(video 720p/5s; image 不填 size)
│ EP(ep-xxx) → 可解析绑定则查精确版本;不可解析则说明未知,不猜支持
│
▼ Step 2.5【批量/多阶段】额度预检 ──► plan/free-quota 快照;记录完整 create 数
│
▼ Step 3 据可用参数生成 ──► arkcli +gen --model $MODEL [Step2 允许的参数] "prompt"
│
▼ Step 4【结果处理】
视频 = 异步:返回 task_id + status=queued(**不是失败!**) → arkcli gen get <task_id> 轮询;轮到 succeeded 自动下载到本地(local_path);要同步阻塞加 --wait(有上限,默认 10m,长视频配 --timeout 30m)
图片 = 同步:直接返回 output_url + local_path
用户已经显式给出 Endpoint 时,不要先用 active profile 的模型池覆盖它:
arkcli resources resolve "$ENDPOINT" --format json
generation_modality 决定 image/video;image_or_video 或 unknown 时再结合
用户意图,必要时显式补 --modality。resource_region;Endpoint + 显式 API Key 且未给 Base URL 时,CLI 用该
region 派生 platform Base URL。seedream / seedance 子串猜模态。ep-* 是本次调用资源;不要忽略它后改用套餐 default,也不要把
resources resolve 的位置参数误传成模型名。若该 Endpoint 已在本轮被用户授权用于
后付费兜底,套餐额度不足时可回到这里重新做能力检查,但仍不修改 Profile/default。用户未给显式 Endpoint 时,再按 profile 列资源:
# 按目标模态列;输出 items[].id 就是可作 --model 的候选
arkcli resources list --modality video # 或 image
platform profile → items 是推理接入点 EP(ep-xxx),每个 EP 内部绑定一个模型agent-plan / agent-plan-team → items 是套餐视觉模型名;使用对应个人/团队席位 Keycoding-plan / coding-plan-team → 无套餐内视觉模型;生成使用 platform Endpoint + 后付费 API Key。团队席位 Key 不能用于这个后付费请求is_default: true 标记的是该模态当前默认;用户没指定时优先用它invocable / required_overrides / data_plane / credential_kind。默认或可见不等于当前凭证可调用;不要为生成自动切 Profile、轮转 Key 或修改 default。$MODEL,贯穿 Step 2/3resources list 核对当前 lane 的兼容性;用户明确给了 EP 时只先 resources resolve,不要再用列表/default 覆盖它。若模型与默认不同,按 ../arkcli-shared/references/profile-defaults.md "Default 漂移检测与 promote nudge" 处理arkcli models get "$MODEL" --transform supported_params
$MODEL 是模型名:拿到该模型的 supported_params 清单(每项含 name / type / support / min / max / enum / required / default / description)。
MUST:Step 3 只能使用这里
support=true的参数,且取值必须落在min/max/enum范围内。 不在清单里的参数(或support=false)传了会被+gen拒绝。
MUST:
description必须逐条读,不能当注释跳过。 实测 74 个参数条目里description填充率 100%,而min/max只有 9%、enum只有 19% —— 结构化字段看着「有」的多数是空的,唯一填满的那个才是条件约束的载体。出现「仅允许 / 仅支持 / 必须 / 不支持 / 建议 / 否则」时,它是硬约束,不是提示。四类典型:
- 值域 ——
duration的min=4 max=30只给了区间,description才补上「取值为 4-30 或 -1」。-1落在区间外却合法,default=-1印证了它:default是目录自己声明的合法值,与min/max冲突时以default为准(+gen本地校验同样按此放行,无需--force)。
- 条件子集 ——
ratio的enum列了 7 个值,但「视频编辑、视频延长…仅允许 adaptive」,即某条件下enum只剩一个合法值。
- 跨参数依赖 ——
omni_reference_task_type的description给出auto/reference/edit/extend四种取值各自的ratio/duration约束;background=transparent依赖参考图的格式与数量。
- 替代方案 ——
frames的description写「请使用 duration」,即该参数不可用时该换成什么。
取值与 description 冲突、或本地校验拒绝了目录声明合法的值时,保留冲突证据(模型名、name、目录原文、CLI 报错)再决定下一步,不要静默换值或换模型。
可直接使用 Step 1 选出的模型 id:models get 会按 DisplayName 归一化到规范连字符 name。但归一化只认「点号形态 == 小写 DisplayName」这一种,不是「点号一律可用」——越界就会 not found:
doubao-seedance-2.0-fast(DisplayName 就是 Doubao-Seedance-2.0-fast)→ doubao-seedance-2-0-fastdoubao-seedream-4.5 → doubao-seedream-4-5doubao-seedream-5.0 —— 该族 DisplayName 实为 Doubao-Seedream-5.0-lite,裸族名对不上doubao-seedream-5.0-pro-260628 —— 点号 + 日期快照:DisplayName 不带日期,对不上规则:带日期快照的名字一律用连字符形态(doubao-seedream-5-0-pro-260628);点号形态只用在无日期的族名 / 变体名上。仍报 not found 时用 arkcli models search <族名> 核对规范 name,不要靠猜点号位置试。
查到模型但 supported_params 为空 / null → 该版本未配置参数目录,或上游目录当前不可解析;若 stderr 有 warn: model supported_params enrichment failed: ...,保留该告警用于排障。不要手动猜参数:+gen 会自动用内置 modality 兜底默认(video: resolution=720p / duration=5 / ratio=adaptive)填充你没指定的参数;图片任务不填 size —— 画布由 prompt 描述的宽高比与服务端默认值共同决定,硬填一个 1:1 常量会覆盖 prompt 已说清的比例,需要固定画布时显式传 --size。控制面查询失败(区别于「模型本来没配目录」)时 stderr 还会有一条 warn: ... 提示本次未做参数校验 —— 走 stderr 而非 JSON,生成失败时同样会出现。直接进 Step 3。
$MODEL 是 EP(ep-xxx):不把 EP 本身交给 models get。使用 Step 1 的权威绑定:FoundationModel 查 model_name + --version <model_version>;CustomModel 只可用 base_model_* 查 lineage 能力,不能改写真实 model_id 或调用 EP。warning/歧义时说明能力未知,不根据名称猜测支持。
单个图片/视频请求不额外制造“试 Key”任务;批量候选、长视频拆段、续写链等会创建多个收费任务时,
必须在第一个 +gen 前列出总候选数、每个候选的阶段数、理论 create 总数以及阶段依赖。能用一个
原生 30 秒任务完成时,不要在模型/Endpoint 未核验前擅自拆成两个 15 秒任务。
对 Agent Plan / Agent Plan Team 的批量或多阶段视觉任务,读取当前 Profile 后执行额度快照:
arkcli usage plan --format json
arkcli usage balance --type free-quota --modality ComputerVision --page-all --format json
resources resolve 该 EP 并按它的精确绑定重走 Step 2;否则说明缺口并停止,
不自动切 Profile、Key、default 或收费路径。控制面 resolve/list 只能证明资源元数据与上下文兼容,不能证明数据面 API Key 当前有效。没有无计费的
Key 探测时,把第一个本来就要交付的任务作为数据面准入:成功拿到 task_id/图片结果后才继续余下批次;
401/403/quota 错误按原证据停止。禁止另生成一张测试图,也禁止失败后轮转 Key 或循环试不同收费路径。
# 文生图 / 文生视频
arkcli +gen --model "$MODEL" --modality image "<prompt>" # 用户要视频时改为 video
# 带 Step 2 确认过的参数(示例:视频 1080p + 优先级 9,前提是 supported_params 列了它们)
arkcli +gen --model "$MODEL" --resolution 1080p --priority 9 "<prompt>"
# 图生图 / 图生视频 / 参考素材:--input 可重复
arkcli +gen --model "$MODEL" --input @ref.jpg "<prompt>"
--input 规则、新增 --n/--priority/--wait/--timeout 见 references/arkcli-gen.mdunknown /
image_or_video 且用户意图仍不足时要求显式 --modality。--save-to <dir>);JSON 里的 local_path 是持久产物,预签名 output_url 24h 失效,优先引用 local_path。--save-to="" 关闭local_path。--open 强制打开、--no-open 强制不打开。仅对已落地本地文件生效(异步视频未 --wait 时无本地文件、不打开);多产物只打开前若干个--open:你(AI agent)调用 arkcli 时 stdout 被你接管 = 非 TTY,默认 auto 不会弹窗,用户只能看到文件路径、看不到成品。为了让用户直接看到生成的图/视频,凡是给真人出图/出视频的 +gen 与轮询到 succeeded 的 gen get,默认都加 --open(--open 无视 TTY 强制在用户桌面打开)。例外只在:用户明确说"别打开/在脚本里/批量/不要弹窗",或一次出图 >4 张批量场景 → 这时省略 --open 或显式 --no-open。| 模态 | 默认行为 | 你该怎么读结果 |
|---|---|---|
| 视频 | 异步:立即返回 task_id + status: queued | queued 不是失败。用 arkcli gen get <task_id> --open 轮询到 succeeded——这次 gen get 会顺手把产物下载到本地并回带 local_path(默认 CWD,<task-id>.mp4),--open 让成品直接在用户桌面弹出(你是 agent,非 TTY,不加就只有路径);不必再手动 curl output_url;不要因为没拿到视频就重提 +gen(会建新任务) |
视频 + --wait | 同步:阻塞到完成再返回,但超过 --timeout(默认 10m)就放弃 | arkcli +gen ... --wait --open,直接拿 output_url / local_path 并弹出成品。长视频先调大 --timeout(如 --timeout 30m):实测 seedance-2.0 近半数请求 10m 内渲不完;撞上限时返回的是「任务仍在跑 + task id」而不是失败,继续 gen get <task-id> 轮询即可,别重跑 +gen |
| 图片 | 同步:直接返回 output_url + local_path | arkcli +gen ... --open 让图片直接弹给用户看 |
⚠️ 行为变更(2.0):视频任务默认已从"自动等待完成"改为"提交即返回 task_id"。需要旧的同步阻塞行为,显式加
--wait。⚠️
--wait有上限:它最多阻塞--timeout(默认 10m),到点即返回。视频渲染常常更久(实测 seedance-2.0 近半数超过 10m),所以长视频请显式--timeout 30m。到点返回的 JSON 是type: timeout+ 带 task id 的错误——这不是生成失败,任务仍在服务端渲染;按 hint 里的gen get <task-id>继续轮询,绝不重跑+gen(会另建一个计费任务)。
gen get --format json 的 status 是对象,终态必须读 .status.phase,不是把整个 .status 与字符串比较。生成 shell 轮询脚本时必须遵守:
arkcli gen get "$TASK_ID" --save-to="" --format json 禁用自动下载,每轮只读状态。PHASE=$(printf '%s' "$RESULT" | jq -r '.status.phase // empty'),再对 succeeded / failed / cancelled 做显式分支。succeeded 时最多再执行一次带目标 --save-to 的 gen get 下载产物,然后立即 break;failed / cancelled 报告 status.message 或 error 后立即 break。queued / running 才 sleep 后继续;未知 phase 或 gen get 自身失败应停止并报错,不能当作 running 无限循环。+gen。resources list 列当前 profile 候选;模型族不确定 → 转 ../arkcli-models/SKILL.md--input @<file>(可重复)queued,用 arkcli gen get <task_id> --open 轮询;轮到 succeeded 那次会自动下载到本地(看返回的 local_path)并弹出成品,别重提--open → 你是 agent(非 TTY),不加用户只能看到路径、看不到成品;只有"别打开/脚本里/批量 >4 张"才省略或 --no-openreference_video 接受本地 @<path>(CLI 自动上传 TOS 后以预签名 URL 提交)或 https://...;本地素材上传要求账号已开通 TOS,未开通会在提交前失败并给出开通入口。ratio 逐值服从精确模型/EP 的 supported_params,不无条件强制 adaptive| 用户怎么说 | 对应 flag / 命令 |
|---|---|
| "生成完直接打开/帮我打开看看/出来就弹给我" | arkcli +gen --open(强制用系统默认程序打开;默认在交互终端已自动打开) |
| "别自动打开/不要弹窗/我在脚本里跑别开" | arkcli +gen --no-open(强制不打开) |
| "预览/别真发/只看参数/dry run/试跑/先看一下" | arkcli +gen ... --dry-run --format json;核对 steps、unresolved 和 fidelity,不要把 partial 预览当作服务端校验 |
| "不要下载/只要 URL/不要保存到本地/关闭自动下载" | 命令显式加 --save-to="";即使同时是 --dry-run 也要保留,以便预览能核对真实执行时的关闭下载意图 |
| "草稿/快速预览/越快越便宜/省钱先看" | 先区分“只看请求”和“真实生成低成本草稿”。前者用 --dry-run;后者仅在 draft 支持时加 --draft=true,不支持时说明限制,不把缩短时长冒充草稿模式 |
| "固定镜头/镜头不动/锁定相机/只拍光影变化" | 始终保留在 prompt;仅当 camera_fixed 支持该值时加 --camera-fixed=true。不支持时可用 prompt 表达视觉约束,但不能保证机械锁定,验收跨帧背景/镜头变化 |
| "不带水印/不要水印/关闭水印" | 查明支持后显式 --watermark=false;省略可能采用服务端默认值,裸 --watermark 表示 true |
| "强制执行/跳过校验/我知道不支持但想试一下" | arkcli +gen --force |
| "连贯多张/按顺序/统一风格/连续图片" | 先区分多张独立文件与一张多格图;多文件在能力支持时用 --image-count N --sequential auto,不可使用缺值的裸 --sequential |
| "我之前的任务/生成历史/任务列表/任务状态" | arkcli gen list(列出所有异步生成任务) |
| "那个任务跑完没/查进度/查状态" | arkcli gen get <task_id> |
| 命令 | 角色 |
|---|---|
arkcli resources list --modality image|video | Step 1 — 当前 profile 可用模型/EP |
arkcli resources resolve <endpoint-id> | Step 1(显式 EP) — 权威解析模态、工作流与 region |
arkcli models get <model> --transform supported_params | Step 2 — 查模型可用参数 |
arkcli +gen | Step 3 — 按可用参数生成 |
arkcli +gen --stream | 图片任务流式 NDJSON 输出 |
arkcli gen get <task-id> | Step 4 — 轮询/查询异步视频任务 |
arkcli gen list | 列出/过滤异步生成任务 |
arkcli gen delete <task-id> | 删除异步生成任务 |
not found → models get 的归一化只覆盖「点号形态 == 小写 DisplayName」,不是点号一律可用;带日期快照的名字使用连字符形态(如 doubao-seedream-5-0-pro-260628)。保留原始错误,在同一身份和范围用 arkcli models search <族名> 核对规范名称、版本与可见性;不能仅凭此错误认定模型已下线。has not activated the model / 模型未激活 → 读取 arkcli-models-activate.md,保留原模型、用户素材与生成意图,按宿主授权流程开通;成功后回到本次生成任务,不换身份、Key 或模型。已有任务 ID 时先查原任务状态,不能重复提交。若开通报 BalanceNotEnough,报告实际返回的余额/资格门槛并停止循环,不硬编码充值金额,也不把所有未激活错误解释成欠费。param_not_supported)→ 对照 Step 2 的精确版本目录与实际参数;目录显示支持但 CLI 拒绝时保留冲突证据,不擅自换调用 ID、删用户硬要求或用 --force 绕过。只有用户明确要求跳过校验时才用 --force。
default:取值等于该参数的 default 却被 min/max 拒绝,就是本地校验与上游目录冲突(default 落在自己 min/max 之外时必然发生)。这类冲突不要用 --force 掩盖——先向用户报告冲突原文(模型名 / 参数名 / 目录 min·max·default / CLI 报错),由用户决定是修 CLI 还是显式要求 --force。用 --force 绕过会把「CLI 有 bug」永久伪装成「参数已提交」,下一个用户会再撞一次。ContentRiskBlocked / *SensitiveContentDetected / 命中敏感 / 版权)→ 不是参数问题、--force 也绕不过;调整 prompt / 输入素材里的敏感内容后重试。要结构化的拦截原因 + 修复指引,转 ../arkcli-doctor/SKILL.md 的 arkcli doctor error <code>(生视频拦截 5 个 subtype 全覆盖)../arkcli-auth/SKILL.mdsupported_params 详解+gen 全参数 + 多模态 + 异步语义まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
arkcli agent:管理 ARK Managed Agents,包括 Agent / Skill / Env / Session / File / Memory Store / Vault / MCP OAuth。控制面优先走 ForTop/OpenTOP,Session 运行时和 Files 走数据面直联。
日本語の概要は準備中です。原文の説明を表示しています。
Inspect or invoke locally registered ArkCLI actions when product commands cannot cover a task. Use for registry errors or exact raw payloads. Not for public API catalogs or OpenAPI schemas.
日本語の概要は準備中です。原文の説明を表示しています。
arkcli 认证管理:交互式登录、Volc SSO 登录、查看状态、退出登录、生成 ARK API Key (apikey)、以及云开发机/CI 用 `arkcli init-volc` 从 VOLC_INIT_* 环境变量无交互引导 platform profile。0.1.16 起 SSO 登录走 Gate 1+2 自动绑定 Profile 切面 (type/region/project/owner_trn);AK/SK login 通道暂关。当用户需要初始化凭证、排查鉴权问题、切换认证方式、生成或重选 ARK API Key、或在已注入凭证的环境无交互引导时使用。反触发:用户问 TTS/ASR/语音模型能力、接入或调用时,不要引导 `auth apikey`,只转 models search 说明 arkcli 当前仅支持广场发现。
日本語の概要は準備中です。原文の説明を表示しています。
查询火山引擎 ARK 拆分账单明细(结算金额、Token 用量计费),支持按账期月、月范围、Endpoint、API Key、产品编码等维度过滤。当用户问账单、花了多少钱、对账、账期、按 EP / API Key 拆账、按产品拆账、月度账单、出账明细时使用。注意 billing 跟 usage stats 不同:stats 出推理量(近实时),billing 出结算金额(T+1 出账,财务口径)。
日本語の概要は準備中です。原文の説明を表示しています。
arkcli +chat:通过数据面 Responses API 快速对话/推理,支持多模态、流式、多轮、临时 API Key/Base URL/Endpoint 执行与无副作用 dry-run。当用户给出 Endpoint 但未说明工作流时,先用 resources resolve 识别候选;已经出现 Responses API capability/access 错误时,只读用 models get 核对精确模型的 api_support,不重试真实调用。有明确产出形态的多模态理解走 arkcli-understand。
日本語の概要は準備中です。原文の説明を表示しています。
arkcli +code-example:为指定基础模型生成多语言(Python / Go / Java / Node / curl)调用示例代码并写入本地文件。数据源是火山方舟 OpenTOP OpenGetSampleCode。当用户需要拿某个基础模型的 SDK / curl 调用示例、保存为本地接入模板时使用。反触发:TTS/ASR/语音模型没有 arkcli 示例代码路径,不能靠补版本解决,只能转 models search 说明当前不支持。
日本語の概要は準備中です。原文の説明を表示しています。