OpenClaw+飞书+通义千问 AI助手搭建

OpenClaw+飞书+通义千问 AI助手搭建

OpenClaw + 飞书 + 通义千问:从踩坑到跑通的私有 AI 助手搭建全记录

OpenClaw 是一个开源的 AI 网关,支持对接多种聊天平台和大模型。本文记录了在资源受限的 CentOS 7 服务器上部署失败后,转向 Mac 本地部署,最终成功打通飞书机器人 + 通义千问的完整过程。涉及 WebSocket 长连接、OpenAI 兼容 API 适配、多层配置文件调试等实际工程问题,附踩坑记录和成本分析。

一、最终架构

先看最终跑通的架构,后面再讲怎么一步步走到这里的:

二、部署方案的抉择:服务器 vs 本地

最初的方案是部署到云服务器,实现 7×24 小时运行。服务器配置:CentOS 7,1.8G 内存,单核 CPU。

实际部署中遇到了三个关键问题:

服务器部署的最低要求

资源 最低要求 推荐配置 我的服务器 结果
内存 2G 4G+ 1.8G OOM
系统 Ubuntu 20.04+ / CentOS 8+ Ubuntu 22.04 CentOS 7 glibc 太老
Node.js 18+ 20 LTS 需手动安装 勉强可以
网络 能访问飞书 API - 国内服务器 OK

三、完整搭建流程

下面是最终跑通的完整流程,按顺序来不会出错:

3.1 安装 OpenClaw
bash 复制代码
# 确认 Node.js 版本(需要 18+)
node -v

# 全局安装 OpenClaw
npm install -g openclaw@latest

# 验证
openclaw --version

# 初始化(选择 local 模式)
openclaw onboard

# 启用飞书插件
openclaw plugins enable feishu
3.2 飞书应用配置

登录飞书开放平台,创建企业自建应用,然后:

① 配置权限 --- 进入「权限管理」→「批量开通」,粘贴:

json 复制代码
{
  "scopes": {
    "tenant": [
      "im:chat.access_event.bot_p2p_chat:read",
      "im:chat.members:bot_access",
      "im:message",
      "im:message.group_at_msg:readonly",
      "im:message.p2p_msg:readonly",
      "im:message:readonly",
      "im:message:send_as_bot",
      "im:resource",
      "contact:user.employee_id:readonly",
      "event:ip_list"
    ],
    "user": [
      "im:chat.access_event.bot_p2p_chat:read"
    ]
  }
}

② 启用机器人 --- 「应用能力」→「机器人」→ 启用

③ 事件订阅(⚠️ 这步要在 Gateway 启动之后做):

  • 「事件与回调」→ 订阅方式选「使用长连接接收事件」
  • 添加事件:im.message.receive_v1

④ 发布应用 --- 创建版本 → 提交审核 → 等待通过

3.3 OpenClaw 配置(最容易出错的部分)

需要修改两个配置文件,缺一不可:

文件一:~/.openclaw/openclaw.json(全局配置,关键字段)

json 复制代码
{
  "agents": {
    "defaults": {
      "model": "openai/qwen-turbo"
    }
  },
  "channels": {
    "feishu": {
      "enabled": true,
      "domain": "feishu",
      "connectionMode": "websocket",
      "dmPolicy": "open",
      "allowFrom": ["*"],
      "accounts": {
        "default": {
          "appId": "cli_xxxxxxxxxx",
          "appSecret": "your-app-secret",
          "botName": "AI Assistant"
        }
      }
    }
  },
  "models": {
    "providers": {
      "openai": {
        "api": "openai-completions",
        "baseUrl": "https://dashscope.aliyuncs.com/compatible-mode/v1",
        "apiKey": "sk-your-dashscope-key",
        "models": [{
          "id": "qwen-turbo",
          "name": "Qwen Turbo",
          "reasoning": false,
          "input": ["text"],
          "cost": { "input": 0, "output": 0 },
          "contextWindow": 131072,
          "maxTokens": 8192
        }]
      }
    }
  }
}

文件二:~/.openclaw/agents/main/agent/models.json(Agent 模型配置)

json 复制代码
{
  "providers": {
    "openai": {
      "api": "openai-completions",
      "baseUrl": "https://dashscope.aliyuncs.com/compatible-mode/v1",
      "apiKey": "sk-your-dashscope-key",
      "models": [{
        "id": "qwen-turbo",
        "name": "Qwen Turbo",
        "reasoning": false,
        "input": ["text"],
        "cost": { "input": 0, "output": 0 },
        "contextWindow": 131072,
        "maxTokens": 8192
      }]
    }
  }
}
3.4 启动
bash 复制代码
export OPENAI_API_KEY="sk-your-dashscope-key"
export OPENAI_BASE_URL="https://dashscope.aliyuncs.com/compatible-mode/v1"
openclaw gateway

看到以下输出就说明成功了:

text 复制代码
[gateway] agent model: openai/qwen-turbo        ← 模型正确
[feishu] feishu[default]: WebSocket client started
[info]: [ '[ws]', 'ws client ready' ]            ← 飞书连接成功

四、踩坑全记录

按时间顺序,把这次搭建过程中遇到的所有坑都列出来:

详细的问题和解决方案:

