在 Kilo Code 中使用 OceanToken
Kilo Code 以 自定义提供商 的方式在 OceanToken 上运行,这个提供商使用 OpenAI Compatible API。VS Code 扩展和 kilo CLI 读取同一份配置,所以设置一次,两边都能用。以下步骤已于 2026-10-18 用 Kilo CLI 7.8.12 测试过:工具调用、流式输出、图像、推理和提示缓存。
开始之前
为 Kilo Code 创建一个 API Key,并给它设置 消费上限。智能体会发出大量请求,消费上限决定了这个 API Key 最多能花多少钱。如何把 API Key 保存在环境变量中并检查它,见开始之前。
在 VS Code 中设置
- 打开 Kilo Code 的设置,进入 Providers(提供商)。
- 找到 Custom provider(说明文字为「Add a custom provider by base URL」),点击 Connect。
- 填写对话框:
- Provider ID:
oceantoken - Display name:
OceanToken - Provider API:OpenAI Compatible。Claude 模型也用它。
- Base URL:
https://api.oceantoken.ai/v1 - API key:你的 OceanToken API Key
- Provider ID:
- 在 Models 下点击 Fetch models,搜索下表中的模型 ID,添加你需要的模型。列表包含你的 API Key 能用的所有模型,包括图像、视频和语音模型,所以只添加文本模型。
- 对你添加的每个模型,打开 Reasoning;如果它的 图像 列为「是」,再打开 Image。
- 保存,然后添加 token 上限和图片附件支持。
- 在 Kilo Code 的模型选择器中选一个 OceanToken 模型,开始一个简短的任务。
添加 token 上限
对话框不会保存上下文窗口或输出上限,而没有这两项,Kilo Code 永远不会压缩长对话。它也不会把模型标记为接受附件,所以你附加的图片不会被发送出去。打开配置文件(Edit provider,然后 Edit advanced settings in the JSON config file),用表格中的数值给每个模型加上 limit,并在 图像 列为「是」的模型上加上 "attachment": true:
"anthropic/claude-sonnet-5.5": {
"name": "Claude Sonnet 5.5",
"reasoning": true,
"attachment": true,
"modalities": { "input": ["text", "image"], "output": ["text"] },
"limit": { "context": 1000000, "output": 32000 }
}
output 保持 32,000:一轮编程对话很少需要更多,而较小的上限能限制单次回复的最高费用。
不用对话框设置,或为 CLI 设置
用 npm install -g @kilocode/cli 安装 CLI。把整个提供商写进配置文件:要对所有项目生效,写进 ~/.config/kilo/kilo.jsonc;只用于一个项目,写进该项目根目录下的 kilo.jsonc:
{
"provider": {
"oceantoken": {
"npm": "@ai-sdk/openai-compatible",
"name": "OceanToken",
"env": ["OCEANTOKEN_API_KEY"],
"options": { "baseURL": "https://api.oceantoken.ai/v1" },
"models": {
"anthropic/claude-sonnet-5.5": {
"name": "Claude Sonnet 5.5",
"reasoning": true,
"attachment": true,
"modalities": { "input": ["text", "image"], "output": ["text"] },
"limit": { "context": 1000000, "output": 32000 }
},
"openai/gpt-5.5": {
"name": "GPT-5.5",
"reasoning": true,
"attachment": true,
"modalities": { "input": ["text", "image"], "output": ["text"] },
"limit": { "context": 1050000, "output": 32000 }
},
"deepseek/deepseek-v4-pro": {
"name": "DeepSeek V4 Pro",
"reasoning": true,
"limit": { "context": 1048576, "output": 32000 }
}
}
}
},
"model": "oceantoken/anthropic/claude-sonnet-5.5"
}
API Key 从环境变量 OCEANTOKEN_API_KEY 读取,所以这个文件里不含任何机密信息。检查设置:
export OCEANTOKEN_API_KEY=sk-...
kilo run "Reply with the single word OK"
模型名称写作 oceantoken/<model id>,例如 kilo run -m oceantoken/openai/gpt-5.5 "..."。用 -f screenshot.png 附加图片。
推荐模型
这些模型都用 Kilo Code 的工具测试过。每个模型的价格见它在 oceantoken.ai 上的页面,从 价格 一列点进去。模型页列出了所有模型。
| 模型 ID | 上下文窗口 | 最大输出 | 图像 | 价格 |
|---|---|---|---|---|
anthropic/claude-sonnet-5.5 | 1,000,000 | 128,000 | 是 | 在官网查看 |
anthropic/claude-opus-5.5 | 1,000,000 | 128,000 | 是 | 在官网查看 |
anthropic/claude-haiku-4.5 | 200,000 | 64,000 | 是 | 在官网查看 |
openai/gpt-5.5 | 922,000 | 128,000 | 是 | 在官网查看 |
deepseek/deepseek-v4-pro | 1,048,576 | 393,216 | 否 | 在官网查看 |
deepseek/deepseek-v4.1-flash | 1,048,576 | 943,718 | 是 | 在官网查看 |
qwen/qwen3.8-flash | 983,616 | 131,072 | 是 | 在官网查看 |
z-ai/glm-5.3 | 1,048,576 | 943,718 | 否 | 在官网查看 |
提示缓存与推理
- 提示缓存无需任何设置。 Kilo Code 会给 Claude 的提示加上缓存标记,GPT、DeepSeek、Qwen 和 GLM 模型则会自动缓存。从任务的第二轮起,提示中重复的部分按 缓存输入 价格计费。
- 推理强度:打开了 Reasoning 的模型,会在 Kilo Code 的模型选择器中出现几个变体。在 CLI 中,加上
--variant high(或low、medium)。Kilo Code 会以reasoning_effort把它发送给模型。
每个请求的费用(包括缓存输入)都可以在控制台的日志中查看。
故障排查
| 你看到的 | 怎么处理 |
|---|---|
Invalid API key. Check the key, or create one in the OceanToken console. | API Key 有误、已被撤销,或带了多余的空格。重新输入一次,或检查运行 kilo 的 shell 中是否设置了 OCEANTOKEN_API_KEY。 |
Unknown model '…'. GET /v1/models lists the models your key can use. | 配置中的模型 ID 拼写有误。请完全按照模型页的写法填写,前面带上发布方。 |
刚附加图片就出现 This model does not accept image input. 或 The upstream model provider returned an error. | 这个模型只能读文本。为它关闭 Image,或选择 图像 列为「是」的模型。 |
| 模型说它看不到你附加的图片 | 配置文件中这个模型没有 "attachment": true。加上它。 |
Insufficient balance - please add credit to continue. | 充值。如果你还有余额,请调低这个模型的 output 上限:只有当你的余额足以支付这次回复可能产生的最高费用时,请求才会开始。 |
| 长会话一直不压缩,最后因长度超限而失败 | 这个模型没有 limit。添加 token 上限。 |
reasoning part 0 not found | 设置提供商时,Provider API 选了 Anthropic Messages。请改用 OpenAI Compatible。 |