@volcengine/ark-cli-darwin-arm64 0.0.0-stage → 1.0.46-prerelease.2e2d76ea86c4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (171) hide show
  1. package/LICENSE +201 -0
  2. package/bin/arkcli-darwin-arm64 +4 -0
  3. package/manifest.json +37 -0
  4. package/package.json +20 -4
  5. package/skills/arkcli-agent/SKILL.md +197 -0
  6. package/skills/arkcli-agent/references/activation.md +23 -0
  7. package/skills/arkcli-agent/references/agent.md +442 -0
  8. package/skills/arkcli-agent/references/byok.md +74 -0
  9. package/skills/arkcli-agent/references/context-management.md +61 -0
  10. package/skills/arkcli-agent/references/debug-export.md +27 -0
  11. package/skills/arkcli-agent/references/dream.md +91 -0
  12. package/skills/arkcli-agent/references/evals.md +215 -0
  13. package/skills/arkcli-agent/references/events-chat.md +192 -0
  14. package/skills/arkcli-agent/references/interfaces-gaps.md +55 -0
  15. package/skills/arkcli-agent/references/mcp-vault.md +111 -0
  16. package/skills/arkcli-agent/references/model-config.md +46 -0
  17. package/skills/arkcli-agent/references/self-hosted.md +47 -0
  18. package/skills/arkcli-agent/references/session-files.md +157 -0
  19. package/skills/arkcli-agent/references/session-upgrade.md +64 -0
  20. package/skills/arkcli-agent/references/skills.md +94 -0
  21. package/skills/arkcli-agent/references/todo-write.md +37 -0
  22. package/skills/arkcli-agent/references/vision-agent.md +92 -0
  23. package/skills/arkcli-api-explorer/SKILL.md +114 -0
  24. package/skills/arkcli-api-explorer/references/arkcli-api.md +185 -0
  25. package/skills/arkcli-api-explorer/references/evals.md +92 -0
  26. package/skills/arkcli-auth/SKILL.md +127 -0
  27. package/skills/arkcli-auth/references/api-key-query.md +74 -0
  28. package/skills/arkcli-auth/references/arkcli-auth-init-volc.md +58 -0
  29. package/skills/arkcli-auth/references/arkcli-auth-login.md +125 -0
  30. package/skills/arkcli-auth/references/arkcli-auth-status.md +41 -0
  31. package/skills/arkcli-auth/references/arkcli-auth-whoami.md +128 -0
  32. package/skills/arkcli-auth/references/auth-modes.md +101 -0
  33. package/skills/arkcli-auth/references/identity-resolution.md +74 -0
  34. package/skills/arkcli-auth/references/realname-gate.md +23 -0
  35. package/skills/arkcli-auth/scripts/key-metadata.jq +34 -0
  36. package/skills/arkcli-billing/SKILL.md +105 -0
  37. package/skills/arkcli-billing/references/arkcli-billing-list.md +247 -0
  38. package/skills/arkcli-billing/references/evals.md +50 -0
  39. package/skills/arkcli-chat/SKILL.md +229 -0
  40. package/skills/arkcli-chat/references/arkcli-chat.md +300 -0
  41. package/skills/arkcli-chat/references/caching-thinking.md +138 -0
  42. package/skills/arkcli-chat/references/chat-meta.md +77 -0
  43. package/skills/arkcli-chat/references/evals.md +60 -0
  44. package/skills/arkcli-chat/references/stream-events.md +163 -0
  45. package/skills/arkcli-chat/references/text-format.md +160 -0
  46. package/skills/arkcli-chat/references/tools.md +130 -0
  47. package/skills/arkcli-code-example/SKILL.md +73 -0
  48. package/skills/arkcli-code-example/assets/demo-code/examples.json +14 -0
  49. package/skills/arkcli-code-example/assets/demo-code/go/main.go +53 -0
  50. package/skills/arkcli-code-example/assets/demo-code/python.py +26 -0
  51. package/skills/arkcli-code-example/references/arkcli-code-example.md +146 -0
  52. package/skills/arkcli-code-example/references/evals.md +12 -0
  53. package/skills/arkcli-config/SKILL.md +129 -0
  54. package/skills/arkcli-config/references/arkcli-config-init.md +49 -0
  55. package/skills/arkcli-config/references/arkcli-config-profile.md +54 -0
  56. package/skills/arkcli-config/references/evals.md +87 -0
  57. package/skills/arkcli-connect/SKILL.md +62 -0
  58. package/skills/arkcli-connect/references/arkcli-connect.md +129 -0
  59. package/skills/arkcli-connect/references/evals.md +117 -0
  60. package/skills/arkcli-custommodel/SKILL.md +177 -0
  61. package/skills/arkcli-custommodel/references/arkcli-custommodel-available-quantizations.md +28 -0
  62. package/skills/arkcli-custommodel/references/arkcli-custommodel-delete.md +36 -0
  63. package/skills/arkcli-custommodel/references/arkcli-custommodel-get.md +45 -0
  64. package/skills/arkcli-custommodel/references/arkcli-custommodel-list.md +72 -0
  65. package/skills/arkcli-custommodel/references/arkcli-custommodel-quantize.md +58 -0
  66. package/skills/arkcli-custommodel/references/arkcli-custommodel-update.md +47 -0
  67. package/skills/arkcli-custommodel/references/arkcli-custommodel-upload.md +60 -0
  68. package/skills/arkcli-custommodel/references/evals.md +58 -0
  69. package/skills/arkcli-datasets/SKILL.md +41 -0
  70. package/skills/arkcli-datasets/references/commands.md +91 -0
  71. package/skills/arkcli-datasets/references/evals.md +30 -0
  72. package/skills/arkcli-deploy/SKILL.md +128 -0
  73. package/skills/arkcli-deploy/references/arkcli-deploy.md +138 -0
  74. package/skills/arkcli-deploy/references/evals.md +117 -0
  75. package/skills/arkcli-docs/SKILL.md +232 -0
  76. package/skills/arkcli-docs/references/commands.md +225 -0
  77. package/skills/arkcli-docs/references/evals.md +200 -0
  78. package/skills/arkcli-docs/references/failure-modes.md +77 -0
  79. package/skills/arkcli-doctor/CONTRIBUTING.md +202 -0
  80. package/skills/arkcli-doctor/SKILL.md +302 -0
  81. package/skills/arkcli-doctor/references/error-codes.md +504 -0
  82. package/skills/arkcli-doctor/references/evals.md +70 -0
  83. package/skills/arkcli-doctor/references/scope-account.md +205 -0
  84. package/skills/arkcli-doctor/references/scope-cli.md +217 -0
  85. package/skills/arkcli-doctor/references/scope-infer-endpoint.md +214 -0
  86. package/skills/arkcli-doctor/references/scope-metrics.md +197 -0
  87. package/skills/arkcli-doctor/references/scope-model.md +241 -0
  88. package/skills/arkcli-doctor/references/scope-report.md +242 -0
  89. package/skills/arkcli-doctor/references/verify-origin.md +142 -0
  90. package/skills/arkcli-gen/SKILL.md +348 -0
  91. package/skills/arkcli-gen/references/arkcli-gen-audio.md +125 -0
  92. package/skills/arkcli-gen/references/arkcli-gen.md +297 -0
  93. package/skills/arkcli-gen/references/evals.md +93 -0
  94. package/skills/arkcli-gen/references/gen-meta.md +182 -0
  95. package/skills/arkcli-gen/references/image-stream.md +105 -0
  96. package/skills/arkcli-gen/references/intent-and-validation.md +177 -0
  97. package/skills/arkcli-helper/SKILL.md +233 -0
  98. package/skills/arkcli-helper/references/arkcli-helper.md +372 -0
  99. package/skills/arkcli-helper/references/evals.md +110 -0
  100. package/skills/arkcli-infer-endpoint/SKILL.md +141 -0
  101. package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-create.md +142 -0
  102. package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-delete.md +68 -0
  103. package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-get.md +60 -0
  104. package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-list.md +142 -0
  105. package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-start.md +34 -0
  106. package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-stop.md +34 -0
  107. package/skills/arkcli-infer-endpoint/references/arkcli-infer-endpoint-update.md +76 -0
  108. package/skills/arkcli-infer-endpoint/references/evals.md +24 -0
  109. package/skills/arkcli-models/SKILL.md +314 -0
  110. package/skills/arkcli-models/references/arkcli-models-activate.md +110 -0
  111. package/skills/arkcli-models/references/arkcli-models-get.md +100 -0
  112. package/skills/arkcli-models/references/arkcli-models-list.md +73 -0
  113. package/skills/arkcli-models/references/arkcli-models-performance.md +32 -0
  114. package/skills/arkcli-models/references/arkcli-models-scenario-table.md +83 -0
  115. package/skills/arkcli-models/references/arkcli-models-search.md +208 -0
  116. package/skills/arkcli-models/references/evals.md +88 -0
  117. package/skills/arkcli-onboard/SKILL.md +81 -0
  118. package/skills/arkcli-onboard/references/evals.md +107 -0
  119. package/skills/arkcli-plans/SKILL.md +208 -0
  120. package/skills/arkcli-plans/references/arkcli-plans-agreement-signing.md +74 -0
  121. package/skills/arkcli-plans/references/arkcli-plans-buy.md +209 -0
  122. package/skills/arkcli-plans/references/arkcli-plans-get.md +96 -0
  123. package/skills/arkcli-plans/references/arkcli-plans-harness-status.md +149 -0
  124. package/skills/arkcli-plans/references/arkcli-plans-model-apply.md +56 -0
  125. package/skills/arkcli-plans/references/arkcli-plans-model-list.md +119 -0
  126. package/skills/arkcli-plans/references/arkcli-plans-personal-rotate-apikey.md +83 -0
  127. package/skills/arkcli-plans/references/arkcli-plans-renew.md +134 -0
  128. package/skills/arkcli-plans/references/arkcli-plans-team-rotate-apikey.md +108 -0
  129. package/skills/arkcli-plans/references/arkcli-plans-team-seat-assign.md +142 -0
  130. package/skills/arkcli-plans/references/arkcli-plans-team-seat-list.md +115 -0
  131. package/skills/arkcli-plans/references/evals.md +224 -0
  132. package/skills/arkcli-pricing/SKILL.md +125 -0
  133. package/skills/arkcli-pricing/references/arkcli-pricing-models.md +260 -0
  134. package/skills/arkcli-pricing/references/arkcli-pricing-plans.md +147 -0
  135. package/skills/arkcli-profile/SKILL.md +188 -0
  136. package/skills/arkcli-profile/references/arkcli-profile-create.md +101 -0
  137. package/skills/arkcli-profile/references/arkcli-profile-keys.md +100 -0
  138. package/skills/arkcli-profile/references/arkcli-profile-set-default.md +81 -0
  139. package/skills/arkcli-profile/references/evals.md +5 -0
  140. package/skills/arkcli-resources/SKILL.md +122 -0
  141. package/skills/arkcli-resources/references/arkcli-resources-list.md +140 -0
  142. package/skills/arkcli-shared/SKILL.md +236 -0
  143. package/skills/arkcli-shared/references/execution-context.md +108 -0
  144. package/skills/arkcli-shared/references/global-flags.md +45 -0
  145. package/skills/arkcli-shared/references/profile-defaults.md +57 -0
  146. package/skills/arkcli-shared/references/troubleshooting.md +36 -0
  147. package/skills/arkcli-shared/references/update.md +72 -0
  148. package/skills/arkcli-train-finetune/SKILL.md +123 -0
  149. package/skills/arkcli-train-finetune/references/ark-finetune-sdk.md +133 -0
  150. package/skills/arkcli-train-finetune/references/create.md +262 -0
  151. package/skills/arkcli-train-finetune/references/download.md +44 -0
  152. package/skills/arkcli-train-finetune/references/evals.md +14 -0
  153. package/skills/arkcli-train-finetune/references/export-deploy.md +177 -0
  154. package/skills/arkcli-train-finetune/references/job-configuration.md +122 -0
  155. package/skills/arkcli-train-finetune/references/list.md +78 -0
  156. package/skills/arkcli-train-finetune/references/manage.md +128 -0
  157. package/skills/arkcli-train-finetune/references/rl-plugins.md +77 -0
  158. package/skills/arkcli-train-finetune/references/testing-debug-monitoring.md +137 -0
  159. package/skills/arkcli-understand/SKILL.md +131 -0
  160. package/skills/arkcli-understand/references/arkcli-understand-asr.md +53 -0
  161. package/skills/arkcli-understand/references/arkcli-understand.md +268 -0
  162. package/skills/arkcli-understand/references/evals.md +119 -0
  163. package/skills/arkcli-understand/references/sub-skills.md +141 -0
  164. package/skills/arkcli-usage/SKILL.md +166 -0
  165. package/skills/arkcli-usage/references/arkcli-usage-balance.md +217 -0
  166. package/skills/arkcli-usage/references/arkcli-usage-plan-details.md +136 -0
  167. package/skills/arkcli-usage/references/arkcli-usage-plan.md +166 -0
  168. package/skills/arkcli-usage/references/arkcli-usage-seats.md +194 -0
  169. package/skills/arkcli-usage/references/arkcli-usage-stats.md +195 -0
  170. package/skills/arkcli-usage/references/evals.md +30 -0
  171. package/README.md +0 -3
