L’interface est localisée ; les présentations et documents des Skills sont traduits automatiquement par IA dans votre langue. Le code, les commandes, chemins et termes techniques restent en version originale, et le document de l’auteur fait foi.
Explorer les Skills
Développement · SKILL.md

kingdee-skill-publisher

kingdee-skill-publisher

金蝶云苍穹业务Skill快速发布工具。这是一个元Skill,用于基于金蝶苍穹开放平台已发布的API和MCP服务,快速创建和发布财务凭证查询、供应链订单查询等业务Skill。 使用此Skill时: 1. 用户需要配置金蝶苍穹服务器URL和API认证凭证,支持两种认证方式: - 经典认证(默认):user、appId、appSecret、accountId,通过 `POST {baseUrl}/api/login.do` 获取Token - 增强型Token认证:client_id、client_secret、username、accountId,通过 `POST {baseUrl}/kapi/oauth2/getToken` 获取Token 2. Skill自动根据 auth_type 选择认证…

Independent GitHub snapshot · Automated classification · Original documentation governs

Documentation de la Skill

GitHub

name: kingdee-skill-publisher description: |

金蝶云苍穹业务Skill快速发布工具。这是一个元Skill,用于基于金蝶苍穹开放平台已发布的API和MCP服务,快速创建和发布财务凭证查询、供应链订单查询等业务Skill。

使用此Skill时:

  1. 用户需要配置金蝶苍穹服务器URL和API认证凭证,支持两种认证方式:
    • 经典认证(默认):user、appId、appSecret、accountId,通过 POST {baseUrl}/api/login.do 获取Token
    • 增强型Token认证:client_id、client_secret、username、accountId,通过 POST {baseUrl}/kapi/oauth2/getToken 获取Token
  2. Skill自动根据 auth_type 选择认证方式并获取 access_token
  3. Claude通过自然语言查询金蝶API清单,用户选择所需API
  4. Claude自动包装成Skill并发布
  5. 未来兼容MCP服务集成

触发场景:当用户想要快速发布金蝶业务Skill、配置金蝶API接口、查询金蝶API清单时,使用此Skill。

金蝶云苍穹业务Skill发布器

这是一个元Skill(Meta Skill),用于快速发布基于金蝶云苍穹开放平台的业务Skill。它简化了从API集成到Skill发布的全流程。


⛔ 强制执行规则(最高优先级)

本 Skill 的所有操作(凭证验证、API 查询、API 详情获取、Skill 生成)都必须通过执行 Python 脚本完成。AI 不得自行编写、猜测或拼凑任何业务文件内容。

必须遵守

  1. 凭证验证 → 必须执行 publisher.setup_credentials() Python 代码
  2. API 列表查询 → 必须执行 publisher.search_apis() Python 代码
  3. API 详情获取 → 必须执行 publisher.api_client.get_api_detail() Python 代码
  4. Skill 生成 → 必须执行 publisher.create_skill_from_api() 或 SkillGenerator.generate_skill() Python 代码
  5. 所有 API URL → 必须来自服务器 getDetail 接口返回的 urlformat 字段,禁止猜测或拼凑

绝对禁止

  • ❌ 禁止 AI 自行编写 SKILL.md、api_call.py 等业务文件(必须由 Python 脚本生成)
  • ❌ 禁止 AI 猜测 API 的 URL 地址(必须从服务器获取)
  • ❌ 禁止 AI 猜测 API 的请求参数和返回参数(必须从 getDetail 获取)
  • ❌ 禁止跳过 Python 脚本直接用 write_to_file 创建 Skill 文件

执行方式

所有 Python 代码必须通过 execute_command 工具执行,示例:

cd /path/to/kingdee-skill-publisher && python3 -c "
from scripts import KingdeeSkillPublisher
publisher = KingdeeSkillPublisher()
publisher.setup_credentials(server_url=..., app_id=..., app_secret=..., account_id=..., user=...)
result = publisher.search_apis(appid_number='xxx', keyword='yyy')
print(result)
"