# 问题现象 根因 解决方案
1 npm install 进程被杀 服务器内存 1.8G 不够 加 swap 或换大内存机器,最终选择本地部署
2 Docker build 服务器死机 构建过程吃光内存+swap 放弃 Docker 方案
3 Node 模块报 glibc 错误 CentOS 7 glibc 2.17 太老 换系统或本地部署
4 channels add 后凭证丢失 CLI 持久化 bug 手动编辑 ~/.openclaw/openclaw.json
5 发消息无反应,日志无记录 没添加 im.message.receive_v1 飞书后台「事件与回调」添加该事件
6 报 Anthropic API key 错误 没设置默认模型,fallback 到 Claude 设置 agents.defaults.model: "openai/qwen-turbo"
7 报 api: undefined 错误 models 配置缺少 api 字段 添加 "api": "openai-completions"
8 Config invalid 启动失败 api 值写了 "openai" 改为 "openai-completions"(有效值列表见下方)

api 字段的有效值:

text 复制代码
openai-completions      ← 通义千问/DashScope 用这个
openai-responses
anthropic-messages
google-generative-ai
ollama                  ← 本地 Ollama 用这个
bedrock-converse-stream
github-copilot

五、Token 成本分析:别被"免费"骗了

这是很多人忽略的问题。OpenClaw 作为 AI 网关,每次对话都会消耗大量 Token,远超你的想象。

为什么 Token 消耗这么大?

OpenClaw 不是简单的消息转发。每次用户发消息,它会把系统提示词、工具定义、历史对话上下文全部打包发给大模型。一条"你好"可能就消耗 5000+ tokens。随着对话轮次增加,上下文越来越长,Token 消耗指数级增长。

⚠️ 成本警告

如果你用的是 Claude 4.6 或 GPT-5 这类贵的模型,一个活跃用户一天聊 100 轮,月成本可能超过 ¥500。通义千问 qwen-turbo 是目前性价比最高的选择,几乎可以忽略成本。

建议:先用 qwen-turbo 测试,确认需求后再考虑升级模型。

控制成本的几个建议
策略 做法 效果
选便宜的模型 qwen-turbo 而不是 qwen3.5-max 成本降低 20 倍
限制上下文长度 OpenClaw 的 compaction 模式设为 safeguard 自动压缩过长的对话历史
关闭不需要的插件 禁用 feishu_doc、feishu_wiki 等工具插件 减少工具定义的 Token 开销
设置用户限流 用 dmPolicy: "pairing" 控制访问 防止滥用
监控用量 定期查看 DashScope 控制台的用量统计 及时发现异常消耗

六、专业建议

6.1 部署方案选择
6.2 安全建议
  • 不要用 open 策略上生产dmPolicy: "open" 配合 allowFrom: ["*"] 意味着任何人都能和你的机器人聊天,消耗你的 API 额度。生产环境用 pairingallowlist
  • API Key 不要硬编码:用环境变量传入,不要写在配置文件里提交到 Git
  • 定期轮换 App Secret:飞书 App Secret 泄露后要立即在开放平台重置
  • 监控 API 用量:在 DashScope 控制台设置用量告警,防止被刷
6.3 稳定性建议
  • Mac 本地用 launchd 设置开机自启:防止重启后忘记启动 Gateway
  • 写启动脚本:把环境变量和启动命令封装成脚本,一键启动/停止/查日志
  • 日志监控 :定期检查 /tmp/openclaw/ 下的日志,关注错误信息
  • Gateway 健康检查 :WebSocket 连接可能断开,需要定期确认 ws client ready 状态
6.4 模型选择建议
场景 推荐模型 理由
日常闲聊 / 简单问答 qwen-turbo 便宜、快、够用
代码辅助 / 复杂推理 qwen3.5-turbo 能力更强,性价比高
专业写作 / 高质量输出 qwen3.5-max 最强能力,但贵
隐私敏感场景 本地 Ollama (Qwen3/DeepSeek-R1) 数据不出本机
不差钱 Claude 4.6 / GPT-5 全球顶级模型

七、总结

回顾整个过程,最大的感受是:OpenClaw 的设计理念很好,但对国内用户不够友好。默认配置全部面向 Anthropic Claude,用国产模型需要手动改好几个配置文件,而且文档里没有明确说明哪些字段是必填的。

但一旦跑通了,体验确实不错:

  • 飞书 WebSocket 长连接,不需要公网 IP,NAT 后面也能用
  • 通义千问 qwen-turbo 几乎免费,日常使用月成本不到 ¥10
  • 支持流式输出,回复速度很快
  • 支持多 Agent、群聊、工具调用等高级功能

如果你也想给团队搞一个飞书 AI 助手,希望这篇踩坑记录能帮你省下半天时间。

提醒:部署前务必确认服务器资源是否满足最低要求(内存 ≥ 2G,系统 ≥ CentOS 8 / Ubuntu 20.04),避免在资源不足的环境上反复折腾。


原文链接: [OpenClaw+飞书+通义千问 AI助手搭建](www.bthlt.com/note/369366... AI助手搭建) 作者: 王梓 | 葫芦的运维日志

相关推荐
IguoChan2 天前
2. nano-vllm:Continuous Batching
aiops
王小酱5 天前
Everything Claude Code 文档
openai·ai编程·aiops
IguoChan6 天前
1. nano-vllm:KV Cache、PagedAttention和nano-vllm的实现
aiops
王小酱7 天前
Claude Code 创始人 Boris 揭秘:团队 10 倍效率技巧
openai·ai编程·aiops
王小酱7 天前
结合OpenSpec 与 Everything-Claude-Code (ECC) 的构建团队工作流程
openai·ai编程·aiops
JohnYan7 天前
工作笔记-CodeBuddy应用探索
javascript·ai编程·aiops
王小酱8 天前
Everything Claude Code 完全长篇指南
openai·ai编程·aiops
王小酱8 天前
Everything Claude Code 速查指南
openai·ai编程·aiops
王小酱10 天前
Claude Code 构建完全指南:十大核心功能深度解析
openai·ai编程·aiops