尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
把 OpenHands 的模型 Provider 配到 TaoToken,cpolar 远程访问照样通
OpenHands 在本地跑起来后默认只监听 localhost:3000下班回家或者出差时就打不开那一屏熟悉的编程界面而它第一次启动时弹出的 Provider 选择窗口又默认把国外线上模型服务放在最前面对国内开发者的网络和支付方式都不太友好。前者适合交给 cpolar 做内网穿透后者可以换成 TaoToken 这个统一 API 兼容通道来兜底。我这次把 OpenHands 的模型 Provider 指到 TaoTokenhttps://taotoken.net/?utm_sourcetaotoken_aicg_blog_end在模型广场选一个支持 OpenAI 兼容调用的模型再配合 cpolar 把 3000 端口映射到公网。配置完成后我在外地用手机打开 cpolar 生成的地址进入 OpenHands 发了一条写 bash 脚本的请求模型正常返回内容Token 也正常被记录——两件事互不干扰远程访问一样通。1. OpenHands 部署好后先卡在 Provider 选择这一步1.1 docker 拉取 runtime 镜像再把 0.39 容器跑起来OpenHands 的部署本质上是两个 Docker 镜像一个是运行时沙箱一个是主应用。先拉取 runtime再启动 openhands 容器。版本号 0.39 是一个稳定版本如果你拿到更新的版本保持 docker pull 与 docker run 两个命令里的版本号一致即可。docker pull \ docker.all-hands.dev/all-hands-ai/runtime:0.39-nikolaik docker run -it --rm --pullalways \ -e SANDBOX_RUNTIME_CONTAINER_IMAGEdocker.all-hands.dev/all-hands-ai/runtime:0.39-nikolaik \ -e LOG_ALL_EVENTStrue \ -v /var/run/docker.sock:/var/run/docker.sock \ -v ~/.openhands-state:/.openhands-state \ -p 3000:3000 \ --add-host host.docker.internal:host-gateway \ --name openhands-app \ docker.all-hands.dev/all-hands-ai/openhands:0.39命令里值得注意的几个点-p 3000:3000把容器的 3000 端口映射到本机后面 cpolar 也是指向这个端口~/.openhands-state保存会话状态AI 生成的文件和对话历史都在里面不要随便删除--add-host让容器内部能通过host.docker.internal访问宿主机资源。执行完稍等几十秒浏览器访问localhost:3000OpenHands 界面就出来了。1.2 首次弹出的窗口Provider、模型、API Key第一次进入页面时OpenHands 会弹出一个配置窗口要求选择大模型提供商、具体模型并输入 API Key。真正用过一圈的人会发现推荐列表里排在前面的是国外线上服务注册需要海外手机号充值需要外币卡请求时网络也经常超时。不是工具不好而是「官方推荐」没有照顾到国内开发者的实际条件。这个窗口并不要求你立刻选定终身Provider 可以换模型也能随时改。问题在于如果你选择本地部署模型就要求电脑有足够显存和内存如果你选择兼容第三方 API 的方式就需要一个国内可以访问、支持 OpenAI 格式的地址。这个通道恰好满足这三点它提供 OpenAI 兼容接口Base URL 固定注册拿 Key 的流程也只需要在网页里点几下。2. 在 TaoToken 创建 Key再回 OpenHands 填对 Provider2.1 去控制台创建 API Key打开 TaoToken完成注册登录后进入控制台的 API Keys 页面创建一个新的 Key名字可以写成openhands-home方便自己辨认。创建后把 Key 复制下来粘贴到临时记事本里。注意在 OpenHands 的浏览器界面里配置时Key 直接填进去不需要写进 docker 命令也不会出现在 cpolar 的隧道配置里。为什么先强调这一点因为整条链路里存在两个不同的东西OpenHands 向模型发请求时用的是 TaoToken 的 Keycpolar 只是把你的 localhost:3000 反向代理出去它转发的是浏览器页面流量和模型调用没有任何关系。很多人在这一步搞混以为 cpolar 隧道里也要填 API Key其实不用。2.2 OpenHands 里选兼容 Provider开始填写配置回到 OpenHands 的 Provider 选择窗口。这里不要选推荐列表里默认勾选的那一项而是找支持自定义 Base URL 的 OpenAI 兼容类型。不同版本叫法略有差异可能是Custom、OpenAI-compatible或者LiteLLM本质是一样的把模型请求指向你指定的地址。参数填写如下配置项填写内容Provider 类型OpenAI 兼容 / Custom LLMBase URLhttps://taotoken.net/apiAPI KeyYOUR_API_KEY模型 ID以 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end 模型广场当前列表为准提示Base URL 末尾不要加/v1OpenAI 旧版格式会习惯性补上/v1/chat/completions但 TaoToken 的地址就是 https://taotoken.net/api填错后会出现连接 404 或接口路径不对。API Key 从步骤 2.1 创建模型 ID 不要靠猜去模型广场复制当时可用的模型标识。填完点击 Save配置窗口关闭回到 OpenHands 主页。此时 Provider 配置已经生效接下来就可以直接验证了。3. 用 hello.sh 验证 TaoToken 通道OpenHands 生成流程不变3.1 发第一条生成 bash 脚本的请求在 OpenHands 主页开启一个新对话输入编写一个 bash 脚本 hello.sh执行后输出 hello world。发送后界面会提示正在启动沙箱环境稍微等待一下。左侧是对话窗口右侧依次是 changes、vscode、terminal、browser 几个面板。此时 OpenHands 会开始生成 hello.sh并把文件写入到 vscode 对应的项目目录中。和直接用命令行请求不同这个过程是可视化、分步骤的模型先生成脚本然后尝试在沙箱里运行它再返回运行结果。3.2 报错不用管AI 会自己修最后 chmod 加权限第一次输出时很可能看到红色的报错信息。这是 OpenHands 的正常工作方式它写出代码、尝试执行、发现环境或语法问题、再自我修正。只要 Provider 配置正确模型调用没断这个过程就会持续推进。稍等片刻vscode 面板里出现hello.shOpenHands 会提示你在终端执行两条命令chmod x hello.sh ./hello.sh在 OpenHands 自带的 terminal 面板里跑一下hello world就打印出来了。这证明两件事OpenHands 能正常调用模型说明第 2 章配的 Base URL、Key、模型 ID 全部生效生成的代码能在沙箱里运行说明 docker runtime 没问题。继续让 OpenHands 修改脚本让它接受一个名字作为第一个参数默认值仍然是world。修改完成后执行./hello.sh gezi输出变为hello gezi。到这一步TaoToken 配 OpenHands 的完整链路已经验证通过。提示如果你在终端运行脚本时提示权限不足不要回到模型的配置里去调参数先执行chmod x hello.sh再试。权限问题是 Linux 文件系统级别的和模型调用无关。4. cpolar 隧道把 localhost:3000 暴露成公网地址4.1 安装 cpolar登录 localhost:9200 管理台这一章和模型配置没有关系但缺少它OpenHands 就只能停留在本机。去 cpolar 官网免费注册一个账号下载 Windows 版本macOS/Linux 也有一键安装包一路默认安装完成。安装好后浏览器打开localhost:9200用刚才注册的 cpolar 账号登录进入 web 管理界面。Windows 版安装时如果遇到 9200 端口起不来的情况检查一下系统防火墙是否拦截了 cpolar 的本地服务。cpolar 的用法可以这样理解它把本机的 3000 端口映射到一个公网地址访问公网地址就等于访问你电脑上的 localhost:3000。它负责的只是「页面通道」不碰 OpenHands 内部的模型调用。4.2 创建 openhands 隧道先用一个随机域名在 cpolar web UI 左侧找到「隧道管理」——「创建隧道」填写配置项填写内容隧道名称openhands协议http本地地址3000域名类型随机域名地区China Top点击创建后到「在线隧道列表」里能看到系统分配的公网地址。任意选择一个在手机或其他电脑的浏览器打开就能看到 OpenHands 的登录页面。此时你已经实现了「异地访问本地 OpenHands」但默认的随机地址会在 24 小时内变化适合临时演示。5. 固定二级子域名换掉 24 小时失效的随机地址5.1 在 cpolar 预留一个二级子域名要让地址长期稳定需要改成固定二级子域名。在 cpolar 左侧菜单找到「预留」选择「保留二级子域名」地区保持 China Top子域名名称填写openhands备注随意点击保留。保留成功后页面会给出一个类似openhands.xxxxx.cpolar.top的地址复制备用。这里说明一下为什么必须走「预留」而不是直接在隧道里填子域名随机域名是临时分配的公网路径cpolar 服务端会在 24 小时后更换对应的公网映射所以你在异地保存的书签会失效二级子域名相当于在服务端把你的隧道 ID 绑定到固定域名上cpolar 再为这个域名续期和解析你只需要关注本地隧道是否在线。另外固定二级子域名需要 cpolar 套餐升级到基础版或以上。具体每个套餐包含的资源、带宽不同以 cpolar 官网当时的列表为准。如果只是短期测试随机域名已经够用如果打算长期把 OpenHands 当远程开发入口固定地址更省心。5.2 把保留的二级子域名更新到 openhands 隧道回到「隧道管理」——「隧道列表」找到openhands这条隧道点击右侧的「编辑」。把「域名类型」从随机域名改成「二级子域名」Sub Domain 一栏填入上一步保留的子域名名称地区保持 China Top点击更新。更新完成后回到「在线隧道列表」原来的随机地址已经替换成固定的二级子域名地址。此时再打开一次该地址如果能看到 OpenHands 页面就说明域名解析和隧道转发都已经生效。6. 异地打开公网地址再核对一次 TaoToken 用量6.1 在另一台设备验证发请求返回成功配置完成后不要急着关电脑。拿起手机切换到 4G/5G 网络不要连同一个 Wi-Fi在浏览器输入 cpolar 固定地址。页面加载后进入 OpenHands发一条新请求例如让它写一个统计日志文件行数的 bash 命令。如果模型正常返回脚本说明三个条件同时满足OpenHands 容器还在运行cpolar 隧道没有断模型通道配置有效。这三者互不依赖但也缺一不可cpolar 断了页面打不开模型通道断了页面能开但模型不回复。6.2 排障对照Provider 连不上时的三个检查点如果异地访问时页面能打开、但 OpenHands 回复报错优先排查下面三项。第一Base URL 是否写成了官网地址或者多加了/v1。工具里只能填 https://taotoken.net/api官网 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end 是注册、创建 Key、看模型广场和用量用的不要把两者混在一起。第二API Key 是否粘贴完整。复制时容易带回车或多余空格建议回到 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end 的 API Keys 页面重新复制一次再粘回 OpenHands 的 Provider 表单。第三模型 ID 是否对得上。模型广场展示的是当前可用的模型标识不同时期可能有增减以页面上看到的为准不要凭记忆填一个不存在的编号。这三项排查完绝大多数 Provider 报错都能解决。真正的网络链路问题会表现在 cpolar 公网地址无法打开而不是模型回复失败——这两个方向要分清楚才能快速定位。验证完成后你可以在 模型对话 里用同一把 Key 再发一条消息对比一下 OpenHands 里的返回是否正常如果你接下来打算把 OpenHands 作为日常编程入口可以考虑先开一个 Coding Plan 覆盖长期用量Key 不够用或需要细分权限时随时到 控制台 API Keys 新建。每一次模型调用都会在控制台的用量记录里留下对应 Token 消耗打开 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end 即可核对。
RELATED

