编程代理
OpenCode 设置
OpenCode 支持任何 OpenAI 兼容 API 作为自定义提供商。在 opencode.json 中添加 nokeep,用免费密钥测试,然后让你的代理运行在百万 token 上下文、缓存输入便宜的模型上。
核对于 2026年10月29日
参数
- Base URL
https://nokeep.ai/v1- API 密钥
sk-nokeep-test to test, then your own sk-nokeep-… key- 模型
deepseek-v4.1-flash-uncensored- 上下文窗口
1000000- 最大输出 token
32768
先用免费测试密钥:它会对每个请求回复一句固定的话,且不调用任何工具,能证明 URL 和密钥正确,不花任何费用。然后从控制台粘贴你自己的密钥。积分起充 $5,无需订阅。
连接
- 在 OpenCode 中运行
/connect,滚动到 Other 并选择它。 - 将
nokeep作为提供商 ID 输入。 - 将
sk-nokeep-test粘贴为 API 密钥。OpenCode 会为该 ID 保存它。 - 把下方的提供商配置添加到项目中的
opencode.json,或添加到~/.config/opencode/opencode.json以用于所有项目。 - 运行
/models,选择 DeepSeek V4.1 Flash Uncensored。 - 发送任意消息。如果回复以“Connected to”开头,说明设置成功。
- 使用相同的 ID 再次运行
/connect,并粘贴你在控制台获取的自己的密钥。
{
"$schema": "https://opencode.ai/config.json",
"model": "nokeep/deepseek-v4.1-flash-uncensored",
"provider": {
"nokeep": {
"npm": "@ai-sdk/openai-compatible",
"name": "nokeep",
"options": {
"baseURL": "https://nokeep.ai/v1"
},
"models": {
"deepseek-v4.1-flash-uncensored": {
"name": "DeepSeek V4.1 Flash Uncensored",
"limit": {
"context": 1000000,
"output": 32768
}
},
"glm-5.3-flash-uncensored": {
"name": "GLM 5.3 Flash Uncensored",
"limit": {
"context": 128000,
"output": 32768
}
}
}
}
}
}/connect 中的提供商 ID 与 provider 下的键必须一致:两处都是 nokeep。
若要从环境变量读取密钥而不使用 /connect,请在 options 下添加 "apiKey": "{env:NOKEEP_API_KEY}"。
值得了解的设置
limit.context告诉 OpenCode 还剩多少空间,以便在对话溢出前进行压缩。自定义模型如果不设置,就没有上限。limit.output会作为每次回复的 token 上限发送。32,768 足以应对长篇编辑;DeepSeek 最多允许 131,072。- 顶层的
model把 DeepSeek 设为默认模型,格式为provider/model。 - 工具调用无需额外配置:OpenCode 以 OpenAI 格式发送其工具,DeepSeek 会返回调用。
选哪个模型
deepseek-v4.1-flash-uncensored | glm-5.3-flash-uncensored | |
|---|---|---|
| 上下文 | 1,000,000 token | 128,000 token |
| 最长回复 | 131,072 token | 32,768 token |
| 工具调用 | 是,支持所有 tool_choice | 是,tool_choice 支持 auto 或 none |
| 能读取截图 | 是,每次请求最多 10 张 | 否,仅文本 |
| 思考 | 默认关闭,除非要求开启 | 始终开启,且较为简短 |
| 每百万 token | $0.45 输入 · $0.011 缓存 · $1.75 输出 | $0.20 输入 · $0.04 缓存 · $0.65 输出 |
代理工作请使用 DeepSeek:整个代码仓库都能放进它的上下文,它以各种形式调用工具,而且代理每次调用都会重发的历史按每百万 $0.011 的缓存价格计费。对于不需要重发长历史的简短一次性任务,可以使用 GLM,它的输入和输出价格更低,更划算。
两个模型的拒绝回答都已从模型权重中移除,因此在敏感话题附近工作时(比如对自有系统进行安全测试,或开发审核工具),得到的是代码而不是拒绝。比较这些模型。
思考
DeepSeek 会立即作答,除非请求指定了 reasoning_effort,这适合代理快速的编辑-运行循环。对于规划或棘手的 bug,可以让它思考:它接受 none、low、high、max。其他应用的 minimal、medium 和 xhigh 会按最接近的一档运行;任何其他值都会被拒绝,返回 400 invalid_reasoning_effort。思考内容按输出计费。
在 OpenCode 中,添加一个会发送推理强度的变体,然后在任务需要思考时,用 variant_cycle 快捷键切换到它。把下面的内容合并到上面的提供商配置中。
{
"provider": {
"nokeep": {
"models": {
"deepseek-v4.1-flash-uncensored": {
"variants": {
"think": {
"reasoningEffort": "high"
}
}
}
}
}
}
}一次会话花多少钱
代理每次调用都会发送整个对话:指令、它读过的文件、此前的每一步。假设一次调用发送 60,000 token,其中 55,000 与上一次调用的开头相同,并输出 1,000 token。在 DeepSeek 上,这次调用约花费 $0.0046,200 次调用约 $0.92。如果没有缓存,同样的调用需要 $0.0288。
- 缓存是自动的,无需开启。约 1,000 token 或以上的开头,若在几分钟内重复,就按缓存价格计费。
- 每次调用会先预留其最高可能成本(提示词加最大输出),然后按实际用量结算。在 32,768 最大输出 token 时,预留中的输出部分约为 $0.0573。
- 控制台会显示每次调用的实际 token、缓存 token 和积分。代理自带的成本计数器可能不知道缓存价格,因此显示会偏高。
计费方式。
如果无法工作
| 代理显示 | 解决方法 |
|---|---|
| 401 | 密钥错误或已被吊销。重新粘贴,不要带空格或引号。 |
| 402 | 账户已用完已购买的积分。请在控制台从 $5 起充值,并在那里开启 自动充值,这样长任务不会半途停止:余额低于你所选的金额时,会用你保存的银行卡自动补充积分。 |
| 429 | 同一个密钥每分钟超过 120 次请求,或超过你为其设置的每日上限。同时运行多个子代理的代理最先遇到这个问题。等待 Retry-After 中的秒数,在控制台提高上限,或为每个代理分配独立的密钥。 |
400 invalid_reasoning_effort | 代理发送了模型不支持的推理强度。DeepSeek 接受 none、low、high、max;GLM 接受 low 或 high。 |
| 404 | URL 错误,或路径重复了。请使用 https://nokeep.ai/v1,不要带 /chat/completions,并对照 /v1/models 检查模型 ID。 |
| 503 | 模型繁忙。几秒后重试;不会收费。 |
| 固定测试回复 | 设置正确。换成你自己的密钥即可获得真实回复。 |
每个错误及其解决方法都列在错误说明中。
常见问题
我的代码会被保存吗?
不会。我们每次调用只保存一行计数:时间、密钥、模型、token、积分和状态。从不保存提示词、文件或回复。我们保存的内容。
为什么第二次调用比第一次便宜?
第二次调用的开头与第一次相同,因此这段开头按每百万 $0.011 的缓存价格读取,而不是 $0.45。代理的大部分输入在第一次调用后都会被缓存。
我能保留其他提供商吗?
可以。nokeep 只是 provider 下的又一个条目,/models 会将它与其他提供商并列列出。