feat: init

This commit is contained in:
yufeng
2026-06-15 19:17:01 +08:00
parent c67e5fd45d
commit 66f575ca01
4 changed files with 14 additions and 13 deletions
+2 -2
View File
@@ -1,5 +1,5 @@
# kling-skills
# skills
```bash
npx skills add <org>/kling-skills
npx skills add klingai-tech/skills
```
+6 -5
View File
@@ -9,7 +9,6 @@ description: >-
text_to_image、image_to_image、text_to_video、image_to_video、query_tasks、who_am_i、file_upload、
image generation、video generation、kling 命令、.credentials、
国内站、海外站、global、海外版、区域、region、安装、install。
primaryEnv: KLING_BASE_URL
requires: node>=18
homepage: https://klingai.com
---
@@ -89,11 +88,11 @@ canonical 命令与可灵后端 **MCP 工具名 1:1snake_case**。`<comman
| 6 | `image_to_video --image <url\|path> <prompt>` | 生成 | **异步** | 是 | 图生视频(让图动起来),返回 `generation_id` |
| 7 | `query_tasks <generationId>` | 任务查询 | 同步 | 是 | 按 `generation_id` 查询生成状态与最终资源 URL`works[].url` |
| 8 | `file_upload <filePath>` | 文件上传 | 同步 | 是 | 两步式上传(申请一次性票据 + 上传文件字节),返回公网 URL |
| 9 | `account` | 商业化 | 同步 | 是kRPC | 会员类型 + 可用灵感值(`query_membership_and_points`,身份取自 JWT |
| 9 | `account` | 商业化 | 同步 | 是 | 会员类型 + 可用灵感值(`query_membership_and_points`,身份取自 JWT |
| 10 | `login` | 鉴权 | 同步 | 否(仅 OAuth 服务) | 浏览器 OAuth 登录DCR + PKCEtoken 写入本地 `.credentials` |
| 11 | `logout` | 鉴权 | 同步 | 否(仅 OAuth 服务) | 吊销(尽力)并清除本地登录态,保留已注册的 client id |
> **端点已内置**:包内 `src/config.ts``DEFAULT_BASE_URL` 发布时定稿开箱即用、无需配置;`KLING_BASE_URL`环境变量 `.env`仅作覆盖手段。没有 config 命令。
> **端点已内置**:包内 `src/config.ts``DEFAULT_BASE_URL` 是端点的**唯一来源**发布时定稿开箱即用、无需配置;**没有任何外部覆盖口子**(无 `KLING_BASE_URL` 环境变量、无 `.env`,也没有 config 命令。换端点只能改 `src/config.ts` 后重新发布。
> **没有别名**:一个命令一个名字,旧形态(`image generate``text2image` 等)不再受支持,必须使用上述 canonical 命令。
@@ -136,14 +135,14 @@ canonical 命令与可灵后端 **MCP 工具名 1:1snake_case**。`<comman
2. **禁止自动改 prompt 重投**:任务失败或超时,**不要**自行修改 prompt 重新提交。必须先告知用户失败原因,获得明确同意后才可重试。
3. **重试需用户授权**:轮询超时、状态异常、内容被拦截等情况,向用户说明后询问「继续等待 / 重试 / 放弃」,不得静默重投或静默结束。
4. **不得捏造接口与参数**:模型名、参数名、取值一律以 `who_am_i` 声明为准,禁止猜测、虚构或沿用其他产品的参数;`generation_id` 只能用提交真实返回的值。
5. **参数错误不扣费**:服务端在转发下游前做参数校验,校验类报错可在修正参数后直接重试(这是无需用户重新授权的唯一重试场景)。
5. **参数错误不扣费**:服务端在转发下游前做参数校验,校验类报错可在修正参数后重试(这是无需用户重新授权的唯一重试场景)。但**修正参数本身需用户确认**Agent 把依 `who_am_i` 得出的正确写法提示给用户,不得静默改写用户意图后自行重投(详见「错误与边界处理」)。
---
## 前置条件
- **Node.js 22+**
- **端点已内置,无需配置**:发布时在 `src/config.ts` 定稿 `DEFAULT_BASE_URL`。特殊情况可用 `KLING_BASE_URL`(环境变量或 `~/.kling/.env`)覆盖——仅在用户明确要求换端点时使用
- **端点已内置,无需配置**:发布时在 `src/config.ts` 定稿 `DEFAULT_BASE_URL`,这是端点的唯一来源,**无外部覆盖口子**(无 `KLING_BASE_URL`、无 `.env`)。换端点须改 `src/config.ts` 后重新发布
- **登录态**:保存在用户目录 **`~/.kling/.credentials`**(与包目录无关,升级/重装 CLI 不丢登录态),按**端点 host** 分 section`[klingai.com]`),含 `ACCESS_TOKEN` / `REFRESH_TOKEN`OAuthDCR + 授权码 + PKCE + RFC 8707 resource。token 过期由 CLI 用 refresh token **自动静默续期**并回写文件。
- **任何输出/回复中不要复述端点地址等环境信息**
@@ -223,6 +222,8 @@ canonical 命令与可灵后端 **MCP 工具名 1:1snake_case**。`<comman
2. 模型相关报错(如 model 不合法)→ 先 `who_am_i` 查可用模型再修正。
3. `query_tasks``Generation not found` → generation_id 错误或非本人,核对后重试,**不得捏造 generation_id**。
4. 响应缺少 `generation_id` → 提交可能未成功,向用户说明,不得编造。
5. **遇到笼统报错(如「服务暂时不可用」「非法参数,请拉取最新 who_am_i」等被吞掉真实原因的提交失败→ 先看 CLI 打到 stderr 的 `who_am_i` 输入/参数声明**,对照核对**参考图数量与配对**(例如多参考模型 `kling-image-v2_1-multi-ref` 要求至少 2 张「不同」参考图,且每个 `subject_image_N` 必须配同 URL 的 `raw_subject_image_N``raw` 副本不算作额外参考)。**这是参数校验类失败、不扣费**。
- ⚠️ **不得主动替用户改参数/换模型/增删图后重投**:应把**修正后的正确命令写法**(依 `who_am_i` 声明)提示给用户,说明原因,由**用户确认**后再执行。绝不静默改写用户意图。
### 出错时的行为准则
@@ -13,7 +13,7 @@ CLI 是可灵后端 MCP server 的薄客户端:所有业务调用都是 MCP `t
| 5 | `image_to_video` | 生成 | **异步** | 是 | 图生视频(需 inputs返回 `generation_id` |
| 6 | `query_tasks` | 任务查询 | 同步 | 是 | 按 `generation_id` 查询生成状态与最终资源 URL |
| 7 | `file_upload` | 文件上传 | 同步 | 是 | 申请一次性上传票据;文件字节由调用方自行上传(两步式,见下) |
| 8 | `query_membership_and_points` | 商业化 | 同步 | 是kRPC | 查询会员身份与可用灵感值(身份取自 JWT无参数 |
| 8 | `query_membership_and_points` | 商业化 | 同步 | 是 | 查询会员身份与可用灵感值(身份取自 JWT无参数 |
## who_am_i
@@ -21,7 +21,7 @@ CLI 是可灵后端 MCP server 的薄客户端:所有业务调用都是 MCP `t
```json
{
"user": { "user_id": 2189248745 },
"user": { "user_id": 10000001 },
"available_models": {
"text_to_image": [
{
@@ -41,7 +41,7 @@ CLI 是可灵后端 MCP server 的薄客户端:所有业务调用都是 MCP `t
}
```
- 模型名、参数、默认值均以**运行时返回**为准(服务端 Kconf 配置)。
- 模型名、参数、默认值均以**运行时返回**为准(服务端配置)。
- `arguments[]``required` 必填恒无默认值;`allowed_values` 不出现表示不限制;选填缺省时服务端回填 `default`
## 生成类工具通用协议
@@ -80,7 +80,7 @@ CLI 是可灵后端 MCP server 的薄客户端:所有业务调用都是 MCP `t
## query_tasks
请求:`{ "generationId": "<generation_id 原值>" }`。返回(已完成,staging 实测状态为大写):
请求:`{ "generationId": "<generation_id 原值>" }`。返回(已完成,实测状态为大写):
```json
{
@@ -92,7 +92,7 @@ CLI 是可灵后端 MCP server 的薄客户端:所有业务调用都是 MCP `t
{
"status": "COMPLETED",
"content_type": "image",
"url": "https://kcdn.staging.kuaishou.com/.../out.png",
"url": "https://cdn.example.com/.../out.png",
"url_without_watermark": "https://.../out_clean.png",
"cover_url": "https://.../cover.jpg",
"cover_url_without_watermark": "https://.../cover_clean.jpg"
@@ -121,7 +121,7 @@ CLI 是可灵后端 MCP server 的薄客户端:所有业务调用都是 MCP `t
请求参数:无(身份取自 JWT。返回示例
```json
{ "userId": 2189248745, "membershipType": "NORMAL", "availablePoints": 0.0 }
{ "userId": 10000001, "membershipType": "NORMAL", "availablePoints": 0.0 }
```
`membershipType``NORMAL` / `VIP` / `SVIP` / `SSVIP` / `SSSVIP``availablePoints` 为用户可见的灵感值,无需换算。