相关推荐

AI识虫比赛实战:从zip解压到PyTorch ResNet18提交全流程

AI识虫比赛实战:从zip解压到PyTorch ResNet18提交全流程

简介:面向深度学习竞赛与AI识虫场景整理的数据集资源,适用于图像分类、目标检测等模型的训练与验证,尤其适合备战目标检测赛题、开展昆虫识别方向实验的开发者。压缩包共包含4121个文件,主体为2183张JPEG昆虫图像与1938个XML标注文…

📅 2026/9/16 2:37:03
实时行情系统设计指南:协议选型、多源校准与高可用架构

实时行情系统设计指南:协议选型、多源校准与高可用架构

做实时行情系统,尤其是给交易、风控、量化策略提供数据支撑的那种,有个很扎心的现实:行情这玩意儿,不像普通接口那样“能通就行”。它对延迟、完整性、可用性的要求,几乎可以按军工级来理解。早几年我接手过一个行情网…

📅 2026/9/16 2:32:03
手机如何给服务器提供外网?USB共享+内网穿透实战指南

手机如何给服务器提供外网?USB共享+内网穿透实战指南

手机给服务器提供外网?听起来像是个反常识的操作,但这几个月我在外面做项目,这一招救了我好几次。客户现场没有固定宽带,临时搭建的录播服务器和Web服务又必须要被外网访问,最后全靠一台旧手机把整个服务器拽上了网。这…

