男女主角分别是的都市小说《KingFlow AI API中转站接入 OpenHands 教程》,由网络作家“佚名”所著,讲述一系列精彩纷呈的故事,本站纯净无弹窗,精彩内容欢迎阅读!小说详情介绍:KingFlow AI API中转站接入 OpenHands 教程 通过 OpenAI 兼容接口配置模型并完成代码任务联调 OpenHands 是面向软件开发任务的智能代理,可以读取代码、运行命令并修改项目。KingFlow AI 提供 OpenAI 兼容接口,可在 OpenHands 的高级模型设置中作为自定义端点使用。本文从接口验证开始,完成 Custo
《KingFlow AI API中转站接入 OpenHands 教程》精彩片段
KingFlow AI API中转站接入 OpenHands 教程
通过 OpenAI 兼容接口配置模型并完成代码任务联调
OpenHands 是面向软件开发任务的智能**,可以读取代码、运行命令并修改项目。KingFlow AI 提供 OpenAI 兼容接口,可在 OpenHands 的高级模型设置中作为自定义端点使用。本文从接口验证开始,完成 Custom Model、*ase **L 和 API Key 配置,再用一个低风险代码任务检查工具调用、文件修改与结果输出是否正常。
内容核验日期 2026-10-31

常用接入术语
这些名称在使用场景上有重叠,但协议和客户端配置仍需分别确认。本文使用 OpenAI 兼容方式接入 OpenHands。
| 名称 | 常见含义 | 使用提示 |
|---|
| Claude中转 | 通常指把 Anthropic 协议请求转发到可用 Claude 模型的接入方式 | 适合 Claude Code 或支持 Anthropic 协议的客户端 |
| Claude中转站 | 通常指提供密钥、额度和 Claude 路由管理的平台 | 关注模型权限、额度和密钥隔离 |
| API中转 | 泛指通过兼容接口转发不同模型请求 | 客户端只需替换端点和密钥 |
| API中转站 | 提供统一 API 接入、模型选择和用量管理的服务 | OpenHands 本文使用此类 OpenAI 兼容接入 |
接入架构
| 环节 | 职责 | 注意事项 |
|---|
| 代码仓库 | 提供任务上下文和待修改文件 | 首次联调使用测试仓库 |
| OpenHands | 分析任务并调用终端与编辑工具 | 执行权限应限制在工作区 |
| KingFlow AI | 验证密钥并把请求路由到目标模型 | *ase **L 填写到 /v1 |
| 目标模型 | 生成计划、工具调用和代码修改建议 | 模型 ID 以控制台为准 |
| 任务结果 | 返回解释、改动和验证信息 | 人工检查差异后再提交 |
接入优势
- OpenAI 兼容接口可直接填写到 OpenHands 的 Advanced 设置,不需要修改 OpenHands 源码。
- 一个 KingFlow 密钥可按权限调用已开通模型,便于在不同 LLM Profile 之间切换。
- 控制台可集中查看调用量,并为不同环境使用独立密钥和额度。
- OpenHands 会产生多轮模型请求,统一端点便于排查状态码、模型权限和余额问题。
开始前的准备
- 在 KingFlow AI 控制台创建以 sk- 开头的 API Key,并确认余额、套餐或模型分组可用。
- 复制目标模型的完整模型 ID。OpenHands 中需要在前面增加 openai/ 前缀。
- 准备已经能正常启动的 OpenHands 实例,并确认服务器可以访问 KingFlow API 域名。
- 准备一个可丢弃或已提交到 Git 的测试仓库,避免首次联调直接修改生产代码。
- 关闭仓库中的真实密钥和客户数据访问,先验证最小任务。
验证 KingFlow 基础接口
curl https://api.**nju**shen.com/v1/chat/completions \
-H "Authorization: *earer sk-你的密钥" \
-H "Content-Type: application/json" \
-d '{
"model": "<KingFlow控制台中的完整模型ID>",
"messages": [{"role": "user", "content": "只回复 OPENHANDS_READY"}],
"stream": false
}'
配置 OpenHands 模型
- 登录 OpenHands,打开 Settings,然后进入 LLM 页面。
- 开启 Advanced,以显示 Custom Model 和 *ase **L 字段。
- Custom Model 填写 openai/加完整模型 ID,例如 openai/控制台模型ID。
- *ase **L 填写 https://api.**nju**shen.com/v1,不要再追加 chat/completions。
- API Key 粘贴 KingFlow 密钥,然后点击 S**e Changes。
- 如果后端支持配置校验,OpenHands 会在保存时验证模型、端点和密钥。
- 新建会话以使用最新配置;旧会话需要重启后才会采用新的 LLM 设置。
| 字段 | 填写内容 | 说明 |
|---|
| LLM Provider | Advanced 自定义配置 | 通过 OpenAI 兼容**接入 |
| Custom Model | openai/完整模型ID | openai/ 是 LiteLLM 提供商前缀 |
| *ase **L | https://api.**nju**shen.com/v1 | 保留 /v1,不追加具体接口路径 |
| API Key | sk-你的密钥 | 只保存到受控的 OpenHands 配置 |
| Profile Name | KingFlow 编码模型 | 名称应能区分用途和环境 |
图二 OpenHands 接入与安全检查流程。AI 生成示意图。运行最小代码任务
请只在当前测试仓库中完成以下任务:
1. 新建文件 connection_check.py
2. 写一个函数 add(a, *),返回两个参数之和
3. 增加两个简单测试用例并运行
4. 不安装新依赖,不访问外部网络
5. 最后列出修改文件和测试结果
| 检查点 | 预期结果 | 验证方式 |
|---|
| 模型响应 | 会话正常开始并生成任务计划 | 无认证或模型不存在错误 |
| 文件工具 | 只创建 connection_check.py 和测试文件 | 检查 Git diff 与工作区范围 |
| 终端工具 | 测试命令成功执行 | 输出包含通过结果和退出码 |
| 最终消息 | 列出改动与验证结果 | 内容与实际文件一致 |
| 平台记录 | KingFlow 控制台出现调用记录 | 模型、密钥和用量符合预期 |
创建和切换 LLM Profile
- 在 Settings 的 LLM 页面保存当前配置,OpenHands 会创建可用的 LLM Profile。
- 为不同用途创建独立配置,例如规划模型、日常编码模型和复核模型。
- 在新会话中选择默认 Profile;支持的版本可在会话中通过模型选择器切换。
- 切换后先发送短测试消息,确认新模型可用,再继续长任务。
| 任务阶段 | 模型选择 | 用途 |
|---|
| 规划 | 较强模型 | 拆解复杂任务和确定修改范围 |
| 实现 | 成本适中的编码模型 | 完成常规编辑和测试 |
| 复核 | 较强模型 | 检查差异、边界条件与潜在回归 |
自托管环境变量示例
# 示例环境变量,请替换为自己的值
LLM_MODEL=openai/<KingFlow控制台中的完整模型ID>
LLM_API_KEY=sk-你的密钥
LLM_*ASE_**L=https://api.**nju**shen.com/v1
LLM_NUM_RETRIES=4
LLM_RETRY_MIN_WAIT=5
LLM_RETRY_MAX_WAIT=30
重试参数
| 变量 | 示例值 | 作用 |
|---|
| LLM_NUM_RETRIES | 4 | 临时错误的最大重试次数 |
| LLM_RETRY_MIN_WAIT | 5 | 首次重试前最短等待秒数 |
| LLM_RETRY_MAX_WAIT | 30 | 单次重试最长等待秒数 |
| LLM_RETRY_MULTIPLIER | 2 | 退避等待时间的增长倍数 |
密钥和执行安全
- KingFlow API Key 只用于模型调用,不写入仓库、镜像、提示词、截图或前端资源。
- 开发、测试和生产环境使用不同密钥,并为每把密钥设置独立额度和有效期。
- OpenHands 具有运行命令和修改文件的能力,应限制工作区、容器权限和网络访问。
- 首次任务使用测试仓库,完成后** Git diff,确认没有越界文件、隐藏配置或无关改动。
- 日志记录状态码、耗时和调用量即可,不记录完整密钥、敏感提示词或仓库机密。
- 发现异常调用后立即停用旧密钥,创建新密钥并更新 OpenHands 配置。
上线检查清单
常见故障排查
| 现象 | 常见原因 | 处理方法 |
|---|
| 保存配置失败 | *ase **L、密钥或模型格式错误 | 核对 /v1、sk- 密钥和 openai/ 前缀 |
| 返回 401 | 密钥错误、停用或未保存 | 重新创建密钥并保存新 Profile |
| 返回 404 | 模型 ID 不存在或当前分组不可用 | 从控制台复制完整模型 ID |
| 返回 429 | 额度不足或请求频率过高 | 检查余额和限额,等待后退避重试 |
| 返回 503 | 模型通道暂时不可用 | 稍后有限重试或切换可用模型 |
| 新配置未生效 | 会话仍使用旧 Profile | 重启旧会话或新建会话 |
| 工具调用格式错误 | 模型工具能力不足或不兼容 | 改用更适合编码**的模型 |
| 任务循环过久 | 指令范围不清或验证目标缺失 | 停止会话,缩小任务并写明验收条件 |
| 意外修改无关文件 | 工作区或任务边界过宽 | 撤销测试改动并限制目录和权限 |