SuperAPI AI Directory

arkcli-infer-endpoint

General & other

View repository

Updated 10-16 08:08

About this skill

arkcli infer endpoint

CRITICAL — Explicit scripted / CI / no-guardrail / raw raw CRUD creation is this skill's positive trigger; you must not switch to arkcli-deploy。

CRITICAL — Model candidate reuse uses this round's complete results; bounded recovery for truncation and empty results uniformly reuses the Deploy rules. Authentication/permission failures are not retried, do not switch identity, do not modify configuration, and do not write credentials into the command line; for other failures, preserve the original error and do not blindly swap commands.

CRITICAL — Before starting, you MUST first read ../arkcli-shared/SKILL.md。

Usage principles

  • For inference endpoint-related requirements, prioritize using arkcli infer endpoint ...
  • Although these commands are of the standard CLI type, their implementation entry point still comes from shortcuts/inferendpoint/
  • Only when product commands cannot cover the case should you fall back to ../arkcli-api-explorer/SKILL.md
  • infer endpoint create On success, it returns the Endpoint Id
  • This Id should serve as input for subsequent get / start / stop , and can also be passed to ../arkcli-code-example/SKILL.md to generate a call example with the real endpoint-id example call
  • If you have already obtained infer endpoint create via Id, do not call +deploy again trying to "deploy a second time";+deploy is itself the workflow for creating an Endpoint
  • infer endpoint create --billing-method currently only supports token; it is optional, and when token is explicitly passed, it first validates whether the model supports the token inference method; the creation request itself keeps the default behavior
  • Speech models are not Endpoint create targets: TTS / ASR / dubbing / podcast / voice / real-time voice interaction, or when the model name matches doubao-seed-tts-*、doubao-seed-asr-*、seedasr-* , do not use infer endpoint create or Raw CRUD to bypass; only redirect to arkcli-models to explain "it can be found in the marketplace, but current arkcli does not support Endpoint creation".

"My endpoints" semantics

When the user says **"my inference endpoints / the ones I created / how many do I have / list mine"** → you must add --mine --page-all:

arkcli infer endpoint list --mine --page-all --page-size 100 --format json

The server filters by sys:ark:createdBy tag and returns only endpoints created by the current SSO sub-user. Requires SSO sub-account identity; root account / AK-SK errors do not count as empty results, and authentication handling follows the current shared host protocol without automatic re-login. For detailed behavior, see references/arkcli-infer-endpoint-list.md。

Three-level recovery for an empty self-query

  1. --mine The query succeeds, is complete, and .TotalCount == 0 / .Items == [] only then proceed to the next level; authentication, permission, network, parameter errors, and incomplete pagination must not be treated as empty.
  2. Explain to the user that the next query is for "EPs used by the current user's API Key", not pretending to be "created by me". Follow usage stats use arkcli usage stats --start <29天前日期> --end <今天日期> --mine --mine-by=apikey --by endpoint --format json; if the original request had a time range, preserve it. For non-empty ModelEndpoint in the complete results, deduplicate and infer endpoint get <真实ID>one by one, preserving the original --status / --model conditions (verify get results locally). You must not invent --mine-byfor endpoint list. When a historical ID is currently NotFound, list it separately as "historically called, currently invisible", and do not call it deleted; report other failures as-is.
  3. If the second level also succeeds but there is no non-empty historical ID, ask the user whether to view the account's full set; if that scope has been explicitly authorized, you may continue. Execute arkcli infer endpoint list --page-all --page-size 100 --format json and retain the original filter conditions, and clearly mark the result as "account-wide fallback (--mine has been removed, cannot guarantee it was created by the user)". If the scope expansion is refused, deliver the user's own query as empty, and do not automatically switch to the whole account.

Read-only troubleshooting for Endpoint NotFound

For any call exception, first read the troubleshooting branch of get reference, to distinguish control-plane status, historical usage, and real call evidence; for inventory/export, first read list reference the pagination, rate limiting, time zone, and delivery requirements. When the exact ID is known, get it directly first; do not list all accounts first for every question.

When the user has already observed InvalidEndpointOrModel.NotFound, or get cannot find a certain Endpoint, do not directly claim "deleted", and do not guess the trailing characters. Converge using two independent sources of truth:

It is forbidden to claim, based only on ID length, shape, other IDs in the current list, or common formats, that the user input "is missing a suffix / is missing random characters / is not a complete ID". Only if the current list returns a unique real ID with the user input as its prefix can that complete ID be repeated as evidence; otherwise, only report that it was not found.

  1. Query the complete list visible to the current identity and project, and verify both the exact ID and the prefix provided by the user. The list may be very large, so only matching items must be retained inside the shell, to avoid pouring all unrelated Endpoints into the Agent context:

    arkcli infer endpoint list --page-all --page-size 100 --format json \
      | jq --arg id '<endpoint-id>' '[.Items[]? | select(.Id == $id or (.Id | startswith($id)))]'
    

    <endpoint-id> must be replaced with the original value provided by the user; it must not be omitted --page-all and then draw a conclusion from only the first page.

  2. Read ../arkcli-usage/references/arkcli-usage-stats.md, then use arkcli usage stats --start <YYYY-MM-DD> --end <YYYY-MM-DD> --endpoint <endpoint-id> --format json to verify historical usage. If the user gave a time range, use it as is; if not, query the most recent 30 days by default, and the placeholders must be replaced with actual dates.