核心功能

1. 凭证管理

  • 引导用户配置金蝶服务器连接信息
  • 存储和验证API认证凭证(user、appId、appSecret、accountId)
  • 按 login.do 协议获取并缓存 access_token
  • 在Token失效时自动重新获取

2. API探索与选择

  • 自然语言查询金蝶API清单
  • 支持按模块、功能、API编码搜索
  • 展示API文档细节和参数信息

3. Skill自动生成

  • 基于选定的API自动生成Skill
  • 智能包装参数校验和错误处理
  • 生成Skill的README和使用说明

4. 发布与测试

  • 打包Skill文件(.skill格式)
  • 生成测试用例
  • 提供Skill安装指引

工作流

┌─────────────────────────────────────────┐
│ 1. 配置凭证与连接                          │
│    - Server URL                          │
│    - user / appId / appSecret / accountId│
└────────────┬────────────────────────────┘
             │
┌────────────▼────────────────────────────┐
│ 2. 询问 appid_number                     │
│    - 必须询问用户提供应用编码              │
│    - 未提供则停止执行                      │
└────────────┬────────────────────────────┘
             │
┌────────────▼────────────────────────────┐
│ 3. 搜索API列表                            │
│    - 调用 queryByApp 获取API清单           │
│    - 展示API名称、编码、描述               │
└────────────┬────────────────────────────┘
             │
┌────────────▼────────────────────────────┐
│ 4. 用户选择API                            │
│    - 展示API列表供用户选择                 │
│    - 必须等待用户明确选择                  │
│    - 未选择则停止执行                      │
└────────────┬────────────────────────────┘
             │
┌────────────▼────────────────────────────┐
│ 5. 获取API详情 (getDetail)                │
│    - 使用API ID调用详情接口                │
│    - 获取请求头、请求参数、返回参数         │
└────────────┬────────────────────────────┘
             │
┌────────────▼────────────────────────────┐
│ 6. 封装Skill                              │
│    - 根据详情生成请求头处理代码            │
│    - 生成参数验证和响应解析逻辑            │
│    - 生成完整Skill结构                     │
└────────────┬────────────────────────────┘
             │
┌────────────▼────────────────────────────┐
│ 7. 测试与发布                             │
│    - 生成测试用例                         │
│    - 打包 Skill                           │
│    - 提供安装指引                         │
└─────────────────────────────────────────┘

快速开始

第一步:初始化配置

当用户开始使用此Skill时,引导进行以下操作:

需要收集的信息(根据认证方式选择):

经典认证(默认,auth_type="login_do"):

金蝶服务器配置:
├─ 服务器 URL(必须)
│  示例:https://xxx.kingdee.com/ierp
│
├─ appId(必须)
│  由金蝶开放平台第三方应用申请
│
├─ appSecret(必须)
│  需妥善保管,不应暴露
│
├─ accountId(必须)
│  租户账套ID
│
└─ user(可选,默认admin)
   当前操作用户

增强型Token认证(auth_type="oauth2"):

金蝶服务器配置:
├─ 服务器 URL(必须)
│
├─ client_id(必须)
│  示例:${YOUR_CLIENT_ID}
│
├─ client_secret(必须)
│  AccessToken认证密钥,示例:${YOUR_CLIENT_SECRET},需妥善保管
│
├─ username(必须)
│  用户名或手机号,示例:${YOUR_USERNAME}
│
├─ accountId(必须)
│  租户账套ID
│
└─ language(可选,默认zh_CN)
   语言设置

nonce 和 timestamp 由客户端自动生成,无需配置。

配置验证步骤:

  1. 检查服务器连通性
  2. 根据 auth_type 调用对应的Token接口获取 access_token
  3. 使用 Authorization: Bearer {access_token} 调用测试接口验证权限
  4. 列出可用的API清单(验证查询能力)

第二步:探索与查询API(⚠️ 必须执行 Python 脚本)

