返回博客

工具与集成指南

将 OpenHands 连接到 CheapTokens:模型、Base URL、密钥

在 OpenHands Settings > LLM(Advanced)中填写三个字段,即可让 agent 运行在 CheapTokens 模型上,并学会解读三种常见故障。

作者:CheapTokens Team发布于 3 分钟阅读

OpenHands 设置字段,包含 CheapTokens Base URL 和模型 id
本页内容
  1. 打开 Settings 之前
  2. 三个字段
  3. 先在 OpenHands 之外检查各部分
  4. 字段填错时是什么样
  5. 一次会话的成本
  6. 已经在用 OpenHands 搭配其他提供商?

在 Settings > LLM 中打开 Advanced 后填写三个字段,即可让 OpenHands 运行在 CheapTokens 模型上:Custom Model(openai/deepseek-ai/DeepSeek-V4-Flash-0731)、Base URL(https://api.cheaptokens.dev/v1)和 API Key。整个配置就这些。本页其余内容说明每个字段的含义,以及其中一个填错时会出现什么情况。

字段名称和模型字符串规则来自 OpenHands 文档中关于 OpenAI 兼容端点的页面(查阅于 2026 年 11 月 8 日;该页面没有日期或版本)。该日期最新的 OpenHands 版本是 v1.37.0(2026 年 11 月 6 日)。如果你所用版本中的标签略有不同,请按位置判断:模型、Base URL、密钥。

打开 Settings 之前#

手边准备好三样东西可以省去一次来回:密钥、模型 id 和 Settings 的访问权限。

清单

准备好配置了吗?

刚接触密钥和 Base URL?What base_url is and how to switch 几分钟就能讲清楚,list models with GET /v1/models 则展示如何自行查找 id。

三个字段#

打开 Settings > LLM,开启 Advanced。Base URL 字段位于 Advanced 开关下方。

The three values for OpenHands Settings > LLM (Advanced)
Diagram of the values, not a screenshot: what goes into each of the three fields. The key is a placeholder.

文档对模型规则的描述是:Custom Model 为 openai/ 后接模型名称;如果你通过带有自己前缀的代理,则为 openai/<proxy-prefix>/<model-name>。openai/ 之后的部分就是模型名称。对于 CheapTokens,id 是 deepseek-ai/DeepSeek-V4-Flash-0731,因此完整字符串是 openai/deepseek-ai/DeepSeek-V4-Flash-0731。

字段 值
Custom Model openai/deepseek-ai/DeepSeek-V4-Flash-0731
Base URL https://api.cheaptokens.dev/v1
API Key 你的 CheapTokens 密钥

为什么给 agent 选这个模型?DeepSeek-V4-Flash 有 380K 上下文窗口,每次回答最多 32,768 个输出 token,并且任何时段都是同一价格,因此长会话不会在高峰时段变贵。编码 agent 在每一步都会重新发送大量上下文,这正是该窗口的用途。

更喜欢 GLM?在同一个字段中使用 openai/zai-org/GLM-5.3-Flash(390K 上下文,最多 8,192 个输出 token),其他什么都不用改。同样的余额、同样的密钥、同样的 Base URL。

先在 OpenHands 之外检查各部分#

在归咎于 agent 之前,先用相同的 URL、密钥和 id 发送一个请求。如果这个请求成功,剩下的任何问题都在于你填写字段的方式。

bash
curl https://api.cheaptokens.dev/v1/chat/completions \
  -H "Authorization: Bearer $CHEAPTOKENS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"deepseek-ai/DeepSeek-V4-Flash-0731","messages":[{"role":"user","content":"Say ready"}],"max_tokens":20}'

注意缺少了什么:model 值中没有 openai/。该前缀是给 OpenHands 用的,不是给 API 用的。回复中会带有一个 usage 块,包含 prompt_tokens 和 completion_tokens——也就是你之后会在 agent 会话中看到累加的同样两个数字。

比较

模型字符串:一个前缀,两种结果

仅 id

deepseek-ai/DeepSeek-V4-Flash-0731——用于 curl 和 API 的形式。

带前缀

openai/deepseek-ai/DeepSeek-V4-Flash-0731——用于 Custom Model 字段的形式。

字段填错时是什么样#

三个字段中的任何一个都可能是原因:

Where each error points: key, Base URL, model string
Symptom to field: 401 points to the key, 404 to the Base URL or model string.
  • 密钥错误。 API 返回 401——密钥缺失、输入错误,或复制时带了尾随空格。
  • Base URL 错误。 请求发往了错误的位置,你会得到 404 或连接错误。地址必须以 /v1 结尾,且不包含额外路径。
  • 模型字符串错误。 要么缺少前缀,要么其后的 id 不是完整 id(API 只接受完整的 gateway_id,不接受像 deepseek-v4-flash-0731 这样的短 id)。

关于 401 与 404 的完整推理见 API 401 or 404: wrong key, base URL or model id。

自己试试试一试:密钥正确,URL 正确,agent 仍在第一步失败。你会打开哪个字段?显示答案

Custom Model 字段。检查它以 openai/ 开头,并且其后的 id 与上表中的拼写完全一致。密钥和 URL 是容易用 curl 验证的部分。

一次会话的成本#

agent 在每一步都会为整个上下文计费,而不是只为你那一行任务计费。假设 OpenHands 处理一个 bug 用了 40 步,每步发送约 30,000 个 token,写回 1,500 个。在 DeepSeek-V4-Flash 上一步是 $0.0006;四十步的结果见下方,与其他模型和 OpenRouter 并列。

模型 每次请求 40 次请求 OpenRouter,40 次请求
GLM-5.3-Flash $0.00066 $0.0264 $0.0452
DeepSeek-V4-Flash $0.0006 $0.024 $0.0924
MiniMax-M2.7 $0.0017 $0.069 $0.828

每次请求 30,000 个输入 token 和 1,500 个输出 token。每 100 万 token 的价格为当前价格,会随我们的资费一同变动;OpenRouter 列显示相同工作负载的参考价格。

总计,将输入和输出合并计算,对于此工作负载,DeepSeek-V4-Flash 比 OpenRouter 更便宜。这些假设由你自行调整:小修复可能只需 10 步,大重构则要 100 步。当前价格见定价页面,模型页面是cheap DeepSeek。

已经在用 OpenHands 搭配其他提供商?#

那么你只需替换三个值:Custom Model、Base URL、API Key。项目中的其他内容都不变,你也可以用同样的方式切回来。API 本身的分步连接说明见 CheapTokens docs;在其他工具中的类似设置见 connect Aider。