Skip to content
cccskills
FreePublished on GitHub

arkcli-shared

arkcli 共享执行协议:首次配置入口、业务命令执行前的认证闸门、命令路由与选择顺序、输出/安全/二次确认规则。深度细节(身份解析、AK-SK 边界、API Key 恢复、实名闸门、profile 默认与漂移、临时数据面执行上下文、版本检查与显式升级、全局 flags、故障分流)按需在 references/ 加载。

当用户第一次使用 arkcli、遇到未登录/鉴权失败、询问版本是否最新或要求升级 arkcli、需要判断该走产品命令还是 raw api、或任何 arkcli-* skill 需要公共上下文时触发。

The English summary is being prepared. Showing the original description.

See how to install

Files included (6)

  • SKILL.md20.7 KB
  • references/execution-context.md5.5 KB
  • references/global-flags.md3.2 KB
  • references/profile-defaults.md4.8 KB
  • references/troubleshooting.md2.9 KB
  • references/update.md4.8 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

arkcli 共享规则

本 skill 是 arkcli 的统一执行协议入口。所有 arkcli-* skill 在执行前都应先读取本文件。

分层约定:本文正文只放"几乎每个任务都命中"的规则。稀有路径 / 查表类细节下沉到 reference,命中对应场景时再读:

场景读哪个
"我的 / my xxx" 自指资源过滤../arkcli-auth/references/identity-resolution.md
AK/SK 态能调什么 / 数据面 API Key 报错恢复../arkcli-auth/references/auth-modes.md
开通 / 部署 / 精调前的实名检查../arkcli-auth/references/realname-gate.md
+chat/+gen/+deploy 的默认资源与漂移 nudgereferences/profile-defaults.md
临时传入 Profile / API Key / Base URL / Endpoint / 模型名references/execution-context.md
版本是否最新 / 刷新版本信息 / 显式升级 arkclireferences/update.md
全局 flags 速查references/global-flags.md
报错不知归类 / 故障分流references/troubleshooting.md

事实与交付闸门

  • 每个最终事实必须对应实际返回、已读取的文档正文或已查看的输入/产物。未看图片时使用“参考图”等中性称呼,不能从文件名、自己填写的 display_name 或生成 prompt 推断物体、颜色和人物;输入参数表达期望,不证明产物已经满足要求。
  • 查询覆盖范围与返回状态分开报告:截断、分页未完成或只取部分行时,只能描述已核对部分,不能宣称“全部启用/全部没有”。接口或页面行为必须来自真实契约、官方正文或实际界面,不发明“点击即可复制”等步骤。
  • 生成/创建成功以真实终态和返回的产物/资源 ID 为准;本地文件保存、附件提交和最终答复分别验收。已经完成的部分应保留并交付,未完成项准确列出,不能因最后一步失败把全部说成未执行,也不能把中间成功包装为整体完成。

排障交付:先给证据范围,再给修复分支

用户询问调用失败、Key 是否有问题或客户端为何不能用时,最终答复按下面三项组织;有明确原请求证据时直接给对应修复,缺证据时也交付已完成的检查:

  1. 已验证:列出本次检查的账号/资源、时间、协议与实际结果,仅披露必要的非敏感标识。原请求与本机对照分开;只查状态就写“状态已核对”,只有真实业务调用成功才能写“该次调用成功”。
  2. 仍未知:点明尚未取得的原客户端 URL、模型、时间或错误,说明它使哪条结论仍不能成立。检查没有复现用户问题时,收口为“本次对照成功,原请求原因尚未定位”,不要把下一步排查对象写成已经确认的根因。
  3. 下一步:按现有证据给最短的条件分支,使用脱敏后的原请求信息即可核对;没有新请求的成本授权时不追加推理测试。确有原请求与契约或受控复现支持根因时,引用这条证据并给出修复,不机械重复“未知”。