⛔ 必须通过 execute_command 执行 publisher.search_apis() Python 代码查询,禁止 AI 自行构造 HTTP 请求。

本Skill使用金蝶官方的 queryByApp 接口按应用编码查询API列表,确保返回结果与当前应用实际发布的API保持一致。

接口路径: GET /kapi/v2/open/openapi_apilist/queryByApp

⚠️ 重要:查询前必须获取 appid_number

在调用API查询前,必须在对话框中询问用户提供 appid_number(应用编码)。

  • 如果用户提供了 appid_number:继续执行查询
  • 如果用户未提供 appid_number:停止执行,不再进行后续任务

询问示例:

我需要查询API列表,请提供应用编码(appid_number)。
例如:basedata、ar、ap、pm 等

用户可以通过多种方式查询API:

方式1:按应用编码获取完整列表

  • 用户必须显式传入 appid_number
  • pageNo 默认值为 1
  • pageSize 默认值为 10

方式2:对结果做本地过滤

  • 关键词过滤:匹配 API 编码、名称、描述
  • 模块过滤:基于返回记录中的编码或 URL 做最佳努力过滤

查询返回信息:

  • API编码 (apiCode) - 用于API调用
  • API名称 (apiName) - 中文描述
  • 请求方式 (method) - GET/POST
  • API描述 (apiDescription) - 功能说明
  • 所属模块 (module) - ar/ap/pm等
  • API版本 (version) - 版本号
  • API状态 (status) - 发布/草稿等
  • 请求参数 (requestParams) - 完整的参数定义
  • 返回参数 (returnParams) - 返回字段定义
  • 错误码 (errorCodes) - 业务错误码

示例查询结果:

# 注意:appid_number 必须询问用户提供
result = publisher.search_apis(
    appid_number="basedata",  # 用户提供的应用编码
    keyword="凭证"
)

# 输出示例:
{
    "success": True,
    "total": 5,
    "apis": [
        {
            "apiCode": "ar_getBillDetail",
            "apiName": "应收凭证详情",
            "method": "GET",
            "module": "ar",
            "apiDescription": "查询应收凭证的详细信息",
            "requestParams": [
                {"name": "billId", "type": "String", "required": True, "description": "凭证ID"}
            ],
            "returnParams": [
                {"name": "id", "type": "String", "description": "凭证ID"},
                {"name": "billNo", "type": "String", "description": "凭证号"}
            ]
        },
        # ... 更多API
    ]
}

⚠️ 重要:必须等待用户选择API

返回API列表后,必须在对话框中展示API列表并询问用户选择,示例如下:

找到以下API,请选择一个继续:

1. ar_getBillDetail - 应收凭证详情
   描述:查询应收凭证的详细信息
   
2. ar_getBillList - 应收凭证列表
   描述:查询应收凭证列表

请输入序号(1-2)或直接告诉我API名称:

执行规则:

  • 如果用户选择了API:继续执行第三步获取API详情
  • 如果用户没有选择API:停止执行,不再进行后续任务

第三步:获取API详情(⚠️ 必须执行 Python 脚本)

⛔ 必须通过 execute_command 执行 publisher.api_client.get_api_detail(api_id) Python 代码获取详情,禁止 AI 自行猜测 API 的 URL、参数和返回值。

前置条件:用户已明确选择了一个API

用户选择API后,Claude必须通过执行Python代码调用详情接口获取完整的API定义(包括真实URL):

接口信息:

  • 接口地址: GET /v2/open/openapi_apilist/getDetail
  • 请求方式: GET
  • 请求头:
    • Content-Type: application/json
    • accesstoken: {access_token}
  • Query参数:
    • id: API主键ID(必填,从第二步API列表中获取)
    • pageSize: 分页大小(必填,即使只查询单条记录,默认10)
    • pageNo: 查询页码(可选,默认1)

⚠️ 重要提示: 此查询接口必须传递分页参数 pageSize 和 pageNo,即使只查询单条记录。

返回内容 (data.rows[0]):