📅 2026/9/16 2:32:03
MORE NEWS

更多资讯

📰

AI集群中Packet Spraying的原理与硬件实现

1. 一条TCP流,为什么在AI集群里要被“剁成饺子馅”?你有没有试过把一整条TCP流——比如一个大模型训练任务里连续发出的128MB梯度更新包——直接塞进交换机?我去年在某头部智算中心做网络调优时就干过这事:用标准Linux TCP栈发流&…

📰

ROS多无人机仿真:命名空间、TF前缀与气流耦合的系统级重构

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

技术人如何通过写博客从极客成为行业意见领袖:路径、方法与避坑

先把话说在前面:这篇文章不是什么成功学,也不是那种“三个月从零做到十万粉”的速成教程。我见过太多技术人,代码写得漂亮、方案讲得清楚,但一提到写博客、做分享,就觉得那是另一个世界的事。老蒋博客从最开始一个没人…

📰

自建儿童影音平台:NAS+Docker打造纯净可控的本地化播放系统

1. 为什么说“自建儿童影音平台”不是折腾,而是刚需最近三个月,我帮身边7个朋友搭了类似的系统,从深圳的程序员爸爸、杭州的幼儿园老师,到成都的全职妈妈,他们问得最多的一句话是:“真有必要自己搞NAS&…

📰

SSH远程开发全攻略:VSCode、Cursor、TRAE连接与X11图形转发实战

先聊个背景。我手里的开发机常年放在实验室机房的角落,配置不算顶但跑编译、跑深度学习训练绰绰有余,而我日常的工位却只有一台轻薄本。以前搞远程开发,我都是老老实实SSH登录上去,再靠tmux加vim硬扛,代码写起来效率低…

📰

把 LiteLLM Router 的模型 Key 换成 TaoToken 后,GPT、Claude、Gemini 之间的路由、限流和降级照常跑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