在 Kilo Code 中接入 Synthetic开源模型 API 的密钥获取、配置与源码原理解析【免费下载链接】kilocodeKilo is the all-in-one agentic engineering platform. Build, ship, and iterate faster with the most popular open source coding agent.项目地址: https://gitcode.com/GitHub_Trending/ki/kilocode本文是面向 Kilo Code 用户的 Synthetic 接入指南围绕如何获取 Synthetic API Key、在 VSCode 与 CLI 两种方式下完成kilo.json配置、以及理解其底层 provider 配置机制展开。读完本文你将掌握从注册账号到在模型选择器中切换 Synthetic 开源模型的完整流程并能够从源码层面理解provider配置项是如何被 Kilo Code 的配置插件解析与应用的。Synthetic面向开源模型的安全托管服务Synthetic 是一项提供开源 AI 模型访问的服务其模型运行在位于美国与欧盟的安全基础设施之上。对于在 Kilo Code 中希望尝试开源模型的用户而言它具备几个关键特征托管开源模型Synthetic 提供多种面向不同使用场景优化的开源模型灵活的计费方式同时提供订阅制subscription-based与按用量计费usage-based / pay-as-you-go两种定价选项强隐私承诺Synthetic 不会使用你的数据训练模型并会在 14 天内自动删除 API 数据OpenAI 兼容Synthetic 的模型可以配合任何 OpenAI 兼容的工具与应用使用这意味着接入 Kilo Code 的成本很低。需要说明的是模型的具体列表与可用性会随服务方调整而发生变化接入前应以 Synthetic 官方文档与当前可用的模型清单为准本文不对此做静态列举。获取 API Key三步完成Synthetic 的密钥获取流程与大多数 API 服务一致只需三步注册 / 登录访问 Synthetic 官网创建一个账号或直接登录已有账号进入 API Keys 页面登录后在账号设置中找到 API Keys 页面路径通常为账号设置下的 API 管理区域复制密钥点击密钥旁的复制图标将其复制到剪贴板供后续配置使用。拿到密钥后就可以进入 Kilo Code 的配置环节了。在 Kilo Code 中配置 SyntheticKilo Code 支持所有 Synthetic 的 always on 常驻模型。配置方式有两种图形界面VSCode 插件与配置文件kilo.json二者最终写入的是同一份配置。方式一VSCode 图形界面配置打开Settings齿轮图标切换到Providers选项卡在提供商列表中添加Synthetic并填入你的 API Key。扩展程序会将配置持久化到kilo.json配置文件中。如果你需要更精细地控制也可以直接编辑该配置文件——配置文件的具体格式参见下方的 CLI 配置说明。方式二CLI 与 kilo.json 配置Kilo Code 支持两种密钥注入方式环境变量与配置文件。通过环境变量设置密钥export SYNTHETIC_API_KEYyour-api-key通过kilo.json配置文件设置{ provider: { synthetic: { env: [SYNTHETIC_API_KEY], }, }, }配置文件可以放在~/.config/kilo/kilo.json也可以放在当前项目根目录的./kilo.json后者优先级更高便于按项目隔离密钥来源。env字段是一个字符串数组声明该 provider 的密钥应当从哪些环境变量中读取。完成密钥注入后你可以在以下两种方式中任选其一使用 Synthetic 模型模型选择器在 Kilo Code 的模型选择器中直接挑选一个 Synthetic 模型设为默认模型使用完整的synthetic/model-id标识符将其设置为默认模型例如synthetic/your-model-idmodel-id替换为 Synthetic 实际提供的模型 ID。深入源码kilo.json 中 provider 配置是如何生效的仅仅配置一个env字段可能让人好奇Kilo Code 是怎么把这个配置变成一次真实鉴权与模型调用的从源码中可以找到清晰的答案。provider 配置的 Schema 定义在 packages/core/src/config/provider.ts 中Info类定义了kilo.json中每个 provider 节点可接受的字段export class Info extends Schema.ClassInfo(ConfigV2.Provider)({ name: Schema.String.pipe(Schema.optional), env: Schema.String.pipe(Schema.Array, Schema.optional), api: ProviderV2.Api.pipe(Schema.optional), request: Request.pipe(Schema.optional), models: Schema.Record(Schema.String, Model).pipe(Schema.optional), }) {}对应关系如下字段类型作用namestring覆盖 provider 的显示名称在 UI 中展示envstring[]声明该 provider 的 API 密钥从哪些环境变量读取apiobject覆盖 provider 的 API 协议定义requestobject自定义请求的headers与bodyRequest类定义于同一文件 L7-L10modelsRecordstring, Model以模型 ID 为键的模型定义表其中ModelL47-L63还支持family、name、api、capabilities、request、variants、cost、disabled、limit等更细粒度的覆盖项。也就是说Synthetic 文档中的最小配置只是冰山一角——kilo.json的 provider 节点是一个完整的可扩展配置模型Synthetic 这类内置 provider 采用了其中最简洁的env形式。env 字段如何驱动鉴权在 packages/core/src/config/plugin/provider.ts 中config-provider插件会将配置文件中的 provider 条目同步到运行时集成integration体系if (item.env ! undefined) { integrations.method.update({ integrationID, method: { type: env, names: [...item.env] }, }) }也就是说当你写下env: [SYNTHETIC_API_KEY]时Kilo Code 会将该 provider 的鉴权方式注册为环境变量读取运行时从SYNTHETIC_API_KEY这个环境变量中取出密钥并注入到请求中。这解释了为什么环境变量方式与配置文件方式最终效果一致——它们都归结为同一个env鉴权方法。provider 与模型如何合入运行时目录同一插件中packages/core/src/config/plugin/provider.ts 的catalog.transform会把配置逐项合入运行时模型目录catalog默认模型通过catalog.model.default.set(model.providerID, model.modelID)设置provider 级配置name、api、request.headers、request.body被合并模型级配置family、name、api、capabilities、request、variants、cost、disabled、limit被逐项更新。这也解释了为什么文档中推荐用完整的synthetic/model-id标识符来指定默认模型——catalog 中模型就是以providerID/modelID的组织形式存在的模型选择器与默认模型配置都依赖这一命名空间。使用建议与注意事项结合 Synthetic 的官方说明与 Kilo Code 的配置机制以下几点值得在实际使用中留意定价方式按需选择Synthetic 同时提供订阅制与按量计费两种模式如果只是偶尔使用按量计费更灵活高频使用场景则可以考虑订阅套餐隐私合规场景友好Synthetic 承诺不基于用户数据训练模型且 API 数据会在 14 天内自动删除对数据敏感的使用场景是比较合适的选择OpenAI 兼容生态复用由于 Synthetic 模型兼容 OpenAI API 标准你已有的 OpenAI 兼容工具与脚本以及在 Kilo Code 中积累的调用经验都可以直接复用模型清单以官方为准开源模型列表与可用性可能随时调整接入前请查阅 Synthetic 官方文档确认当前可用的模型及其能力边界默认模型格式如需将 Synthetic 模型设为默认务必使用synthetic/model-id的完整标识符这与 Kilo Code 内部providerID/modelID的模型目录组织方式保持一致参见 config-provider 插件 的 catalog 合并逻辑密钥管理推荐通过环境变量注入密钥避免把密钥明文写入会被提交到版本库的kilo.json如需多环境切换可利用env数组声明多个候选环境变量。对于希望进一步扩展配置例如为模型指定 token 上限、禁用某些模型或覆盖请求头的用户可以阅读 kilo.json provider Schema 与 config-provider 插件实现也可以在 AI Providers 文档目录 中查看其他 provider 的接入方式作为参考。小结本文完整覆盖了在 Kilo Code 中接入 Synthetic 的完整链路从注册账号、获取 API Key到通过 VSCode Providers 面板或kilo.json配置密钥与默认模型再到从源码层面理解env鉴权与 provider/model 目录合入机制。这套配置模式并非 Synthetic 独有——理解了provider.synthetic.env背后的 config-provider 插件 逻辑后你可以举一反三用同样的方式接入其他基于环境变量鉴权的 provider。【免费下载链接】kilocodeKilo is the all-in-one agentic engineering platform. Build, ship, and iterate faster with the most popular open source coding agent.项目地址: https://gitcode.com/GitHub_Trending/ki/kilocode创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考