CRITICAL — before starting, you MUST first use the Read tool to read ../arkcli-shared/SKILL.md(authentication gate, command selection order, write-operation safety boundaries).
This skill is only responsible for orchestrating the order and branches. Each step'sprivate command details(such as
+deploy's--model/--name/ JSON fields,models search's filtering) are all in the corresponding capability skill;this document does not repeat them. This document may only contain safety guardrails common across commands (use Client Preview only when supported by the leaf command; otherwise read-only verification + explicit confirmation); as soon as a private flag description for a particular command appears, that is out of bounds.
Offline / --help verification mode
- When the user has already provided the model and explicitly prohibits remote queries, skip the actual
models search/getof Step 1; do not secretly query the model or Endpoint in order to "verify the process". - Even if Step 2 only checks help, it must preserve the current product's resource scope semantics: run
arkcli infer endpoint list --mine --help, and must not degrade to an unscopedlist --help, nor switch to--page-all。 --helpmode only verifies command selection, and does not execute creation, deployment, login, or any real resource query.
What it solves
What the user expresses is anintent-levelgoal ("I want to use Doubao in my service"), not a command-level goal ("deploy an endpoint"). Such colloquial phrasing usually will not hit arkcli-deploy 's keywords, but in essence it is exactly "formal integration = need a reusable Endpoint". This skill solidifies this intent into an ordered, branching, regression-testable chain, delegating step by step to the owning skill.
Trigger vs. no trigger
- ✅ "I want to use Doubao in my app/service" / "how do I integrate an Ark model into my service" / "help me integrate seedream" / "I want to formally start using a certain model"
- ❌ Speech model integration / TTS / ASR / dubbing / reading aloud / podcast / voice / real-time voice interaction, or the model name hits
doubao-seed-tts-*、doubao-seed-asr-*、seedasr-*→ do not go through this wizard; only redirect toarkcli-modelsfor marketplace discovery, and explain that the current arkcli does not support speech model invocation, deployment, examples, usage, cost, or onboarding wizard - ❌ The user has already said "deploy / create endpoint / deploy" → go directly to
arkcli-deploy(already in the deploy intent, no need to go through this wizard) - ❌ Only wants to "try the effect / ask a question / generate an image" →
+chat/+gen(trialdoes not need Endpoint) - ❌ Only wants to "see sample code" and already knows the model name → directly
arkcli-code-example
Orchestration (delegate each step, do not copy details)
Step 0 认证 + 实名闸门
└─► 见 arkcli-shared「认证闸门」;命中开通/部署意图先做实名检查
(../arkcli-auth/references/realname-gate.md)
Step 1 选模型
└─► arkcli-models(search / get)。用户没指定模型就先帮选、确认再继续
└─ 命中语音模型(TTS / ASR / 播客 / 音色 / 实时语音交互)即停:
只说明广场可搜,当前 arkcli 不支持继续接入
Step 2 查是否已有可复用 Endpoint ★必查★
└─► arkcli-infer-endpoint:list --mine("我的"语义见
../arkcli-auth/references/identity-resolution.md)
├─ 有 EP 且【绑定目标模型/版本】+【状态可用(如 Running)】
│ 多个匹配或不确定时按本轮结果结构化选一个 ─► 跳到 Step 4(复用其 endpoint-id)
└─ 无匹配 EP(账号下只有别的模型的 EP 不算匹配)─► Step 3
Step 3 创建 Endpoint ★唯一写操作★
└─► arkcli-deploy:只读核对 + 与用户确认,再真建(不支持 --dry-run)
(二次确认协议见 arkcli-shared)
Step 4 (可选) 生成调用示例
└─► arkcli-code-example:按 model-version 提供,覆盖不全;
缺失时降级到方舟控制台示例页,不当作失败报给用户
Step 5 回执
└─► 给出 endpoint-id + 一句话"怎么在代码里用它",回到用户原始目标
Key constraints
- Step 2 must check, but only reuse "matching": only when
list --minecontainsbound to the target model/versionand **status available (e.g. Running)** endpoint, skip Step 3 and reuse it; endpoints of other models under the account does not count as a match, and cannot be used to substitute. When there are multiple matches, use the host's structured selection capability to display the endpoint-id, bound model/version, status, and name from this round of results; only fall back to a condensed numbered list when the host does not support it. After the user selects, directly reuse that ID, do not re-query the same batch of results, and do not treat "selecting an existing Endpoint" as authorization to create a new resource. If there is no match, proceed normally to Step 3 to create. - Speech models are not an onboarding target: a speech model that can be found in the plaza only means it is discoverable, not that arkcli can invoke it, deploy it, generate examples, or check usage/cost; once Step 1 confirms it is a speech model, the flow must stop and must not proceed to Step 2-Step 4.
- Do not add alternative access paths: after a speech model is hit, only answer regarding the arkcli boundary; do not proactively recommend console / OpenAPI / SDK access steps or links.
- Step 3 is the only write operation: apply
../arkcli-shared/SKILL.md's secondary confirmation + real-name gate;+deploydoes not support--dry-run, no matter how urgent the user's tone is, first perform a read-only check and confirm. - Step 4 is optional and can be degraded:
+code-example's examples are provided by model-version, and some versions' backends without a group will return not found; this is an expected coverage gap, just degrade to the console example page, and do not treat it as a pipeline failure. - The whole process isorchestration: each step hands control to the owning skill, and its parameters are not repeated in this document.
Reference
- arkcli-shared — authentication/real-name gate, command selection order, security and secondary confirmation
- arkcli-models — Step 1 select model
- arkcli-infer-endpoint — Step 2 check/reuse Endpoint
- arkcli-deploy — Step 3 create Endpoint
- arkcli-code-example — Step 4 optional example code