难度:⭐⭐⭐☆☆(中等) | 时长:15-20 分钟 | 收获:掌握零成本调用 DeepSeek/Claude/ChatGPT 等主流 AI 模型的方法
目标读者
本文面向 1-3 年开发经验的技术人员,你不需要是大模型专家,只需要:
- 熟悉命令行基本操作
- 了解 Node.js 基础
- 想知道如何不花一分钱调用 AI 模型
核心依赖与环境
在开始之前,我们先准备好开发环境。你需要安装以下软件:
| 依赖 | 版本要求 | 说明 |
|---|---|---|
| Node.js | >= 22.12.0 | 项目运行基础 |
| pnpm | >= 9.0.0 | 包管理工具 |
| Chrome | 最新版 | 浏览器自动化 |
TIP
推荐使用 nvm(Node Version Manager)来管理 Node.js 版本,一条命令就能切换:
nvm install 22 && nvm use 22
操作系统支持:macOS、Linux、Windows (WSL2)。如果你用 Windows,直接装 WSL2 最省心,一条命令 wsl --install 就能搞定。
项目结构
克隆下来之后,你会发现项目结构非常清晰:
openclaw-zero-token/
├── src/
│ ├── providers/ # 各平台的认证模块和 API 客户端
│ │ ├── deepseek-web-auth.ts
│ │ ├── deepseek-web-client.ts
│ │ ├── claude-web-auth.ts
│ │ └── doubao-web-client.ts
│ ├── agents/ # 流式响应处理
│ ├── commands/ # 认证流程命令
│ └── browser/ # Chrome 自动化核心
├── ui/ # Web UI (Lit 3.x)
├── .openclaw-state/ # 本地状态(凭证存放处)
│ ├── openclaw.json # 配置文件
│ └── agents/main/agent/
│ └── auth.json # 敏感凭证
├── scripts/ # 辅助脚本
├── onboard.sh # 配置向导
├── server.sh # 服务管理脚本
└── start-chrome-debug.sh # Chrome 调试启动
手把手教程
接下来,我们一步步完成整个配置流程。
步骤 1:克隆项目并安装依赖
首先把项目拉到本地,然后装依赖:
# 克隆仓库
git clone https://github.com/linuxhsj/openclaw-zero-token.git
cd openclaw-zero-token
# 安装依赖(pnpm 会自动处理所有子依赖)
pnpm install
WARNING
如果你用的是 M 系列 Mac,需要确保 Node.js 是 ARM 版本,否则可能遇到编译问题。nvm ls 确认一下当前使用的架构。
步骤 2:编译项目
项目用 TypeScript 写的,需要先编译成 JavaScript 才能运行:
# 编译 TypeScript
pnpm build
编译完成后,你会看到 dist 目录被创建了。这里就是编译后的代码。
接下来构建 Web UI(可选但推荐,因为访问 http://127.0.0.1:3001 时需要):
pnpm ui:build
步骤 3:启动 Chrome 调试模式
这是最关键的一步——我们需要一个被远程调试的 Chrome 浏览器。项目的脚本会自动帮你搞定:
./start-chrome-debug.sh
运行之后,你会看到一个 Chrome 窗口弹出来。这个窗口是专门用来登录各大 AI 平台的,它的调试端口 9222 是打开的。
TIP
如果你是第一次运行,脚本可能会提示你创建用户数据目录(User Data Directory),直接确认就行。所有登录信息都会保存在这个目录里。
步骤 4:登录 AI 平台
在刚才弹出的 Chrome 浏览器里,打开你想要使用的 AI 平台网址:
- DeepSeek: https://chat.deepseek.com
- Claude Web: https://claude.ai
- ChatGPT: https://chat.openai.com
- Kimi: https://kimi.moonshot.cn
- 千问: https://chat.qwen.ai
- 豆包: https://www.doubao.com
用你的账号密码或扫码登录。每个平台都需要单独登录一次。
WARNING
登录顺序有讲究:先登录除 DeepSeek 之外的其他平台,最后再登录 DeepSeek。这是项目设计的小技巧,能让凭证捕获更稳定。
步骤 5:运行配置向导(onboard)
现在回到终端,运行配置向导来捕获浏览器中的登录凭证:
./onboard.sh
或者如果你更喜欢手动运行编译后的版本:
node openclaw.mjs onboard
配置向导会提示你选择认证提供商。这里我们以 DeepSeek 为例:
? Auth provider: DeepSeek (Browser Login)
? DeepSeek Auth Mode:
> Automated Login (Recommended) # 自动捕获凭证
Manual Paste # 手动粘贴凭证
选择「自动捕获」,然后等待几秒钟。向导会自动:
- 连接到 Chrome 的调试端口
- 访问 DeepSeek 页面
- 捕获你的登录凭证(Cookie、Bearer Token 等)
- 保存到
auth.json文件
如果你想配置多个平台,可以多次运行 ./onboard.sh,每次选择不同的平台。
步骤 6:启动 Gateway 服务
认证配置好之后,我们启动核心服务 Gateway:
./server.sh start
或者直接运行:
node openclaw.mjs gateway
服务启动后,Gateway 会在 3001 端口 监听请求。你可以打开浏览器访问 http://127.0.0.1:3001,看到 Web UI 界面。
TIP
日常使用时,管理 Gateway 服务的命令很简单:
./server.sh start # 启动
./server.sh stop # 停止
./server.sh restart # 重启
./server.sh status # 查看状态
步骤 7:API 调用实战
现在到了最激动人心的时刻——我们通过 API 来调用免费的 AI 模型!
# 调用 DeepSeek 模型
curl http://127.0.0.1:3001/v1/chat/completions \
-H "Authorization: Bearer YOUR_GATEWAY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-web/deepseek-chat",
"messages": [{"role": "user", "content": "你好,请用一句话介绍自己"}]
}'
WARNING
记得把 YOUR_GATEWAY_TOKEN 换成你实际的 Token。你可以在 .openclaw-state/openclaw.json 文件里找到它。
步骤 8:切换不同模型
在 Web UI 中,你可以用 /model 命令切换不同的 AI 模型:
# 切换到 Claude Web
/model claude-web
# 切换到豆包
/model doubao-web
# 或者指定具体的模型版本
/model claude-web/claude-3-5-sonnet-20241022
/model doubao-web/doubao-seed-2.0
查看所有可用模型:
/models
输出类似:
Model Input Ctx Local Auth Tags
doubao-web/doubao-seed-2.0 text 63k no no default,configured,alias:Doubao Browser
claude-web/claude-3-5-sonnet-20241022 text+image 195k no no configured,alias:Claude Web
deepseek-web/deepseek-chat text 64k no no configured
支持的模型一览
目前项目已经测试通过的平台和模型相当丰富:
| 平台 | 模型 | 状态 |
|---|---|---|
| DeepSeek | deepseek-chat, deepseek-reasoner | ✅ 已测试 |
| Claude Web | claude-3-5-sonnet, claude-3-opus, claude-3-haiku | ✅ 已测试 |
| ChatGPT Web | GPT-4, GPT-4 Turbo | ✅ 已测试 |
| Gemini Web | Gemini Pro, Gemini Ultra | ✅ 已测试 |
| Kimi | Moonshot v1 8K/32K/128K | ✅ 已测试 |
| 千问国际版 | Qwen 3.5 Plus, Qwen 3.5 Turbo | ✅ 已测试 |
| 千问国内版 | Qwen 3.5 Plus, Qwen 3.5 Turbo | ✅ 已测试 |
| 豆包 | doubao-seed-2.0, doubao-pro | ✅ 已测试 |
| GLM Web | glm-4-Plus, glm-4-Think | ✅ 已测试 |
| Grok Web | Grok 1, Grok 2 | ✅ 已测试 |
| Manus API | Manus 1.6, Manus 1.6 Lite | ✅ 已测试 |
常见问题排查
问题 1:Chrome 调试模式连不上
症状:运行 ./start-chrome-debug.sh 后,onboard 提示无法连接浏览器。
解决方案:
- 检查 Chrome 进程是否真的启动了:
ps aux | grep Chrome - 确认端口 9222 是否在监听:
lsof -i :9222 - 如果端口被占用,先杀掉占用进程:
kill -9 <PID>
问题 2:凭证捕获失败
症状:onboard 过程一直等待,但最后提示超时。
解决方案:
- 确保已经在 Chrome 中完成了登录
- 刷新一下目标 AI 平台的页面
- 重新运行
./onboard.sh,这次选择「Manual Paste」模式手动复制 Cookie
问题 3:API 调用返回 401 错误
症状:curl 请求返回 unauthorized。
解决方案:
- 检查 Token 是否正确:在
.openclaw-state/openclaw.json中找到gateway.auth.token - 确认 Gateway 服务是否在运行:
./server.sh status - 重启服务试试:
./server.sh restart
问题 4:会话过期
症状:API 调用突然失败,返回登录相关错误。
解决方案:
- 打开之前启动的 Chrome 调试窗口
- 重新登录对应的 AI 平台
- 再次运行
./onboard.sh重新捕获凭证
问题 5:模型切换不生效
症状:切换模型后,API 返回的还是之前的模型结果。
解决方案:
- 重启 Gateway 服务:
./server.sh restart - 检查模型名称是否写对(注意大小写和斜杠)
- 用
/models命令确认模型确实在列表中
问题 6:端口 3001 被占用
症状:启动 Gateway 时提示「Port 3001 already in use」。
解决方案:
- 找到占用端口的进程:
lsof -i :3001 - 杀掉它:
kill -9 <PID> - 或者修改配置文件换一个端口
进阶方向
搞定了基础用法之后,你可以探索这些更高级的功能:
1. 工具调用(Tool Calling)
目前所有支持的工具调用模型都支持执行本地命令、读写文件、浏览器自动化等操作。这意味着 AI 不仅能回答你,还能真的帮你做事——比如写代码、操作文件、甚至控制浏览器。
2. 多平台同时配置
你可以在一次 onboard 过程中配置多个平台,然后随时用 /model 命令切换。比如上午用 Claude 写代码,下午用 DeepSeek 做推理,晚上用 Kimi 读长文档。
3. 自定义 Provider
项目是开源的,你可以在 src/providers/ 目录下添加新的平台支持。只要按照现有模板实现认证和 API 客户端,就能接入任何有 Web 版的 AI 模型。
4. 安全加固
WARNING
给 AI 本地终端和文件权限是有风险的。建议:
- 使用独立的工作区目录,限制 AI 的文件访问范围
- 开启人工确认机制,对于危险操作(如删除文件、执行删除命令)需要手动确认
- 定期检查
.openclaw-state目录下的日志
工作原理浅析
你可能会好奇,这东西到底是怎么做到「免 Token」调用的?核心原理其实不复杂:
- 浏览器自动化:通过 Playwright 控制 Chrome,用 CDP(Chrome DevTools Protocol)协议连接
- 凭证捕获:监听网络请求,从 HTTP Header 中提取 Authorization 信息,从 Cookie 中获取会话 ID
- API 转发:用捕获到的凭证向目标平台的 Web API 发起请求,把响应转成 OpenAI 兼容的格式
这就是为什么你必须保持 Chrome 调试窗口运行——所有的请求都是从这个浏览器上下文里发出的。