KIE(api.kie.ai)的 chat 模型按各家厂商自己的 wire 协议对外提供。agent 的协议和模型的协议一致时,不需要适配层;不一致时,中间要放一个本地翻译代理,见下方「协议不一致时」一节。
一个 agent 一节,每节自成一体:怎么列出该 agent 能跑的模型、它要什么配置、它会怎么失败。目前覆盖了 Codex CLI、Claude Code 和 Grok Build;其他 agent 后续作为并列的章节加进来。协议不一致那一节是共用的,新 agent 不必再写一张配对表。
WARNING
⚠️ 使用 Agent 功能请选择最新版模型
Agent 功能请使用各系列的最新版模型。部分较早的模型目前仅支持对话调用,接入 Agent 可能会出现请求报错或结果异常,这类模型在 Market 的模型页上标有「仅支持对话调用」。具体可用的模型以各 Agent 的模型列表为准。
npx skills add https://kie.ai
装好之后,可以直接对 Agent 说,例如“把 Codex 配置成使用 KIE”,skill 会按对应 Agent 页面的步骤完成配置。也可以照下面各页手动配置。
一个 https://kie.ai/api-key 上创建的 KIE API key,导出为 KIE_API_KEY,以及装好你要配置的那个 agent。
列模型的片段需要 PATH 上有 curl 和 jq。多数系统不预装 jq:brew install jq、apt install jq 或 winget install jqlang.jq。
PowerShell 的 curl 是 Invoke-WebRequest 的别名,不接受这些参数。要像下面的 Windows 片段那样写 curl.exe。cmd.exe 下片段必须重写,不能直接粘贴。
以下内容归纳自各 Agent 页面,细节以对应页面为准。
| Agent | 协议 | 列模型 | 配置写在哪 | base URL | 凭据 |
|---|---|---|---|---|---|
| Claude Code | Anthropic Messages | GET https://api.kie.ai/anthropic/v1/models | 环境变量,或 ~/.claude/settings.json 的 env | ANTHROPIC_BASE_URL=https://api.kie.ai/anthropic | ANTHROPIC_AUTH_TOKEN 放原始 key |
| Codex CLI | OpenAI Responses | GET https://api.kie.ai/openai/v1/models | ~/.codex/config.toml 的 [model_providers.kie] | https://api.kie.ai/openai/v1 | env_key = "KIE_API_KEY" |
| Grok Build | Responses(api_backend = "responses") | GET https://api.kie.ai/xai/v1/models | ~/.grok/config.toml 的 [model.kie] | https://api.kie.ai/xai/v1 | env_key = "KIE_API_KEY" |
三个 Agent 共同的规则:
Authorization: Bearer 认证。 名字就叫 apikey 的请求头会被 401 拒掉。/v1/messages 或 /responses。本 skill 里每个 agent 说一种 wire 协议,KIE 的每份 listing 也按一种协议提供。两者一致时,按该 agent 那一节配置,流量打到 api.kie.ai。不一致时,需要一个本地翻译代理。
api.kie.ai。| 模型 listing | KIE 请求 | 协议 |
|---|---|---|
GET /openai/v1/models | POST /openai/v1/responses | Responses |
GET /anthropic/v1/models | POST /anthropic/v1/messages | Messages |
GET /xai/v1/models | POST /xai/v1/responses | Responses |
代理听的是 agent 会拼出来的那条路径,转到 该 listing 对应的 KIE 请求。两个方向都要翻译,包括 agent 实际会发的流式和 tool 调用。打到 KIE 的鉴权是 Authorization: Bearer $KIE_API_KEY。
以后新 agent 的 listing 不在这张表里时,加一行即可。这一节的规则不用改。
只有用户明确要求时才写。映射要诚实,不要发明平台行为。
claude --debug、Codex 日志、GROK_LOG_FILE)和 KIE 在模型路径上要的形状。凭训练数据拼出来的字段表通常是残的。model id 原样转发。 不要写死默认模型名,也不要把 sonnet / opus / claude-* 改写成 GPT slug,反过来也不要。GET /models,返回的是 agent 期望的列表形状,数据来自模型那一侧的 KIE listing。 把另一边的文档原样转过去形状是错的。listing 失败就是错误,不要编一条假模型。id / call_id / tool_use_id 在请求和下一轮的 tool result 里保持一致。不要丢掉 tools。KIE 若拒绝 tools,把那个错误传回去。监听地址是代理自己绑的。agent 的 base URL 仍按它那一节的规则写——Claude Code 会给 ANTHROPIC_BASE_URL 拼 /v1/messages,Codex 会给 base_url 拼 /responses,Grok Build 在 api_backend = "responses" 时也会给 base_url 拼 /responses——所以值里不要带上这段后缀。
把规则用到 Claude Code 跑 Responses 模型:
export ANTHROPIC_BASE_URL=http://127.0.0.1:<port>
export ANTHROPIC_AUTH_TOKEN=$KIE_API_KEY
export ANTHROPIC_MODEL=…
ANTHROPIC_MODEL 是 GET /openai/v1/models 里的 id,不是 Claude Code 的 sonnet / opus 别名。
把规则用到 Codex CLI 跑 Messages 模型:
model = "…"
model_provider = "kie"
[model_providers.kie]
name = "KIE"
base_url = "http://127.0.0.1:<port>/v1"
env_key = "KIE_API_KEY"
wire_api = "responses"
model 是 GET /anthropic/v1/models 里的 id。base_url 仍然不要带 /responses。
不要一边让 agent 的 base URL 还指着 api.kie.ai,一边发另一份 listing 里的 id;也不要把 agent 直接指到模型那一侧的 KIE 前缀而不经翻译。
本 skill 不包含、不生成、也不点名任何翻译代理。它只声明监听路径、KIE 路径、该读哪份 listing,以及 agent 里哪个配置项填代理地址。只有用户明确要求时才写代理代码。