乐于分享
好东西不私藏

从手动到自动:如何用 OpenClaw Web 能力把 80% 的编程任务交给 AI

从手动到自动:如何用 OpenClaw Web 能力把 80% 的编程任务交给 AI

本文所有示例均基于 OpenClaw 2026 最新版,配合 Control UI 和 Tailscale Serve 实现安全远程访问。


一、为什么是 80%?

过去三个月,我用 OpenClaw 重构了自己的开发工作流。结论很简单:

80% 的编程任务可以交给 AI,但剩下 20% 必须自己动手。

关键不是"AI 能不能做",而是"AI 该不该做"。

先说结果:我的日均编码时间从 6 小时降到 1.5 小时,但产出反而增加了。省下的时间用来做什么?架构设计、代码审查、和技术调研——这些 AI 做不了的事。


二、OpenClaw Web 能力的独特优势

为什么选择 OpenClaw?因为它不是另一个"AI 编程助手",而是一个可以操作真实世界的 AI 代理框架

1. Control UI:浏览器里的指挥中心

访问地址:http://127.0.0.1:18789/或 Tailscale Serve:https://<magicdns>/

Control UI 是一个 Vite + Lit 构建的单页应用,直接通过 WebSocket 与 Gateway 通信。这意味着:

  • 无需命令行:所有操作在浏览器完成

  • 实时流式输出:工具调用、代码生成过程可视化

  • 多会话管理:同时运行多个 AI 任务互不干扰

我每天早上打开 Control UI,第一件事是查看 Cron 任务执行情况——昨晚 AI 已经帮我完成了代码审查和日志分析。

2. Tailscale Serve:安全的远程访问(重点推荐)

这是本文的重点——如何安全地把 OpenClaw 暴露到远程,而不会被黑客扫描攻击

什么是 Tailscale Serve?(国内可以访问,且个人免费,用了一年了是真的香)

简单说,Tailscale Serve 是 Tailscale 提供的一个内建反向代理,让你无需配置 Nginx、无需申请证书、无需开放端口,就能安全地访问内网服务。

核心优势:

传统方案Tailscale Serve
需要公网 IP无需公网 IP
需要配置端口转发无需端口转发
需要申请 HTTPS 证书自动 HTTPS
暴露在公网,会被扫描攻击只在 Tailnet 内可见
需要自己处理认证基于 Tailscale 身份

📖 完整配置教程(实战步骤)

以下是我在 macOS 上配置 OpenClaw + Tailscale Serve 的完整过程,包含所有细节和踩坑记录。

