文档
Theia IDE
Theia IDE 提供了用于配置任意 OpenAI 兼容模型的提供商,其配置是在 settings.json 中以列表形式完成的。每个模型 id 对应一个条目,所有条目指向同一个基础 URL,并使用同一个密钥。
在 ai-features.openAiCustom.customOpenAiModels 中添加一条配置 — model、url 和 apiKey — 即可让 Theia Coder、Architect 和内联补全使用 Kunavo。
{
"ai-features.openAiCustom.customOpenAiModels": [
{
"model": "claude-sonnet-5",
"url": "https://api.kunavo.com/v1",
"id": "kunavo-sonnet-5",
"apiKey": "sk-kn-...",
"developerMessageSettings": "system"
},
{
"model": "claude-haiku-4-5",
"url": "https://api.kunavo.com/v1",
"id": "kunavo-haiku-4-5",
"apiKey": "sk-kn-...",
"developerMessageSettings": "system"
}
]
}url 需要保留 /v1。Theia 的文字没有明确规定格式——其 Readme 只说“model 和 url 是必填属性,用于指定要使用的端点和模型”。同一文档页面中为唯一一家非 OpenAI 供应商提供的实际示例明确了格式:"url": "https://api.mistral.ai/v1"。这是带后缀的端点根路径——因此此处应使用 https://api.kunavo.com/v1,而非不带路径的源站地址。如果请求返回 404,应首先检查该字段;下方的 curl 会告诉你端点实际响应的是这两种格式中的哪一种。curl,至于客户端的行为,则取决于你与 Theia。sk-kn- 开头),并充值 $10 起——调用费用从该余额中扣除,失败的调用不会收费。随后,控制台会打开 Theia IDE 设置页面。分步操作
- 在
/app/keys创建密钥并复制——它只会显示一次。 - 启用此功能:Theia 文档说明,前往 偏好设置 并启用 “AI-features => AI Enable”。完成之前,下方内容都不会显示。
- 打开 AI Configuration 视图——
Alt+A,或在左下角的 Manage(齿轮)菜单中点击 AI Configuration,该项位于 Settings 正下方。其类别包括 General、Providers & Models、Model Aliases、Agents、Prompts & Skills、Variables、Tools、Token Usage 和 MCP Servers。 - 添加上方条目。文档说明,需要点击设置部分中 OpenAI 兼容模型旁的链接——该偏好设置是一个结构化列表,Theia 指出,没有专用编辑器的结构化设置“会交由
settings.json处理”,你会进入该文件。每个模型 ID 对应一个对象;url和apiKey需重复填写。 - 将某项配置指向它。在 Agents 下,每个代理都有一个 Language Model 选择器;许多代理实际上使用模型别名,因此在 Model Aliases 下设置
default/code、default/universal、default/code-completion、default/summarize和default/fast,即可一次调整多个代理。 - 向 Theia Coder 发送一条聊天消息,然后提出一个涉及文件的请求。这个 IDE 中的代理依赖工具调用和工作区内容,因此首次运行时让它读取或编辑某项内容,比只打个招呼更能说明情况;同一视图中的 Token Usage 还会显示这一轮消耗了多少令牌。
已于 2026年9月21日 对照 Theia IDE 的 AI 功能页面中“OpenAI Compatible Models”一节 检查。第三方设置会发生变化;如果这里的字段名称不再与你看到的内容一致,应以该页面为准,而不是本页。
调试客户端前先验证
一个请求即可确定故障来自端点、密钥还是配置文件。如果返回 JSON,则相同的基础 URL 和密钥可以在 Theia IDE 中使用。
# Settles whether a failure is the endpoint, the key, or the client.
curl -sS https://api.kunavo.com/v1/models \
-H "Authorization: Bearer sk-kn-..."字段中应填写哪个模型 ID
每个文本模型都可通过模型 ID 访问——实时列表见 GET /v1/models,包含价格的目录见模型页面。费率单位为每 1M token 的美元,格式为输入 / 输出。
| 模型 ID | Kunavo 输入 / 输出 | 它在 Theia IDE 中的位置 |
|---|---|---|
claude-sonnet-5 | $1.40 / $7.00 | Theia Coder 和 default/code 别名——用于编辑文件的模型 |
claude-opus-5 | $3.50 / $17.50 | 计划模式下的 Architect;在这里,错误的计划代价最高 |
claude-haiku-4-5 | $0.70 / $3.50 | default/ |
gpt-5-6-sol | $2.00 / $12.00 | 来自另一模型系列的第二意见——只需再添加一项,URL 和密钥保持相同 |
Theia 对此提供商的说明
Theia 自己页面上的 LLM 提供商概览表会从三个维度评估各提供商。这是 Theia 对 Theia 的说法,依据上方日期从该表复制而来——这不是 Kunavo 的测试结果;本页写出的只是标题为“模型 ID 的要求”的那一列内容。
| Theia 表格中的条目 | 兼容 OpenAI | 模型 ID 需要满足什么条件 |
|---|---|---|
| 流式传输 | 是(状态:公开) | 无需额外设置。Readme 说明同一对象上有 enableStreaming,默认值为 true;如果某一轮卡住并且你想排查流式传输问题,可将其设为 false。 |
| 工具调用 | 是(状态:公开) | 模型 ID 必须支持工具。编辑文件、运行命令或驱动 MCP 服务器的代理都需要调用工具,因此不支持工具的 ID 只能用于普通聊天。 |
| 结构化输出 | 是(状态:公开) | 配置时无需额外设置,但同一端点下不同模型系列的 ID 在这一方面最可能有所差异。 |
Theia 在该表上方两段处还补充了一条说明,值得在此重申,因为它为本页内容提供了诚实的背景:“并非所有模型都能开箱即用,因为它们可能需要特定的自定义或优化”。
实际费用来自哪里
Theia IDE 是开源软件,可免费下载;其 AI 功能本身不收费。产生费用的是模型调用,由持有 apiKey 中密钥的一方计费。两个设置对账单的影响超过模型选择,而且文档中都提到了它们:
- 自动代码补全默认开启,文档称其会“在编码过程中持续向底层 LLM 发送请求”。这是一天会运行数千次的代理。将
default/code-completion固定为低价模型 ID,或在'AIFeatures'=>'CodeCompletion'中将代理切换为手动模式,并通过Ctrl+Alt+Space触发。 - 同一设置组中的 Max Context Lines 会限制每次补全请求所包含的周边文件内容。每次由按键触发的调用中,其中每一行都会按输入计费。
聊天代理则恰好相反:调用次数较少,上下文大得多,而且每一轮都会再次发送相同的工作区文件。这正是提示缓存的适用场景——参见 /docs/caching;也因此,上方模型表格的两部分是按代理的触发频率划分,而不是按它有多聪明划分。
连接失败时
- 404——检查
url。Kunavo 提供的是/v1/chat/completions,因此该字段应填写/v1根路径;只填源站地址或填写完整的.../chat/completions都不正确。 - 401 — 密钥问题。Theia 的 Readme 说明,
apiKey“将作为 Bearer Token 在授权请求中发送”,这正是sk-kn-密钥所需的格式。请注意文档记载的默认行为:如果完全没有apiKey,Theia 会发送no-key,因此字段缺失看起来会像是密钥被拒绝,而不是密钥缺失。(true表示“使用全局 OpenAI API 密钥”——此处不适用。) - 模型 ID 未出现在选择器中——该列表来自你自己的
customOpenAiModels条目,而不是端点,因此缺少某个 ID 就表示缺少相应对象。id字段会显示在界面中;如果省略该字段,就会改用模型名称。 - 第一条系统消息被拒绝或忽略——这是由
developerMessageSettings导致的。其默认值为developer,这是 OpenAI 风格的角色;Theia 为非 OpenAI 厂商提供的示例设置了system,因此上方配置块也采用了该值。user、mergeWithFollowingUserMessage和skip是文档列出的其他选项。 - 所有地方都完全没有响应——检查 Workspace Trust。Theia 将所有 AI 功能置于该功能的控制之下;工作区未受信任时,聊天输入和行内补全都会被禁用,并显示 AI Features are Restricted 消息。
常见问题
如何在 Theia IDE 中使用自定义的 OpenAI 兼容 API?
在 Preferences 中启用 AI-features => AI Enable,然后向 ai-features.openAiCustom.customOpenAiModels preference 添加一条配置。每条配置都是一个对象,字段依次为 model、url、id、apiKey 和 developerMessageSettings,这是 Theia 自己示例中的顺序;model 和 url 是必填项。该列表属于结构化设置,因此 IDE 会引导你前往 settings.json 编辑。之后,在 AI Configuration 视图的 Agents 下将模型分配给某个代理,或分配给某个模型别名。
Theia IDE 的 url 字段末尾需要加 /v1 吗?
对于 Kunavo 这类 OpenAI 兼容端点,需要。Theia 的文档没有用文字说明这一规则——其 Readme 只说 model 和 url 用于指定要使用的端点和模型——但同一页面上针对非 OpenAI 厂商的完整示例给出了带有该后缀的端点根路径:"url": "https://api.mistral.ai/v1"。因此请使用 https://api.kunavo.com/v1。缺少 /v1 或重复添加 /v1 会导致 404,而不是身份验证错误;你可以据此将其与密钥问题区分开来。
Theia IDE 能否在没有 Anthropic 账户的情况下使用 Claude 模型?
可以,有两种方式。Theia 内置了 Anthropic 提供商,可直接使用 Anthropic 密钥;也内置了 OpenAI Compatible 提供商,它会向你配置的任意 url 发送 OpenAI 格式的请求,并原样传递模型 ID。使用第二种方式时,ID 会在该端点上解析,而不是在 IDE 内部解析,因此你持有的是端点的凭据。Kunavo 在其 OpenAI 兼容接口上支持 Claude ID,这就是本页介绍的组合方式。
我该将哪个模型分配给哪个 Theia 代理?
按代理触发频率来分配,而不是按排名,因为这里没有人在这个 IDE 中对这些 ID 做过基准测试。Code Completion 会在你输入时持续运行,其上下文受 Max Context Lines 限制,因此适合使用低价 ID;Theia Coder 会编辑文件,需要支持工具调用;计划模式下的 Architect 是适合使用更强、更贵 ID 的场景,因为糟糕的计划会浪费整个会话。模型别名——default/code、default/code-completion、default/fast 等——可以让你一次调整多个代理。
Kunavo 是否用 Theia IDE 测试过其端点?
没有。2026 年 9 月 21 日核查的是 Theia 自己的文档:偏好设置 ID、字段名称和顺序,以及基础 URL 格式,均引自 theia-ide.org/docs/user_ai/ 和该页面链接的 ai-openai Readme。Kunavo 没有运行 Theia 会话、行内补全或工具往返调用,也没有就该客户端的行为作出任何声称。可以单独确定的一件事是端点和密钥是否可用;本页中的 curl 命令就能进行此项检查。