CRITICAL — Before starting, you MUST first use the Read tool to read ../arkcli-shared/SKILL.md, which contains the authentication gate, configuration troubleshooting, and command selection order
CRITICAL — If the model query serves Endpoint creation, you must first complete the owning Skill handoff: for ordinary creation, first use Read to read ../arkcli-deploy/SKILL.md; for explicit raw CRUD / CI / unguarded creation, first use Read to read ../arkcli-infer-endpoint/SKILL.md. Before reading the owning Skill, it is forbidden to execute authentication checks, model queries, or any other commands.
CRITICAL — All models commands must be preceded by using the Read tool to read their corresponding reference documentation before execution; do not directly call commands blindly.
Step -1 (hard gate): first lock in the owning Skill of the final task
- First determine whether what the user ultimately wants to do is "query models" or use models for an upstream task; do not treat model querying as the final task just because the user mentions
models search. - When the final goal is Endpoint creation, this skill can only serve as a read-only assistant and cannot become the owning Skill: for ordinary creation, read and retain
arkcli-deploy; for explicit raw CRUD / CI / unguarded creation, read and retainarkcli-infer-endpoint。 - The owning Skill's query count, result limits, stopping points, and write boundaries take precedence over this skill's general workflow. After completing the handoff, execute according to the owning Skill; only for pure model queries should you continue with this skill's Step 0 and general command selection.
Usage principles
- For model-related needs, prioritize using
arkcli models ... - Although these commands are of the standard CLI type, their implementation entry point still comes from
shortcuts/models/ - Only when product commands cannot cover the need should you fall back to
../arkcli-api-explorer/SKILL.md - This skill is not the default fallback entry point; only when the user explicitly asks about model queries, model asset inventory, or model details should it serve as the primary route. If it is for upstream
+chat/+gen/ Endpoint creation model selection, first load and retain the corresponding upstream skill; this skill only provides read-only queries. The owning skill for ordinary Endpoint creation isarkcli-deploy;Explicit raw CRUD / CI / unguarded Endpoint creation intent must switch toarkcli-infer-endpoint, and load it before querying candidates - Voice model boundaries: A hit in the marketplace does not prove that arkcli supports invocation, Endpoint creation, examples, or usage for that model. Integration of independent capabilities such as TTS/ASR should be verified against the corresponding official API/SDK, and bare names should not be stuffed into Responses. Cost inquiries go to
pricing models --modality Audio, answering only based on the current pricing items; if nothing is returned, it means the price source does not cover it. - Offline notices and the marketplace catalog are different evidence domains: When the user mentions SMS/in-app messages, service shutdown dates, or "whether reconfiguration is needed," first verify the corresponding product's official offline announcement; do not first check
models searchand then use the catalog'sPublished/Retiringto refute the announcement. If the user does not specify whether they are using Agent Plan, Coding Plan, or pay-as-you-go Endpoint, label the applicable scope of each product separately; for Agent Plan, first checkmodel offline announcement, for Coding Plan checkmodel offline announcement, for pay-as-you-go Endpoint checkplatform model offline announcement. Cite only the specific lines, time zones, and migration targets of the old model in that product announcement,then check whether the recommended migration model in the newer announcement line is also being discontinued, and give the next stop that is still supported; do not apply one package's dates to another product. When the product is unclear, give a conditional conclusion. - The ultimate goal of this type of question ismigration judgment, not public model selection: first load the corresponding
arkcli-plans/arkcli-infer-endpointowning Skill; only after the announcement is answered, distinguish according to the user's actual configurationauto/ark-code-latest, hardcoded Model Name, self-builtep-.... If the real-time account status query fails, clearly state it is unknown; do not substitute the public catalog status. Only when purely asking about the public catalog lifecycle should you continue this skill'smodels searchprocess.
Applicable scenarios
- The user wants to search, filter, or compare Ark models
- The user wants to view model details, versions, context, modalities, or lifecycle status
- The user wants to inventory the public foundation model catalog; account-uploaded/fine-tuned assets go to
arkcli-custommodel, and package model lists go toarkcli-plans - Volc only: the user wants to compare TTFT/TPOT, first-token latency, sustained output latency, performance rankings, latency trends, or performance under different input lengths
- Upstream
+chat/+gen/+deployneeds to first determine the available model name - The user asks whether speech models exist, which speech models there are, or what TTS/ASR models are called in the plaza: answer only with plaza-searchable facts and the boundary that current arkcli does not support subsequent scenario capabilities
Anti-trigger signals
- The user just wants direct conversation, image/video generation, or Endpoint deployment: first route to the corresponding skill; if the model name is missing, this skill can be called to query it, but it cannot replace the main routing of the original task. For ordinary Endpoint creation, route to
arkcli-deploy; only when the user explicitly specifies raw CRUD / CI / unguarded creation, route toarkcli-infer-endpoint - The user explicitly requests calling raw Actions, listing OpenAPI, or constructing low-level params: route to
arkcli-api-explorer - The user asks why their own Endpoint is slow: route to
arkcli-doctor; public leaderboards cannot be used for Endpoint diagnosis - The user is troubleshooting authentication, profile, region, or base URL: route to
arkcli-authorarkcli-config - Do not treat
arkcli modelsas the default entry point; for non-model questions, do not query models first
Business positioning
- This skill is a dependency skill for other business flows, not a terminal skill
- It usually serves three types of upstream goals:
- Find the correct model for
+chat/+genFind the correct model - Confirm deployable models for
+deployConfirm deployable models - Confirm model details and versions for business troubleshooting
- Find the correct model for
- Unless the user is explicitly doing a model query, after querying the model you should return to the original task
- Speech follow-up routing: if only asking about the catalog, deliver catalog facts; if actual integration is needed, explain the independent API boundary and guide verification against the official contract, and do not generate unverified call/deployment commands. If pricing is needed, route to pricing's Audio query; do not infer from "no call wrapper" that "pricing cannot be queried."
Quick decision
Price query for a known model
First read references/arkcli-models-get.md, use arkcli models get <model-id> --format json, read pricing.prices. According to service_type、label、dimensions、usage_unit、unit_code and optional usage_period , determine the applicable price; do not take the first entry, and do not read the old pricing.charge_items / pricing.multi_charge_items。price: null indicates missing price,0 indicates zero price under that condition; an empty array does not mean free or not activated; activation and entitlements still depend on pricing.state、pricing.inference_free_usage and other independent fields.--version Select a detailed version; the price is queried based on the returned base model name , and is not guaranteed to be a version-specific quote.
Troubleshooting API capability for an exact model
When the user has provided a complete model ID and asks to verify Responses API for a certain API capability, this is a "single-model fact check", not a candidate search:
- Must use
arkcli models get <model-id> --format json, read the completeapi_support。 - Do not use
models searchinstead; search is a candidate discovery and reranking view, not the final source of truth for exact model API support. - In the
api_supportarray, locate the target API byname/key/path, and draw conclusions only based on that item'ssupported; if the item is missing, report insufficient metadata. - If the actual error is an access issue, after querying return to the original owning Skill (such as
arkcli-chat) to explain that "the model declares support" and "the current Endpoint / account can access it" are two layers of fact; do not repeatedly trial-and-error with real calls.
Step 0 (hard gate): read the scenario table first, then choose the command
This is the first action for any "find a model by intent" request, prior to search / list / resources command selection. MUST first use Read to open references/arkcli-models-scenario-table.md to determine whether the intent hits a scenario tag, and only then decide what command to run. This manually curated 场景标签 → 推荐模型 table isthe highest-weight signal for intent ranking, overriding all naming heuristics / modality / capability filters below。
Counterexamples easily hijacked (required reading) — the following intents that "smell like hard metrics" are essentially scenario tags; you must check the scenario table first, and do not instinctively jump to --capability / --modality downgrade line:
| User says | ❌ Don't directly | ✅ Scenario tag hit at Step 0 → Recommendation |
|---|---|---|
| "Complex reasoning / multi-step / strongest model" | search --capability thinking |
Complex reasoning / Agent tasks → check the table, then use real-time lifecycle to exclude offline candidates |
| "Which model to use for image generation" | resources list --modality image and stop |
Image generation → doubao-seedream-5-0 |
| "Do video / role-play / field extraction" | search --modality ... |
Video generation / role-play / information extraction → check the table |
After a hit, execute according to the JOIN protocol in the table: take the recommended model family name stem → arkcli models search <族名词干> go back to the left table to verify facts → pin the recommendation + add 2–3 alternatives.The version/full-id in the table is only a starting point; hits are based on what search returns in real time(measured table ids can become stale).
Only in these two cases should you skip the scenario table and downgrade to the following search + naming heuristics:
- The user gaveexplicit numeric/capability hard constraints("200K context", "must support functioncall"), and the scenario table has no corresponding tag;
- The usernamed a third-party / open-source / historical model(qwen, glm, Seedream 4.5…) — do not forcibly replace it.
Note the distinction: "complex reasoning" is a scenario tag (check the table first),does not equalthe user gave
thinkingHard indicators. The former goes through step 0 and validates the real-time lifecycle; only the latter follows the degraded path; old models within a table being taken offline cannot become recommendations for new onboarding.
Layer boundary (important, don't mix them up): the scenario table is the "model plaza selection layer", answering "for this intent, which model to select in the plaza", and the data source is always models search(catalog)。 What it provides is the catalog-recommended model name (e.g. image generation → doubao-seedream-5-0)。
- "Whether the current profile can invoke it and what the exact invocable id is" isthe downstream availability layer's job, handled by
resources list→models get→+gen/+chat(arkcli-gen already implements it),and is not within this table's responsibility。 - Therefore: if the user has apure selection question("which model to look up/select") → only go through
models search,do notgo off to queryresources listturning "selection" into "checking available resources". Only when the userreally wants to generate / invokeshould you drill down to resources list to resolve the real id for this profile.
This isthe intent-ranking lineexclusive to it. Enumeration / inventory / statistics is another line, going through list, and does not attach to the scenario table for re-ranking.
Command selection
- The user only knows a vague model name / wants to search by intent ("strongest video generation", "200K context LLM", "models that support thinking"): use
search— it does keyword fuzzy matching + modality/context/capability structured filtering - If you need to enumerate by modality / pagination parameters, or match by exact name: use
list - full inventory of the public catalog →
models list --page-all; "models I uploaded/fine-tuned",cm-*→arkcli custommodel list/get; "which models my Plan supports" →plans model-list --plan <plan>. When the scope of "my models" is unclear, clarify first; do not pass off the public catalog as account assets. - Volc only: for performance rankings, trends, or input-length comparisons, first read
references/arkcli-models-performance.md, then usemodels performance rank、trendorinput-length - If there is already a clear model ID: use
get - If it is only to find a model for
+chat/+gen/ Endpoint creation: first retain the owning skill, initially execute only one boundedmodels search <keyword> --size 10 --format json(omit the keyword when there is none), and once a successful complete result forms candidates, immediately return to the original task; do not loop get over each candidate. For empty results, incomplete captures, or cases needing verification against the exact API, follow the search recovery rules to handle; a single query budget must not become a reason for missing key evidence. - The userproactivelywants to activate a certain base model ("first get doubao-seed-1-6-flash activated", "I want to try the fast-infer sub-service", "first preview the activation request"): use
activate, first readreferences/arkcli-models-activate.md; if the user merely wants to deploy / create an endpoint, deploy / infer-create can trigger implicit activation on its own, so do not activate separately first
Agent quick execution order
- First confirm whether already logged in; if unsure, first look at
arkcli auth status - When the user's description carries intent (modality / numeric capacity / capability / cache category), use
arkcli models search+ the corresponding flag (--modality、--min-context-window、--capability、--cache-type...); for cache capability you must look atcache_types, do not use the oldcapabilities.caching - When the user only knows a vague name, still use
arkcli models search <keyword>(by default returns all hits, no pagination) - When you need to fully enumerate by modality or paginate for statistics, use
arkcli models list - When the user asks about "custom models/my models created in the last N days", route to
arkcli-custommodelto query account assets; only public catalog date statistics usemodels list --page-all. Filter fields must follow the actual output of the selected command; the two schema types must not be mixed - When you already have an explicit model ID and need details, use
arkcli models get - When the user explicitly wants to enable a model (proactive activation, not for immediate deploy), use
arkcli models activate <name> [--sub-services ...]; for CI scenarios add--yes, for local request preview use--dry-run, but it must not be called server-side validation - After finding / activating the model, return to the upstream chain that initiated it:
+chat/+gen/+deploy
Typical business chain
0. Complete the full model ID for data-plane commands (mandatory prerequisite)
First retain the exact Endpoint / Custom Model ID provided by the user, as well as the valid Plan invocation name returned by the current resource directory.Only when a versioned ID for a public foundation model is needed, combine it from this round's name and non-empty primary_version ; the Plan's output_name / routing alias is not a "missing version", and the date must not be mechanically appended. Actual invocation follows the owning Skill's execution context; a catalog hit alone does not guarantee the account can invoke it.
primary_version format is not fixed,Do not use regex to judge on your own whether it "looks like a complete ID". Actually observed format distribution (about half of ~152 models are not 6-digit):
| Format | Sample full ID | Common family |
|---|---|---|
YYMMDD(6-digit date) |
doubao-seed-1-6-251015 |
doubao series |
YYYYMMDD(8-digit date) |
qwen3-14b-20250429、glm-4-6-20250930 |
qwen / glm open source |
| Qualified prefix + date | doubao-seed-2-0-code-preview-260215、doubao-seed-1-6-nano-unfiltered-250928 |
Canary / variant |
| Pure routing string | kimi-k2-6-modelhub、open-source-models-default |
External access |
| Short number | qwen3-235b-a22b-instruct-2507 |
Some qwen |
| Empty string | doubao-seed-tts-2-0(full ID equals the family name) |
Some TTS / ASR |
Two acquisition paths, in decreasing order of efficiency:
- Path A (efficient, reuse existing results): when
arkcli models search <keyword>orarkcli models listhas just been executed, each item in the returned JSON includes aprimary_versionfield; the Agent reads it directly and concatenates<name>-<primary_version>, with no extra call needed.searchalso returns structured fields such ascontext_window/input_modalities/output_modalities/capabilities/cache_typesin sync (from ArkModels enrich); downstream can judge directly based on this whether the model is suitable, saving the cost of another call togetcost of。 - Path B (separate query): when only the bare name is known,
arkcli models get <name> --transform 'primary_version'directly returns the version number
Note:--transform the output contains JSON double quotes (such as "251228"); before shell concatenation it must be stripped with tr -d '"' :
VER=$(arkcli models get doubao-seed-1-8 --transform 'primary_version' | tr -d '"')
# VER=251228 -> full ID: doubao-seed-1-8-251228
# VER=""(空串模型)-> 直接用族名: doubao-seed-tts-2-0
if [ -n "$VER" ]; then
MODEL="doubao-seed-1-8-$VER"
else
MODEL="doubao-seed-1-8"
fi
arkcli +chat --model "$MODEL" "你好"
1. Find a model for trial
models search [--modality / --capability ...] -> +chat / +gen
2. Find a model for formal integration
models search [--min-context-window / --capability ...] -> +deploy
3. Filter by hard metrics
# 找最新最强的 200K+ 文本模型,含 thinking 能力
arkcli models search --modality text --min-context-window 200000 --capability thinking --strict-filter
# 找视频生成模型
arkcli models search --modality video --strict-filter
# 找多模态 LLM
arkcli models search --multimodal --output-modality text --strict-filter
--strict-filter is strongly recommended: the default behavior is "keep on missing data" (to avoid false kills); with strict added, only models that satisfy the conditions 100% are returned.
Catalog evidence and context units
When the user asks about parameter support, runtime behavior of missing parameters, search/get conflicts, or NotFound, first read get evidence and troubleshooting rules. Missing fields cannot be treated as negative evidence, and conflicts must have their sources labeled separately; the public catalog cannot be used to inventory account-custom assets.
models search/getproves the public catalog and metadata, but does not prove that the Endpoint has been created, that console candidates are visible, that the Key is valid, that the balance is sufficient, or that the current account has permissions. For binding issues, first useinfer endpoint get/resources resolveto get the real binding, then check the model details; for Custom Model,base_model_*is the lineage and cannot replace the actualcm-*binding.api_supportis determined by thesupportedof the target API item; a missing item or a capability of null/unknown means "insufficient evidence," not true or false. For image input capability, look atinput_modalities; text output cannot be used as counterevidence that image reading is unsupported. Report catalog capability separately from the result of this call.context_windowkeep the exact integer for filtering. Display abbreviations follow1K = 1024、1M = 1048576tokens: 131072 → 128K, 262144 → 256K, 1048576 → 1M, and also give the original value; when not divisible, give the exact token count directly, and do not write 262144 as 262K.- When the user asks for activation but no model is specified, follow real-time candidate template to first check 10 items, project the real fields, and display 5–8 representatives by target; if there are not enough, do not fabricate, and handle empty/defective cases according to the recovery rules. For new onboarding, Shutdown/Retiring are not recommended. Keep 0/1/N selection separate from write authorization; enabling a sub-service, activating a base model, and creating an Endpoint cannot substitute for one another.
- The full ID, version, and display name are resolved according to the current
getreference; do not split the ID yourself using the "last six digits," and do not try to fix NotFound by switching families or repeatedly activating.
Common degradations
- Authentication failure: go to
../arkcli-auth/SKILL.md - profile / region looks wrong: go to
../arkcli-config/SKILL.md - Business-wise it is only to find a model name for
+chat、+gen、+deploy, so prioritize completing "look up the model, then return to the original task"; do not stop at models itself
Command overview
| Command | Description |
|---|---|
arkcli models search [keyword] [filters] |
Agent first choice: full recall + ArkModels enrich + modality/context/capability/cache type structured filtering + reranking; returned fields include context_window / input_modalities / output_modalities / capabilities / cache_types |
arkcli models list |
Full enumeration by modality, pagination statistics, model asset inventory; lightweight, without enrich |
arkcli models get <id> [version] |
Full details of a single model (aggregates multiple APIs, heaviest and most complete) |
arkcli models performance {rank,trend,input-length} |
Volc only: public model performance rankings, trends, and input length comparisons |
Tier heuristic for naming conventions (degradation fallback: enabled only when the scenario table does not match)
Priority mnemonic: scenario table match (★★★) > naming heuristic (★★, this section) > update_time. First go through the scenario table in "Quick Decision Step 0"; only when the scenario table does not cover that intent, or when the user names a third-party/open-source/historical model, use the naming heuristic in this section for ranking.
search After adding filter, there are usually still multiple candidates left; regular tier signals in the naming can help the agent do the final ranking step.This is a heuristic, not a hard rule: hard indicators (context_window / capabilities / modality) always take precedence over naming.
Generation (major version) — highest priority
2-x > 1-8 > 1-6 > 1-5 > ...
Generation jumps are usuallystronger than tier. Example:doubao-seed-2-0-mini is stronger than doubao-seed-1-6-proon most tasks, because the base model generation gap is larger than the size-tier gap.
tier (size tier within the same generation)
pro ≥ 无后缀 > lite > flash > mini > nano
pro: flagship, largest size / strongest capability- no suffix (e.g.
doubao-seed-1-8): mainstream tier, usually ≈ pro lite: cost/performance balanceflash: speed-optimizedmini/nano: low latency, high concurrency, lowest cost
specialty suffix (not part of tier comparison, choose by use case)
-code → 编程优化(Doubao-Seed-Code 等)
-thinking → 思考能力强化(更长 reasoning)
-vision → 视觉理解强化
-character → 角色扮演 / 长旁白
-translation → 翻译专用
-tts / -voice → 语音合成
-asr → 语音识别
specialty models, within their domain,are usually stronger than same-generation general-purpose pro, but are not portable across tasks.
primary_version comparison notes
- Within the same family: the newer the date, the better (
260215 > 251228 > 251015) - Between different families:cannot be compared numerically。
qwen3-14b-20250429(8 digits) anddoubao-seed-1-6-251015(6 digits): the former is numerically larger, but that has nothing to do with "which is stronger" - To compare "which is newer", always use the
update_timefield (ISO 8601, lexicographically comparable); do not parseprimary_version
Decision rules of thumb
filter (硬指标,必须满足)
↓
代次 (2-x > 1-x,跨代差距通常 > 同代 tier 差距)
↓
tier (pro > 无后缀 > lite > flash > mini > nano)
↓
update_time (同代同 tier 时,新者优先)
Sorting is already implemented in the search command
No need for the agent to do client-side reordering —— arkcli models search uses a two-phase sort of "group by family first, then fine-sort within the group":
1. bucket — keyword 可见性 (name 命中 > desc 命中 > 兜底 > hidden)
↓
2. 跨 family: 按 family 的"代表分"排(family 成员中的 max ctx → max update_time → family 名)
↓ → 同 family 的所有成员保持在一起
3. 同 family 内部: gen DESC → tier DESC → ctx DESC → update_time DESC → name ASC
Key design:
- Family grouping precedes fine sorting. The doubao-seed family (max ctx=262144) is placed entirely before doubao-seed-character (max ctx=131072) and all ctx=null families. This avoids strange results that violate transitivity, such as "1-6-vision of the same family ranking ahead of 1-8".
- Within the same family, gen takes priority over ctx. A new version will float ahead of older versions that already have ctx data even if the ArkModels metadata has not yet been filled in (
context_window=null). Example:glm-5-1(gen=501, ctx=null) ranks beforeglm-4-6(gen=406, ctx=262144);kimi-k2-6(gen=600, ctx=null) ranks beforekimi-k2-5(gen=500, ctx=262144). - Generation takes priority over tier. Within the same family,
doubao-seed-2-0-mini(gen=200, tier=50) ranks beforedoubao-seed-1-8(gen=108, tier=80) —— the gap across generations is usually larger than the tier gap within the same generation. - Do not compare gen/tier across families. pro/lite/mini are naming conventions internal to a family and are not comparable across families —— the family order is determined by the family representative score (max ctx + max time).
Old models tagged with any of 体验隐藏 / 推理隐藏 / 广场隐藏 automatically sink to the bottom (they will not be hidden from list/search, but will always be at the end of the results).
Note:
体验隐藏/推理隐藏/广场隐藏is a legacy-page hidden tag in the Volcano Ark model platformcustomized_tagsand is unrelated to this CLI command; arkcli only reads them for sorting.
Model lifecycle: Shutdown / Retiring / Published
ArkModels records lifecycle_statuson public model catalog entries, with three values, and Search handles them differently.This only describes the catalog view, not the source of truth for the shutdown of Agent/Coding Plan packages or personal Endpoints; the catalog Published is not enough to override a product end-of-life announcement:
| status | Meaning | search default behavior |
|---|---|---|
Published |
Normally displayed in the public catalog, does not mean any package still supports it | ✓ shown |
Retiring |
The public catalog is being retired; new integrations are not recommended; actual callability still depends on the product and account | ✓ Displayed, the agent should verbally remind and find an alternative |
Shutdown |
The public catalog has been taken offline; the independent timeline of another product cannot be inferred from this | ❌ Filtered out by default(add --include-deprecated to bring it back) |
Additionally,display_name containing the 废弃 / 下线 / 已下架 / deprecated keyword are also treated as Shutdown (a fallback, because some legacy models are not in the ArkModels metadata and rely on manual tagging).
Agent behavior conventions:
- No need to implement client-side logic to "filter out Shutdown" — search already does this by default
- When you see
lifecycle_status="Retiring"a model,proactively remind the user that it is being retired, and try to find a newer version in the same family (usesearch+ the correct keyword)
❌ Anti-patterns (required reading for agents)
The following behaviors are wrong — choosing the wrong command will prevent the agent from getting enrich data (context_window / modalities / capabilities) and from hidden sinking / weighted reranking, leading to incorrect recommendations.
- ❌ Do not use
listto find models — finding models (any "which model / find an X model" intent) should always go throughsearch。listdoes not do keyword fuzzy matching, does not do weighted reranking, and does not return enrich fields. - ❌ Do not use
list --modality videoto select video generation models — usearkcli models search --modality video --strict-filter, which combines ArkModels'output_modalitiesandtask_typesfallback, resulting in more accurate recall and allowing further combination with--min-context-window/--capabilityfiltering. - ❌ Do not use
list --modality textto select an LLM — same as above, usesearch --modality text --strict-filter。list --modality textonly looks at the foundation_model_tag.filter_domains layer of signal and will miss many models. - ❌ Do not first
listthengetto verify parameters such as context_window ——searchalready returnscontext_window/max_input_tokens/max_completion_tokensdirectly in the results, saving angetcall. - ❌ Do not
searchwithout passing a keyword just to "see the 5 hottest" — now, not passing a keyword returnsall 152 entriessorted by UpdateTime descending, no longer a curated hot list. For a small number of results, use--size 5。 - ❌ Do not recommend models with
lifecycle_status="Retiring"to users for new integrations — although these can still be called, the vendor has already marked a retirement countdown. When you see Retiring candidates, proactively notify and search for a newer version. - ❌ Do not do client-side secondary filtering on
searchto compensate for the shortcomings of list — directly usesearch's built-in--modality/--min-context-window/--capabilityflag。 - ❌ Do not force exact ID / specified version verification into a search; at this point directly
get. Only for fuzzy names or finding candidates should you firstsearch。 - ❌ Do not, just because
models listhas no server-side time filtering flag, goarkcli api --listto probe the Raw API — firstmodels list --page-all --format json, then use local JSON processing to filter bycreate_time. - ❌ Do not tell the user "the CLI does not have this capability, please go to the console", unless you have confirmed that
arkcli models list --helpthe current version truly has no enumerable output, and local JSON filtering also cannot accomplish the statistics the user wants.
Legal list sole purpose:
- ✓ Do
--modalitytofull exhaustive enumeration/audit(not to "find the strongest") - ✓ Need
total_countthis kind of statistic - ✓
--name fooexact match (agents can hardly use it, because search can also hit it) - ✓ Inventory public directories and their time fields; account-custom assets cannot use public
models listas a substitute
Reference
- arkcli-chat -- after finding the model, enter the conversation / inference pipeline
- arkcli-gen -- after finding the image/video model, enter the generation pipeline
- arkcli-deploy -- after finding the model, enter the Endpoint deployment pipeline
references/arkcli-models-list.mdreferences/arkcli-models-get.mdreferences/arkcli-models-search.mdreferences/arkcli-models-scenario-table.md-- scenario-based recommendation table (highest weight in intent ranking) + JOIN validation protocolreferences/arkcli-models-activate.md