在 Win10 闲置笔记本 WSL2 Ubuntu 24.04 上完成 OpenClaw 全量部署解决了 4 个 WSL 环境特有的致命问题环境变量死锁、systemd 版本隔离、Provider 注册表配置、OAuth 回调穿透最终实现飞书Telegram 双通道、DeepSeekGemini 双模型的 24/7 AI 同事全程约 2 小时不含踩坑时间为什么用闲置 Windows 笔记本而不是 Mac Mini 或云服务器我看了一圈AI 同事的部署方案主流就三种Mac Mini、云服务器、闲置电脑。把关键指标摆出来方案硬件成本月运行成本环境你可能已经有了吗Mac Mini M4XXXX 元电费 ≈ 3 元macOS 原生大概率没有得买云服务器 4C8G038~80 元/月Linux 原生不适用持续付费闲置 Win 笔记本0电费 ≈ 5 元WindowsWSL2抽屉里大概率有一台第一核心问题是你已经有了。大多数开发者家里都有一台闲置笔记本——换了新电脑后老的扔抽屉里吃灰。它的硬件成本对你来说是零因为钱已经花过了。Mac Mini 的 钱 是一笔新支出而云服务器每月 38~80 元是持续支出。功耗差距算下来每月也就几块钱电费的事。第二Windows中的WSL2 原生支持 Linux。OpenClaw 的 Gateway 跑在 Node.js systemd 上本质上需要一个 Linux 环境。WSL2 给你的不是模拟器是一个跑在 Hyper-V 上的真实 Linux 内核而且你不需要学习linux就像操作Windows上的一个命令行窗口一样简单。我实测 Ubuntu 24.04 systemd 完全能撑住 24/7 常驻。第三本地数据不经过任何第三方。云服务器的数据存在别人的机房里你的 API Key、聊天记录、知识库全在云端。自己的笔记本上这些东西不出家门飞书用长连接不需要公网域名安全感完全不一样。环境搭建WSL2 systemd两个命令但有一个隐藏陷阱装 WSL2 本身没什么好说的PowerShell 管理员运行wsl --install -d Ubuntu-24.04重启电脑设置 Ubuntu 用户名密码结束。隐藏陷阱systemd 默认是关的OpenClaw 的 Gateway 需要 systemd 做进程托管。但 WSL2 默认不启动 systemd——这意味着systemctl命令全部报错Gateway 根本起不来。修复只需要两步但第二步很多人会忘# 在 WSL 内部 sudo bash -c cat /etc/wsl.conf EOF [boot] systemdtrue EOF然后必须回到 Windows PowerShell 执行wsl --shutdown重新打开 WSL 终端systemctl才能用。只关终端窗口是不够的必须wsl --shutdown彻底关掉虚拟机再重新进入。防爆内存给 WSL2 上个紧箍咒WSL2 默认会吃掉宿主机 50%~80% 的内存。闲置笔记本跑 24/7不限制的话迟早卡死宿主机。在 Windows 侧创建C:\Users\你的用户名\.wslconfig[wsl2] memory6GB processors6 swap0再wsl --shutdown一次生效。这个文件只需要创建一次以后每次启动 WSL 自动读取。安装 OpenClaw 启动守护进程进入 WSL Ubuntu 终端sudo apt update sudo apt upgrade -y curl -fsSL https://openclaw.ai/install.sh | bash openclaw --version # 确认版本号 openclaw doctor # 环境体检然后跑 Onboarding 向导openclaw onboard --install-daemon --no-interactive-defaults向导里先选 DeepSeek 做默认模型Daemon 选启用 systemd 服务。通道先随便选一个后面单独配。systemctl --user enable --now openclaw-gateway.service openclaw status --deep # 这条命令后面会救你的命写到这可能有人想问为什么我用 DeepSeek其实单纯是因为我 DeepSeek API Key 早都充过值了想利用一下。如果你本身有其他更好的多模态大模型 API 可选比如支持视觉的完全可以用别的。踩坑实录4 个让人想砸键盘的致命问题这才是这篇文章的核心价值。网上那些 Mac Mini 教程之所以看起来简单是因为 macOS 环境天然规避了这些坑。在 WSL 上你躲不掉但我已经替你趟过了。每个坑我都给出原始报错 → 根因分析 → 解法直接抄就行。坑 1环境变量死锁 —— CLI 被自己的配置文件锁死按文档在openclaw.json里写了模板变量botToken: ${TELEGRAM_BOT_TOKEN}然后所有openclaw命令都废了MissingEnvVarError: Missing env var TELEGRAM_BOT_TOKEN referenced at config path: channels.telegram.accounts.default.botToken这个报错看起来像是你还没填 Token但真正的问题比这狠得多OpenClaw CLI 在执行任何命令之前——包括openclaw doctor、openclaw config set——都会全量解析openclaw.json。环境变量不存在CLI 直接拒绝启动。你想用 CLI 设置环境变量CLI 都启动不了。经典的死锁。解法别跟 CLI 较劲直接手动编辑~/.openclaw/openclaw.json把所有${...}替换成空字符串或者直接填上真实值。等 CLI 复活后再用命令行注入openclaw config set env.DEEPSEEK_API_KEY sk-你的key坑 2升级后幽灵进程 —— 前台新版本后台旧版本执行了npm i -g openclawlatest --forceopenclaw --version确认2026.3.1。配置了 DeepSeek信心满满发条消息Telegram 秒回Agent failed before reply: Unknown model: deepseek/deepseek-chat我在这个报错上卡了将近两个小时。模型名对了Provider 也注册了openclaw doctor也没报错。最后是openclaw status --deep救了我。这条命令的输出暴露了致命矛盾CLI 版本2026.3.1Gateway 版本2026.2.26前台升级了后台 systemd 服务还指着旧版本的路径。旧版物理源码里根本没有 DeepSeek 的驱动——当然报 Unknown model。解法——换芯手术# 1. 停掉旧进程 systemctl --user stop openclaw-gateway.service pkill -9 node # 2. 找到新版本的真实路径 which openclaw # 假设返回 /home/hdev/.npm-global/bin/openclaw REAL_INDEX/home/hdev/.npm-global/lib/node_modules/openclaw/dist/index.js # 3. 把 systemd 服务指向新版本 sed -i s|ExecStart.*|ExecStart/usr/bin/node $REAL_INDEX gateway --port 18789| \ ~/.config/systemd/user/openclaw-gateway.service # 4. 重载并启动 systemctl --user daemon-reload systemctl --user start openclaw-gateway.service做完再跑一次openclaw status --deep确认两边版本一致。坑 3模型注册表的名分问题我还试过一个骚操作把 model ID 写成openai/gpt-4o但baseUrl指向 DeepSeek——想借壳上市。不行。2026.3.1 会原封不动地向远端发送{model: gpt-4o}DeepSeek 收到一个不属于自己的模型名直接拒绝。新版 OpenClaw 必须在 JSON 顶层显式建立providers注册表给每个模型上正式户口models: { providers: { deepseek: { baseUrl: https://api.deepseek.com/v1, apiKey: ${DEEPSEEK_API_KEY}, api: openai-completions, models: [ { id: deepseek-chat, name: DeepSeek V3 }, { id: deepseek-reasoner, name: DeepSeek R1 } ] } } }这里有两个细节卡了我很久baseUrl必须带/v1写成https://api.deepseek.com直接 404api字段必须写openai-completions不能只写openai——少写半截就是另一个协议坑 4WSL 里的 OAuth 回调黑洞这个坑只有 WSL 环境才会遇到。Google Gemini 的 OAuth 登录需要浏览器回调到127.0.0.1。但 WSL 里没有浏览器Windows 侧浏览器的回调又穿不透 WSL 的网络隔离——登录流程无限挂起没有任何报错就是卡住不动。解法——暴力克隆凭证如果你之前在 WSL 里用gemini命令登录过 Google 账号即google/gemini-cli那 OAuth Token 已经存在本地了直接提取给 OpenClaw 用第一步从~/.gemini/oauth_creds.json提取refresh_token。第二步写入 OpenClaw 能读懂的格式。创建~/.openclaw/credentials/auth-profiles.json{ version: 1, profiles: { google-gemini-cli:yourgmail.com: { provider: google-gemini-cli, type: oauth, email: yourgmail.com, tokens: { access_token: ..., refresh_token: 1//0gtqXi..., token_type: Bearer } } }, order: { google-gemini-cli: [google-gemini-cli:yourgmail.com], google: [google-gemini-cli:yourgmail.com] } }第三步也是最容易漏的order映射表。没有它系统依然报No API key found。这个字段的作用是把google这个别名强制解析到你刚定义的 profile 上。补充三大 Agent CLI接入难度差距很大说完四个坑顺便对比一下 OpenClaw 支持的三大 Agent CLICodex、Gemini CLI、Claude Code各自的接入体感。Codex耗不费力也没什么顾虑。ChatGPT 用户直接通过openclaw onboard --auth-choice openai-codex走官方 OAuth一步到位认证自动写入auth-profiles.json主脑切换即可用。Gemini CLIOpenClaw 2026.3.1 已内置插件式接入加上坑 4 里的凭证克隆方案总体也算顺滑。最大阻力就是 WSL 无头环境那个 OAuth 黑洞但克隆 Token 完全解决了。Claude Code要谨慎。它的认证深度绑定 Anthropic 生态与 OpenClaw ACP 协议的整合目前还不够完整贸然接入容易出现权限混用或 Token 冲突。除非你明确知道自己在做什么否则建议等官方支持成熟后再动。接通飞书 Telegram 双通道OpenClaw 支持多种 IM 通道同时接入。我的配置是飞书为主、Telegram 为辅。飞书国内首选权限配置是重点飞书是我推荐的首选通道。原因很实际国内网络直连、注册零门槛、长连接模式不需要公网域名而且飞书在国内职场的普及率摆在那里。在 飞书开放平台 创建企业自建应用后权限配置必须到位这里很多人会踩坑——权限少勾一个消息就收不到或发不出去但不会有明确报错。必须开启的 3 个权限缺一个都不能正常收发消息权限标识干什么用的im:message:send_as_bot让机器人能发消息——没有这个你的 AI 同事是个哑巴im:message.p2p_msg:readonly读私聊消息——没有这个私聊给机器人它收不到im:message.group_at_msg:readonly读群里 机器人的消息——没有这个群里 它没反应建议加上的 2 个权限不加也能跑但加了更稳权限标识干什么用的im:chat.members:bot_access读群成员和会话信息很多 bot 场景会用到im:resource发图片、文件、富媒体时需要不发可以先不加事件回调选长连接模式——这是关键选择。长连接不需要公网域名和 HTTPS 证书WSL 内网环境完美适配。如果你选了HTTP 推送模式那就得自己搞定公网回调地址纯属给自己找麻烦。添加事件im.message.receive_v1创建版本提审发布。然后回到 WSL 配置 OpenClawopenclaw channels add feishu # 输入 App ID 和 App Secret openclaw gateway restart openclaw logs --follow # 看到 feishu connected 就成功了Telegram可选适合有代理条件的用户Telegram 在技术圈很流行OpenClaw 社区的教程也基本都以 Telegram 为例。但坦白说对国内用户来说它不是最优选。两个现实问题注册门槛Telegram 需要用海外手机号或通过代理注册BotFather 创建 Bot 本身也需要在 Telegram 里操作。如果你之前没用过 Telegram光注册这一步就可能卡住。代理依赖OpenClaw Gateway 连接 Telegram Bot API 需要走代理。代理一旦挂了你的 AI 同事就彻底失联——偏偏你最需要远程找它帮忙的时候往往就是网络不稳定的时候。如果你已经有 Telegram 账号和稳定代理接入倒是很简单openclaw channels add telegram # 输入 BotFather 给你的 tokendmPolicy 选 pairing我个人的策略是飞书做主通道保证可用性Telegram 做备用通道。两个通道可以同时接入同一个 Agent不冲突。最终效果在手机上随时召唤不同大脑跑通之后是什么体验直接看截图部署完成后在飞书或 Telegram 里通过/model命令即时切换不同模型命令调用谁适合干什么/model dsDeepSeek V3日常聊天、快速任务便宜/model dsrDeepSeek R1深度推理死磕复杂问题/model g3pGemini 3.1 Pro200 万上下文读大型项目源码/model g3fGemini 3 Flash看图、快速摘要/model cdxCodex 5.3写代码专职整台闲置笔记本跑 WSL OpenClaw 的待机功耗大约 10~20W一天不到半度电。我目前配置的主大脑是 Gemini 3 Flash效果很好反应速度很快而且是原生多模态有视觉能力。日常也随时切换 DeepSeekAPI 对话成本很低。具体任务再按需指派其他模型。