跳到正文
全部文档

编程代理

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,无需订阅。

连接

  1. 在 OpenCode 中运行 /connect,滚动到 Other 并选择它。
  2. 将 nokeep 作为提供商 ID 输入。
  3. 将 sk-nokeep-test 粘贴为 API 密钥。OpenCode 会为该 ID 保存它。
  4. 把下方的提供商配置添加到项目中的 opencode.json,或添加到 ~/.config/opencode/opencode.json 以用于所有项目。
  5. 运行 /models,选择 DeepSeek V4.1 Flash Uncensored。
  6. 发送任意消息。如果回复以“Connected to”开头,说明设置成功。
  7. 使用相同的 ID 再次运行 /connect,并粘贴你在控制台获取的自己的密钥。
opencode.json
{
  "$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-uncensoredglm-5.3-flash-uncensored
上下文1,000,000 token128,000 token
最长回复131,072 token32,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 快捷键切换到它。把下面的内容合并到上面的提供商配置中。

opencode.json
{
  "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。
404URL 错误,或路径重复了。请使用 https://nokeep.ai/v1,不要带 /chat/completions,并对照 /v1/models 检查模型 ID。
503模型繁忙。几秒后重试;不会收费。
固定测试回复设置正确。换成你自己的密钥即可获得真实回复。

每个错误及其解决方法都列在错误说明中。

常见问题

我的代码会被保存吗?

不会。我们每次调用只保存一行计数:时间、密钥、模型、token、积分和状态。从不保存提示词、文件或回复。我们保存的内容。

为什么第二次调用比第一次便宜?

第二次调用的开头与第一次相同,因此这段开头按每百万 $0.011 的缓存价格读取,而不是 $0.45。代理的大部分输入在第一次调用后都会被缓存。

我能保留其他提供商吗?

可以。nokeep 只是 provider 下的又一个条目,/models 会将它与其他提供商并列列出。