{
  "success": true,
  "api_detail": {
    "id": "API主键ID",
    "api_code": "API编码",
    "api_name": "API名称",
    "api_description": "API描述",
    "method": "GET/POST",
    "url": "/v2/open/...",
    "request_headers": [
      {"name": "Content-Type", "value": "application/json", "description": "内容格式", "required": true},
      {"name": "accesstoken", "value": "...", "description": "请求令牌", "required": true}
    ],
    "request_query_params": [
      {"name": "id", "type": "Long", "description": "主键ID", "required": true, "example": ""}
    ],
    "request_body_params": [
      {"name": "param1", "type": "String", "description": "参数说明", "required": true, "example": "..."}
    ],
    "response_params": [
      {"name": "field1", "type": "String", "description": "字段说明", "required": true, "level": "1"}
    ],
    "error_codes": [
      {"code": "400", "description": "参数错误"}
    ]
  }
}

参数来源说明(根据金蝶OpenAPI文档):

规范化字段原始字段说明
request_headersheaderentryentity请求头参数
request_query_paramsurlparamentryentityURL查询参数
request_body_paramsbodyentryentity请求体参数
response_paramsrespentryentity返回参数
error_codeserrorcodeentity错误码定义
orderby_rulesorderby_entry排序规则
save_paramssaveparamentryentity操作参数

### 第四步:封装Skill(⚠️ 必须通过 Python 代码生成)

**⚠️⚠️⚠️ 关键原则:必须通过执行 Python 代码生成 Skill,禁止手动编写文件内容**

获取到完整的API详情后,Claude **必须调用项目中的 Python 代码**来生成 Skill,而**不是自己直接编写文件内容**。Python 代码内置了 YAML 描述头生成和验证逻辑,能确保生成的 SKILL.md 格式正确。

**方式1(推荐):使用 `KingdeeSkillPublisher.create_skill_from_api_id()`**

