arkcli plans
CRITICAL — 开始前 MUST 先用 Read 工具读取 ../arkcli-shared/SKILL.md,其中包含认证闸门、配置排查与共享安全规则。
CRITICAL — 任何 plans buy / plans renew / plans personal rotate-apikey / plans team seat-assign / plans team rotate-apikey 在执行之前,务必先用 Read 工具读取对应 references/*.md,禁止盲目调用。
CRITICAL — Token 额度包 / Token 资源包是 platform 按量计费产品,不是本 skill 管理的 Agent Plan / Coding Plan。不得因「套餐」或价格字样调用 plans get/buy/renew;转 arkcli-profile 解释 platform + /api/v3 归属。
购买意图的逐步收参与失败重入
购买信息缺失时按固定顺序逐个收敛,不把所有问题堆在同一轮:
- 先问套餐家族:
Agent Plan还是Coding Plan。 - 再问形态:个人版还是企业/团队版,映射到
--plan <agent-plan|coding-plan|agent-plan-team|coding-plan-team>。 - 再问档位
--type:Agent Plan 只从small/medium/large/max选,Coding Plan 只从lite/pro选。 - 再问时长
--duration;只有团队版再问席位数--quantity。
同时缺多项时,当前轮只问上述顺序中第一个未知决策。宿主有结构化选择能力时优先用,但通用 Skill 不写死工具名;没有时用简短选项文本退化。参数已全部明确且用户只要命令时,只给不带 --yes 的第一次协议闸门命令,不执行。
“当前轮只问一个决策”也限制当前轮可展示的信息:只列出该层的选项和必要差异,不得在说明、括号、示例或下一步预告中泄露后续层的选项名、合法值或 flag。比如套餐家族尚未确定时,回复中只能出现 Agent Plan 与 Coding Plan 及二者的简短区别,不能同时列出个人/团队、small/medium/large/max、lite/pro、时长或席位数。用户回答当前层后,下一轮再展示下一层。
payment_failed 且返回 Order ID 表示订单已经落库。必须复述该 Order ID,引导用户到 console 对这一单补付或取消;不重新收参,不执行 plans buy / plans renew,也不用 billing 出账记录代替已有订单的支付重入点。
🔒 协议闸门(plans buy / plans renew 强制流程)
plans buy / plans renew 是计费写操作,加 --yes 才真扣款。不传 --yes 不传 --estimate 时, CLI 不下单, 而是返回:
{
"status": "agreement_required",
"agreements": [{"title": "...", "url": "..."}, ...],
"next_step": "arkcli plans buy ... --yes"
}
Agent 必须严格按以下顺序执行:
- 第一次调用必须不带
--yes— 拿到agreements数组 - 逐条把每条协议的
title和url展示给最终用户(不能省略,不能合并) - 等待用户明确表达已阅读并同意全部协议(例如"我已阅读并同意"、"OK 我同意"等清晰表态);不能用模糊回答("好"、"嗯") 默认通过
- 确认后才能加
--yes重跑next_step字段里的命令(直接复制 next_step 即可,flag 已回显完整)
违反这条流程 = 帮用户跳过法律合规步骤。这跟 frontend 购买面板的 "我已阅读并同意《...》" checkbox 等价 — 必须真人看过才能勾。
--estimate 是在线询价路径,不下单也不需要协议确认;它不是 Client Preview。用户最终走 --yes 真下单时仍需先看协议。
业务定位
arkcli plans 管理两类 ARK 套餐:
- Agent Plan(agent-plan / agent-plan-team):智能体调用套餐,按 tier 划档(small/medium/large/max)
- Coding Plan(coding-plan / coding-plan-team):编程辅助套餐,按 tier 划档(lite/pro)
每类套餐都有 个人版(personal)与 企业版 / 团队版(team)两种形态:
| 形态 | 资源单位 | 典型操作 |
|---|---|---|
| personal | 个人订阅 (subscription) | 查看 / 购买 / 续费 / 轮换专属 APIKey |
| team | 企业席位 (seat) | 查看 / 购买 / 续费 / 列出席位 / 绑定子用户 / 轮换席位 APIKey |
personal 一个账号下一份订阅;team 是按席位(SeatID)粒度管理,每个席位绑一个子用户。
本 skill 不含套餐用量 / 配额查询("用了多少 / 还剩多少 / 几号刷新 / 按模型拆分")。
plans get只回答"我持有哪些套餐 + 状态(Effective/Running)",不回答"用了多少"。配额视图在../arkcli-usage/— 详见下方"快速决策"分流表。
适用场景
- 查看当前账号下持有哪些套餐 →
plans get - 下单买套餐(含个人 / 团队)→
plans buy - 续费已有套餐 →
plans renew - 看套餐支持的模型清单 →
plans model-list - 切换 ark-code-latest 的路由目标(Auto 智能调度或具体影子模型)→
plans model-apply - 个人版轮换 APIKey →
plans personal rotate-apikey - 列出 / 筛选企业版席位 →
plans team seat-list - 把企业版席位绑给子用户 →
plans team seat-assign - 轮换企业版席位的 APIKey(自己 or 管理员批量)→
plans team rotate-apikey - 查本机 AI Agent 上专属 Harness 能力装没装(只读)→
plans harness-status:按能力卡报豆包搜索 / 专业数据集 / Agent 记忆(MCP),外加全局火山引擎Supabase(CLI+Skill 装没装)。「我的 supabase / MCP 装好了吗」都走这里(Agent 记忆卡仅个人版agent-plan;团队版报absent是预期、非漏装,详见其 reference)
快速决策
- 用户问 "我有什么套餐 / 我订阅了什么":直接
arkcli plans get,零参数(仅持有列表 + 状态,不含用量) - 用户问 "我用了多少 / 还剩多少 / 几号刷新 / 套餐内 vs 套餐外" —— 不在本 skill,转
../arkcli-usage/:- "我的套餐还剩多少 / 几号刷新" →
arkcli usage plan或arkcli usage balance --type plan - "我哪个模型用得最多 / 套餐内套餐外比例" →
arkcli usage plan-details - "团队席位的用量" →
arkcli usage seats --product agent-plan-team --with-usage
- "我的套餐还剩多少 / 几号刷新" →
- 用户问 "Agent Plan / Coding Plan 支持什么模型":
arkcli plans model-list --plan <plan> - 用户要 "切换 ark-code-latest 底层模型 / 改成 Auto 智能调度 / 锁定某个模型":
arkcli plans model-apply --plan <plan> --model <model-id|output-name|auto>(写操作,与控制台联动;可选项先plans model-list确认) - 用户要 "买 / 续 套餐":先看 references/arkcli-plans-buy.md / renew.md,严格要求显式
--plan、--type、--duration、团队版还要--quantity,不要替用户做选择 - 用户要 "重置 / 轮换 APIKey":分清个人版还是企业版,参考对应 reference;写操作,原 APIKey 立即失效,必须按 reference 走二次确认(除非用户明确要
--yes跳过) - 用户要 "查席位 / 看团队 seat 绑定情况 / 谁绑了哪个 seat / 列出席位 / 哪些席位激活了 / 团队席位 admin 视图" →
plans team seat-list --plan <agent-plan-team|coding-plan-team>(这是 seat 管理的默认入口,管理视角列基础信息 + 绑定关系,不带用量数字;要看每个 seat 用了多少 token / 套餐百分比 →arkcli usage seats --with-usage) - 用户要 "把席位分配给员工 / 给员工分配 seat / 解绑席位"→
plans team seat-assign,先准备好seat-id=user-id配对清单 - 用户只知道员工用户名不知道精确 UserID:先
arkcli iam userid --username <prefix>反查到user_id,再喂给seat-assign --bind seat-id=<user_id>
Agent 快速执行顺序
- 先确认认证状态:
arkcli auth status;缺失走../arkcli-auth/ - 读操作(
get/model-list/seat-list)直接执行;只在用户问 "我的" 时考虑当前身份 - 写操作(
buy/renew/rotate-apikey/seat-assign/model-apply) 务必:- 先读对应 reference
- 跟用户确认关键字段(plan / type / duration / SeatIDs / UserID 配对)
rotate-apikey默认不传--yes,让 CLI 走 [Y/N] 二次确认
- 部分失败(per-item Success/Failed 数组)是合法返回;exit code 非零时不要直接当全失败,先看 stdout 里的 success_count / failed_count
写操作风险清单(必读)
| 命令 | 风险 | 必做项 |
|---|---|---|
plans buy |
计费,IsAutoPay=true 自动扣款 |
必须先不带 --yes 走协议闸门 → 把 agreements 展示给用户 → 用户明确同意后加 --yes。详见 协议闸门流程 |
plans renew |
计费,自动扣款 | 同 buy 协议闸门;团队版必传 --seat-ids |
plans personal rotate-apikey |
原 APIKey 立即失效 | 默认走 [Y/N] 确认;提醒用户同步替换 harness 配置 |
plans model-apply |
改变套餐请求路由指向(立即生效、与控制台联动) | 非交互必须显式 --model;先用 plans model-list 确认可选目标;团队版无席位会报错 |
plans team seat-assign |
修改席位绑定关系 | 显式 --bind seat-id=user-id,自动调 IAM 反查 UserName |
plans team rotate-apikey |
原 APIKey 立即失效 | self-rotate 默认 agent-plan-team;admin batch 通过 --seat-ids |
命令一览
| 命令 | 类型 | 说明 |
|---|---|---|
plans get |
读 | 列出当前账号持有的套餐(个人版 + 团队版聚合) |
plans buy |
写(计费) | 下单购买套餐 |
plans renew |
写(计费) | 续费已有套餐 |
plans model-list |
读 | 列套餐支持的模型 + 当前选中的 ark-latest-model |
plans model-apply |
写 | 设置 ark-code-latest 路由目标(auto 或具体影子模型) |
plans personal rotate-apikey |
写(毁坏) | 轮换 Agent Plan 个人版 APIKey |
plans team seat-list |
读 | 列出企业版席位 + 多维度筛选 |
plans team seat-assign |
写 | 批量绑定企业版席位到子用户 |
plans team rotate-apikey |
写(毁坏) | 轮换企业版席位 APIKey(self / admin batch) |
plans harness-status |
读 | 查本机 AI Agent(claude-code/codex/opencode/openclaw/trae)上 Agent Plan 内置 MCP 的安装状态(只读、免登录) |
常见降级
- 鉴权错误:转
../arkcli-auth/SKILL.md - 区域 / project 不对:转
../arkcli-config/SKILL.md - 想看套餐用量 / 配额(used / total / percent / reset_at / 按模型拆):转
../arkcli-usage/SKILL.md— 本 skill 只回答"持有什么",不回答"用了多少" - 想看账单 / 结算金额:转
../arkcli-billing/SKILL.md—plans不出钱 - 想生成模型调用样例:转
../arkcli-code-example/SKILL.md - 试用某个模型不打算正式部署:转
../arkcli-chat/SKILL.md/../arkcli-gen/SKILL.md - 没现成产品命令时回退
../arkcli-api-explorer/SKILL.md - 想安装 / 注入 / 移除 MCP(不是查看状态):转
../arkcli-helper/SKILL.md—plans harness-status只读查看,不改配置
参考
- arkcli-shared -- 认证 / 全局参数 / 输出规则
- arkcli-usage -- 套餐用量 / 配额视图(
usage plan/usage plan-details/usage balance/usage seats --with-usage),跟本 skill 的"持有 / 购买 / 席位管理"互补 - arkcli-billing -- 套餐结算金额(火山计费中心拆账,T+1)
- arkcli-deploy -- 套餐买好后用
+deploy部署 endpoint - arkcli-helper -- 给 AI Agent 注入 / 移除 Agent Plan 内置 MCP(
plans harness-status只读查看,注入改动走这里)