☰
OpenClaw - Day 4 从“会聊天”到“能办事”:用 OpenClaw 给 AI 接上网络能力的完整实践
2026/10/1 7:19:53 网站建设 项目流程

1. 从“会聊天”到“能办事”:OpenClaw 网络能力到底解决了什么问题

很多人第一次用 OpenClaw 这类个人 AI 助手时,都会经历一个心理落差:前几天配好 SOUL.md、调好性格、聊得挺开心,但真到干活的时候,它还是只会“给建议”。你问它“今天有什么重要邮件”,它回你一段“你可以打开 Gmail 查看收件箱,建议按发件人筛选……”——这不叫助手,这叫说明书。

问题的根子不在模型智商。同一个模型,接上 Gmail、Calendar、Web Search、Playwright 浏览器之后,行为会完全不同:它会真的去拉你的邮件、真的去查你的日程、真的打开一个网址把页面内容读回来。OpenClaw 的网络能力,本质上是给 LLM 装上一套“触达现实世界的手”,而 Skills 就是这套手的安装机制。

这篇文章面向三类人:一是已经在跑 OpenClaw、想从“聊天玩具”升级到“能办事工具”的个人用户;二是想把外部集成抽象成 Skill 的 Agent 开发者;三是单纯想搞清楚 OAuth 授权、Playwright 浏览器操作在个人助手场景里怎么落地的人。我会把可复制的 Skills 配置片段、OAuth 回调设置、Playwright 调用示例都摊开讲,每一步都给出验证动作,你照着做就能看到结果。

先明确一个判断标准:当你的助手能在一句话里串联 Gmail、Calendar、Web Search 三个系统,并且返回结构化结果时,它才算跨过了“玩具到工具”的分水岭。下面从 Skills 体系讲起,再逐个接入邮件、日历、搜索、浏览器,最后把安全边界和常见报错排干净。

2. OpenClaw Skills 体系与 gog 技能包:给助手装应用的正确姿势

OpenClaw 里所有外部能力都通过 Skills 提供。你可以把它理解成“给 AI 装 App”:模型是操作系统,Skill 是应用,工具调用(tool call)是应用暴露给系统的 API。这个类比很重要,因为它决定了你配置时的思路——你不是在写业务代码,你是在给一个已经有大脑的系统安装手脚。

四个核心技能的能力边界大致是这样:

技能提供的能力典型场景敏感度
Gmail读取、搜索、摘要、可选发送“今天有什么重要邮件”高(可读私密数据)
Google Calendar查询、创建、修改日程“下周三下午约个会”中高
Web Search联网搜索与结果整合“最近 React 19 有什么变化”低
Browser (Playwright)访问、解析、截图、交互“看下竞品定价页改没改”高(可操作网页)

这些技能有几个共性设计要点,值得你在自研 Agent 时直接抄:统一的配置与调用方式,让 LLM 通过结构化工具调用来驱动;明确的能力边界,比如 Gmail Skill 会把“读取”和“发送”拆成不同权限;能在对话上下文中暴露可用技能,让模型自己决定何时调用。

其中最值得单独讲的是gog——一个把 Gmail、Google Calendar、Google Drive 打包在一起的 Google Workspace 技能包。它的价值在于:你只需要配置一套 OAuth 授权,就能一次性连通多种 Google 服务。如果你分别接三个 API,就要维护三套凭证、三次授权、三个刷新逻辑;gog 把它们收敛成一个授权入口,这是“抽象层”带来的真实收益。

安装命令很直接:

clawdhub install gog

首次运行会引导你走浏览器 OAuth 流程,生成token.json。这个文件是长效凭证,后面所有 Google 服务的静默访问都靠它。注意:gog 的授权范围取决于你在 Google Cloud 里启用了哪些 API,所以下一步必须先回 Google Cloud 把 API 打开,否则授权拿到的 token 也访问不了对应服务。

3. 可复制配置:OAuth 客户端、credentials.json 与 gog 授权全流程

这一节是整篇最“动手”的部分。我按顺序给你可复制的配置片段和路径,你对着做即可。

3.1 Google Cloud 项目与 API 启用

打开 Google Cloud Console,新建项目(名字随意,比如My AI Assistant)。进入“API 和服务 → 库”,搜索并启用两个 API:Gmail API 和 Google Calendar API。如果你后面想用 Drive,再把 Google Drive API 也启用。这一步决定了你后续 OAuth 凭证能访问的范围。

3.2 创建 OAuth 客户端并落地 credentials.json

进入“API 和服务 → 凭证”,点击“创建凭证 → OAuth 客户端 ID”。应用类型选桌面应用(Desktop app)。创建后下载 JSON,重命名为credentials.json,放到 OpenClaw 工作目录:

mv ~/Downloads/client_secret_*.json ~/clawd/credentials.json chmod 600 ~/clawd/credentials.json

credentials.json是“换 token 的身份证”,真正的长效访问凭据会写入token.json。两者权限都要收紧,后面安全章节会展开。

3.3 gog 技能配置片段

gog 的配置通常落在 OpenClaw 的技能配置目录里。一个可参考的 JSON 片段如下(路径按你的实际工作目录调整):

{ "skills": { "gog": { "enabled": true, "credentialsPath": "~/clawd/credentials.json", "tokenPath": "~/clawd/token.json", "scopes": [ "https://www.googleapis.com/auth/gmail.readonly", "https://www.googleapis.com/auth/calendar" ], "services": { "gmail": { "sendEnabled": false }, "calendar": { "writeEnabled": true } } } } }

这里有两个关键设计:scopes只勾选你真正需要的权限(读邮件 + 日历读写),sendEnabled: false明确关闭发信能力。这就是“权限最小化”在配置层的落地——即使 Skill 支持发邮件,你也先在配置里关掉,需要时再开。

3.4 OAuth 授权回调设置

桌面应用的 OAuth 回调通常是http://localhost加一个随机端口,Google 会自动处理。但如果你在服务器上跑 OpenClaw,没有本地浏览器,就需要手动完成回调。典型做法是:在本地机器上跑授权命令,把生成的token.json安全地传到服务器。

# 本地完成授权,生成 token.json gog auth login --credentials ~/clawd/credentials.json --token ~/clawd/token.json # 传到服务器(用 scp 或你信任的通道) scp ~/clawd/token.json user@your-server:~/clawd/token.json

如果你用的是 TaoToken 这类统一接入层来管理模型调用,OAuth 授权和模型 Key 是两套独立凭证,不要混在一起存。模型侧的统一入口在 TaoToken API,而 Google 的 OAuth token 只属于 gog 技能本身。

3.5 验证授权是否成功

授权完成后,先做一次最小验证,别急着上复杂对话:

gog gmail list --max 3

如果返回三封邮件的标题和发件人,说明 OAuth 链路通了。如果报invalid_grant或token has been expired or revoked,说明 token 没写对或授权被撤销,回到 3.4 重新授权。

4. 验证请求与成功结果:邮件、日历、搜索、Playwright 逐个跑通

配置完不等于能用,必须逐个技能验证。这一节给你每个技能的验证命令和预期结果。

4.1 Gmail:从列清单到帮你决策

在对话里直接说:

帮我看看 Gmail 今天有什么新邮件。

一个理想的返回是这样的:

今天共 5 封新邮件: [重要] 合作方回复 —— 关于下周会议时间确认,需要你回复 GitHub —— Your repository has been starred Hetzner —— Invoice for July Newsletter —— This Week in AI 广告 —— 已自动忽略

注意三个关键点:AI 做了“重要/次要/噪音”的初筛;找出“需要你行动”的那封并标记;对 Newsletter、广告自动降权。你得到的是“决策前摘要”,不是原始信息流。可以设一个每天早 8 点的定时任务,让它自动拉取并整理。

4.2 Google Calendar:自然语言操作日程

因为 gog 的授权已经覆盖 Calendar,只要你启用了 Calendar API,日历功能基本零额外配置。直接问:

明天有什么安排?

返回示例:

明天(7 月 19 日 周六)的安排: • 10:00-11:00 产品讨论会(腾讯会议) • 14:30 牙医预约(提醒:别忘了带医保卡) • 无其他安排,下午可以 deep work。

创建事件也一样:

帮我在下周三下午 3 点创建一个会议,主题是 "SEO 策略讨论",时长 1 小时。

如果时间冲突,它会主动提醒并给修正建议。这把“打开日历 App → 找时间 → 建事件 → 调时间”压缩成一轮对话。

4.3 Web Search:打破模型知识的时间墙

以 Brave Search API 为例,先注册拿 Key,然后:

openclaw configure --section web

按向导填入 Key,系统写入配置文件。验证:

搜索一下 "OpenClaw alternatives 2026"

好的返回不是一串链接,而是聚合、去重、对齐后的自然语言总结,并给出“个人助手 vs 自主 Agent”的定位差异。搜索结果应该被视为模型的原材料,而不是终端用户的终点页面——这是 Skill 层设计的核心思路。

4.4 Playwright 浏览器:让 AI 像真实用户一样看网页

浏览器技能基于 Playwright,覆盖三类动作:访问 URL 并提取结构化内容、截图保存、执行点击/输入/滚动等交互。验证:

帮我打开 https://example.com 看看首页现在长什么样。

返回会包含标题、主要结构、加载状态和截图路径。更实战的用法是竞品定价监控:打开页面、解析价格相关 DOM、与上次快照对比,给出“是否涨价/是否新增套餐”的结论。

一个可参考的 Playwright 调用片段(Skill 内部逻辑示意):

const { chromium } = require('playwright'); async function fetchPage(url) { const browser = await chromium.launch({ headless: true }); const page = await browser.newPage(); await page.goto(url, { waitUntil: 'networkidle' }); const title = await page.title(); const prices = await page.$$eval('.price', els => els.map(e => e.textContent.trim())); await page.screenshot({ path: 'snapshot.png', fullPage: true }); await browser.close(); return { title, prices }; }

安全提醒:Browser Relay / CDP 只推荐在 localhost 或受控内网(如 tailnet)使用,强烈不建议暴露到公网,否则等于把浏览器的远程控制权交出去。

5. 本篇常见错排查:401、local proxy failed、reading choices、OAuth 报错对照

配置过程中最容易卡在几个固定报错上。我把真实遇到的错误和排查路径列出来,你对照着查。

5.1 401 Unauthorized

最常见的原因是模型侧 Key 或 OAuth token 失效。先分清是哪一层:如果是调用模型时报 401,检查你的 API Key 是否过期、是否带对了 Base URL。用 TaoToken 统一接入时,Base URL 填https://taotoken.net/api,Key 在 API Keys 页面 管理。如果是 gog 报 401,多半是token.json过期,重新走 3.4 的授权流程。

5.2 local proxy failed

这个报错通常出现在网络请求被本地代理拦截时。检查你的环境变量HTTP_PROXY/HTTPS_PROXY是否指向了一个已经关闭的代理端口。清掉这些变量再试:

unset HTTP_PROXY HTTPS_PROXY ALL_PROXY

如果你在容器里跑,检查容器的网络模式是否允许出站。

5.3 reading choices / reading 'choices'

这是解析模型响应时的典型错误,意思是代码在读取response.choices时拿到了undefined。原因通常是:请求根本没成功(返回的是错误对象),或者你用的 SDK 版本和返回结构不匹配。排查顺序:先打印完整响应体,确认choices字段是否存在;再确认模型 ID 是否写对。Base URL + Key + Model ID 三件套必须同时正确,缺一个都会走到这个报错。

5.4 OAuth 相关报错

redirect_uri_mismatch:OAuth 客户端类型选错了,桌面应用不要手动配回调 URI。access_denied:授权时没勾选对应 scope,回 Google Cloud 检查 API 是否启用。invalid_grant:token 被撤销或过期,重新授权。

5.5 CC Switch / Cline MCP / Codex auth.json 场景

如果你在 CC Switch、Cline MCP 或 Codex 里配置 OpenClaw 相关能力,同样要写全三件套:Base URL、Key、Model ID。以 Codex 的auth.json为例:

{ "base_url": "https://taotoken.net/api", "api_key": "sk-你的Key", "model": "claude-sonnet-4-5" }

Cline MCP 的配置则在 MCP servers 里指定 command 和 env,把 Key 通过环境变量注入,不要硬编码进配置文件。

6. 安全边界与下一步:让 AI 碰到真实数据前先想清楚的事

当助手能读邮件、管日历、操作浏览器时,它已经具备访问大量敏感数据的潜力。OpenClaw 提供了一个安全体检命令:

openclaw security audit openclaw security audit --deep openclaw security audit --fix # 确认无误再用

--fix前必须人工确认,避免误改配置。几条硬规则:API Key 永远不进 Git,用环境变量或.env注入;token.json权限设为chmod 600,泄露立即撤销重授权;权限最小化,只读 Gmail 就别勾发送;服务器开防火墙、SSH 密钥登录、定期更新系统。

还有一点容易被忽略:在SOUL.md和AGENTS.md里写清楚行为边界——哪些操作必须二次确认(转账、删库、发敏感邮件),哪些数据永远不能外传,什么情况下应该拒绝执行。这背后是“规则优先级”和“身份角色”的设计,你不只是在写配置,而是在塑造一个有边界感的数字人格。

下一步,你可以把这套经验迁移到自己的 Agent 框架:把所有外部集成统一抽象为 Skill,而不是散落的 API 调用;在每个 Skill 层设计清晰的能力边界和权限配置;把“联网搜索 + 浏览器操作”当基础能力而非附加功能;在敏感操作处加二次确认和可审计日志。想继续深入模型接入和 Coding Plan 的,可以从 TaoToken 模型对话 和 Coding Plan 入手,把网络能力和模型调用串成一条完整链路。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询