实际拿到的证据可交付结论尚不能推出
Endpoint Running、Key Active查询时的管理状态用户的具体请求成功、历史从未失败
Key LastAccessTime接口返回的最近访问时间那次请求成功、之后持续正常、历史故障是临时异常
本机一组协议/模型/Key 调用成功这组条件下这一次调用成功平台所有链路正常、用户客户端配置一定错
unknown field 错误,原 URL/SDK 调用未提供该请求有字段不兼容信号;按 Chat/Responses 契约给条件修复仅凭字段名锁定用户实际协议、排除模型/SDK/网关差异

上述范围核对在发送最终答复时执行,包含开头摘要和结尾;不能正文写“尚未定位”,标题却写“排查完成,根因是本地配置”。

配置与首次使用

调用归因协议

当 AI Agent 通过任意 arkcli-* 业务 skill 执行 arkcli 命令时,必须使用下面的单命令环境变量前缀。它既标记调用来源和 owning skill,也冻结本次 Skill workflow 的 CLI 版本:不做隐式 registry 更新检查、不打印更新提示、不在任一子命令结束后调度 automatic apply。人类直接在终端调用 arkcli 时不要手动补这些变量。

ARKCLI_NO_UPDATE_NOTIFIER=1 \
ARKCLI_CALLER_TYPE=ai_agent \
ARKCLI_CALLER_NAME=<agent-id> \
ARKCLI_SKILL_NAME=<current-arkcli-skill> \
arkcli <command> ...

约定:

  • ARKCLI_CALLER_NAME 使用稳定 Agent ID,例如 codex / claude-code / opencode / openclaw / trae / cursor;无法可靠判断时用 unknown_agent
  • ARKCLI_SKILL_NAME 填当前业务 skill 名,例如 arkcli-gen / arkcli-chat / arkcli-models / arkcli-deploy
  • 一般业务 workflow 不要把 arkcli-shared 填进 ARKCLI_SKILL_NAME,归因必须落到实际 owning skill;仅当本 skill 直接处理版本检查或显式升级时,它就是 owning skill,使用 ARKCLI_SKILL_NAME=arkcli-shared
  • ARKCLI_NO_UPDATE_NOTIFIER=1 的兼容变量名虽然只写了 notifier,但契约覆盖全部隐式更新活动:缓存读取/刷新、提示和 automatic 调度;它不阻止用户明确要求的 arkcli update / arkcli update --check
  • Skill 内每一条 arkcli 子命令都必须带完整前缀,不能只给第一条加;这样多命令 workflow 从开始到结束都使用同一已安装版本
  • 只给当前命令加前缀,不要 export 到整个 shell 会话,避免串到后续无关命令

统一 CLI 与 Profile

当前 arkcli 的产品身份在编译时固定;Profile 只选择该产品内的身份与消耗切面,不能切换产品:

arkcli profile create --type platform --set-default          # 新建火山 profile(旧 config init/switch 已 deprecated)
arkcli profile use <name>                                    # 切换默认 profile

切换 profile 会联动切换登录身份、API Key、控制面路由等上下文。详细命令树看 ../arkcli-profile/SKILL.md。不能从 Profile 的名称或 tenant 字段推断、切换当前编译产品。

只查当前身份/Profile 时,普通 CLI 使用 arkcli auth status / arkcli auth whoami;默认模型与路由使用 arkcli resources list --modality <text|image|video> 并按 Resources Skill 验证。profile show/list/keys list 可能同步远端 Key 并回写本地库存或默认 Key,不能作为常规 Chat/Gen 准入或“不改配置/Key”请求的无副作用查询。显式 Profile 管理任务保留这些命令,但先说明同步影响;不改用 deprecated config show/list 绕过限制。此边界同样约束业务 Skill/reference 的旧建议。 只读核对身份与默认资源时,每次 Bash 调用只执行一条 arkcli auth status、auth whoami 或 resources list --modality ... --format json;直接检查该命令的原始 JSON 与执行状态。不要用 ; echo、管道截断或重定向包装核对命令,避免宿主拒绝或丢失事实来源。若命令被拒绝,报告未完成的核对,不把拒绝推断为账号或资源状态。

