千问AI平台用量
千问AI平台账户、用量、账单和订阅的统一入口:身份验证状态、用量汇总、免费额度、Token Plan、按量付费、已结算账单、模型成本明细、订阅状态、订单历史、团队席位和 PAYG 消费限额。
前提条件
- 千问AI平台 CLI 必须已安装。运行以下命令进行验证:
qianwen version
如果尚未安装,请运行:
npm install -g @qianwenai/qianwen-cli
要求 Node.js 版本 >= 18。
- 身份验证:首次使用时无需配置。CLI 会自动处理非 TTY 环境检测和安全登录(请参见下文“身份验证流程”)。
环境变量
| 变量 | 说明 | |---------------------------|----------------------------------------------------------------------------------------------| | QIANWEN_KEYRING | 将其设置为 plaintext、no、0、false 或 off,可选择不使用 OS 钥匙串存储凭据。 | | QIANWEN_CREDENTIALS_DIR | 覆盖基于文件的凭据目录(默认值:~/.qianwen/credentials)。 |
执行基准
以下规则适用于此 skill 中的每条命令:
- CLI 版本基准:1.3.0。 执行前,检查
qianwen version。如果已安装的版本低于 1.3.0,则不得调用可能缺失的命令(尤其是billing和subscription命令组);应说明已安装的 CLI 早于该基准版本,并等待用户确认升级后再继续。(这是每次运行时进行的执行前检查,与下文“CLI 更新检查”部分不同;后者仅适用于用户明确询问 CLI 更新的情况。) - 仅限白名单。 只能运行本文档中记录的命令和参数。不得拼接任意 shell 字符串,也不得将未经检查的用户输入传入命令行。
- 统一的结果状态。 每条命令的结果都必须映射为以下五种状态之一:
success/partial/empty/confirmation_required/error。不得使用模拟数据填补缺失或失败的结果——应如实报告实际情况。 - 仅使用 CLI 输出中的 URL。 仅展示 CLI 返回的 URL(例如
verification_url)。禁止根据名称或猜测编造 URL。
认证流程(适用于 Agents)
CLI 会自动检测非 TTY 环境并安全降级,无需包装脚本。
TL;DR — 3 步认证流程
qianwen auth status --format json→authenticated: true→ 直接执行命令qianwen auth login --init-only --format json→ 提取verification_url→ 在浏览器中打开qianwen auth login --complete --format json→ 轮询直至出现success事件
快速检查:是否已登录?
qianwen auth status --format json
如果 authenticated: true 且令牌未过期,则完全跳过登录。
推荐:两阶段登录
适用于所有环境(桌面、无头、远程容器)。
步骤 1 — 初始化登录(非阻塞):
qianwen auth login --init-only --format json
命令会立即退出。解析 stdout 输出的 JSON 中的 events 数组:
already_authenticated→ 用户已登录,直接执行命令device_code→ 提取verification_url并展示给用户
在带浏览器的桌面环境中,为用户打开该 URL:
open "$VERIFICATION_URL" # macOS
xdg-open "$VERIFICATION_URL" # Linux
start "" "$VERIFICATION_URL" # Windows
步骤 2 — 立即开始轮询(不得等待用户确认):
qianwen auth login --complete --format json
解析 stdout 输出的 JSON 中的 events 数组:
success→ 登录完成,继续执行命令expired→ 设备代码已过期,返回步骤 1error→ 报告失败
TTY 环境(交互式终端)
如果 agent 运行在 TTY 中(例如用户的终端),只需运行:
qianwen auth login
CLI 会自动打开浏览器并持续轮询,直至授权完成。
JSON 事件结构
--init-only 和 --complete 均输出一个 JSON 文档:
{
"events": [
{"event": "device_code", "verification_url": "...", "expires_in": 300},
{"event": "success", "authenticated": true, "user": {"aliyunId": "..."}}
]
}
事件类型:already_authenticated、device_code、success、expired、error、pending。
严禁:
- ❌ 在运行
--complete前询问用户“您是否已完成授权?” - ❌ 轮询前等待用户确认——展示 URL 后必须立即运行
--complete - ❌ 未完成登录流程便重新运行
--init-only(这会创建新的设备代码,并使之前的代码失效)
用法
所有命令均支持使用 --format json 输出结构化、可供机器解析的结果(建议默认使用),也支持使用 --format text 输出简洁的纯文本结果。
供 agent 使用时,始终优先选择 --format json,并解析 JSON 响应。仅当用户明确要求人类可读的纯文本时,才改用 --format text。
禁止以编程方式解析 table 格式——其中包含 ANSI 代码和 Unicode 边框。
身份验证命令
qianwen auth status — 检查当前身份验证状态
qianwen auth status --format json
qianwen auth logout — 撤销服务端会话并清除本地凭据
⚠️ 需要确认:登出会使当前会话失效。必须先征得用户确认(confirmation_required 状态);只有在用户明确确认后才能运行该命令。
qianwen auth logout
用量命令
qianwen usage summary — 查看用量汇总(免费额度、Token Plan、按量付费)
qianwen usage summary # Current month
qianwen usage summary --period last-month # Last month
qianwen usage summary --from 2026-03-01 --to 2026-03-31
qianwen usage summary --format json # JSON output
周期预设值:today、yesterday、week、month(默认值)、last-month、quarter、year、YYYY-MM
qianwen usage breakdown — 查看模型用量明细
qianwen usage breakdown --model qwen3.6-plus --days 7
qianwen usage breakdown --model qwen3.5-plus --period 2026-03
qianwen usage breakdown --model qwen-plus --period 2026-03 --granularity month
qianwen usage breakdown --model qwen3.6-plus --format json
qianwen usage free-tier — 查看免费额度详情
qianwen usage free-tier
qianwen usage free-tier --format json
qianwen usage payg — 查看按量付费计费详情
显示按量付费的实时、尚未结算消费。对于已最终确定并结算的账期,请使用 qianwen billing summary(请参阅下文的账单命令)。
qianwen usage payg
qianwen usage payg --format json
qianwen usage payg --period month --format json # Recommended: current month real-time PAYG
qianwen usage logs — 浏览分页调用日志(逐请求历史记录),可按时间、模型和状态筛选
此命令用于处理请求级问题——“哪些调用失败了?”、“显示 4xx/5xx 错误”、“这些请求耗时多久?”、“我最近调用了哪些模型?”、“查询此请求标识符”。这与 usage summary/breakdown(汇总词元/费用)不同——失败诊断、延迟和调用历史问题应交由此命令处理,而不是交给汇总/明细命令。
qianwen usage logs --period month --format json
qianwen usage logs --period 24h --status 4xx --status 5xx --format json # recent client/server errors
qianwen usage logs --model qwen-plus --page 2 --page-size 50 --format json
qianwen usage logs --from 2026-07-25 --to 2026-08-07 --format json # explicit range (must be ≤ 14 days)
qianwen usage logs --request-id 8c81644f-... --format json # exact lookup
选项:
--from/--to— 日期范围(YYYY-MM-DD或 RFC3339)--period <preset>—1h、24h、7d、today、yesterday、week、month,…(与usage summary属于同一预设系列)--model <id>— 按模型筛选;可重复指定(可传入多个--model选项以包含多个模型)--status <type>— 按状态筛选:0(已取消)、2xx(成功)、4xx(客户端错误)、5xx(服务器错误);可重复指定--request-id <id>— 精确匹配请求标识符;设置后,将忽略所有其他筛选条件--page <n>(默认值为 1)/--page-size <n>(1..100)
⚠️ 14 天范围限制:解析后的时间范围必须不超过 14 天。任何超过 14 天的范围(无论通过 --from/--to 还是较长的 --period 指定)都会返回 INVALID_ARGUMENT(exit 4,"Time range cannot be longer than 14 days.")。要扫描更长的历史记录,请依次调用 --from/--to,以滑动一个不超过 14 天的窗口。这不同于可接受跨多月范围的 usage summary/breakdown。
分页:结果按页返回。要遍历一个窗口内的完整历史记录,请从 --page 1 --page-size 100 开始,只要 page × pageSize < totalCount 成立,就持续递增 --page,直到取回 totalCount 所表示的全部条目。
JSON 结构(根据 CLI 源码——顶层包含 totalCount / page / pageSize / period / items;在 items[] 中,只有失败的调用才有 errorCode,usages 包含每次请求的词元/字符消耗量,失败/已取消的调用中该字段为空):
{
"totalCount": 4,
"page": 1,
"pageSize": 20,
"period": { "from": "2026-07-25", "to": "2026-08-07" },
"items": [
{ "requestId": "8c81644f-...", "model": "wan3.0-video", "statusCode": 403, "durationMs": 548, "errorCode": "Forbidden.NoPermission", "usages": [] },
{ "requestId": "8e3a2c02-...", "model": "qwen3.8-max", "statusCode": 200, "durationMs": 956, "usages": [ { "type": "tokens", "total": 1820 } ] }
]
}
period.from / period.to 会回显解析后的时间窗口:日历型预设和显式指定的 --from/--to 日期以 YYYY-MM-DD 格式呈现,而滚动预设(1h、24h、7d)以 RFC3339 时间戳呈现。当没有匹配的调用时,CLI 会返回 totalCount: 0 和空的 items: []——将其映射为 empty 状态(不是错误)。
字段:requestId(用于关联服务端跟踪信息)、model、statusCode(HTTP 风格的状态码——2xx 表示成功,4xx 表示客户端错误,5xx 表示服务器错误,0 表示已取消)、durationMs(调用延迟)、errorCode(失败原因,仅在非 2xx 调用中存在)、usages(每次请求的消耗量;失败/已取消的调用中为空)。使用 statusCode + errorCode 进行失败诊断,使用 durationMs 进行延迟分析。
明细参数:如何理解这些参数
三个相互独立的维度——可自由组合:
--model(必填)+ 日期范围 + 粒度
模型范围:
--model <id>— 单个模型(例如qwen3.5-plus);用于用量明细查询时必填
日期范围 — 三种模式,根据用户描述时间段的方式选择:
| 模式 | 适用场景 | 工作方式 | |---|---|---| | --period YYYY-MM | 用户指定具体月份(“3 月”“去年 4 月”) | 完整的自然月,从月初到月末 | | --period <preset> | 用户描述相对时间段 | last-month = 上一个完整自然月;month = 本月至今;quarter = 本自然季度至今 | | --days N | 用户说“过去 N 天” | 以今天为起点向前回溯的滚动窗口,可自然跨越月份边界 | | --from YYYY-MM-DD --to YYYY-MM-DD | 用户给出明确日期,或指定某个季度/时间范围 | 可完全控制,在其他模式不适用时使用 |
粒度 — 决定结果的分组方式,而非时间范围:
day(默认)— 每天一行;适合发现用量峰值month— 每个自然月一行;适合查看跨月趋势quarter— 每季度一行;适合进行季度环比分析
典型示例:
# Single model, single month, daily detail
qianwen usage breakdown --model qwen3.5-plus --period 2026-03
# Single model, last 3 months, monthly summary
qianwen usage breakdown --model qwen3.5-plus --days 90 --granularity month
# Single model, specific quarter, quarterly rollup
qianwen usage breakdown --model qwen3.5-plus --from 2026-01-01 --to 2026-03-31 --granularity quarter
# Single model, this month, daily breakdown
qianwen usage breakdown --model qwen3.6-plus --period month
账单命令
qianwen billing summary — 首尾均包含的 YYYY-MM 账期范围内的已结算账单总额
qianwen billing summary --from 2026-05 --to 2026-07 --format json
qianwen billing summary --charge-type payg --format json # payg | subscription | all (default)
返回已结算账单(已最终确定的账期)。这与 qianwen usage payg 不同,后者显示当前账期的实时、尚未结算用量 — 要查询“截至目前花了多少钱”,使用 usage payg;要查询“过去账期结算了多少费用”,使用 billing summary。
cycles 按顺序覆盖 --from..--to 范围内的每个月,中间没有遗漏。每个账期都包含 billingCycle、aftertaxAmount 和 settled 标志。chargeType 是内部值 — all 表示全部,订阅对应 prepaid,payg 对应 postpaid;金额均为十进制字符串。
读取 settled 以区分两种截然不同的状态:
settled: true→ 该周期存在实际已结算的账单。aftertaxAmount是实际金额,而"0.000000"表示账单金额确实为零(CLI 将其显示为¥0)。应将其报告为实际金额,而不是“无账单”。settled: false→ 服务器返回该月无账单;aftertaxAmount为null。CLI 将该月显示为No bill;应报告为该月无账单,严禁报告为¥0。
totals.aftertaxAmount 仅对已结算周期求和(未结算月份不计入)。
{
"period": { "from": "2026-05", "to": "2026-08" },
"chargeType": "all",
"currency": "CNY",
"cycles": [
{ "billingCycle": "202605", "aftertaxAmount": null, "settled": false },
{ "billingCycle": "202606", "aftertaxAmount": "3.710000", "settled": true },
{ "billingCycle": "202607", "aftertaxAmount": null, "settled": false },
{ "billingCycle": "202608", "aftertaxAmount": "0.000000", "settled": true }
],
"totals": { "aftertaxAmount": "3.71" }
}
qianwen billing breakdown — 按模型(或 API 密钥)统计的消费额前 N 名
qianwen billing breakdown --period month --group-by model --top 10 --format json
qianwen billing breakdown --group-by api-key --top 10 --format json
选项:--group-by model|api-key(默认值为 model)、--top <n>(默认值为 10,最大值为 100)、--granularity day|month(默认值为 month)、--charge-type all|subscription|payg,以及 --period / --from / --to 日期范围。日粒度要求范围不超过 31 天;月粒度不超过 12 个月。
单周期查询的 JSON 结构(根据 CLI 源码,即原始 ConsumeBreakdown 对象):
{
"groupBy": "model",
"period": { "from": "2026-07-01", "to": "2026-07-29" },
"chargeType": "all",
"rows": [
{ "groupKey": "qwen3.6-plus", "groupLabel": "qwen3.6-plus", "amount": "5.20" },
{ "groupKey": "qwen-plus", "groupLabel": "qwen-plus", "amount": "1.80" }
],
"totalRows": 12,
"totalAmount": "9.80",
"currency": "CNY"
}
当范围跨越多个周期(例如数个月)时,JSON 将改为按周期切片:{ "groupBy", "dateRange": { "from", "to" }, "granularity", "chargeType", "slices": [ { "period", "rows", "totalAmount" } ], "currency" }。
qianwen billing limit — 按量付费消费限额和告警配置
qianwen billing limit --format json
只读 — 此命令仅显示 PAYG 支出限额;CLI 不支持修改该限额。如需更改,请引导用户前往控制台。
JSON 结构(根据 CLI 源码,即原始 UsageLimit 对象;未设置限额时,limitAmount 可能为 null):
{
"status": "normal",
"limitAmount": "500.00",
"currency": "CNY",
"alertThreshold": "80"
}
status 的取值:normal / active / exceeded / warning / unknown。
订阅命令
qianwen subscription status — 汇总各套餐的订阅状态
qianwen subscription status --format json
qianwen subscription status --plan token --format json
JSON 结构(根据 CLI 源码:SubscriptionStatus 的字段加上 diagnostics;recentOrders[].orderType 和 .status 已映射为 Purchase / Paid 等显示标签;可空字段可能为 null,数组可能为空):
{
"isGray": false,
"plan": "Token Plan Team Edition",
"period": { "start": "2026-07-01", "end": "2026-08-01" },
"quota": { "remaining": 21000, "total": 25000, "usedPct": 16 },
"autoRenew": true,
"renewable": true,
"remainingDays": 3,
"seatTiers": [
{ "specType": "standard", "seats": 2, "totalCredits": 50000, "remainingCredits": 42000, "usedPct": 16, "nextCycleFlushTime": "2026-08-01" }
],
"creditPacks": [
{ "instanceId": "cp-xxxxxxxx", "totalCredits": 10000, "remainingCredits": 8000, "expiresAt": "2026-12-31" }
],
"recentOrders": [
{ "orderId": "20260701xxxx", "orderType": "Purchase", "orderTime": "2026-07-01 10:00:00", "amount": "199.00", "status": "Paid" }
],
"diagnostics": []
}
状态由多个子调用的结果组合而成;部分失败会显示在 diagnostics 中(每个条目包含:api、errorCode、errorMessage) — 应将此类结果映射为 partial 状态。如果 data 完全为 null,命令将以退出码 1 退出(error 状态)。
⚠️ 只有当 autoRenew 为 true 时,nextCycleFlushTime 才表示配额重置。 当 autoRenew 为 false(自动续订明确为 OFF)时,CLI 会为每个席位等级返回 nextCycleFlushTime: null,因此非空值可理解为“额度会在此日期恢复为满额”。如果 autoRenew 为 null(续订状态未知),该字段仍可能包含日期 — 不得将其表述为一定会重置。除非 autoRenew 为 true,否则严禁告诉用户“您的额度将在 <date> 重置”。当 autoRenew 为 false 时,应将 period.end 日期表述为到期日期,例如“您的订阅将于 <date> 到期;自动续订已关闭,因此如不续订,该套餐将失效” — 而不是重置日期。
qianwen subscription orders — 订单历史(购买 / 续订 / 升级)
qianwen subscription orders --page 1 --page-size 100 --format json
qianwen subscription orders --from 2026-01-01 --to 2026-06-30 --type purchase --format json
选项:--page <n>(默认值为 1)、--page-size <n>(默认值为 20,最大值为 100)、--type purchase|renew|upgrade、--from / --to(YYYY-MM-DD)。
分页:结果采用分页方式返回。要获取完整历史记录,请从 --page 1 --page-size 100 开始,然后在 pagination.page × pagination.pageSize < pagination.total 成立时不断递增 --page,直到检索到全部 pagination.total 个订单。
JSON 结构(根据 CLI 源码:orderType / status 为显示标签;amount 为包含货币符号的显示字符串):
{
"orders": [
{ "orderId": "20260701xxxx", "orderType": "Purchase", "orderTime": "2026-07-01 10:00:00", "amount": "¥199.00", "currency": "CNY", "status": "Paid" }
],
"pagination": { "page": 1, "pageSize": 100, "total": 231 },
"diagnostics": []
}
qianwen subscription tokenplan status — Token Plan 实例详情(周期、自动续费、席位摘要)
qianwen subscription tokenplan status --format json
JSON 结构(根据 CLI 源码;对应的子调用失败时,period / autoRenew / renewable / seatSummary 的值为 null,请检查 diagnostics;额度值为十进制字符串):
{
"product": "Token Plan Team Edition",
"period": { "start": "2026-07-01", "end": "2026-08-01", "remainingDays": 3 },
"autoRenew": { "enabled": true, "period": 1, "periodUnit": "M" },
"renewable": { "canRenew": true, "interceptCode": null },
"seatSummary": {
"groups": [
{ "specType": "standard", "seats": 2, "assigned": 1, "totalValue": "50000", "surplusValue": "42000", "unit": "Credits", "nextCycleFlushTime": "2026-08-01" }
],
"total": { "seats": 2, "totalValue": "50000", "surplusValue": "42000", "unit": "Credits" }
},
"diagnostics": []
}
如果四个数据字段均为 null,命令将以退出码 1 退出(error 状态)。
⚠️ 只有当 autoRenew.enabled 为 true 时,seatSummary.groups[].nextCycleFlushTime 才表示额度重置。 当 autoRenew.enabled 为 false(自动续费已明确设为 OFF)时,CLI 会为每个组返回 nextCycleFlushTime: null。如果 autoRenew 本身为 null(状态未知),仍可能存在日期——不得将其视为必定会重置。只有当 autoRenew.enabled 为 true 时,才能说“额度将在 <date> 重置”;当其为 false 时,应将 period.end 表述为到期日期,除非续订,否则该套餐将在此日期后失效。
qianwen subscription tokenplan seats — 各席位详情和剩余额度(团队席位)
qianwen subscription tokenplan seats --page 1 --page-size 100 --format json
qianwen subscription tokenplan seats --spec-type standard --format json # pro | standard
选项:--page <n>(默认值为 1)、--page-size <n>(默认值为 20,最大值为 100)、--spec-type pro|standard。分页规则与订单相同:在 page.current × page.size < page.total 成立时,不断递增 --page。
JSON 结构(根据 CLI 源码;cycle / config 可能为 null;cycle.surplusValue 是该席位在当前周期的剩余额度):
{
"page": { "current": 1, "size": 100, "total": 2 },
"filter": { "specType": null },
"items": [
{
"instanceCode": "tp-xxxxxxxx",
"specType": "standard",
"status": "NORMAL",
"memberId": "12xxxxxxxxxxxx34",
"assignable": true,
"assignment": "assigned",
"payMode": "Subscription",
"productType": "TokenPlan",
"cycle": { "startTime": "2026-07-01", "endTime": "2026-08-01", "totalValue": "25000", "surplusValue": "21000", "unit": "Credits" },
"config": { "planType": "standard", "creditValue": 25000, "seatNum": 1, "quotaCycle": "MONTH" }
}
],
"diagnostics": []
}
输出与 Agent 展示规则
在 agent/管道环境中,CLI 命令默认返回 JSON(auto 格式:TTY → 表格,管道 → JSON)。 JSON 是 agents 的主要输出模式 — 必须始终显式传入 --format json,解析结构化响应,然后向用户展示易于阅读的摘要。
JSON 输出示例(--format json)
qianwen usage summary --period month --format json
返回包含三个部分的结构化 JSON:
{
"period": { "from": "2026-04-01", "to": "2026-04-24" },
"free_tier": [
{ "model_id": "qwen3.6-plus", "quota": { "remaining": 850000, "total": 1000000, "unit": "tokens", "used_pct": 15 } }
],
"token_plan": {
"subscribed": true,
"planName": "Token Plan Team Edition",
"status": "valid",
"totalCredits": 25000,
"remainingCredits": 21000,
"usedPct": 16,
"resetDate": "2026-05-01",
"addonRemaining": 8000
},
"pay_as_you_go": {
"models": [
{ "model_id": "qwen3.6-plus", "usage": { "tokens_total": 480000 }, "cost": 0.38, "currency": "CNY" },
{ "model_id": "qwen-plus", "usage": { "tokens_total": 460000 }, "cost": 0.13, "currency": "CNY" }
],
"total": { "cost": 0.51, "currency": "CNY" }
}
}
关于token_plan的说明:中国站(千问AI平台 CLI)会返回上文所示的token_plan分支。编程套餐是国际站(qwencloud)的概念——中国站不会生成编程套餐展示分支。
文本输出示例(--format text)
qianwen usage summary --period month --format text
Usage Summary · 2026-04-10
-- Free Tier Quota -------------------------------------------------------
Model Remaining Total Progress
qwen3.6-plus 850K tokens 1M tokens 85% left
wan2.6-t2i 38 images 50 images 76% left
--------------------------------------------------------------------------
-- Token Plan · Token Plan Team Edition - Standard Seat · valid-------
Usage: 25K / 25K Credits
Quota Left: 100%
Status: valid
Resets: 2026-06-01
--------------------------------------------------------------------------
-- Pay-as-you-go · 2026-04-01 → 2026-04-10 -------------------------------
Model Usage Cost
qwen3.6-plus 480K tok $0.38
qwen-plus 460K tok $0.13
--------------------------------------------------------------------------
Total — $0.51
⚠️ 关键:如何向用户呈现输出
使用 --format json 时(建议 agents 使用):
- 解析 JSON,并提取与用户问题相关的数据
- 提供便于用户理解的摘要 — 不得将原始 JSON 直接输出给用户
- 在摘要之后添加分析 — 使用
---清晰分隔
使用 --format text 时:
- 原封不动地显示 CLI 输出 — 不做任何修改或重新格式化
- 保留所有格式 — 对齐、空格、进度条和分隔线
- 仅在输出之后添加分析 — 使用
---清晰分隔
严禁:
- ❌ 未经解读便将原始 JSON 输出给用户
- ❌ 重新格式化或总结文本/表格输出
- ❌ 添加“以下是您的使用情况:”之类的前缀
- ❌ 将文本/表格输出转换为项目符号列表
✅ 正确(JSON 模式):
Your QianWen usage for April:
**Free Tier**: qwen3.6-plus has 85% remaining (850K / 1M tokens), wan2.6-t2i has 76% remaining (38 / 50 images).
**Token Plan (PRO)**: 8% used this month (82.5K / 90K requests).
**Pay-as-you-go**: $0.51 total — qwen3.6-plus $0.38, qwen-plus $0.13.
---
**💡 Analysis**: Your qwen3.6-plus free tier is 85% remaining...
✅ 正确(文本模式):
[CLI text output - exactly as-is]
---
**💡 Analysis**: Your qwen3.6-plus free tier is 85% remaining...
❌ 错误:
Here's your usage:
- qwen3.6-plus: 850K tokens remaining (85% left)
退出码
| 代码 | 含义 | |------|----------------------| | 0 | 成功 | | 1 | 常规错误/用法错误 | | 2 | 身份验证错误 | | 3 | 网络错误 | | 4 | 配置错误 | | 130 | 已中断 |
- 退出码非零时,仍应先尝试解析 stdout 中的任何结构化 JSON — 其中可能包含可用的错误载荷或部分结果。
- 当退出码为 2(身份验证错误)时:引导用户完成身份验证流程,然后最多重试一次原任务。禁止反复尝试登录。
CLI 更新检查
当用户明确要求检查 CLI 更新时(例如“检查 CLI 更新”“检查 CLI 版本”“CLI 有新版本吗”):
- 运行:
qianwen version --check - 报告结果。
千问AI平台 CLI 原生支持更新通知;此 skill 无需额外处理 stderr 信号。
实现说明
- 按量付费:API 仅返回总用量(不区分输入/输出)
- Token Plan:在套餐层级汇总请求数(不按模型细分)
- logout:撤销服务端会话并清除本地凭据(密钥链和文件)。服务端调用采用尽力而为的方式——本地登出始终成功。
- 身份验证:使用带有 PKCE 的 OAuth 2.0 设备授权许可。系统会在可用时将凭据存储在 OS 密钥链中,并以加密文件作为后备方案。
- breakdown --model 为必填项:与之前的 Python 实现不同,CLI 要求为 breakdown 指定
--model。如需查询所有模型的用量,请改用qianwen usage summary。