- MiniMax-M2.7: 200K/64K → 150K/16K - kimi-for-coding: 200K/64K → 262K/32K - gpt-5.5: anthropic-messages → openai-responses, 64K → 65K - deepseek-v4-pro/flash: 补充1M上下文说明 - mimo-v2.5-pro: 移除image输入(实际只支持text) - README/SKILL.md 统一更新
18 KiB
name, description
| name | description |
|---|---|
| openclaw-trapi-config | 配置传米科技 trapi 自定义 Provider 及模型。引导用户将 trapi Provider(lapi.transiglobal.com)添加到 OpenClaw,支持首次安装和动态添加新模型。触发词:"配置 trapi"、"安装 trapi"、"添加 trapi provider"、"trapi 配置"、"Transiglobal API"、"配置传米 API"、"trapi 添加模型"、"trapi add model",或涉及 GLM-5-Turbo / GLM-5.1 / MiniMax-M2.7 / kimi-for-coding / deepseek-v4-pro / deepseek-v4-flash / mimo-v2.5-pro / mimo-v2.5 / claude-opus-4.7 / GLM-5V-Turbo / PaddleOCR-VL-1.5 / qwen3.7-max / qwen3.6-plus 的 trapi 配置。也可在 trapi 已存在时用于添加新模型。 |
trapi Provider 配置指南
在任意 OpenClaw 实例上配置 trapi 自定义 Provider,使用 Anthropic Messages API 格式。
服务信息
- Provider 名称:
trapi - Base URL:
https://lapi.transiglobal.com - API 格式:
anthropic-messages - 运营方:传米科技(Transiglobal)
步骤 -1:检查 OpenClaw 版本
在执行任何配置操作前,必须先检查 OpenClaw 版本,以确定正确的配置格式。
检查方法
openclaw --version
版本分支
| 版本 | 别名配置位置 | 说明 |
|---|---|---|
| >= 2026.5.0 | agents.defaults.models."provider/model" → {"alias": "xxx"} |
新版格式(本技能默认采用) |
| < 2026.5.0 | 同样使用 agents.defaults.models 格式 |
向下兼容 |
注意:如果 OpenClaw < 2026.3.0,建议先升级 OpenClaw 再配置 trapi。
前置条件
- 用户必须提供自己的 API Key —— 绝不使用默认或硬编码的密钥
- 如用户未提供 API Key,立即停止并要求提供;不可继续执行
- OpenClaw 必须已安装并运行
步骤 0:检查已有配置
在执行任何配置操作前,必须先检查当前 OpenClaw 配置中是否已有 trapi provider 或部分模型/别名。 避免重复配置,只补齐缺失部分。
检查流程
- 使用
gateway config.get获取当前models.providers.trapi配置 - 使用
gateway config.get获取当前agents.defaults.models中的 trapi 别名 - 对比下表,列出三列状态:
| 模型 | 别名 | Provider 已有 | 别名已有 |
|---|---|---|---|
| GLM-5-Turbo | glm5t | ✅/❌ | ✅/❌ |
| GLM-5.1 | glm51 | ✅/❌ | ✅/❌ |
| GLM-4.5-Air | glm45a | ✅/❌ | ✅/❌ |
| MiniMax-M2 | mxm2 | ✅/❌ | ✅/❌ |
| MiniMax-M2.7 | mxm27 | ✅/❌ | ✅/❌ |
| kimi-for-coding | kimi | ✅/❌ | ✅/❌ |
| deepseek-v4-pro | dsv4p | ✅/❌ | ✅/❌ |
| deepseek-v4-flash | dsv4f | ✅/❌ | ✅/❌ |
| gpt-5.5 | gpt55 | ✅/❌ | ✅/❌ |
| mimo-v2.5-pro | mimo25p | ✅/❌ | ✅/❌ |
| mimo-v2.5 | mimo25 | ✅/❌ | ✅/❌ |
| claude-opus-4.7 | opus47 | ✅/❌ | ✅/❌ |
| GLM-5V-Turbo | glm5v | ✅/❌ | ✅/❌ |
| PaddleOCR-VL-1.5 | pocr | ✅/❌ | ✅/❌ |
| qwen3.7-max | qwn37 | ✅/❌ | ✅/❌ |
| qwen3.6-plus | qwn36 | ✅/❌ | ✅/❌ |
检查结果处理
- 全部已有(Provider + 所有模型 + 所有别名):告知用户已完整配置,无需操作
- Provider 已有,部分模型缺失:只 patch 缺失的模型,不覆盖已有配置
- Provider 缺失:按步骤 1-6 完整配置
- 模型已有但别名缺失:只 patch 缺失的别名
- API Key 需要更新:即使用户提供了新 Key,也要先确认旧 Key 是否仍有效
操作原则
- 绝不覆盖已有配置 —
config.patch是合并操作,但新模型如果 ID 与已有不同则追加 - 只补齐缺失部分 — 精确对比已有 vs 缺失,只 patch 差集
- 向用户展示补齐方案 — 明确列出将要添加/跳过的内容,等用户确认后再执行
步骤 1:要求 API Key
进行任何配置前,先向用户索要 trapi API Key。接受形式:
- 直接粘贴 Key 字符串
- 通过环境变量引用
如用户拒绝或无法提供,以明确信息终止流程:"trapi provider 配置需要 API Key,未提供无法继续。请获取 Key 后重新运行。"
步骤 2:配置 Provider
使用 gateway config.patch 将 trapi provider 添加到 models.providers。
{
"models": {
"providers": {
"trapi": {
"baseUrl": "https://lapi.transiglobal.com",
"apiKey": "<用户提供的API_KEY>",
"api": "anthropic-messages",
"models": [
{
"id": "GLM-5-Turbo",
"name": "GLM-5-Turbo (Transiglobal)",
"api": "anthropic-messages",
"reasoning": false,
"input": ["text"],
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
"contextWindow": 200000,
"maxTokens": 64000
},
{
"id": "GLM-5.1",
"name": "GLM-5.1 (Transiglobal)",
"api": "anthropic-messages",
"reasoning": false,
"input": ["text"],
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
"contextWindow": 200000,
"maxTokens": 64000
},
{
"id": "GLM-4.5-Air",
"name": "GLM-4.5-Air (Transiglobal)",
"api": "anthropic-messages",
"reasoning": false,
"input": ["text"],
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
"contextWindow": 200000,
"maxTokens": 64000
},
{
"id": "MiniMax-M2",
"name": "MiniMax-M2 (Transiglobal)",
"api": "anthropic-messages",
"reasoning": false,
"input": ["text"],
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
"contextWindow": 200000,
"maxTokens": 64000
},
{
"id": "MiniMax-M2.7",
"name": "MiniMax-M2.7 (Transiglobal)",
"api": "anthropic-messages",
"reasoning": false,
"input": ["text"],
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
"contextWindow": 150000,
"maxTokens": 16384
},
{
"id": "kimi-for-coding",
"name": "kimi-for-coding (Transiglobal)",
"api": "anthropic-messages",
"reasoning": false,
"input": ["text", "image"],
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
"contextWindow": 262144,
"maxTokens": 32768
},
{
"id": "GLM-5V-Turbo",
"name": "GLM-5V-Turbo (Transiglobal)",
"api": "anthropic-messages",
"reasoning": true,
"input": ["text", "image"],
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
"contextWindow": 200000,
"maxTokens": 64000
},
{
"id": "PaddleOCR-VL-1.5",
"name": "PaddleOCR-VL-1.5 (Transiglobal)",
"api": "anthropic-messages",
"reasoning": false,
"input": ["text", "image"],
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
"contextWindow": 131072,
"maxTokens": 8192
},
{
"id": "deepseek-v4-pro",
"name": "DeepSeek V4 Pro (Transiglobal)",
"api": "anthropic-messages",
"reasoning": false,
"input": ["text"],
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
"contextWindow": 1000000,
"maxTokens": 384000
},
{
"id": "deepseek-v4-flash",
"name": "DeepSeek V4 Flash (Transiglobal)",
"api": "anthropic-messages",
"reasoning": false,
"input": ["text"],
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
"contextWindow": 1000000,
"maxTokens": 384000
},
{
"id": "gpt-5.5",
"name": "GPT-5.5 (Transiglobal)",
"api": "openai-responses",
"reasoning": false,
"input": ["text"],
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
"contextWindow": 200000,
"maxTokens": 65536
},
{
"id": "mimo-v2.5-pro",
"name": "MiMo 2.5 Pro (Transiglobal)",
"api": "anthropic-messages",
"reasoning": true,
"input": ["text"],
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
"contextWindow": 200000,
"maxTokens": 64000
},
{
"id": "mimo-v2.5",
"name": "MiMo 2.5 (Transiglobal)",
"api": "anthropic-messages",
"reasoning": true,
"input": ["text", "image", "video", "audio"],
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
"contextWindow": 200000,
"maxTokens": 64000
},
{
"id": "claude-opus-4.7",
"name": "claude-opus-4.7 (Transiglobal)",
"api": "anthropic-messages",
"reasoning": true,
"input": ["text"],
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
"contextWindow": 300000,
"maxTokens": 64000
},
{
"id": "qwen3.7-max",
"name": "Qwen 3.7 Max (Transiglobal)",
"api": "anthropic-messages",
"reasoning": false,
"input": ["text"],
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
"contextWindow": 1000000,
"maxTokens": 100000
},
{
"id": "qwen3.6-plus",
"name": "Qwen 3.6 Plus (Transiglobal)",
"api": "anthropic-messages",
"reasoning": false,
"input": ["text", "image"],
"cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 },
"contextWindow": 1000000,
"maxTokens": 100000
}
]
}
}
}
}
步骤 3:配置模型别名
⚠️ 关键:别名只能放在 agents.defaults.models 中
绝对不要把别名放在以下位置(会导致配置无效):
- ❌
agents.defaults.model.aliases— 错误! - ❌
agents.modelAliases— 错误! - ✅
agents.defaults.models."provider/model"— 正确!
使用 gateway config.patch 添加别名到 agents.defaults.models:
{
"agents": {
"defaults": {
"models": {
"trapi/GLM-5-Turbo": { "alias": "glm5t" },
"trapi/GLM-5.1": { "alias": "glm51" },
"trapi/GLM-4.5-Air": { "alias": "glm45a" },
"trapi/MiniMax-M2": { "alias": "mxm2" },
"trapi/MiniMax-M2.7": { "alias": "mxm27" },
"trapi/kimi-for-coding": { "alias": "kimi" },
"trapi/GLM-5V-Turbo": { "alias": "glm5v" },
"trapi/PaddleOCR-VL-1.5": { "alias": "pocr" },
"trapi/deepseek-v4-pro": { "alias": "dsv4p" },
"trapi/deepseek-v4-flash": { "alias": "dsv4f" },
"trapi/gpt-5.5": { "alias": "gpt55" },
"trapi/mimo-v2.5-pro": { "alias": "mimo25p" },
"trapi/mimo-v2.5": { "alias": "mimo25" },
"trapi/claude-opus-4.7": { "alias": "opus47" },
"trapi/qwen3.7-max": { "alias": "qwn37" },
"trapi/qwen3.6-plus": { "alias": "qwn36" }
}
}
}
}
别名格式说明
- key 为完整模型引用
<provider>/<model>(如trapi/GLM-5-Turbo) - value 为
{ "alias": "短别名" } - 注意:设置
agents.defaults.models后它会成为 allowlist,只有列表中的模型可用
步骤 4:应用配置
使用 gateway config.patch 并附带 note 参数说明变更内容。Gateway 会自动热加载或重启。
重要:配置完成后用 openclaw gateway status 确认 Gateway 正常运行,无 Invalid input 错误。
步骤 5:逐个验证模型
配置生效后,使用 subagent 逐个验证模型:
sessions_spawn(
model: "trapi/<模型ID>",
task: "Reply with exactly: OK",
runtime: "subagent"
)
验证顺序:
trapi/GLM-5-Turbo(别名:glm5t)trapi/GLM-5.1(别名:glm51)trapi/GLM-4.5-Air(别名:glm45a)trapi/MiniMax-M2(别名:mxm2)trapi/MiniMax-M2.7(别名:mxm27)trapi/kimi-for-coding(别名:kimi)trapi/GLM-5V-Turbo(别名:glm5v)trapi/PaddleOCR-VL-1.5(别名:pocr)trapi/deepseek-v4-pro(别名:dsv4p)trapi/deepseek-v4-flash(别名:dsv4f)trapi/gpt-5.5(别名:gpt55)trapi/claude-opus-4.7(别名:opus47)trapi/qwen3.7-max(别名:qwn37)trapi/qwen3.6-plus(别名:qwn36)
验证标准
每个模型验证通过的条件:
- subagent 返回正常响应(非错误/超时)
- 响应包含文本输出
验证报告
所有模型验证完成后,输出汇总表:
| 模型 | 别名 | 状态 |
|---|---|---|
| GLM-5-Turbo | glm5t | ✅/❌ |
| GLM-5.1 | glm51 | ✅/❌ |
| GLM-4.5-Air | glm45a | ✅/❌ |
| MiniMax-M2 | mxm2 | ✅/❌ |
| MiniMax-M2.7 | mxm27 | ✅/❌ |
| kimi-for-coding | kimi | ✅/❌ |
| GLM-5V-Turbo | glm5v | ✅/❌ |
| PaddleOCR-VL-1.5 | pocr | ✅/❌ |
| deepseek-v4-pro | dsv4p | ✅/❌ |
| deepseek-v4-flash | dsv4f | ✅/❌ |
| gpt-5.5 | gpt55 | ✅/❌ |
| mimo-v2.5-pro | mimo25p | ✅/❌ |
| mimo-v2.5 | mimo25 | ✅/❌ |
| claude-opus-4.7 | opus47 | ✅/❌ |
| qwen3.7-max | qwn37 | ✅/❌ |
| qwen3.6-plus | qwn36 | ✅/❌ |
步骤 6:使用指引
配置完成并通过验证后,向用户展示快捷切换模型的使用方式:
/glm45a → 切换到 GLM-4.5-Air(轻量)
/glm5t → 切换到 GLM-5-Turbo(高性价比)
/glm51 → 切换到 GLM-5.1(旗舰)
/mxm2 → 切换到 MiniMax-M2
/mxm27 → 切换到 MiniMax-M2.7
/kimi → 切换到 kimi-for-coding(支持图片)
/dsv4p → 切换到 DeepSeek V4 Pro(1M上下文)
/dsv4f → 切换到 DeepSeek V4 Flash(1M上下文,快速)
/gpt55 → 切换到 GPT-5.5
/mimo25p → 切换到 MiMo 2.5 Pro
/mimo25 → 切换到 MiMo 2.5(全模态)
/glm5v → 切换到 GLM-5V-Turbo(支持图片)
/pocr → 切换到 PaddleOCR-VL-1.5(OCR识别)
/opus47 → 切换到 Claude Opus 4.7(最新旗舰)
/qwn37 → 切换到 Qwen 3.7 Max(1M上下文,纯文本)
/qwn36 → 切换到 Qwen 3.6 Plus(1M上下文,支持图片)
提示用户在对话中直接输入 /alias 即可快速切换模型。
添加新模型(trapi 已配置时)
当 trapi Provider 已存在,用户需要添加新模型时使用此流程。
用户需提供的信息
| 字段 | 是否必填 | 默认值 |
|---|---|---|
| 模型 ID(全称) | ✅ 必填 | — |
| contextWindow | 选填 | 200000(200K) |
| maxTokens | 选填 | 64000(64K) |
| input 类型 | 选填 | ["text"](可加 "image") |
别名生成规则
生成 ≤ 5 字符的别名,按以下优先级:
- 已知模式 — 从常见缩写推导:
GLM-→glm,MiniMax-→mxm,kimi-for-coding→kimi,mimo→mimo
- 去除分隔符 — 去掉
-、.、空格:GLM-5-Turbo→GLM5Turbo - 取前 5 字符:
GLM5T - 转小写:
glm5t - 冲突处理:如与已有别名冲突,追加数字后缀:
glm5t2
已有别名(不可重复)
| 模型 | 别名 |
|---|---|
| GLM-4.5-Air | glm45a |
| GLM-5-Turbo | glm5t |
| GLM-5.1 | glm51 |
| MiniMax-M2 | mxm2 |
| MiniMax-M2.7 | mxm27 |
| kimi-for-coding | kimi |
| deepseek-v4-pro | dsv4p |
| deepseek-v4-flash | dsv4f |
| gpt-5.5 | gpt55 |
| mimo-v2.5-pro | mimo25p |
| mimo-v2.5 | mimo25 |
| claude-opus-4.7 | opus47 |
| GLM-5V-Turbo | glm5v |
| PaddleOCR-VL-1.5 | pocr |
| qwen3.7-max | qwn37 |
| qwen3.6-plus | qwn36 |
支持图片输入的模型
以下模型支持图片输入(input 包含 "image"):
- kimi-for-coding(别名:kimi)
- GLM-5V-Turbo(别名:glm5v)
- PaddleOCR-VL-1.5(别名:pocr)
- qwen3.6-plus(别名:qwn36)
操作流程
- 向用户询问模型 ID(全称)
- 询问是否需要自定义 contextWindow、maxTokens 或 input 类型
- 按上述规则生成别名
- 向用户展示拟配置方案并确认
gateway config.patch添加模型到models.providers.trapi.modelsgateway config.patch添加别名到agents.defaults.models(格式:{"trapi/<模型ID>":{"alias":"<别名>"}})- subagent 验证:
sessions_spawn(model: "trapi/<模型ID>", task: "Reply with exactly: OK", runtime: "subagent") - 报告结果
示例:添加 "Qwen-3-Plus"
用户说:"给 trapi 加一个 Qwen-3-Plus"
- 模型 ID:
Qwen-3-Plus - 默认参数:contextWindow 200K,maxTokens 64K,input
["text"] - 别名:清理为
Qwen3Plus→qwen3(无冲突)→ 别名:qwen3 - Patch 模型到
trapi.models,别名到agents.defaults.models - 验证
参考文档
遇到问题时,读取 references/custom-provider-config.md 获取 OpenClaw 官方 Custom Provider 配置参考。
在线文档
- 模型与 Provider:https://docs.openclaw.ai/concepts/models
- Model Providers:https://docs.openclaw.ai/concepts/model-providers
故障排查
- 401/403:API Key 无效或过期 — 请用户核实
- 连接超时:检查到
lapi.transiglobal.com的网络连通性 - Model not found:模型 ID 可能已变更 — 联系传米科技确认
Invalid input错误:别名放错了位置!确认别名只在agents.defaults.models."provider/model"中,没有放到agents.defaults.model.aliases或agents.modelAliases- config.patch 冲突:trapi provider 已存在时 patch 会合并;别名冲突时警告用户
- 别名冲突:重新生成带数字后缀的别名并与用户确认