命令路由与执行顺序

优先按用户目标判断,而不是按命令名思考:

用户目标路径关键点
试用模型 / 快速验证效果auth → resources / models(可选)→ +chat / +genPlan lane 用模型名;Platform lane 用 Endpoint
专项多模态理解(转写/抽取/字幕/框目标…)auth → +understand有明确产出形态时走 understand,不是 chat
语音模型发现 / 选型(TTS / ASR / 播客 / 音色 / 实时语音交互)auth → models search仅支持广场检索;不支持 +chat / +gen / +deploy / +code-example / usage / pricing / onboard
正式接入 / 稳定调用auth → models → infer endpoint list → 没有就 +deploy核心资源是 Endpoint,不是 +chat/+gen
排查存量调用 / 看消耗auth → usage—
本地 AI Agent 集成+connect—
明确查官方文档 / 读取文档 URL / 业务 Skill 缺少产品知识docs搜索后读取正文;不替代资源操作、鉴权、诊断和 CLI help

易混动词路由(避免选错 skill):

  • 列 / 绑 / 分 / 轮换席位 APIKey → arkcli-plans;用 / 消耗 / 还剩多少额度 → arkcli-usage
  • profile 写操作(create/use/set-default/keys)→ arkcli-profile;配置排障 / 老 yaml → arkcli-config
  • 开放式带图对话 → +chat;生成图/视频 → +gen;有产出形态的理解 → +understand
  • 语音合成 / TTS / 配音 / 朗读、或用户点名 doubao-seed-tts-* 等广场语音模型 → 只允许 models search 做发现与选型说明;不要转 +chat / +gen / +deploy / +code-example / usage / pricing。不要主动补充控制台 / OpenAPI / SDK 等非 arkcli 接入路径或链接,除非用户另问"官方文档在哪里"。如果用户只是要"把一个音频文件转文字"且未要求使用广场语音模型,可另走 +understand asr;不要把 +understand 解释成支持广场 ASR 模型。

命令选择顺序(始终按此):

  1. 先用产品命令 arkcli <domain> <verb> 或 arkcli +<workflow>
  2. 有对应 reference 文档先读 reference 再执行
  3. 产品命令确实不覆盖,最后才走 arkcli api(不要把 Raw API Explorer 当默认入口)
  4. 读操作优先直接执行;写 / 删除 / 切换默认配置前必须确认用户意图

认证闸门

除 arkcli auth ...、arkcli profile list/show、arkcli +connect list、arkcli update ... 外,默认认为业务命令需要先过认证检查。不要跳过认证检查就连续重试一串业务命令。

  1. 先运行 arkcli auth status;已登录就继续目标命令
  2. 未登录 / 凭证失效:保持当前编译产品,按其认证 Skill 选择登录命令,不靠 Profile 推断或切换产品
    • 火山:直接 Bash 执行 arkcli auth login volc-sso
    • 执行前一句话告知用户"检测到未登录,正在启动 SSO 登录,请在浏览器完成授权";Bash 调用设 timeout=600000(10 分钟);成功后立即回到原始任务,不要停在 auth 结果
    • SSO 同时覆盖控制面 BFF 和数据面,所以默认走 SSO;AK/SK 登录通道 0.1.16 暂关。CI / agent / 沙箱(非 TTY)走 arkcli auth login --no-browser 两段式:Phase 1 跑它拿 authorize_pending JSON 里的 authorize_url 转发给用户,待其浏览器授权后回粘 base64 授权码,再跑 arkcli auth login --no-browser --code <授权码> 完成(细节见 ../arkcli-auth/SKILL.md)。不要在非 TTY 直接指望它阻塞等粘贴(旧版会 EOF 崩)
    • 启动 SSO 失败(无浏览器 / open 失败 / 端口占用 / 超时)→ 不原地重试,把 stderr 原样贴回用户、请其手动在终端登录后回来
    • 登录流程细节、whoami、apikey 选择见 ../arkcli-auth/SKILL.md