```python
from scripts import KingdeeSkillPublisher

publisher = KingdeeSkillPublisher()
publisher.setup_credentials(
    server_url=server_url,
    app_id=app_id,
    app_secret=app_secret,
    account_id=account_id,
    user=user
)

# 使用用户选择的 API 的主键 ID 直接生成 Skill
result = publisher.create_skill_from_api_id(
    api_id=selected_api['id'],           # 用户选择的 API 主键 ID
    skill_name="ar-bill-detail-query",    # 可选,默认使用 API 编码
    skill_description="查询应收凭证详情"    # 可选
)

if result['success']:
    print(f"✅ Skill 已生成: {result['skill_path']}")
else:
    print(f"❌ 生成失败: {result['message']}")

方式2:使用 KingdeeSkillPublisher.create_skill_from_api()

# 使用 search_apis 返回的 api_info + use_detail=True 自动获取详情
result = publisher.create_skill_from_api(
    api_info=selected_api,               # 用户选择的 API(包含 id 字段)
    skill_name="ar-bill-detail-query",
    skill_description="查询应收凭证详情",
    use_detail=True                       # 自动调用 getDetail 获取完整详情
)

方式3:直接使用 SkillGenerator

from scripts.skill_generator import SkillGenerator

generator = SkillGenerator(output_dir="./outputs")
skill_dir = generator.generate_skill(
    api_info=api_detail,                  # 完整的 API 详情字典
    custom_name="ar-bill-detail-query",
    custom_description="查询应收凭证详情"
)
print(f"✅ Skill 已生成: {skill_dir}")

Python 代码会自动完成以下工作:

  1. 生成带 YAML 描述头的 SKILL.md(内置 frontmatter 验证,确保 name: 和 description: | 字段完整)
  2. 根据 request_headers 生成请求头处理代码(scripts/api_call.py)
  3. 复制 API 客户端代码(scripts/api_client.py,含 Token 管理)
  4. 根据 request_query_params 和 request_body_params 生成参数验证逻辑
  5. 根据 response_params 生成 API schema(references/api_schema.json)
  6. 根据 error_codes 生成错误码对照表(references/error_codes.json)
  7. 生成使用示例(references/examples.json)
  8. 生成 README.md 和 LICENSE.txt
  9. 最终验证 SKILL.md 描述头完整性

生成的 Skill 目录结构:

${skill_name}/
├─ SKILL.md(包含 YAML 描述头,由 Python 代码自动生成并验证)
├─ scripts/
│  ├─ __init__.py
│  ├─ api_call.py(API 调用逻辑)
│  ├─ api_client.py(API 客户端,Token 管理)
│  └─ utils.py(工具函数)
├─ references/
│  ├─ api_schema.json(API 参数 schema)
│  ├─ error_codes.json(错误码对照)
│  └─ examples.json(使用示例)
├─ README.md
└─ LICENSE.txt

⚠️ 禁止事项:

  • ❌ 禁止手动编写 SKILL.md 文件内容(会遗漏描述头)
  • ❌ 禁止跳过 Python 代码直接创建文件
  • ❌ 禁止修改生成的 SKILL.md 描述头格式

API 详情字段说明(Python 代码内部使用):

规范化字段原始字段说明
request_headersheaderentryentity请求头参数
request_query_paramsurlparamentryentityURL 查询参数
request_body_paramsbodyentryentity请求体参数
response_paramsrespentryentity返回参数
error_codeserrorcodeentity错误码定义
orderby_rulesorderby_entry排序规则
save_paramssaveparamentryentity操作参数

第五步:测试与发布

自动生成的测试用例包括:

  • 参数验证测试
  • 基本API调用测试
  • 错误处理测试
  • 权限控制测试

发布输出:

  • .skill 打包文件
  • 安装指引
  • 使用示例代码
  • API文档引用

配置示例

示例1:财务凭证查询Skill(完整 Python 流程)

用户输入:我想创建一个财务凭证查询的Skill
         告诉我有哪些相关的API

Claude执行:
1. 查询API清单(执行 Python 代码)
from scripts import KingdeeSkillPublisher

publisher = KingdeeSkillPublisher()
publisher.setup_credentials(
    server_url=server_url,
    app_id=app_id,
    app_secret=app_secret,
    account_id=account_id,
    user=user
)

# 搜索API
apis_result = publisher.search_apis(appid_number="basedata", keyword="凭证")
2. 展示API列表供用户选择:
   - ar.getBillDetail(应收凭证详情)
   - ar.getBillList(应收凭证列表)

用户选择:选择 ar.getBillDetail

Claude执行:
3. 通过 Python 代码生成 Skill(⚠️ 禁止手动编写文件)
# 使用 Python 代码生成 Skill(自动包含 YAML 描述头)
result = publisher.create_skill_from_api_id(
    api_id=selected_api['id'],
    skill_name="ar-bill-detail-query",
    skill_description="查询应收凭证详情"
)

if result['success']:
    print(f"✅ Skill 已生成: {result['skill_path']}")
    # Python 代码自动生成的 SKILL.md 包含完整的 YAML 描述头
    # Python 代码自动处理了 Token 管理、参数验证、错误处理等

示例2:供应链订单查询Skill

用户输入:我需要查询供应链的订单信息

Claude执行:
1. 搜索相关API(执行 publisher.search_apis)
2. 展示列表供用户选择

用户选择:选择 pm.getPurchaseOrderDetail

Claude执行:
3. 通过 Python 代码生成 Skill(⚠️ 禁止手动编写文件)
result = publisher.create_skill_from_api_id(
    api_id=selected_api['id'],
    skill_name="purchase-order-detail",
    skill_description="查询采购订单详情"
)

金蝶API文档规范参考

此Skill基于金蝶云苍穹OpenAPI开放平台的规范实现:

API请求规范

  • 协议: HTTPS
  • 数据格式: JSON(默认)
  • 请求地址: /kapi/v2/{isv}/{appId}/{formId}/{apiCode}
  • 请求方式: GET(查询)/ POST(新增/修改)

认证方式

支持两种认证方式,通过 auth_type 参数选择:

方式一:经典认证(auth_type="login_do",默认)

  • Token获取接口:POST {baseUrl}/api/login.do
  • 请求体:
{
  "user": "${config.user}",
  "appId": "${config.appId}",
  "appSecret": "${config.appSecret}",
  "accountId": "${config.accountId}"
}

所需凭证:server_url、app_id、app_secret、account_id、user(可选)

方式二:增强型Token认证(auth_type="oauth2")

  • Token获取接口:POST {baseUrl}/kapi/oauth2/getToken
  • 请求体:
{
  "client_id": "${config.client_id}",
  "client_secret": "${config.client_secret}",
  "username": "${config.username}",
  "accountId": "${config.accountId}",
  "nonce": "{{自动生成UUID}}",
  "timestamp": "{{自动生成当前时间,格式:yyyy-MM-dd HH:mm:ss}}",
  "language": "${config.language}"
}

所需凭证:server_url、account_id、client_id、client_secret、username、language(可选,默认 zh_CN)

nonce 和 timestamp 由客户端自动生成,无需用户提供。

  • 成功响应:从 data.access_token 读取访问令牌
  • 业务调用:通过请求头 Authorization: Bearer {access_token} 传递Token
  • API列表查询:通过请求头 accesstoken: {access_token} 传递Token

Token管理

  • 默认缓存:内存缓存,不落盘
  • 过期时间:优先使用 data.expire_time 反推剩余有效期;未返回时按120分钟处理
  • 复用策略:Token未过期时直接复用缓存值
  • 失效处理:收到401或业务响应中的401后自动重新获取Token

重要限制

  • 单次请求最长响应时间: 50秒
  • 单次查询数据量: 不超过1万条
  • 单次保存数据量: 不超过2000条
  • 频率限制:
    • 公有云:每租户账套最多600次/分
    • 单个应用客户端最多30次/秒

错误码体系

0-999       OpenAPI引擎错误(0正常、400参数无效、401未授权、403禁止、404不存在、500服务异常)
appId.100001+ 应用业务错误

幂等性处理

两种方案支持:

  1. Idempotency-Key: 在请求头中传递随机值,30秒内有效
  2. API配置: 在金蝶平台打开防止重复请求开关

高级特性

1. MCP服务兼容性(未来扩展)

Skill发布器将来支持基于金蝶MCP服务创建Skill,允许:

  • 直接调用MCP服务接口
  • 组合多个MCP服务构建复杂业务流程
  • 跨系统数据联动

2. 批量API包装

支持在一个Skill中包装多个相关API:

示例:订单完整流程Skill
├─ 订单查询(API)
├─ 订单详情(API)
├─ 订单状态变更(MCP)
└─ 库存扣减(MCP)

3. 参数智能映射

自动处理参数映射:

  • 类型转换(字符串↔数字↔日期)
  • 格式规范化(驼峰命名转下划线)
  • 默认值填充
  • 枚举值验证

4. 错误和日志

完整的错误处理链:

  • 网络错误重试
  • 业务错误提示
  • Token过期自动重取
  • 详细的调试日志

文件组织结构

生成的Skill遵循以下结构:

${skill_name}/
├── SKILL.md                    # ⚠️ Skill定义(必须包含 YAML 描述头)
├── scripts/
│   ├── __init__.py
│   ├── api_client.py          # API客户端(Token管理、请求)
│   ├── api_call.py            # 主要API调用逻辑
│   └── utils.py               # 工具函数
├── references/
│   ├── api_schema.json        # API请求/返回schema
│   ├── error_codes.json       # 错误码对照表
│   ├── examples.json          # 使用示例
│   └── kingdee_api_spec.md    # API文档快速参考
├── README.md                   # 使用说明
└── LICENSE.txt                # 许可证

内部处理流程

凭证初始化

  1. 用户提供服务器信息和API凭证(并选择 auth_type)
  2. 通过 HEAD {baseUrl}/kapi 验证基础连通性
  3. 根据 auth_type 调用对应Token接口:
    • login_do(默认):POST {baseUrl}/api/login.do
    • oauth2:POST {baseUrl}/kapi/oauth2/getToken(nonce/timestamp自动生成)
  4. 将Token缓存在客户端内存中
  5. 使用 getUserInfo 等轻量接口验证认证和权限

API查询

  1. 先确保存在有效 access_token
  2. 通过 GET /kapi/v2/open/openapi_apilist/queryByApp 按 appid_number 查询当前应用API
  3. 自动附带 accesstoken 请求头和分页参数 pageNo/pageSize
  4. 将返回记录规范化为内部统一字段(如 api_code/api_name/api_description)
  5. 按用户查询条件做本地过滤
  6. 返回简化的列表视图并支持自然语言匹配

Skill生成(⚠️ 必须执行 Python 代码)

  1. 调用 publisher.create_skill_from_api_id(api_id) 或 publisher.create_skill_from_api(api_info, use_detail=True)
  2. Python 代码内部自动完成:
    • 解析API文档(参数、错误码等)
    • 生成带 YAML 描述头的 SKILL.md(内置 frontmatter 验证)
    • 生成 API 调用脚本(scripts/api_call.py)
    • 生成参考文档和示例(references/)
    • 生成 README.md 和 LICENSE.txt
    • 最终验证 SKILL.md 描述头完整性
  3. ❌ 禁止跳过 Python 代码手动编写文件

测试用例生成

  1. 基于API参数生成正常用例
  2. 基于错误码生成异常用例
  3. 基于约束生成边界用例
  4. 验证Token获取、请求头注入和接口调用链路

注意事项

安全性

  • 凭证保护: appSecret不应硬编码在Skill中,通过环境变量或密钥管理系统传递
  • Token缓存: 仅在客户端缓存,不应持久化到磁盘
  • 参数验证: 严格验证所有用户输入,防止注入攻击
  • HTTPS强制: 所有API调用使用HTTPS,验证证书有效性

可靠性

  • 幂等性: 关键操作启用幂等性检查,防止重复执行
  • 重试策略: 网络超时自动重试,可配置重试次数
  • Token重取: 监测Token过期,自动重新获取新Token
  • 错误恢复: 明确的错误分类和恢复策略

性能

  • 分页查询: 大数据量自动分页,防止超时
  • 缓存策略: 缓存Token和元数据,减少冗余请求
  • 批量操作: 支持批量查询,优化网络效率
  • 异步处理: 长流程操作可配置异步模式

进阶:手动调整生成的Skill

生成的Skill可以进一步手动调整:

1. 自定义参数映射

修改 scripts/api_call.py 中的参数转换逻辑

2. 增强错误处理

在 references/error_codes.json 中添加业务特定的错误处理规则

3. 扩展功能

组合多个API实现更复杂的业务流程

4. 优化文档

补充业务场景说明和最佳实践

常见问题

Q: 如何管理多个Skill的凭证? A: 每个Skill可以有独立的凭证配置,或者共享一个中央配置库。建议使用环境变量隔离凭证。

Q: Skill支持哪些金蝶API? A: 所有金蝶云苍穹开放平台已发布的API都支持,包括标准预置API和ISV二开API。

Q: 如何处理Token过期? A: 生成的Skill会优先复用内存中的Token;如果本地判断已过期,或接口返回HTTP 401/业务401,则自动重新调用 POST {baseUrl}/api/login.do 获取新Token。用户无需手动处理。

Q: 可以同时调用多个API吗? A: 可以。生成的Skill支持组合调用多个API实现复杂业务流程。

Q: 如何处理大数据量? A: 自动分页处理,单次查询最多1万条,保存2000条。


反馈与改进

如有建议或问题,请提出反馈,我们会持续改进此元Skill的功能和易用性。

Skills enregistrées