Conclusions must align with the strength of the evidence:

  • If the current list finds a unique complete ID: repeat the real ID and explain whether the original input was missing trailing characters; do not fill it in yourself based on the format.
  • If the current list has no record, but historical usage has a record: you can only say "there were calls before, but it is currently not visible"; these two steps alone cannot distinguish deletion, identity change, or project change.
  • If there is no evidence in either place: report "not found", and suggest verifying the original ID, profile, and region; it is forbidden to create an Endpoint, switch profiles, or use the Raw API just to keep the task going.

infer endpoint create and +deploy boundaries

infer endpoint create israw CRUD, suitable for scripting / CI / scenarios that need predictable behavior without guardrails. Note that its flag set is actually +deploy ofsubset(+deploy is the parameter superset), the difference is "whether there are workflow guardrails", not "who has more parameters". Itdoes not include +deploy the following guardrails:

Guardrail +deploy infer endpoint create
Real-name pre-check (realname-gate.md) ✅ ✅ (the foundation model path also triggers EnsureModelAvailable, including real-name interception)
Custom model reuse check (to avoid duplicate billing) ✅ ❌
Default resource synchronization for profile after deployment (--set-default) ✅ ❌

Routing decision: as long as the user's intent is "create / new / create an endpoint / access point" or "deploy / launch the model" (regardless of whether the wording is create or deploy), always route to +deploy(arkcli-deploy);Onlywhen the user explicitly needs to bypass workflow guardrails, scripting / CI, or wants predictable raw CRUD behavior without guardrails, use infer endpoint create。

Exception: If the target is a speech model (TTS / ASR / podcast / voice / real-time voice interaction), do not enter this skill just because the user said "create endpoint"; speech models are currently only supported in arkcli for models search discovery, and Endpoint creation is not supported.

Model clarification before raw CRUD creation

This section only takes effect when the user has already explicitly chosen the scripted / CI / unguarded raw CRUD path, but --model is still missing or only has a brand, series, or family name. Ordinary creation intent is still routed to arkcli-deployaccording to the previous section, and must not switch to raw create just because the model is undetermined.

Candidate generation must reuse arkcli-deploy 's "Model clarification in creation intent"contract: the initial execution has bounded real-time arkcli models search [<keyword>] --size 10 --format json, and only reads real fields from this round's structured results. Filtering, complete model IDs, creation-time sorting, modality coverage, 0/1/N handling, and truncation/empty-result recovery are all consistent with +deploy , and a stricter stop-after-one-query policy must not be established separately. Stop only when recovery is still incomplete; full blind queries, per-candidate loop get, or filling in versions from memory are prohibited.

  • 0 candidates: truthfully explain that nothing was found in this round, and ask the user to supplement the purpose, modality, or keywords.
  • 1 candidate: repeat the complete model ID returned in this round, and ask the user to confirm.
  • Multiple candidates: preferentially use the structured selection capability provided by the current host, and directly list the streamlined candidates returned in real time in this round as options; the generic Skill does not hard-code host tool names, and if the host automatically adds a free-input item, do not add a duplicate "other / manually specify" fallback. Only when the host has no structured selection capability, degrade to a streamlined list and require the user to explicitly reply with one complete ID.

After a unique model is selected, still remain on arkcli-infer-endpoint 's raw CRUD path: first generate arkcli infer endpoint create ... --dry-run 's local preview.v1; if the user only requests a preview, stop here, and if real creation is requested, continue to comply with the shared write-operation guard. Before the model is uniquely determined, executing --dry-run, real infer endpoint create、+deploy , or Raw API creation is prohibited.

Command overview

Command Description
arkcli infer endpoint create Create an inference endpoint (raw CRUD, no deployment workflow guard);for the default intent of creating a new endpoint, use +deploy, this command is limited to scripted / unguarded raw CRUD scenarios
arkcli infer endpoint get <endpoint-id> Get inference endpoint details
arkcli infer endpoint list [--mine] List inference endpoints; when the user says **"my / my own / created by me / how many do I have"**, --minemust be added (SSO sub-user filtering)
arkcli infer endpoint start <endpoint-id> Start an inference endpoint
arkcli infer endpoint stop <endpoint-id> Stop an inference endpoint
arkcli infer endpoint delete <endpoint-id> Delete an inference endpoint (irreversible, requires secondary confirmation; in non-interactive environments requires ARKCLI_ALLOW_HEADLESS_DELETE=1,--yes not authorized)
arkcli infer endpoint update <endpoint-id> Update an inference endpoint (name / description / rate limit)

Reference