追加闸门 / 错误恢复(命中才读,避免常驻):

输出规则

  • 全局 --format 支持 json、yaml、table、csv、jsonl、pretty;脚本场景优先用 json/yaml,需要抽字段时配合 --transform
  • stdout 只放结构化结果;解释 / 调试 / 错误都走 stderr
  • 消费结构化输出时,禁止先用 head / tail / sed -n / head -c 按行或字节截断再解析。这样既可能破坏 JSON,也会漏掉数组后部的目标项、default 标记或 warning 对应的数据。输出较大时,优先使用命令自己的 --output <file>;没有该 flag 时只把完整 stdout 重定向到文件,再用 jq / yq 提取所需字段。
  • 首次调用和决定结论的调用不得用 2>/dev/null 吞掉 stderr;scope 提示、软截断告警和可恢复错误可能只出现在 stderr。

安全规则

  • 禁止输出完整 AK/SK、token、secret
  • 写入、删除、切换配置前需要确认用户意图
  • 只有已注册 Action 才能通过 arkcli api 调用
  • 涉及创建 Endpoint、修改 profile、清理凭证等操作时,先看叶子命令 --help:支持 Client Preview 才能用 --dry-run;不支持时改用只读命令核对并取得明确确认,绝不生成不存在的 flag

意图澄清与结构化选择

意图澄清只解决“用户要操作哪个真实目标”,不代替写操作授权。用户目标已经唯一,或可从 本轮输入与当前权威结果安全确定时,不要额外提问。确有歧义时遵守以下硬规则:

  1. 先做一次最小、有界的只读查询;候选只能来自本轮完整结构化结果,不能从模型记忆、示例或截断输出补全。
  2. 只允许用用户明确给出的硬约束和产品权威 eligibility 字段过滤候选;相关度排序、展示顺序、推荐语和 Agent 自己的优劣判断都不是硬约束,不得用主观“最合适”把 N 个候选自行收敛成 1 个。
  3. 按 0 / 1 / N 收敛:0 个时补充一个最关键条件;1 个时复述精确 ID 后继续;N 个且选择会改变远端结果时必须询问用户,并在用户选定前停止,不得进入下游 preview、create、update 或 delete。
  4. N 个候选优先使用当前宿主提供的结构化选择能力,选项直接携带区分目标所需的真实 ID 与关键字段;可以标注推荐及依据,但推荐不能代替用户选择。通用 Skill 不写死任何宿主工具名,也不重复添加宿主自动提供的自由输入项。
  5. 宿主没有结构化选择能力时,退化为精简编号列表并要求用户回复精确 ID。用户选定后只沿原 workflow 继续,不重新查询同一批候选。
  6. 因 N 个候选停机询问时,除让用户选「这次用哪个」,一并给出把它固定下来的方式,让用户还能选 「以后都用它」——该候选集有持久化开关时就说明怎么开:生成类模态默认值走 arkcli profile set-default --modality <image|video> <ep-id> 写当前 profile 的该模态默认值, 下次同类请求不再询问。否则同类请求每次都要重新问一遍,无人值守场景会持续卡住。 这是写操作,只在用户明确同意后执行;询问本身仍按上述规则停机,不要替用户预选。

任务型选型例外:用户要求创建 Managed Agent、未指定主模型时,按 owning arkcli-agent 的模型选择流程,允许根据本轮实时资格、详情与用户意图择优并说明依据, 不必仅因候选多于一个就提问。择优不等于把多个候选谎称为唯一候选;明确硬约束必须有 对应版本证据,费用/能力差异实质影响任务且无法安全判断时仍先询问。此例外不允许替换 用户明确模型、切换身份/计费路径或为更新、删除等操作擅选已有资源,也不替代执行授权。

二次确认错误处理(human-in-the-loop)

高危操作(删除资源、变更凭证、产生费用等)需要二次确认。CLI 自动检测环境:交互式终端显示 Y/N 提示;非交互式(Agent 调用)返回 ExitValidation 错误、type="requires_confirmation"。