前置条件
  1. 已安装 OpenClaw(2026.3.13 或更新版本)

  2. 已安装 Tailscale 应用(从 https://tailscale.com/download 下载)

  3. 已登录 Tailscale 账号(支持 Google/Microsoft/GitHub/Apple ID)

Step 1:检查 Tailscale CLI 是否可用

Tailscale 桌面应用安装后,CLI 工具通常位于:

# macOS 默认路径/Applications/Tailscale.app/Contents/MacOS/tailscale# 添加到 PATH(临时)exportPATH="/Applications/Tailscale.app/Contents/MacOS:$PATH"# 验证安装tailscale version

输出示例:

1.94.2  tailscale commit: 0a29cf18b56e478b9cd33af07755fcae90d5171a
Step 2:启用 Tailscale HTTPS 证书

重要:Tailscale Serve 需要 HTTPS 证书支持。

  1. 打开 Tailscale 管理后台:https://login.tailscale.com/

  2. 进入 Settings → General

  3. 找到 HTTPS 部分,点击 Manage

  4. 启用 HTTPS 证书功能

Step 3:配置 OpenClaw

编辑 ~/.openclaw/openclaw.json

{"gateway": {"port"18789,"mode""local","bind""loopback","controlUi": {"allowedOrigins": ["http://localhost:18789","http://127.0.0.1:18789","https://<你的机器名>.tailnet-name.ts.net"      ]    },"auth": {"mode""token","token""你的安全 token","allowTailscale"true    },"tailscale": {"mode""serve","resetOnExit"false    }  }}

关键字段说明:

字段说明
bind"loopback"只监听本地,不暴露到网络
tailscale.mode"serve"启用 Tailscale Serve 模式
auth.allowTailscaletrue允许 Tailscale 身份认证
controlUi.allowedOrigins包含 HTTPS 地址允许 Control UI 从远程访问
Step 4:启动 Tailscale Serve

由于 OpenClaw 的 tailscale.mode: "serve" 配置需要 Tailscale CLI 支持,建议手动启动 Serve:

# 添加 PATHexportPATH="/Applications/Tailscale.app/Contents/MacOS:$PATH"# 启动 Serve(后台模式)tailscale serve --bg18789

输出示例:

Available within your tailnet:https://macbook-pro.tail000000.ts.net/|-- proxy http://127.0.0.1:18789Serve started and running in the background.

验证 Serve 状态:

tailscale serve status

输出:

https://macbook-pro.tail100000.ts.net (tailnet only)|-- / proxy http://127.0.0.1:18789
Step 5:启动 OpenClaw Gateway
openclaw gateway restart
Step 6:本机配对(这里比较麻烦,可以借助你本地Coding plan计划去配置)
腾讯云Coding Plan计划,首月7.9 搭配更配:https://curl.qcloud.com/kuliJQTW

重要:首次从远程访问前,需要在本机完成配对。

  1. 在本机浏览器打开:http://127.0.0.1:18789

  2. 输入配置的 token 登录

  3. 配对成功后,设备信息会被保存

Step 7:远程访问

同一 Tailnet 内的任何设备上访问:

https://macbook-pro.tail100000.ts.net/

输入 token 登录即可使用 Control UI。


🔍 实战问题排查(2026-03-18 真实案例)

以下是我在配置完成后遇到的实际问题和解决过程,供你参考。

问题现象:

浏览器控制台反复出现以下错误:

Proxy headers detected from untrusted address. Connection will not be treated as local.Configure gateway.trustedProxies to restore local client detection behind your proxy.[ws] closed before connect conn=xxx remote=127.0.0.1 fwd=100.125.104.64 origin=https://macbook-pro.tail100000.ts.net code=1008 reason=pairing required

问题分析:

  1. Proxy headers detected from untrusted address

    • Tailscale Serve 作为反向代理,会将请求转发给 Gateway

    • Gateway 检测到请求来自 Tailscale CGNAT IP(100.125.104.64),但未配置为可信代理

    • 导致连接被拒绝

  2. pairing required

    • 设备首次连接需要配对授权

    • 即使网络通了,未配对的设备也无法连接

解决步骤:

Step A:添加 Tailscale 可信代理配置

编辑 ~/.openclaw/openclaw.json,在 gateway 部分添加:

{"gateway": {"port"18789,"mode""local","bind""loopback","trustedProxies": ["100.33.0.0/10"],  //你的taiscale网段"controlUi": {"allowedOrigins": ["http://localhost:18789","http://127.0.0.1:18789","https://macbook-pro.tail100000.ts.net"//登录之后在首页获取,如图片      ]    },"auth": {"mode""token","token""your-token","allowTailscale"true    },"tailscale": {"mode""serve","resetOnExit"false    }  }}

关键字段:

"trustedProxies": ["100.33.0.0/10"]

100.33.0.0/10 是 Tailscale 的 CGNAT IP 范围,添加后 Gateway 会信任来自 Tailscale 的代理请求。

Step B:重启 Gateway

openclaw gateway restart

或使用 gateway 工具自动重启(配置修改后自动触发)。

Step C:批准设备配对

重启后,检查待配对设备:

openclaw devices list

输出示例:

Pending (2)┌──────────────────────────────────────┬─────────────────────────────────────┬──────────┬────────────┬────────┬────────┐│ Request                              │ Device                              │ Role     │ IP         │ Age    │ Flags  │├──────────────────────────────────────┼─────────────────────────────────────┼──────────┼────────────┼────────┼────────┤│ 58886ea5-41a3-9dcb-6195636fd0e5 │ 8b9eca13d171efd39052539ab8c0c75 │ operator │            │ 2m ago │        ││ 6fe2597e-465d-a754-e14c29054f39 │ addb7e3a7b42fd7856d9b9e2e156287 │ operator │            │ 4m ago │        │└──────────────────────────────────────┴─────────────────────────────────────┴──────────┴────────────┴────────┴────────┘

批准最新设备:

openclaw devices approve --latest

重复执行直到所有待处理设备都已批准。

验证配对成功:

openclaw devices list

输出应显示 Paired (N) 且 Pending (0)

Step D:刷新浏览器

配对完成后,刷新浏览器页面重新连接。


📋 完整配置清单

~/.openclaw/openclaw.json 最终配置:

{"gateway": {"port"18789,"mode""local","bind""loopback","controlUi": {"allowedOrigins": ["http://localhost:18789","http://127.0.0.1:18789","https://macbook-pro.tail100000.ts.net"      ]    },"auth": {"mode""token","token""8849267ab4cdbd11fa2c8429ba8542d7341366e6605",//用你自己的token"allowTailscale"true    },"tailscale": {"mode""serve","resetOnExit"false    }  }}

Tailscale Serve 配置:

# 后台启动 Servetailscale serve --bg18789# 查看状态tailscale serve status# 停止 Servetailscale serve --https=443 off

🔧 常见问题与解决方案

问题 1:tailscale: command not found

解决:Tailscale CLI 不在 PATH 中。

# macOS 添加路径exportPATH="/Applications/Tailscale.app/Contents/MacOS:$PATH"# 或创建软链接sudoln-s /Applications/Tailscale.app/Contents/MacOS/tailscale /usr/local/bin/tailscale

问题 2:Serve is not enabled on your tailnet

解决:需要在 Tailscale 管理后台启用 HTTPS。

  1. 访问 https://login.tailscale.com/f/serve?node=<你的节点 ID>

  2. 或手动进入 Settings → General → HTTPS → Manage

  3. 启用 HTTPS 证书

问题 3:origin not allowed

解决:需要在 allowedOrigins 中添加远程地址。

{"controlUi": {"allowedOrigins": ["http://localhost:18789","http://127.0.0.1:18789","https://<你的机器名>.tailnet-name.ts.net"    ]  }}

问题 4:pairing required

解决:需要在本机浏览器先访问一次完成配对。

  1. 本机访问 http://127.0.0.1:18789

  2. 输入 token 登录

  3. 配对后远程设备即可访问

问题 5:另一台电脑无法访问

检查清单

  • 另一台电脑已安装 Tailscale(两台都要安装taiscale cli)
  • 已登录同一 Tailscale 账号
  • Tailscale 状态正常(tailscale status 显示 active)
  • Serve 配置正确(tailscale serve status 有输出)
  • 已在本机完成配对

🔒 安全原理

  1. Gateway 只监听 loopback(127.0.0.1),不暴露到网络

  2. Tailscale Serve 做反向代理,从 Tailnet 接收请求转发给 Gateway

  3. 自动 HTTPS,Tailscale 处理证书

  4. 身份验证,基于 Tailscale 用户身份(tailscale whois 验证)

这意味着:

  • 黑客扫描不到你的 Gateway(没有开放端口)

  • 即使扫描到,也需要加入你的 Tailnet 才能访问

  • 所有流量加密(HTTPS)


⚠️ 关于 Funnel 模式(公网访问)

如果你需要完全公开的访问(比如给非 Tailnet 用户),可以用 Funnel:

{gateway: {bind"loopback",tailscale: { mode"funnel" },auth: { mode"password"password"your-strong-password" }  }}

⚠️ 注意:Funnel 会暴露到公网,必须配置强密码!

适用场景

  • 给外部合作伙伴临时访问

  • 在公开网络环境演示

  • 没有 Tailscale 的设备访问

不推荐日常使用,因为会被公网扫描。


❓ 常见问题

Q1:Tailscale Serve 和直接 bind 到 tailnet IP 有什么区别?

// Serve 模式(推荐){gateway: { bind"loopback"tailscale: { mode"serve" } }}// 访问:https://<magicdns>/ (自动 HTTPS)// Tailnet bind 模式{gateway: { bind"tailnet"auth: { mode"token"token"xxx" } }}// 访问:http://<tailscale-ip>:18789/ (HTTP,需要 token)

Serve 模式更好,因为:

  • 自动 HTTPS

  • 无需管理 token

  • 基于 Tailscale 身份

Q2:多台机器都能访问吗?

可以。只要都加入同一个 Tailnet,任何设备都能访问。

Q3:手机能访问吗?

可以。安装 Tailscale iOS/Android App,加入 Tailnet 后用 Safari/Chrome 访问。

Q4:会被黑客攻击吗?

Serve 模式:

  • 不开放公网端口,扫描不到

  • 需要加入 Tailnet 才能访问

  • 流量加密

Funnel 模式:

  • 暴露到公网,会被扫描

  • 必须配置强密码

  • 流量加密

Q5:Tailscale 免费吗?

个人版免费,支持:

  • 最多 3 个用户

  • 无限设备

  • Serve 和 Funnel 都支持

团队版收费,更多功能。

Q6:Serve 配置重启后丢失怎么办?

Tailscale Serve 配置在重启后可能丢失,需要重新配置:

# 方法 1:手动重新启动tailscale serve --bg18789# 方法 2:添加到启动脚本# 将命令添加到 ~/.zshrc 或 ~/.bashrcexportPATH="/Applications/Tailscale.app/Contents/MacOS:$PATH"tailscale serve --bg18789

3. 多会话并行:真正的多任务处理

# 并行审查 3 个 PRopenclaw sessions spawn --runtime acp --label pr-review-1 "审查 PR #123"openclaw sessions spawn --runtime acp --label pr-review-2 "审查 PR #124"openclaw sessions spawn --runtime acp --label pr-review-3 "审查 PR #125"

传统 AI 助手一次只能处理一个请求。OpenClaw 的 sessions_spawn 可以创建多个隔离会话,每个会话独立运行不同的 AI 任务。

至此,你就可以随时随地访问家里openclaw小管家。

三、这 8 类任务,放心交给 AI

1. 样板代码生成

场景:新项目需要创建基础的 CRUD 接口、数据模型、配置文件。

传统做法:复制旧项目,手动修改,耗时 2-3 小时。

OpenClaw 做法

# 创建隔离会话生成项目骨架openclaw sessions spawn --runtime acp --mode session \--task"基于 Express.js + TypeScript 创建用户管理模块,包含:- User 模型(id, email, name, createdAt)- RESTful API(GET/POST/PUT/DELETE /users)- Jest 单元测试框架  输出到 /Users/cuihao/.openclaw/workspace/user-service/"

5 分钟后,项目骨架完成。我只需要 review 关键逻辑。

时间节省:2 小时 → 10 分钟 review

2. 单元测试编写

场景:核心函数写好了,但测试覆盖率只有 30%。

OpenClaw 做法

# 让 AI 为指定文件生成测试openclaw sessions spawn --runtime acp \--task"为 /src/utils/validator.ts 编写完整的 Jest 测试,  覆盖所有边界情况,包括:- 空值处理- 类型错误- 边界值  输出到 /src/utils/validator.test.ts"

时间节省:3 小时 → 20 分钟 review + 补充

3. 文档生成与整理

场景:项目完成了,但 README 和 API 文档还没写。

OpenClaw 做法

# 用 web_fetch 抓取依赖文档,让 AI 整理openclaw sessions spawn --runtime acp \--task"1. 读取 package.json 获取依赖列表2. 用 web_fetch 抓取主要依赖的官方文档3. 生成项目 README.md,包含:- 项目简介- 安装步骤- 使用示例- API 参考  输出到 /README.md"

时间节省:4 小时 → 30 分钟 review

4. 代码审查初筛

场景:团队每天有 10+ 个 PR 需要审查。

OpenClaw 做法

# 创建定时任务,每日自动审查openclaw cron add --job'{"name""每日 PR 审查","schedule": { "kind""cron""expr""0 9 * * 1-5""tz""Asia/Shanghai" },"payload": {"kind""agentTurn","message""审查过去 24 小时的所有 PR,检查:- 代码风格一致性- 潜在的安全问题- 测试覆盖率变化- 文档更新情况    生成审查报告发送到 #dev-channel"  },"sessionTarget""isolated","delivery": { "mode""announce""channel""dev-channel" }}'

效果:每天早上 9 点,AI 审查报告准时出现在团队频道。我只需要处理标记为"高风险"的 PR。

5. 重复性重构

场景:API 接口迁移,需要批量修改 50+ 个文件中的调用方式。

OpenClaw 做法

# 用 exec 找出所有需要修改的文件openclaw exec "grep -r 'old-api' /src --include='*.ts' -l"# 然后让 AI 批量修改openclaw sessions spawn --runtime acp \--task"将所有文件中的 old-api 调用迁移到 new-api,  保持原有逻辑不变,输出修改后的文件列表"

时间节省:1 天 → 30 分钟

6. 技术调研与信息收集

场景:需要对比 3 个状态管理方案,选出最适合项目的。

OpenClaw 做法

# 并行抓取多个方案的文档和对比openclaw sessions spawn --runtime acp \--task"用 web_fetch 抓取以下页面并对比:1. Redux 官方文档核心概念2. Zustand GitHub README3. Jotai 官方文档  生成对比表格,包含:- 学习曲线- 性能特点- 适用场景- 社区活跃度  推荐适合中型项目的方案"

时间节省:4 小时 → 20 分钟 review

7. 日志分析与错误定位

场景:生产环境出现偶发错误,需要从海量日志中定位问题。

OpenClaw 做法

# 实时日志监控 + AI 分析openclaw sessions spawn --runtime acp \--task"1. 用 logs.tail 实时读取 /var/log/app/error.log2. 分析错误模式,识别高频错误3. 关联代码位置,给出修复建议  发现严重错误立即通知"

效果:错误定位时间从小时级降到分钟级。

8. 自动化脚本编写

场景:需要定期执行数据备份、清理、报告生成等任务。

OpenClaw 做法

# 创建定时备份任务openclaw cron add --job'{"name""每日数据库备份","schedule": { "kind""cron""expr""0 2 * * *""tz""Asia/Shanghai" },"payload": {"kind""systemEvent","text""执行数据库备份:pg_dump mydb > /backup/mydb_$(date +%Y%m%d).sql"  },"sessionTarget""main"}'

效果:完全自动化,无需人工干预。


四、这 5 类任务,必须自己动手

1. 核心业务逻辑设计

AI 不懂你的业务场景。它可以生成代码,但无法决定:

  • 这个功能该不该做?

  • 优先级如何排序?

  • 用户体验如何平衡?

我的原则:业务逻辑的核心算法和流程设计,必须自己写。

2. 安全敏感代码

认证、授权、加密、支付——这些代码出问题就是大问题。

我的原则

  • AI 可以生成初稿,但必须逐行 review

  • 关键安全逻辑自己重写

  • 上线前做专项安全审计

3. 性能关键路径优化

AI 生成的代码往往能跑,但不一定高效。

案例:AI 生成的数据库查询用了 N+1 模式,功能正常,但数据量大时性能暴跌。

我的原则

  • 性能敏感代码必须人工 profiling

  • 数据库查询自己写 SQL

  • 缓存策略自己设计

4. 创造性问题解决

AI 只能基于已有模式组合,无法真正创新。

案例:设计一个新的交互模式,AI 给出的方案都是现有产品的变体。

我的原则:需要创造力的工作,AI 只能做头脑风暴助手,决策必须自己来。

5. 最终代码审查与责任承担

AI 写的代码,出了问题是你的责任。

我的原则

  • 所有 AI 生成的代码必须 review 后才能合并

  • 核心模块自己写单元测试验证

  • 上线前做完整的功能测试


五、我的 OpenClaw 工作流(实战案例)

案例 1:自动 PR 审查流水线

// ~/.openclaw/openclaw.json{"cron": {"jobs": [      {"name""PR 自动审查","schedule": { "kind""every""everyMs"3600000 },"payload": {"kind""agentTurn","message""检查 GitHub PR 列表,对新 PR 进行初审:1.代码风格检查(prettier/eslint)2.测试覆盖率变化3.敏感文件修改检测4.生成审查评论到PR高风险PR标记@人工审查"        },"sessionTarget""isolated"      }    ]  }}

效果:每小时自动审查新 PR,80% 的 PR 可以直接合并,20% 标记人工审查。

案例 2:项目健康日报

# 每天早上 8 点生成项目健康报告openclaw cron add --job'{"name""项目健康日报","schedule": { "kind""cron""expr""0 8 * * *""tz""Asia/Shanghai" },"payload": {"kind""agentTurn","message""生成项目健康报告:1. 用 exec 运行 git status 检查未提交变更2. 用 exec 运行 npm audit 检查安全漏洞3. 用 exec 运行 npm test 检查测试状态4. 读取 package.json 检查依赖更新    生成报告发送到 #project-health 频道"  },"sessionTarget""isolated","delivery": { "mode""announce""channel""project-health" }}'

效果:每天早上自动收到项目健康报告,问题早发现早解决。

案例 3:技术文档自动更新

# 每次 git push 后自动更新文档openclaw cron add --job'{"name""文档自动更新","schedule": { "kind""every""everyMs"1800000 },"payload": {"kind""agentTurn","message""检查 git 变更,如果有新函数/类:1. 读取源代码提取 API 签名2. 更新 API.md 文档3. 提交变更并推送"  },"sessionTarget""isolated"}'

效果:文档永远和代码同步,再也不用"回头补文档"了。


六、关键配置清单

1. Gateway 配置(安全远程访问)

// ~/.openclaw/openclaw.json{"gateway": {"bind""loopback","tailscale": { "mode""serve" },"auth": { "allowTailscale"true },"controlUi": {"enabled"true,"allowedOrigins": ["https://<magicdns>"]    }  }}

2. Cron 任务配置(自动化)

{"cron": {"jobs": [      {"name""任务名称","schedule": { "kind""cron""expr""0 9 * * *" },"payload": { "kind""agentTurn""message""任务描述" },"sessionTarget""isolated","delivery": { "mode""announce" }      }    ]  }}

3. 会话管理(并行任务)

# 创建持久会话openclaw sessions spawn --runtime acp --mode session --label my-task "任务描述"# 查看会话状态openclaw sessions list# 发送消息到会话openclaw sessions send --label my-task "继续执行"

七、避坑指南

1. 不要过度依赖 AI

:把所有代码都交给 AI 写,结果上线后出问题看不懂代码。

:核心逻辑自己写,AI 只做辅助。

2. 不要忽略安全配置

:Gateway 直接暴露在公网,没有配置认证。

:用 Tailscale Serve,或者至少配置 token 认证。

{"gateway": {"auth": { "mode""token""token""your-secure-token" }  }}

3. 不要一次性创建太多会话

:同时 spawn 10 个会话,API 额度瞬间用完。

:控制并发数,用队列管理任务。

4. 不要忽略日志监控

:Cron 任务失败了没人知道。

:配置 webhook 通知,或者定期检查 openclaw cron runs


结语

AI 编程不是"取代程序员",而是"解放程序员"。

把 80% 的重复工作交给 AI,把省下的时间用来做那 20% 真正有价值的事——架构设计、技术创新、和解决复杂问题。

OpenClaw 的 Web 能力(Control UI + Tailscale + Cron + Sessions)让这个过程变得简单、安全、可管理。

最后的建议

  1. 从一个小任务开始尝试(比如自动生成 README)

  2. 逐步扩大 AI 的工作范围

  3. 始终保持 review 和 oversight

  4. 记录哪些任务适合 AI,哪些不适合