37b 飞书机器人与 MCP 搭建
上一篇: 37a 全景架构与决策框架 | 下一篇: 37c 多维表格自动化
本篇从零搭建 Agent 基础设施:安装 OpenClaw、完成 onboard 配置向导、创建飞书应用、配置消息通道、接入 MCP 工具层,最终完成端到端验证。内容基于 OpenClaw 2026.2.25 版本的实际 onboard 流程编写,包含每个配置步骤的详细说明和踩坑指南。
1. OpenClaw 安装
1.1 系统要求
| 项目 | 最低要求 | 推荐配置 |
|---|---|---|
| 操作系统 | Linux / macOS | Ubuntu 22.04+ / macOS 14+ |
| Node.js | 20+ | 24 LTS(推荐用 nvm 管理) |
| 内存 | 2GB | 4GB+(如需向量数据库则 8GB+) |
| 磁盘 | 1GB 可用空间 | 20-50GB SSD(含记忆和日志) |
| 网络 | 可访问飞书 API + LLM API | 稳定的外网连接 |
1.2 安装步骤
# 推荐使用 nvm 管理 Node.js 版本
nvm install 24
nvm use 24
# 全局安装 OpenClaw
npm install -g openclaw@latest
# 验证安装
openclaw --version
# 输出示例:🦞 OpenClaw 2026.2.25 (4b5d4a4)⚠️ nvm 版本陷阱:OpenClaw 安装在哪个 Node 版本下,就只能在那个版本下使用。如果你用 nvm 管理多个 Node 版本,安装后切换了版本会导致
command not found。解决方法:# 查看 openclaw 装在哪个版本 ls ~/.nvm/versions/node/*/bin/openclaw # 切换到对应版本 nvm use v24.12.0 # 设为默认版本(新终端自动使用) nvm alias default v24.12.0
nvm alias default只影响新开的终端窗口,当前终端需要手动nvm use切换。
2. OpenClaw Onboard 配置向导
安装完成后,通过交互式向导完成初始化配置:
openclaw onboard --install-daemon--install-daemon 参数会在 onboard 结束后自动安装系统级守护进程(macOS 用 LaunchAgent,Linux 用 systemd),让 OpenClaw 开机自启、后台持久运行。
2.1 安全声明
onboard 首先展示安全警告,核心要点:
- OpenClaw 默认是个人 Agent(单用户信任边界)
- 如果启用了工具(Tool),恶意 prompt 可能诱导 Agent 执行危险操作
- 多用户共享同一个 Agent 时,所有人共享工具权限
- 建议定期运行安全审计:
openclaw security audit --deep
确认后继续。
2.2 网关配置(Gateway)
| 配置项 | 选项 | 说明 | 推荐 |
|---|---|---|---|
| 网关类型 | Local gateway / Remote gateway | Local 在本机运行网关;Remote 连接远程已有网关 | 个人用选 Local |
| 网关端口 | 默认 18789 | Gateway WebSocket 监听端口 | 保持默认 |
| 网关绑定地址 | Loopback / LAN / Tailnet / Auto / Custom | 决定谁能连接到网关 | 个人用选 Loopback |
| 网关认证 | Password | 网关访问密码,自动生成 | 记录密码,Web UI 登录需要 |
网关绑定地址详解:
┌─────────────────────────────────────────────────────────────┐
│ Loopback (127.0.0.1) — 只有本机进程能连接,最安全 │
│ LAN (0.0.0.0) — 局域网内其他设备可连接 │
│ Tailnet — 通过 Tailscale VPN 连接 │
│ Auto — 先试 Loopback,不行再 LAN │
│ Custom IP — 绑定到指定网卡 IP │
└─────────────────────────────────────────────────────────────┘核心问题:除了本机进程,还有没有别的机器需要连这个 Gateway?没有就 Loopback,有就选对应方案。
理解两层架构:Gateway 是 Agent 的”大脑”(消息路由 + LLM 调用 + Skill 执行),绑定地址决定谁能连上这个大脑。飞书插件和 Gateway 都跑在同一台机器上时,它们之间是本地通信,所以 Loopback 完全够用。
2.3 Tailscale 暴露
| 选项 | 说明 | 适用场景 |
|---|---|---|
| Off | 不通过 Tailscale 暴露 | 个人本机使用 |
| Serve | 暴露给 Tailscale 网络内的设备 | 多设备访问同一个 Agent(如家里 Mac mini 跑 Agent,公司 MacBook 连过去) |
| Funnel | 暴露到公网(类似 ngrok) | 需要公网访问 Agent |
个人用选 Off。
2.4 LLM 模型配置
OpenClaw 支持多种 LLM Provider,onboard 时选择一个作为默认:
| Provider | 推荐模型 | 特点 |
|---|---|---|
| gemini-2.5-flash / gemini-2.5-pro | 性价比高,Flash 适合日常对话 | |
| Anthropic | claude-sonnet-4 / claude-haiku-4 | 推理能力强,Sonnet 适合复杂任务 |
| OpenAI | gpt-4o / gpt-4o-mini | 生态成熟 |
| Moonshot AI | kimi-k2.5 | 中文优化 |
选择 Provider 后需要填入对应的 API Key。Provider 后续可以随时更换:openclaw config set model.provider <provider>。
实测配置:选择 Google → Gemini API key → 默认模型设为
google/gemini-2.5-flash(日常对话够用,成本低)。
2.5 消息通道配置(Channel)
这一步选择用户通过什么 IM 跟 Agent 对话。OpenClaw 支持同时接入多个通道:
| 通道 | 连接方式 | 适用场景 |
|---|---|---|
| Feishu/Lark (飞书) | WebSocket 长连接 | 国内企业团队 |
| Telegram | Bot API | 个人/小团队,最简单 |
| Discord | Bot API | 开发者社区 |
| Slack | Socket Mode | 国际企业团队 |
| QR 扫码 | 个人通讯 | |
| 其他 | 各有不同 | 按需选择 |
选择 Feishu/Lark 后,onboard 会自动下载并安装 @openclaw/feishu 插件,然后要求填入飞书应用的 App ID 和 App Secret(获取方式见第 3 节)。
群聊策略(Group Chat Policy):
| 策略 | 说明 | 推荐场景 |
|---|---|---|
| Allowlist | 只在指定群里响应 | 团队正式使用,避免在不该出现的群里回复 |
| Open | 所有群里被 @ 都响应 | 测试阶段,方便随时测试 |
| Disabled | 不响应群聊 | 只需要私聊功能 |
建议:测试阶段选 Open,正式上线后改为 Allowlist。
配置完一个通道后,onboard 会回到通道选择列表让你继续添加。只需要飞书的话,选 Finished 结束。
2.6 DM 访问策略
Configure DM access policies now? (default: pairing)
● No选 No 使用默认的 pairing 模式即可。pairing 模式下,用户第一次私聊机器人时会收到一个配对码,需要 bot owner 在终端批准:
openclaw pairing approve feishu <配对码>批准后该用户就能正常对话了。这是最基本的安全措施,防止陌生人随意使用你的 Agent。
2.7 Skills 配置
onboard 会展示可用的内置 Skill 列表。这些大多是 macOS 本地应用集成(Apple Notes、Bear、Things 等)或特定服务客户端(1Password、Obsidian 等),跟飞书 Agent 场景无关。
建议:选 Skip for now,跳过所有 API Key 配置提示(Google Places、Gemini for nano-banana-pro、Notion、OpenAI 等全部选 No)。
你真正需要的能力(飞书 MCP、GitHub MCP、数据库查询)是通过 MCP Server 配置的,不是这里的内置 Skill。
2.8 Hooks 配置
Hooks 是事件驱动的自动化机制。onboard 提供 4 个内置 Hook:
| Hook | 功能 | 推荐 |
|---|---|---|
| session-memory | 对话结束后自动保存会话记忆,下次对话能接上上下文 | ✅ 建议启用 |
| boot-md | 启动时加载 markdown 文件作为系统提示 | 可选 |
| bootstrap-extra-files | 启动时加载额外文件 | 暂不需要 |
| command-logger | 记录所有命令执行日志 | 调试时有用 |
2.9 Gateway 运行时
Gateway service runtime
● Node (recommended)选 Node。OpenClaw 本身是 Node.js 项目,选 Node 运行时最稳妥。
安装完成后,macOS 会创建 LaunchAgent(~/Library/LaunchAgents/ai.openclaw.gateway.plist),Linux 会创建 systemd service,实现开机自启。
2.10 启动 Agent
onboard 最后一步:
| 选项 | 说明 |
|---|---|
| Hatch in TUI | 在终端交互界面启动,可以直接对话测试 |
| Open the Web UI | 打开浏览器 Web 控制台 |
| Do this later | 稍后手动启动 |
选 Hatch in TUI 立即在终端验证 Agent 是否正常工作。TUI 是前台模式,关掉终端就停了。验证完成后,Agent 会通过 daemon 在后台持续运行。
2.11 Onboard 完整配置清单
以下是一次完整 onboard 的推荐选择(个人本机部署 + 飞书通道):
安全声明 → Yes(确认继续)
Onboarding mode → Manual
网关类型 → Local gateway (this machine)
Workspace directory → ~/.openclaw/workspace(默认)
Model/auth provider → Google(或你偏好的 Provider)
Google auth method → Google Gemini API key
Enter Gemini API key → <你的 API Key>
Default model → google/gemini-2.5-flash
Gateway port → 18789(默认)
Gateway bind → Loopback (127.0.0.1)
Gateway auth → Password(自动生成)
Tailscale exposure → Off
Configure chat channels → Yes
Select a channel → Feishu/Lark (飞书)
Install Feishu plugin → Download from npm
Enter Feishu App ID → <飞书应用 App ID>
Enter Feishu App Secret → <飞书应用 App Secret>
Which Feishu domain → Feishu (feishu.cn) - China
Group chat policy → Open(测试阶段)
Select a channel → Finished
Configure DM access → No(使用默认 pairing)
Configure skills → Yes
Install dependencies → Skip for now
所有 API Key 提示 → 全部 No
Enable hooks → session-memory
Gateway service runtime → Node (recommended)
How to hatch → Hatch in TUI (recommended)3. 飞书应用创建(前置步骤)
在 onboard 之前,需要先在飞书开放平台创建应用并获取凭证。
3.1 创建应用
- 登录 飞书开放平台 (国内版)或 Lark Developer (国际版)
- 进入「开发者后台」→「创建企业自建应用」
- 填写应用信息:
- 应用名称:
团队 AI Agent - 应用描述:
团队 AI 助手,覆盖需求管理、数据分析、团队协作等场景
- 应用名称:
- 记录
App ID(格式:cli_xxxxxxxxxxxx)和App Secret
3.2 启用机器人
在「机器人」页面:
- 必须启用机器人功能 — 否则 OpenClaw 连接测试会报
API error: app do not have bot - 设置机器人头像和描述
3.3 权限配置
在「权限管理」页面开通以下权限:
| 权限分类 | 权限标识 | 说明 | 用途 |
|---|---|---|---|
| 消息 | im:message:send_as_bot | 以机器人身份发送消息 | 所有 Skill 的消息回复 |
| 消息 | im:message:receive | 接收消息 | 接收用户指令 |
| 消息 | im:message:read | 读取消息 | 获取消息上下文 |
| 通讯录 | contact:user.base:readonly | 读取用户基本信息 | 人员匹配 |
| 群组 | im:chat:create | 创建群组 | 自动创建项目群(可选) |
| 群组 | im:chat:member | 管理群成员 | 自动拉人入群(可选) |
| 多维表格 | bitable:app | 多维表格全部权限 | 需求/缺陷/迭代表操作(可选) |
| 文档 | docx:document:readonly | 读取文档 | RAG 知识库索引(可选) |
| 知识库 | wiki:wiki:readonly | 读取知识库 | RAG 知识库索引(可选) |
| 日历 | calendar:calendar | 日历读写 | 会议安排、提醒(可选) |
最小权限集:先只开通消息相关的 3 个权限(
im:message:send_as_bot、im:message:receive、contact:user.base:readonly),跑通后再按需添加。
3.4 发布应用
- 测试阶段:在「版本管理与发布」中添加测试用户/测试企业
- 正式使用:提交审核发布
4. 飞书 → OpenClaw 完整工作流
理解消息从飞书到 Agent 再回到飞书的完整链路:
用户在飞书 @机器人 发消息
│
▼
飞书服务器(云端)
│
▼ WebSocket 长连接(飞书主动推送到你的机器)
OpenClaw feishu 插件(运行在你本机/服务器)
│
▼ 本地进程间通信
OpenClaw Gateway(127.0.0.1:18789)
│
├─→ 意图识别 → 选择对应 Skill
├─→ 调用 LLM(Gemini/Claude API,走公网)
├─→ 调用 MCP 工具(飞书 MCP、GitHub MCP 等)
├─→ 读写记忆系统(本地 markdown 文件)
│
▼
OpenClaw feishu 插件
│
▼ 通过飞书 API 发送回复(走公网)
飞书服务器 → 用户看到回复关键点:飞书国内版使用 WebSocket 模式,是飞书服务器主动向你的机器发起连接(outbound),不需要你的机器有公网 IP。这就是为什么 Gateway bind 选 Loopback 完全没问题 — feishu 插件和 Gateway 都在同一台机器上,它们之间是本地通信。
5. 消息通道方案:飞书 vs Lark
飞书(国内版)和 Lark(国际版)在消息通道上有本质区别:
5.1 方案对比
| 维度 | 飞书(国内版)WebSocket | Lark(国际版)Webhook 回调 |
|---|---|---|
| 连接方式 | WebSocket 长连接 | HTTP POST 回调 |
| 是否需要公网 IP | ❌ 不需要 | ✅ 需要(或用隧道) |
| 消息延迟 | <100ms | <500ms |
| 实现复杂度 | 低(OpenClaw 插件直接支持) | 中(需部署 HTTP 服务 + 隧道) |
| 适用场景 | 国内团队首选 | 国际团队 |
5.2 Lark 国际版:Webhook 回调方案
Lark 不支持 WebSocket 长连接,需要通过 Webhook 回调接收事件。推荐使用 Cloudflare Tunnel:
Lark 服务器 → HTTPS → Cloudflare Tunnel → localhost:18789 → OpenClaw# 安装 Cloudflare Tunnel
brew install cloudflared # macOS
# 登录并创建隧道
cloudflared tunnel login
cloudflared tunnel create my-agent
cloudflared tunnel route dns my-agent agent-webhook.example.com创建 ~/.cloudflared/config.yml:
tunnel: <TUNNEL_ID>
credentials-file: ~/.cloudflared/<TUNNEL_ID>.json
ingress:
- hostname: agent-webhook.example.com
service: http://localhost:18789
- service: http_status:404在 Lark 开放平台「事件订阅」中设置回调地址为 https://agent-webhook.example.com/lark/event。
6. 端到端验证
6.1 TUI 本地测试
onboard 完成后进入 TUI 界面,直接在终端对话:
openclaw tui - ws://127.0.0.1:18789 - agent main - session main
Wake up, my friend!
> 你好,你是什么模型
我目前使用的是 google/gemini-2.5-flash 模型。6.2 飞书端验证
- 在飞书中搜索你创建的机器人名称
- 发送私聊消息
- 首次对话会收到配对提示:
OpenClaw: access not configured. Your Feishu user id: ou_xxxxxxxx Pairing code: XXXXXXXX Ask the bot owner to approve with: openclaw pairing approve feishu XXXXXXXX - 在终端执行配对批准:
openclaw pairing approve feishu <配对码> - 再次发送消息,机器人正常回复 ✅
6.3 常用管理命令
# 查看 Gateway 状态
openclaw daemon status
# 查看日志
openclaw daemon logs --tail 100
# 查看已配置的通道
openclaw channels list
# 查看已加载的 Skill
openclaw skill list
# 重新加载 Skill(修改后热更新)
openclaw skill reload
# 查看配置
openclaw config get gateway.auth.token
openclaw config get model.provider
# 打开 Web 控制台
openclaw dashboard⚠️ 注意:
openclaw mcp不是有效命令。飞书工具能力来自 feishu 插件,不是通过 MCP 配置的。详见第 7 节。
7. 工具层配置:插件内置工具 + MCP 扩展
OpenClaw 的工具能力来自两个层面:插件内置工具(feishu 插件自带)和 MCP 扩展工具(通过 MCP 协议接入外部服务)。理解这两层的区别是正确配置的关键。
7.1 飞书插件内置工具(开箱即用)
安装 feishu 插件后,以下工具自动可用,无需额外配置 MCP:
| 工具名 | 能力 | 说明 |
|---|---|---|
feishu_doc | 读取/创建飞书文档 | 支持 docx 格式文档的读写 |
feishu_wiki | 读取飞书知识库 | 支持知识库节点的检索和内容读取 |
feishu_drive | 飞书云盘操作 | 文件上传、下载、列表 |
feishu_bitable | 多维表格操作 | 创建应用、添加字段、增删改查记录 |
feishu_perm | 权限管理 | 文档/表格的权限查询和设置 |
⚠️ 实测发现的限制:
feishu_bitable可以创建多维表格应用(App),但不能在已有应用中创建新的子表格(Sheet),也不能重命名表格。这是插件工具的封装限制,飞书 API 本身支持POST /bitable/v1/apps/:app_token/tables创建子表格- 需要手动在飞书网页端创建子表格后,Agent 才能对其进行字段和记录操作
- 消息发送能力由插件的通道层直接处理(Agent 回复即发送),不需要单独的消息发送工具
查看当前可用的内置工具:
# 查看已加载的 Skill 和工具
openclaw skill list7.2 OpenClaw 没有独立的 MCP 命令
这是一个容易踩的坑:
# ❌ 这个命令不存在
openclaw mcp list
# unknown command 'mcp'
# ❌ MCP 也不是 config 的独立配置路径
openclaw config get mcp
# Config path not found: mcpOpenClaw 的飞书工具能力来自 feishu 插件,不是通过 MCP 配置文件声明的。插件在 onboard 时安装,工具随插件自动注册。这与 Kiro、Claude Code 等工具的 MCP 配置方式不同。
7.3 MCP 扩展:补充插件不覆盖的能力
飞书插件内置的 5 个工具覆盖了基础场景,但以下能力需要通过额外的 MCP Server 或 Skill 脚本补充:
| 缺失能力 | 补充方案 | 优先级 |
|---|---|---|
| 飞书日历(创建/查询日程) | @larksuiteoapi/lark-mcp 或自写 Skill 脚本 | 中 |
| 飞书消息主动发送(非回复) | @larksuiteoapi/lark-mcp 或飞书 API 直接调用 | 中 |
| 多维表格子表格创建 | 自写 Skill 脚本调用飞书 API | 高 |
| GitHub PR/Issue/代码搜索 | @modelcontextprotocol/server-github | 高 |
| PostgreSQL 数据查询 | @modelcontextprotocol/server-postgres | 中 |
| 向量数据库(RAG) | Chroma/pgvector + 自写 Skill | 中 |
| Google Analytics | GA API + 自写 Skill | 低 |
| 云平台运维(GCP/AWS) | 对应云平台 MCP Server | 低 |
| Sentry 错误追踪 | Sentry API + 自写 Skill | 低 |
7.4 补充飞书能力:lark-mcp 方案
飞书官方提供了 @larksuiteoapi/lark-mcp,封装了飞书全量 API。可以作为插件内置工具的补充,覆盖日历、消息发送、完整的多维表格操作等:
# 测试 lark-mcp 是否可用
npx -y @larksuiteoapi/lark-mcp --help如果 OpenClaw 后续版本支持 MCP Server 配置,配置方式预计如下:
{
"mcpServers": {
"lark-mcp": {
"command": "npx",
"args": ["-y", "@larksuiteoapi/lark-mcp@latest"],
"env": {
"LARK_APP_ID": "cli_xxxxxxxxxxxx",
"LARK_APP_SECRET": "xxxxxxxxxxxxxxxxxxxxxxxx",
"LARK_BASE_URL": "https://open.feishu.cn"
}
}
}
}注意:飞书国内版
LARK_BASE_URL用https://open.feishu.cn,Lark 国际版用https://open.larksuite.com。
当前阶段的替代方案是编写 Skill 脚本直接调用飞书 API:
# bitable-create-table
在已有的多维表格应用中创建新的子表格。
## 触发条件
用户消息包含"创建表格"、"新建表"。
## 执行步骤
1. 从记忆中读取多维表格 app_token
2. 执行以下 API 调用:
```bash
curl -X POST "https://open.feishu.cn/open-apis/bitable/v1/apps/{app_token}/tables" \
-H "Authorization: Bearer {tenant_access_token}" \
-H "Content-Type: application/json" \
-d '{"table": {"name": "{table_name}"}}'- 记录返回的 table_id 到记忆
- 回复用户创建结果
### 7.5 GitHub MCP Server 配置
GitHub MCP Server 是独立于飞书插件的外部工具,需要单独配置:
```json
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_xxxxxxxxxxxx"
}
}
}
}GitHub MCP 提供的核心能力:
| 工具 | 能力 | 对应 Skill |
|---|---|---|
| PR 查看/创建/审查 | 获取 PR diff、提交审查评论 | code-pr-review |
| Issue 管理 | 创建/更新/关闭 Issue | code-issue-create |
| 代码搜索 | 在仓库中搜索代码 | code-search |
| Actions 触发 | 触发 CI/CD 工作流 | code-ci-trigger |
前置条件:确保本机已安装
ghCLI 并完成认证(gh auth login),或者直接使用 Personal Access Token。
7.6 工具能力全景矩阵
| 工具来源 | 工具 | 能力 | 状态 |
|---|---|---|---|
| feishu 插件 | feishu_doc | 文档读写 | ✅ 已可用 |
| feishu 插件 | feishu_wiki | 知识库读取 | ✅ 已可用 |
| feishu 插件 | feishu_drive | 云盘操作 | ✅ 已可用 |
| feishu 插件 | feishu_bitable | 多维表格操作(部分) | ⚠️ 不能创建子表格 |
| feishu 插件 | feishu_perm | 权限管理 | ✅ 已可用 |
| lark-mcp | 飞书全量 API | 日历、消息、完整多维表格 | 🔧 待配置 |
| GitHub MCP | PR/Issue/代码/CI | 代码管理全流程 | 🔧 待配置 |
| PostgreSQL MCP | SQL 查询 | 数据分析 | 🔧 待配置 |
| 自写 Skill | 各类 API 调用 | 按需扩展 | 📝 按需编写 |
8. 服务器部署方案
本机部署适合个人测试,团队正式使用建议部署到云服务器。
8.1 服务器配置推荐
| 场景 | CPU | 内存 | 磁盘 | 月成本(参考) |
|---|---|---|---|---|
| 纯 OpenClaw(30 人团队) | 2C | 4GB | 20GB SSD | ¥100-200 |
| OpenClaw + 向量数据库 | 4C | 8GB | 50GB SSD | ¥200-400 |
| OpenClaw + PostgreSQL + 向量数据库 | 4C | 8GB | 100GB SSD | ¥300-500 |
性能瓶颈不在服务器:OpenClaw 本身很轻量,不跑模型推理,只做消息路由 + Skill 编排 + 调外部 API。真正的延迟和成本在 LLM API 那边。建议先从 2C4G 开始,不够再升。
8.2 服务器部署步骤
# 1. 安装 Node.js(推荐用 nvm)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash
source ~/.bashrc
nvm install 24
nvm alias default 24
# 2. 安装 OpenClaw
npm install -g openclaw@latest
# 3. 运行 onboard(服务器部署的关键差异在下面标注)
openclaw onboard --install-daemon8.3 服务器 vs 本机的配置差异
| 配置项 | 本机(个人测试) | 服务器(团队使用) |
|---|---|---|
| Gateway 类型 | Local gateway | Local gateway |
| Gateway bind | Loopback (127.0.0.1) | LAN (0.0.0.0) 或 Tailnet |
| Tailscale exposure | Off | Serve(如果用 Tailscale 组网) |
| Group chat policy | Open | Allowlist(指定允许的群) |
| DM access | pairing(默认) | 建议配置 allowlist |
| Gateway auth | Password | Password(务必记录,团队成员连接需要) |
关键差异说明:
- Gateway bind 选 LAN:服务器上需要让飞书插件以外的客户端(如 Web UI、其他管理工具)也能连接。如果团队成员需要通过 Web UI 管理 Agent,必须绑定到
0.0.0.0 - Tailscale 方案:如果不想把 Gateway 端口暴露到公网,推荐所有团队成员安装 Tailscale,通过 VPN 互联。服务器上选 Tailnet 绑定 + Serve 暴露,安全且无需配置防火墙
- 安全加固:服务器部署后务必运行
openclaw security audit --deep,并配置防火墙只允许必要端口
8.4 服务器进程管理
--install-daemon 在 Linux 上会创建 systemd service:
# 查看服务状态
systemctl --user status openclaw-gateway
# 查看日志
journalctl --user -u openclaw-gateway -f
# 重启服务
systemctl --user restart openclaw-gateway
# 开机自启(通常 onboard 已自动配置)
systemctl --user enable openclaw-gateway
loginctl enable-linger $USER # 确保用户服务在未登录时也运行macOS 上使用 LaunchAgent:
# 查看服务状态
launchctl list | grep openclaw
# 查看日志
tail -f ~/.openclaw/logs/gateway.log
# 重启服务
launchctl unload ~/Library/LaunchAgents/ai.openclaw.gateway.plist
launchctl load ~/Library/LaunchAgents/ai.openclaw.gateway.plist9. 配置文件结构
onboard 完成后,OpenClaw 的文件结构:
~/.openclaw/
├── openclaw.json ← 主配置文件(Gateway、模型、插件、通道)
├── openclaw.json.bak ← 配置备份
├── workspace/ ← 工作空间(Skill、MCP 配置)
├── agents/
│ └── main/
│ └── sessions/ ← 会话存储
├── extensions/
│ └── feishu/ ← 飞书插件(onboard 时自动下载)
├── memory/ ← 记忆系统存储(markdown 文件)
└── logs/
└── gateway.log ← 运行日志duplicate plugin 警告:onboard 过程中可能出现
plugin feishu: duplicate plugin id detected警告,这是因为飞书插件同时存在于全局安装目录和 extensions 目录。不影响功能,可以忽略。如果想消除警告,检查~/.openclaw/openclaw.json中的plugins.entries是否有重复的 feishu 配置项,删掉多余的即可。
10. 常见问题排错
10.1 安装问题
| 问题 | 原因 | 解决方案 |
|---|---|---|
openclaw: command not found | Node 版本不对,openclaw 装在另一个版本下 | ls ~/.nvm/versions/node/*/bin/openclaw 找到正确版本,nvm use 切换 |
npm install -g 权限不足 | 全局安装需要权限 | 使用 sudo npm install -g openclaw 或配置 npm prefix |
| npm deprecated 警告一堆 | 依赖包版本警告 | 不影响使用,可忽略 |
| daemon 启动失败 | 端口被占用 | lsof -i :18789 检查端口,修改配置中的端口号 |
10.2 飞书连接问题
| 问题 | 原因 | 解决方案 |
|---|---|---|
API error: app do not have bot | 飞书应用未启用机器人功能 | 在开放平台「机器人」页面启用机器人 |
| 收到 pairing code 但无法对话 | 未批准配对 | 执行 openclaw pairing approve feishu <code> |
| 机器人无响应 | 权限不足 | 检查是否开通了 im:message:send_as_bot 和 im:message:receive |
| 收不到消息事件 | 应用未发布 | 在开放平台提交发布或添加测试用户 |
| WebSocket 连接失败 | App ID/Secret 错误 | 检查凭证是否正确 |
10.3 模型问题
| 问题 | 原因 | 解决方案 |
|---|---|---|
| LLM 调用超时 | API 网络不通 | 检查服务器是否能访问 LLM API(可能需要代理) |
| 回复质量差 | 模型选择不当 | 切换到更强的模型:openclaw config set model.default google/gemini-2.5-pro |
| Token 用量过高 | 对话上下文过长 | 调整 maxTokens 配置或定期清理会话 |
11. 工具与资源推荐
| 工具 | 用途 | 价格 | 链接 |
|---|---|---|---|
| OpenClaw | Agent 运行时 | 开源免费 | GitHub |
| nvm | Node.js 版本管理 | 开源免费 | GitHub |
| Cloudflare Tunnel | 内网穿透(Lark 国际版需要) | 免费 | 文档 |
| Tailscale | VPN 组网(团队远程访问) | 个人免费 / 团队 $6/用户/月 | 官网 |
| lark-mcp | 飞书 MCP Server(补充插件能力) | 开源免费 | npm |
| GitHub MCP Server | GitHub MCP Server | 开源免费 | GitHub |
下一篇: 37c 多维表格自动化 — 设计需求/缺陷/迭代多维表格 Schema,实现 Skill 自动创建和 CRUD 操作