@@ -0,0 +1,45 @@
1
+ # 常用全局 flags
2
+
3
+ > 各命令自身的 flag 以 `arkcli <domain> <verb> --help` 为准。`--region` 与
4
+ > `--project-name` 已从根命令删除;Region/Project 由所选 profile 决定。
5
+
6
+ | Flag | 作用 |
7
+ |------|------|
8
+ | `--profile` | 选择本次调用的持久上下文;控制面和数据面都可使用 |
9
+ | `--api-key` | 仅覆盖本次数据面调用的 ARK API Key |
10
+ | `--base-url` | 仅覆盖本次数据面调用的 API Base URL |
11
+ | `--env` | 选择控制面环境:`prod` 或 `stg` |
12
+ | `--format` | 输出格式 |
13
+ | `--transform` | 对输出做路径提取 |
14
+ | `--page-all` | 自动翻页 |
15
+ | `--page-limit` | 限制翻页次数 |
16
+ | `--page-delay` | 翻页间隔(ms) |
17
+ | `--debug` | 输出调试信息到 stderr |
18
+
19
+ `--dry-run` 不是全局 flag。它只由支持 Client Preview 的叶子命令注册;以该
20
+ 叶子命令的 `--help` 为准。支持时只在客户端生成 `preview.v1`,不联网、不写文件、
21
+ 不启动子进程;不支持时传入该 flag 会明确报错,禁止静默忽略。
22
+
23
+ ## Volc 方舟体验入口
24
+
25
+ `arkcli exp` 是给人类终端使用的 Volc 方舟体验入口,不是全局 flag。已安装时直接
26
+ 启动 `arkexp`;未安装时不再询问,直接从官方 CDN 安装,提示可用
27
+ `arkcli exp uninstall` 卸载后立即启动。交互终端显示安装动画,CI、管道和重定向
28
+ 环境降级为静态进度提示。调用可能触发本地安装,AI Agent 只有在用户明确要求打开
29
+ 方舟体验时才能执行;卸载必须有用户明确意图。其他产品构建不提供该命令。
30
+
31
+ ## 解析与组合规则
32
+
33
+ - Profile:`--profile` > `ARK_PROFILE` > `default_profile` > 第一个 platform profile > `"default"`。
34
+ - API Key:`--api-key` > `ARK_API_KEY` > profile > 同 identity store > 产品 `.env` 兼容值。
35
+ - Base URL:`--base-url` > `ARK_BASE_URL` > profile 自定义值 > 按 profile 的 Region/Type 派生 > 产品默认值。
36
+ - `--profile` 选择持久上下文;它不覆盖显式的 `--api-key` / `--base-url`,也不会被临时调用写回。
37
+ - API Key 与 Base URL **不是无条件双向成对**:显式 Base URL 必须有显式 API Key;但显式 API Key 可以和 Endpoint 组成安全调用,CLI 会读取 Endpoint 的权威 region 后派生 platform Base URL。
38
+ - API Key + Base URL + Endpoint 构成 stateless 数据面模式,profile 对连接的影响为 `none`。
39
+ - 只有 API Key + 模型名时,CLI 仅在该 Key 唯一匹配本地 profile 时推导 plan lane;无法唯一匹配就要求补 Base URL/Endpoint 或显式选择 profile,绝不根据 `ark-*` 文本猜 Key 类型。
40
+ - Endpoint 只有在当前/兼容 profile 能提供 paygo Key 时才可直接调用;显式 `--profile` 不兼容时是硬错误,不静默借别的 profile。
41
+ - 控制面或本地命令不消费这两个数据面 flag:显式传入会 fail-fast;环境变量在这些命令中被忽略。
42
+ - `ARK_REGION` / `ARK_PROJECT_NAME` 不再是运行时覆盖入口。修改持久上下文应创建/切换 Profile;火山老状态中的产品 `.env` Project 只作旧 Profile 缺字段时的兼容兜底。
43
+
44
+ 完整的五类 Profile × 三模态矩阵、组合决策和 Client Preview 边界见
45
+ [`execution-context.md`](execution-context.md)。
@@ -0,0 +1,57 @@
1
+ # Profile Resources Default 偏好(含漂移检测与跨模态)
2
+
3
+ > 本文从 `arkcli-shared` 正文拆出。仅在跑 `+chat` / `+gen` / `+deploy` 且涉及 `--model` / `--endpoint` / 默认资源选择时加载。常规读任务不需要读本文。
4
+
5
+ profile.yaml 在 `resources.<modality>.default` 字段存用户对每个 modality (text / image / video) 默认资源 ID 的偏好。这是 +chat / +gen / +deploy 行为对齐的基础。
6
+
7
+ - **platform profile**:默认值是用户已部署的 endpoint id (`ep-xxx`)
8
+ - **agent-plan profile**:默认值是火山预置 model id(如 `doubao-seed-2-0-pro-260215` / `doubao-seedream-5.0-pro` / `doubao-seedance-2.5`)
9
+ - **coding-plan profile**:text modality 用 `ark-code-latest` 这类套餐内文本模型;image / video 借道 platform 数据面 — 字段存的是用户在 platform 上 `+deploy` 出来的 endpoint id(`ep-xxx`),arkcli 会在 `+gen` 时自动把数据面切到 `/api/v3`。不再要求切 profile
10
+ - **`agent-plan-team` profile**:text/image/video 都走 Agent Plan 数据面与套餐模型,凭证为团队席位 Key。
11
+ - **`coding-plan-team` profile**:text 走 Coding Plan 数据面与套餐模型,凭证为团队席位 Key;image/video 切到 platform Endpoint,必须使用**后付费 API Key**,不能复用团队席位 Key。Endpoint default 可以保存在该 profile,但它不等于已经具备可调用凭证。
12
+
13
+ 每次帮用户跑 `+chat` / `+gen`:
14
+
15
+ - 用户没传 `--model` → CLI 自动 fallback 到 `profile.resources.<modality>.default`
16
+ - 用户传了 `--model <X>`、且 `X` ≠ 当前 default → 见下文"漂移检测"
17
+ - 默认值为空时 CLI 已 fail-fast,错误体里会给 `arkcli resources list --modality <m>` 和 `arkcli profile set-default --modality <m> <id>` 两条引导,agent 直接照做
18
+
19
+ ## Default 漂移检测与 promote nudge
20
+
21
+ 在帮用户成功跑 `arkcli +chat` / `+gen` / `+deploy` 且用户**显式**传了 `--model X`(或 `--endpoint X`、platform 场景)时:
22
+
23
+ 1. 读 profile.yaml 的 `resources.<modality>.default`
24
+ - `+chat` → modality = text
25
+ - `+gen --modality image` → modality = image
26
+ - `+gen --modality video` → modality = video
27
+ - `+deploy` 由用户传的 `--set-default <modality>` 自带(用户已经显式说了)
28
+ 2. 比较 `X` 跟当前 default
29
+ 3. **命令成功之后**(数据面返回 200 / `+deploy` 返回 ep id),如果 `X` ≠ 当前 default:
30
+ > "你这次用了 `X`,但当前 `<modality>` default 是 `Y`。要把 `X` 设为新 default 吗?"
31
+ 4. 用户同意 → 跑 `arkcli profile set-default --modality <m> <X>`(已经包含 inline 校验,不需要 agent 二次校验)
32
+ 5. 用户拒绝 → 不动 profile
33
+
34
+ **何时不 nudge**:
35
+ - 命令失败 → 不 nudge(用户误调用不该被推 promote)
36
+ - 用户没传 `--model` 走的就是 default → 不 nudge
37
+ - 同一 session 已经 nudge 过同一个 `(modality, id)` → 不再问(避免 nag)
38
+ - 用户明确说"别再问 X" → 写到 CLAUDE.md memory 持久化偏好
39
+
40
+ ## Cross-modality 处理 (S10 后)
41
+
42
+ S10 改造后, arkcli 不再因为 active profile 是 `coding-plan` 就阻断 `+gen --modality image|video`. 行为如下:
43
+
44
+ - **active=platform**: 直接走 platform 数据面 `/api/v3` + endpoint id, 跟原行为一致
45
+ - **active=agent-plan**: 走 agent-plan 数据面 + 预置模型 (image=`doubao-seedream-5.0-pro`, video=`doubao-seedance-2.5`)
46
+ - **active=coding-plan + modality=image|video**: arkcli 自动借道 platform 数据面 `/api/v3` + 用户在 platform 控制面 `+deploy` 出的 endpoint id (cfg 临时 clone, 不污染 factory cache). 用户体感不需要切 profile
47
+ - **active=agent-plan-team**:走 Agent Plan 数据面 + 团队席位 Key + 预置 image/video 模型。
48
+ - **active=coding-plan-team**:image/video 使用 platform Endpoint,但团队席位 Key 不兼容。提交前必须由用户显式授权兼容的后付费凭证:选择 Platform/Coding Plan 个人版 `--profile`,或提供 `--api-key`(需要时同时提供 `--base-url`)。CLI 不枚举、不借用 sibling profile;缺少显式授权时在真实请求前失败。
49
+
50
+ 资源发现 / default 设置链路也对齐:
51
+ - `arkcli resources list --modality image` 在 coding-plan profile 下会列出同账号下 platform 已 deploy 的 endpoint
52
+ - `arkcli profile set-default --modality image <ep-id>` 在 coding-plan profile 下也能 verify + 写入 (走同款 ListEndpoints)
53
+
54
+ `+gen --modality image` 在 `agent-plan` profile 下默认会用 `doubao-seedream-5.0-pro`, `--modality video` 默认 `doubao-seedance-2.5`. Agent Plan 生图还可选 `doubao-seedream-5.0-flash`,生视频还可选 `doubao-seedance-2.0` 等旧版本(均非默认)。用户跑 `arkcli resources list --modality image` / `video` 可看完整可用清单.
55
+
56
+ 完整凭证/资源矩阵与临时覆盖组合见
57
+ [`execution-context.md`](execution-context.md)。
@@ -0,0 +1,36 @@
1
+ # 故障分流与能力边界
2
+
3
+ > 本文从 `arkcli-shared` 正文拆出。命令报错、不知道问题归类(认证 / 配置覆盖 / 参数 / 资源名 / 覆盖不足)时查阅。
4
+
5
+ ## 故障分流
6
+
7
+ 1. 先区分问题类型
8
+ - 认证问题
9
+ - 配置覆盖问题
10
+ - 参数问题
11
+ - 资源不存在或资源名不确定
12
+ - 产品命令覆盖不足
13
+ 2. 认证问题
14
+ - 先看 `arkcli auth status`
15
+ - 控制面鉴权错误(OpenTOP Action) → 转 `arkcli auth login`,并参考 [`../../arkcli-auth/references/auth-modes.md`](../../arkcli-auth/references/auth-modes.md) 的"控制面用 STS 还是长效 AK/SK"
16
+ - 数据面 API Key 鉴权 / 权限错误(Runtime 调用) → 参考 [`../../arkcli-auth/references/auth-modes.md`](../../arkcli-auth/references/auth-modes.md) 的"API Key 模式的错误恢复"。**命令失败且症状=key 失效 / `InvalidApiKey` / 突然 401 且没主动换过 key**(疑似后端轮换)→ 先 `arkcli profile apikey refresh` 同步后端 key 再重试一次(最轻的反应式自愈,agent 可自动跑);**仅在失败时触发,不要每次命令前预防性 refresh**。refresh 救不了(权限不足 / env 覆盖 / SSO 过期)再 `arkcli auth apikey` 或重登
17
+ 3. profile / Base URL / Region / API Key / Project 覆盖混乱
18
+ - 普通诊断先用 `arkcli auth status --format json` 与 `arkcli auth whoami --format json` 查看当前身份/Profile 摘要;默认模型与路由转 `arkcli resources list --format json`。
19
+ - 只有用户显式要求核对持久 Profile 时才执行 `arkcli profile show [name]`,并先说明它可能同步远端 Key、回写本地 Key 库存或默认 Key。脱敏输出不代表无配置副作用。
20
+ - 根命令不再接受 `--region` / `--project-name`,`ARK_REGION` / `ARK_PROJECT_NAME` 也不覆盖运行时。
21
+ - 若数据面使用 `--base-url`,必须同时显式提供 `--api-key`;无 Profile 的 stateless 模式必须将两者成对提供。
22
+ - 两者仍对不上时,转 [`../../arkcli-config/SKILL.md`](../../arkcli-config/SKILL.md) 查看完整归因链路。
23
+ - 需要切 profile 时再用 `arkcli profile use <name>`
24
+ 4. 模型、接入点、任务 ID 等资源名不确定
25
+ - 优先走对应查询命令,例如 `arkcli models search`
26
+ 5. 产品命令确实不覆盖
27
+ - 先 `arkcli <domain> --help`
28
+ - 再看对应 skill
29
+ - 最后才转 [`../../arkcli-api-explorer/SKILL.md`](../../arkcli-api-explorer/SKILL.md)
30
+
31
+ ## 当前能力边界
32
+
33
+ - 当前仓库已经覆盖:`models`、`+chat`、`+gen`、`+deploy`、`infer endpoint`、`usage stats`、`+connect`
34
+ - Endpoint 管理型命令已有独立 skill [`../../arkcli-infer-endpoint/SKILL.md`](../../arkcli-infer-endpoint/SKILL.md),支持 `create/list/get/start/stop/update`
35
+ - 当用户说"先看看有没有现成 Endpoint"时,用 `arkcli infer endpoint list` 查询,不要假设必须先 `+deploy`
36
+ - 如果用户目标是正式接入且列表为空,再转 `+deploy` 创建
@@ -0,0 +1,72 @@
1
+ # 版本检查与显式升级
2
+
3
+ 本 reference 只负责回答“当前版本是否最新”和执行用户明确要求的升级。它不访问业务账号,不需要先跑 `auth status`。
4
+
5
+ `update.mode` 的读取、写入、默认值和 automatic production gate 属于 [`../../arkcli-config/SKILL.md`](../../arkcli-config/SKILL.md)。不要因发现新版本或仅看到 postinstall enrollment 就推断 active automatic consent;新安装 pending、registry latest reconciliation、exact receipt 换发与版本锁定流程以 config Skill 为准。
6
+
7
+ 本 reference 的所有 Agent 命令都必须携带下方 `ARKCLI_CALLER_TYPE=ai_agent` 等 caller metadata。它不仅用于归因,也保证 AI Skill 不消耗人工首次宽限、不激活 exact consent、不调度 automatic。不要删除这些变量后用 Agent 模拟人工命令。
8
+
9
+ ## 只检查
10
+
11
+ 默认先读零网络的本地缓存:
12
+
13
+ ```bash
14
+ ARKCLI_NO_UPDATE_NOTIFIER=1 \
15
+ ARKCLI_CALLER_TYPE=ai_agent \
16
+ ARKCLI_CALLER_NAME=<agent-id> \
17
+ ARKCLI_SKILL_NAME=arkcli-shared \
18
+ arkcli --format json update --check
19
+ ```
20
+
21
+ 按 `status` 判断,不要只看兼容字段 `update_available`:
22
+
23
+ | `status` | 含义 | Agent 行为 |
24
+ |---|---|---|
25
+ | `unknown` | 没有当前发行渠道的有效缓存 | 明确说“未知”;需要实时结果时再用 `--refresh` |
26
+ | `up_to_date` | 缓存或 registry 已确认当前版本不旧于 latest | 报告已是最新,并说明 `source` |
27
+ | `update_available` | `latest` 严格新于 `current` | 报告版本差异;不要自动升级 |
28
+
29
+ `source` 是 `none`、`cache` 或 `registry`,`checked_at` 是缓存或查询时间。用户要求实时结果时再刷新:
30
+
31
+ ```bash
32
+ ARKCLI_NO_UPDATE_NOTIFIER=1 \
33
+ ARKCLI_CALLER_TYPE=ai_agent \
34
+ ARKCLI_CALLER_NAME=<agent-id> \
35
+ ARKCLI_SKILL_NAME=arkcli-shared \
36
+ arkcli --format json update --check --refresh
37
+ ```
38
+
39
+ `--refresh` 会访问当前二进制内置的 npm registry。查询失败时原样报告错误;不要把旧缓存包装成实时结果,也不要把 `status=unknown` 解读成“无更新”或“已是最新”。
40
+
41
+ ## 显式升级
42
+
43
+ 只有用户在本轮明确要求升级时才进入写流程。先检查并展示 `current -> latest` 和发行渠道,再取得本轮确认;确认后才可在非交互命令中添加 `--yes`:
44
+
45
+ ```bash
46
+ ARKCLI_NO_UPDATE_NOTIFIER=1 \
47
+ ARKCLI_CALLER_TYPE=ai_agent \
48
+ ARKCLI_CALLER_NAME=<agent-id> \
49
+ ARKCLI_SKILL_NAME=arkcli-shared \
50
+ arkcli update --yes
51
+ ```
52
+
53
+ 显式 `arkcli update` 和 `arkcli update --check` 在所有更新模式下都可用;`disabled` 只关闭静默安装。`disabled` 仍允许隐式检查和版本提示。
54
+
55
+ 后台 automatic patch 更新成功提交并释放更新锁后,会用新版二进制静默执行一次裸 `+connect`。Volc 的新版 Skills 已随同一版本的 CDN 产物进入安装目录;这里读取该版本的本地快照,不加 `--refresh`。同步输出写入 `update-apply.log`;若 Agent Skill 同步失败,CLI 更新仍保持成功,可查看日志后手工重试 `arkcli +connect`。
56
+
57
+ 用户要求长期锁定版本时,不要只执行 npm 降级。先引导用户持久设置 `arkcli config set update.mode disabled`,再安装精确版本。重装不得沿用旧 exact receipt:安装版本等于 registry 当前 `latest` 时不改 mode,已有 automatic 会换发 receipt;非 latest 持久化 disabled。安装 `@latest` 不会把 disabled 改回 automatic,恢复时先安装 latest,再显式设置 automatic。
58
+
59
+ `update` 会启动外部 npm,属于 `opaque_external_execution`,不支持 `--dry-run`。不要伪造 Client Preview,也不要用 raw API 代替;用版本差异说明和明确确认完成安全闭环。
60
+
61
+ 只有 npm 成功、同一 npm global root 下的 package 版本等于 `latest`,且 npm 管理的目标 executable 的 `--version` 也等于 `latest`,才能报告升级成功。命令失败时不得声称升级完成。
62
+
63
+ ## 失败与平台分流
64
+
65
+ - `npm` 缺失:转述 CLI 给出的手动命令,不自行安装 Node/npm。
66
+ - npm prefix、Node 或 NVM 不一致:停止,提示用户切回安装当前 arkcli 的 Node 环境;不要用 PATH 中另一个 npm 强行继续。
67
+ - 当前 binary 不在 npm global package 内:说明该副本不受影响。即使 npm package 验证成功,也不要声称当前副本已经变更。
68
+ - Windows 的显式更新只表示“已安排”;只有新一次 `arkcli --version` 显示目标版本,或 `update-apply.log` 记录 `installed and verified`,才能报告完成。
69
+ - Windows 更新失败时保留旧安装、日志和 `.arkcli-update-*` 恢复目录,不把失败解释成“部分成功”。
70
+ - macOS/Linux 的显式更新仍是手工 npm 升级语义;不要把 automatic 原子 cutover 描述成显式命令已采用的路径。
71
+
72
+ 不要用 cron、系统服务或 Agent 定时任务模拟自动更新,也不要因普通更新提示中断当前业务命令或改变其退出码。
@@ -0,0 +1,123 @@
1
+ ---
2
+ name: arkcli-train-finetune
3
+ description: 使用 ArkCLI 创建、查询和管理模型精调训练任务,并从训练指标选择最佳 step、导出训练产物为 custom model、衔接模型仓库与推理部署。任何包含精调任务 ID(`mcj-*`)的查询、查不到原因诊断、日志、trajectory、状态或生命周期操作都应使用本 skill;也适用于选择训练方法、查询精调价格和超参数、校验精调训练/验证数据、匹配精调资源组、创建任务及导出部署。本 skill 不负责独立 Dataset 生命周期管理;精调工作流中的数据校验和 Dataset 引用仍由本 skill 编排。
4
+ ---
5
+
6
+ # ArkCLI 精调训练
7
+
8
+ 先读取 [`../arkcli-shared/SKILL.md`](../arkcli-shared/SKILL.md),遵循认证、输出、安全和二次确认规则。
9
+
10
+ ## 执行面与凭证(先看)
11
+
12
+ - 本 skill 的 `arkcli train finetune *`、`arkcli dataset *`、`arkcli models finetune-config *` 都属于**控制面**:
13
+ 使用 SSO 派生的 STS,先执行 `arkcli auth status`;未登录按 shared 的认证闸门登录。
14
+ - 控制面命令不消费数据面 `--api-key` / `--base-url`。显式传入会 fail-fast
15
+ (`--api-key only applies to data-plane commands; ... is control-plane or local`);`.env` / `ARK_API_KEY`
16
+ 只能用于推理数据面,**不能用于训练创建或 TOS 上传**。
17
+ - SFT / LoRA / DPO / RL 是训练任务,不是 Agent Plan 模型调用;不要转 `+chat` / `+gen`,也不要按 Agent Plan
18
+ 模型或套餐额度选型。训练费用与能力以 `train finetune pricing` / `capability get` 的实时结果为准。
19
+ - 本地 `--train-file` / `--validation-file` 会由 ArkCLI 自动上传到 Ark 托管 TOS,最终请求使用
20
+ `TosBucket` / `TosPaths`;不需要用户先手工上传,也不要把本地路径直接当后端数据地址。
21
+
22
+ ## 适用场景与能力边界
23
+
24
+ - 校验训练/验证数据、创建精调任务:读取 [`references/create.md`](references/create.md)
25
+ - 列出或筛选任务:读取 [`references/list.md`](references/list.md)
26
+ - 下载某任务实际使用的训练集/验证集:读取 [`references/download.md`](references/download.md)
27
+ - 查询、观察或操作一个指定任务:读取 [`references/manage.md`](references/manage.md)
28
+ - 根据指标选择 step、导出产物并部署:读取 [`references/export-deploy.md`](references/export-deploy.md)
29
+ - 精调任务创建或预检所需的本地/TOS 训练、验证数据校验留在本 skill,直接调用 `arkcli dataset validate`;不要因为命令路径属于 `dataset` 就切换 skill。
30
+ - 独立 Dataset 的创建、查询、更新、删除、版本、下载,或不涉及精调任务的独立数据校验,转 [`../arkcli-datasets/SKILL.md`](../arkcli-datasets/SKILL.md)。创建精调任务时可以直接消费本地文件、TOS URL、`ds-*/dsv-*` 引用和模型支持的 preset。
31
+ - 普通训练 Dataset 默认使用 `--train-dataset`(`Multiplier=1`);需要重复引用、倍率或采样数时改用可重复的 `--train-path`。每项最多设置 `multiplier` 或 `sample_count` 之一,均不设置时仍默认 `Multiplier=1`。preset 必须在 `inject_multiplier` 与 `inject_sample_count` 中二选一。
32
+ - 训练产物的指标分析和 artifact export 由本 skill 编排;custom model 详情、可部署版本准备和 Endpoint 创建必须按模型仓库及部署 skill 执行。
33
+ - 不把 Raw API 或精调 SDK 当默认入口。
34
+
35
+ 只加载当前任务需要的 reference。不要为了熟悉全部命令一次性读取所有文件。
36
+
37
+ ## 反唤起信号
38
+
39
+ - 只查询公共基础模型目录 → 使用 [`../arkcli-models/SKILL.md`](../arkcli-models/SKILL.md)。
40
+ - 只管理已有推理 Endpoint → 使用 [`../arkcli-infer-endpoint/SKILL.md`](../arkcli-infer-endpoint/SKILL.md)。
41
+ - 纯登录或 profile/config 排障 → 分别使用 [`../arkcli-auth/SKILL.md`](../arkcli-auth/SKILL.md) 或 [`../arkcli-config/SKILL.md`](../arkcli-config/SKILL.md)。
42
+ - 不要把 Raw API 或精调 SDK 当作默认入口;只有产品命令无法表达任务且用户确认 fallback 后才进入扩展流程。
43
+
44
+ ## 指定任务的精确范围诊断
45
+
46
+ - 用户给出 `mcj-*` 并询问任务状态、查不到原因、日志或 trajectory 时,必须加载本 skill 并读取 [`references/manage.md`](references/manage.md)。
47
+ - “这个任务怎么查不到”首先在当前 active profile / project / region 对原始 ID 执行 `arkcli train finetune get <mcj-id>`,再按该权威 API 的原始结果解释。
48
+ - `mcj-*` 是不透明资源 ID。不得根据日期片段、后缀单词或臆测的哈希格式断言 ID 无效,也不得改写用户给出的 ID。
49
+ - 用户要求不切环境或只查指定任务时,禁止执行 `train finetune list`、扫描其他任务、切换 profile/project/region,或查询其他账号。目标 `get` 失败时保留错误 code、message 和 request ID;只有用户另行授权后才能扩大范围。
50
+ - 用户要求把指定 MCJ 的日志保存到本地路径时,第一条业务命令就是 `arkcli train finetune logs <mcj-id> --output <path>`。不得先 list 全部任务或用脚本遍历;目标命令失败时原样报告,不建议切环境。
51
+ - 用户要求指定 MCJ 的完整 rollout trajectory 时,直接执行 `arkcli train finetune trajectory list <mcj-id> --full`。不存在 `arkcli train trajectory` 路径;无轨迹或未开启记录时保留原错误,不探索 profile、MCP 或其他任务。
52
+ - `logs --follow` 仅在任务活跃且可能继续产生日志时持续轮询;任务已终态时输出当前快照后自动退出,轮询中发现终态且无新日志也会退出。不要再用外部 timeout 作为正常终止机制。
53
+ - `pause` 与 `resume` 是明确的可逆关系:`pause` 将运行任务置为 `Paused`,`resume` 用于恢复 `Paused`;后端允许时也可用 `resume` 重试 `Failed` / `Terminated`,以当前 API 结果为准。
54
+
55
+ ## 实时信息原则
56
+
57
+ 以下信息会变化,不在 skill 中硬编码:
58
+
59
+ - 可训练模型、模型版本和训练方法
60
+ - 训练价格
61
+ - 超参数字段、默认值、范围和枚举
62
+ - CLI flags、任务阶段和操作限制
63
+ - 基础模型或自定义模型支持的推理部署方式
64
+
65
+ 关键命令执行前或执行报错,使用当前安装版本的 `--help` 和 ArkCLI 查询命令获取实时结果。若 CLI 输出与本文命令骨架不一致,以当前 CLI 为准。
66
+
67
+ 训练和验证数据优先通过 `arkcli dataset validate` 按目标模型、精确版本和训练类型完成服务端校验,具体流程见 [`references/create.md`](references/create.md#3-获取并校验训练数据)。不默认由 Agent 对照文档逐行检查或自写校验器。火山方舟[模型精调数据集格式说明](https://www.volcengine.com/docs/82379/1099461?lang=zh)仅用于解释校验错误、辅助修复或说明命令未覆盖的格式;文档比对不能替代命令的校验结果。不在 reference 中维护容易过期的格式说明及样例。
68
+
69
+ ## 默认训练类型、训练方法与部署限制
70
+
71
+ - 用户未指定训练类型(`--type`)时,默认按 SFT 处理。
72
+ - 用户未指定 LoRA 还是全量训练等训练方法时,默认选择 LoRA。
73
+ - 用户明确选择全量训练时,创建前提示:当前 ArkCLI 还不支持对全量训练产物进行部署,训练完成后的部署需要到控制台完成。
74
+
75
+ ## SDK Fallback Gate
76
+
77
+ 精调 SDK 是 fallback,不是默认入口。
78
+
79
+ 仅当 ArkCLI 无法完成,而精调 SDK 能完成时进入 fallback,例如:
80
+
81
+ - 自定义 grader 或 rollout plugin
82
+ - 复杂 RL 流程
83
+ - 自定义 job YAML
84
+ - 自定义训练代码
85
+ - 当前 ArkCLI 版本没有对应能力
86
+
87
+ 需要 fallback 时,先检查当前 ArkCLI 的 `train finetune`、`models finetune-config` 和相关 `--help` 是否能够完整表达用户配置。若 ArkCLI 已提供对应参数或 pipeline 配置并能完整完成任务,继续走标准创建流程。
88
+
89
+ 命中 fallback 时暂停执行,询问用户:
90
+
91
+ > 当前任务需要精调 SDK,ArkCLI 标准创建流程无法表达该配置。是否现在自动安装精调 SDK 并继续?
92
+
93
+ 只有用户明确确认后,才读取并执行 [`references/ark-finetune-sdk.md`](references/ark-finetune-sdk.md);由该 reference 负责安装 SDK、准备配置或代码并提交任务。用户拒绝时不要安装、不要提交。
94
+
95
+ ## 关键客户端校验
96
+
97
+ - 提交前以精确模型/版本查询 `train finetune capability get --model <name> --version <version>`,或复用同版本 `models finetune-config ... --type <type>` 的权威校验。支持类型为空/未知时停下核对模型与版本,不暴力枚举 SFT/LoRA/DPO 直到碰巧成功。
98
+ - 价格查询的 `--model` 使用权威基础模型名,不把带版本的拼接 ID 当名称;需要精确版本时用当前 help 支持的独立版本参数。能力、超参、价格与 create 必须对应同一训练方法。
99
+ - DPO / DPO-LoRA 不机械继承 SFT 的数据容错与 shuffle 参数;只有该模型/类型的当前配置明确支持时才传。超参名和值按实时 schema,不能照抄历史 `dpo_beta`,也不能把当前已注册的 `--beta` 误说成不存在。
100
+ - 数据必须是用户提供或明确授权的真实文件、TOS URI、Dataset/preset 引用;占位 bucket/path 只用于说明,不发真实提交。缺数据就请求补充。
101
+ - `create` 不支持本地 `--dry-run`。在线 `--estimate` 会上传本地训练集和验证集,须遵守上传确认规则;训练 token 估算不包含验证集。在线校验、费用估算和真实提交分别报告,不把估算成功当成训练已创建。
102
+
103
+ - 用户给出模型名和训练类型询问“精调/SFT/LoRA 价格”时,首选且必须执行 `arkcli train finetune pricing --model <model> --type <type>`。不要改走通用 `arkcli pricing models`:通用账单目录不会按目标模型交叉校验训练方法能力。
104
+ - 显式选择训练方法时,必须用精确的模型版本调用 `models finetune-config <model> <version> --type <type>`。该命令会先按同版本 `FinetuneTypes` 校验能力;不支持时停止,不继续询价、estimate 或创建任务。
105
+ - 手动分页时,`train finetune list --page-number` 必须 `>=1`,`--page-size` 必须在 `1-100`;第 2 页及以后超出当前过滤条件对应的 `total_count` 时是参数错误,不要把空页当成有效结果。
106
+ - 同时传入 `train finetune metrics --from-step` 和 `--to-step` 时,`to-step` 必须严格大于 `from-step`;非法区间应在查询指标名称或曲线前停止。
107
+ - `train finetune pricing --billing-method token` 按 Token 计费项查询;`instance` 必须提供精确的 `--model-version` 和 `--type`,并保持超参与后续创建一致。实例结果只有 `price_complete=true` 才能作为完整小时价范围;否则必须报告 `missing_flavor_ids`。
108
+ - 使用稳定资源组前,必须用与 create 完全相同的模型、版本、训练类型和超参数执行 `train finetune resource-group list`。只有 `allowed=true` 且 `matched=true` 的资源组 ID 才能传给 `create --resource-group`;ID 是不透明字符串,必须按查询结果原样传入;有多个匹配项时让用户选择。
109
+ - 用户说“我的 / 我创建的 / 本人提交的”精调任务时,`train finetune list` 必须加 `--mine`(服务端 `sys:ark:createdBy` 过滤);不要先拉全账号再本地猜创建人。
110
+
111
+ ## 守卫与通用执行规则
112
+
113
+ 维护者回归用例见 [`references/evals.md`](references/evals.md)。
114
+
115
+ 1. 运行 `arkcli auth status`,认证失败时按 shared skill 恢复。
116
+ 2. 读操作可直接执行;上传文件、创建任务、产生费用和破坏性操作必须遵守确认规则。
117
+ 3. 用户已经明确指定参数时不要重复询问;缺失且无法从实时查询推导时再询问。
118
+ 4. 输出区分事实来源:CLI/API 返回值、服务端校验结果、以及本地粗略估算。
119
+ 5. 不打印凭证、完整训练日志或大型轨迹内容;大结果写入文件后只提取必要字段。
120
+
121
+ ## 参考与相关文档
122
+
123
+ <https://www.volcengine.com/docs/82379/1099350>
@@ -0,0 +1,133 @@
1
+ ---
2
+ name: ark-finetune-sdk
3
+ description: 用于创建、配置、测试、调试、提交、监控或排查模型精调 SDK 项目,尤其是包含 rollout 和 grader 插件的强化学习任务。当请求涉及 `ark` SDK 命令入口、`ark_sdk` Python 包、`job.py`、`job.yaml`、`arkworkspace.toml`、`custom_rl_pipeline`、`ModelCustomizationJob`、rollout/grader 函数、插件测试、RL debug 任务、轨迹分析或精调产物时使用。
4
+ ---
5
+
6
+ # Ark Finetune SDK
7
+
8
+ 这是通过精调 SDK 执行模型定制任务的操作指南。优先相信当前 SDK 行为和最新生成的模板,而不是记忆中的旧示例。
9
+
10
+ ## 信息优先级
11
+
12
+ 1. 当前已安装 SDK 和命令输出。
13
+ 2. 使用 `ark init workspace` 新生成的 SDK 模板。
14
+ 3. 需要用户可见引用时,使用官方公开产品文档。
15
+ 4. 本 skill 附带的 reference。
16
+
17
+ 不要把访问标签、环境专属说明、准入清单、变化较快的模型支持列表或敏感来源链接写进用户可见输出或生成文件。
18
+
19
+
20
+ ## 起步检查
21
+
22
+ 处理任何实质性任务前:
23
+
24
+ 1. **准备 venv 并安装 SDK**(用户自管 venv,arkcli 不代管)
25
+ ```bash
26
+ python3.11 -m venv /tmp/ark-rl # 必须 ≥ 3.10
27
+ source /tmp/ark-rl/bin/activate
28
+ ```
29
+ 火山方舟 SDK 使用以下安装源:
30
+ ```bash
31
+ python -m pip install https://ark-public-example-cn-beijing.tos-cn-beijing.volces.com/ark-sdk/ark_sdk-latest.tar.gz
32
+ ```
33
+ 后续 `ark` / `python` 命令必须在同一 shell 里执行,或显式用 `/tmp/ark-rl/bin/ark`。
34
+
35
+ 2. **完成 SDK 鉴权**
36
+ 火山方舟鉴权走 ArkCLI 桥,不要单独执行 `ark login`:
37
+ ```bash
38
+ arkcli auth login # 已登录时跳过
39
+ arkcli train finetune sdk login # 把 ArkCLI STS 写入 ~/.ark/authorization.json
40
+ ```
41
+ 说明:
42
+ - `sdk login` 会**临时覆盖** `~/.ark/authorization.json`;如果用户机器上已有 `ark login` 的长期 SSO 状态,该状态会被 STS 替换。
43
+ - STS 默认约 30 分钟过期。鉴权报错时重跑 `arkcli train finetune sdk login --refresh`;该命令使用 ArkCLI 缓存的 refresh token,不会再次打开浏览器。
44
+ - 多账号防误操作:既有文件的 `account_id` 与 ArkCLI 当前 active profile 不同时会拒绝覆盖;仅在确认目标账号后使用 `--force`。
45
+
46
+ 3. 确认 SDK 版本和命令面。
47
+ ```bash
48
+ python -m pip show ark-sdk
49
+ ark upgrade --help
50
+ ark --help
51
+ ark init workspace --help
52
+ ark create mcj --help
53
+ ark test pipeline_plugin --help
54
+ ```
55
+ 需要升级且用户明确同意后再执行 `ark upgrade`;该命令会实际更新 SDK,不把它当只读版本检查。
56
+ 4. 如果要创建或改造项目,先在临时目录用当前 SDK 初始化模板,并阅读生成文件后再改用户项目。
57
+ ```bash
58
+ ark init workspace <workspace-dir> --template <template-name>
59
+ ```
60
+ 5. 判断任务类型:SFT/DPO/CPT 类监督精调、带自定义 rollout/grader 的 RL、Agent RL,或产物管理。
61
+ 6. 涉及写入或可能产生费用的操作时,如果用户没有明确要求提交,先总结最终配置并等待明确意图。`ark create mcj` 无 dry-run,提交即真实创建任务并上传插件 zip。
62
+
63
+ ## Reference 路由
64
+
65
+ 只加载需要的文件:
66
+
67
+ - 任务与数据配置:[job-configuration.md](job-configuration.md)
68
+ - RL rollout/grader 实现:[rl-plugins.md](rl-plugins.md)
69
+ - 测试、调试、监控与排障:[testing-debug-monitoring.md](testing-debug-monitoring.md)
70
+
71
+ ## 核心流程
72
+
73
+ 执行 SDK 精调任务时:
74
+
75
+ 1. 完成当前环境要求的 SDK 鉴权。
76
+ - 火山方舟按“起步检查”步骤 2 准备 ArkCLI STS,**不要**单独执行 `ark login`;否则会覆盖 ArkCLI 写入的 STS,导致鉴权状态分裂。
77
+
78
+
79
+ 2. 初始化或检查 SDK workspace。
80
+ 3. 配置 `job.py` 或 `job.yaml`:模型引用、训练方式、数据、超参、可选验证集、可选产物配置。
81
+ 4. 对 RL 任务,先实现或改造 rollout,再实现 grader,最后接入 `custom_rl_pipeline`。
82
+ 5. 在正式测试前补齐可观测性:轨迹、函数日志、指标,以及可用的 tracing。
83
+ 6. 用一条预期通过样本和一条预期失败样本做本地测试。
84
+ 7. 用小批量数据测试,并发接近计划 batch size。
85
+ 8. 模板支持时,执行在线插件或类 FaaS 测试。
86
+ 9. RL 正式训练前提交 debug 任务,除非用户明确接受跳过风险。
87
+ 10. 提交正式任务后,**用 arkcli native 监控**(下一节"长任务监控")—— 不要在 python 里循环 `mcj.get`。
88
+
89
+ ## 稳定规则
90
+
91
+ - 不硬编码超参表。针对所选模型和版本实时查询。
92
+ ```bash
93
+ ark get foundation-model --model <model-name> --version <model-version> --fields hyperparameters
94
+ ```
95
+ - 除非当前 SDK 文档或模板明确允许,否则 `foundation_model` 和 `custom_model_id` 互斥。
96
+ - 本地数据路径尽量保持为项目内相对路径;生成模板通常按相对路径工作。
97
+ - RL 任务中,SDK 支持且有排障价值时设置 `enable_trajectory=True`。
98
+ - 不在代码、日志或最终答复中暴露 API key、AK/SK、token、endpoint JWT 或 Authorization header。优先使用环境变量或本地鉴权。
99
+ - 不凭记忆编造 SDK 类名或装饰器。名称不一致时,检查生成模板 import 和已安装的 `ark_sdk`。
100
+ - 不依赖本 skill 获取变化较快的支持矩阵。使用当前 SDK 输出、生成模板和官方公开产品文档确认。
101
+
102
+ ## 常用命令
103
+
104
+ ```bash
105
+ ark upgrade # 会实际更新 SDK,先取得用户确认
106
+ ark login
107
+ arkcli auth login
108
+ arkcli train finetune sdk login
109
+ ark init workspace <workspace-dir> --template rl_demo
110
+ ark init workspace <workspace-dir> --template rl_search_mcp_demo
111
+ ark get foundation-model --model <model-name> --version <model-version> --fields hyperparameters
112
+ python job.py
113
+ ark create mcj -f job.yaml
114
+ ark create mcj --file job.yaml --debug
115
+ ark get mcj <mcj-id>
116
+ ark list mcj
117
+ ark pull mcj <mcj-id> --include-plugin
118
+ ```
119
+
120
+ 命令参数不确定时,优先执行 `ark <command> --help`。
121
+
122
+ ## 长任务监控:回到 arkcli native
123
+
124
+ 火山方舟的 SDK 鉴权使用短期 STS,默认约 30 分钟过期。提交完任务后不要在 Python 里实现无边界的 `while True: mcj.get(...)` 轮询,否则长任务会遇到鉴权过期。改用 ArkCLI native,由产品命令管理鉴权,并统一使用产品侧的状态、日志和指标查询:
125
+
126
+ ```bash
127
+ arkcli train finetune watch <mcj-id> # 阻塞到终态
128
+ arkcli train finetune get <mcj-id> # 一次性查详情
129
+ arkcli train finetune metrics <mcj-id> # 指标
130
+ arkcli train finetune logs <mcj-id> # 日志
131
+ arkcli train finetune trajectory list <mcj-id> # RL 轨迹
132
+ arkcli train finetune artifacts list <mcj-id> # 产物
133
+ ```