当 arkcli 返回 ExitValidation 且 type="requires_confirmation" 时:

  1. 不要直接报错给用户 —— 这是正常的二次确认流程
  2. 调用宿主提供的用户确认能力 —— 提示内容可从 CLI 错误的 hint 字段提取,或通用提示"即将执行高危操作,确认继续吗?"
  3. 用户确认 → 给原命令加 --yes flag 重试
  4. 用户取消 → 返回"操作已取消"

当前会触发二次确认的命令:plans personal rotate-apikey、plans team rotate-apikey、models activate <model-name>、profile delete <profile-name>、profile project [<project-name>]、config delete <profile-name>。后续新增高危命令遵循同一约定。

Agent 禁止行为

  • 不要把 arkcli api 当默认入口
  • 不要在未检查认证状态前连续重试业务命令
  • 不要把中间步骤当最终结果;登录、查模型、切 profile 完成后应回到用户原始任务
  • 不要在业务 skill 里重复共享规则;共享规则统一以本 skill(及其 references)为准
  • 不要一概声称“试用不需要 Endpoint”:Plan lane 使用模型名,Platform lane 必须使用 Endpoint。按 references/execution-context.md 判断;正式接入仍走 +deploy
  • 不要把广场可搜到的语音模型误写成 arkcli 已支持调用、部署、示例、用量或费用查询;语音模型在 arkcli 当前只承认 models search 发现能力。
  • 不要把语音模型边界回答扩展成"去控制台开通 / 用 OpenAPI / 用 SDK 接入"的替代方案;当前 skill 只负责说明 arkcli 支持边界。
  • 不要给业务命令增加临时 Project/Region override;根命令已删除 --project-name 与 --region。持久上下文通过 arkcli profile create/use 管理,单次切换使用 --profile。

参考

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

arkcli agent:管理 ARK Managed Agents,包括 Agent / Skill / Env / Session / File / Memory Store / Vault / MCP OAuth。控制面优先走 ForTop/OpenTOP,Session 运行时和 Files 走数据面直联。

The English summary is being prepared. Showing the original description.

volcengine/ark-cli144Updated Oct 20, 2026

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.

The English summary is being prepared. Showing the original description.

volcengine/ark-cli144Updated Oct 20, 2026

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 当前仅支持广场发现。

The English summary is being prepared. Showing the original description.

volcengine/ark-cli144Updated Oct 20, 2026

查询火山引擎 ARK 拆分账单明细(结算金额、Token 用量计费),支持按账期月、月范围、Endpoint、API Key、产品编码等维度过滤。当用户问账单、花了多少钱、对账、账期、按 EP / API Key 拆账、按产品拆账、月度账单、出账明细时使用。注意 billing 跟 usage stats 不同:stats 出推理量(近实时),billing 出结算金额(T+1 出账,财务口径)。

The English summary is being prepared. Showing the original description.

volcengine/ark-cli144Updated Oct 20, 2026

模型 API 用法、思考模式开关与强度、Chat/Responses 参数和 SDK 示例,以及 arkcli +chat 真实推理。询问如何配置时按具体模型版本与协议给最小示例;已有报错先核对原请求,不用新推理或新建凭证代替取证。明确要求真实模型输出时,支持多模态、流式、多轮与本地 dry-run;专项理解走 arkcli-understand。

The English summary is being prepared. Showing the original description.

volcengine/ark-cli144Updated Oct 20, 2026

arkcli +code-example:为指定基础模型生成多语言(Python / Go / Java / Node / curl)调用示例代码并写入本地文件。数据源是火山方舟 OpenTOP OpenGetSampleCode。当用户需要拿某个基础模型的 SDK / curl 调用示例、保存为本地接入模板时使用。反触发:TTS/ASR/语音模型没有 arkcli 示例代码路径,不能靠补版本解决,只能转 models search 说明当前不支持。

The English summary is being prepared. Showing the original description.

volcengine/ark-cli144Updated Oct 20, 2026

See all skills by volcengine

Report a problem with this skill