用OpenClaw做飞书ai办公机器人(含本地ollama模型接入+自动安装skills+数据可视化)

用OpenClaw做飞书ai办公机器人(含本地ollama模型接入+自动安装skills+数据可视化)

执行git clone https://github.com/openclaw/openclaw克隆项目,执行cd openclaw进入项目

执行node --version看看node的版本是否大于等于22(没有node.js需自行安装),再执行npm install -g pnpm安装作为包管理器,并执行pnpm install安装依赖

首次执行pnpm ui:build构建 Web UI(会先安装 ui/ 目录的依赖)

执行pnpm build构建主程序

执行pnpm openclaw onboard --install-daemon运行配置向导(安装守护进程),完成初始化

按键盘右箭头选择Yes,同样Yes

任选一个模型提供商都行,没有对应的提供商的密钥可以跳过,如果是本地模型选vLLM(需用vLLM框架启动模型,有性能优势,但原生vLLM仅完全支持Linux的cuda)、Custom Provider(可以连接任何 OpenAI 或 Anthropic 兼容的端点,包括托管提供商和自托管端点)和 LiteLLM (最通用,能通过中间层转换支持任意后端,既支持云端也支持本地模型,也包括Ollama、vLLM、LM Studio、llama.cpp 等本地后端)

Custom Provider最方便,适合日常使用,支持范围:

  • ✅ Ollama(自动检测,无需配置)
  • ✅ vLLM(localhost:8000/v1
  • ✅ LM Studio(localhost:1234/v1
  • ✅ llama.cpp(localhost:8080/v1,需启动 ./llama-server
  • ✅ 自封装 API:任何你自己用 Python + Transformers 封装的 OpenAI-compatible 服务
  • ✅ LiteLLM 代理
  • ✅ Text Generation WebUI

a)使用本地模型及报错处理

Endpoint ID随便填

如果提示alias被占用可以不填Model alias或可到用户目录的隐藏目录.openclaw的openclaw.json删除类似红色框的部分

卡了很久,疑似报错

新开终端,在openclaw项目文件夹位置输入pnpm openclaw logs --follow,可发现关键报错原因是上下文窗口太小(这是 OpenClaw 2026.2 版本的硬性要求:contextWindow 必须 ≥ 16000,但 onboard 向导默认只设 4096)

先输入/exit退出

到用户目录的隐藏目录.openclaw的openclaw.json对本地模型的contextWindow设置至少16000

输入pnpm openclaw gateway restart重启

终端执行pnpm openclaw tui,输入问题,成功回答

b)使用云端模型

没有账号的话进行注册,密码需要数字和英文大小写

验证激活

按需安装对接软件的插件,不需要这些就选skip跳过

c)连接飞书

如果需要飞书,可以下载插件

打开https://open.feishu.cn/app,登录后点击创建企业自建应用

简单填写你的应用名称和应用描述,点击创建

点击凭证与基础信息,复制你的APP ID和APP Secret

点击创建版本,简单填写应用版本号和更新说明,点击保存及确认发布

忘记复制的话,回到凭证与基础信息,把你的APP ID和APP Secret粘贴到openclaw

选择中国版飞书

按需选择群聊响应策略

选项效果适用场景
Allowlist只在指定群聊响应推荐,安全可控,避免机器人到处乱回
Open所有群聊都响应(需@)团队小、群少,希望机器人随时待命
Disabled完全不在群聊响应仅私聊使用

如果担心机器人乱回答选 Allowlist,后续在配置文件中指定允许响应的群 ID,防止误触。

按需安装skills,需要的话选择安装方式,不需要就skip for now

Hooks 是可选的自动化触发器,建议先 Skip,后续按需开启

Hook作用适用场景
boot-md启动时自动加载指定 Markdown 文件作为系统提示每次启动都要加载固定指令集
bootstrap-extra-files启动时预加载额外文件到上下文需要预置知识库文件
command-logger自动记录所有命令到日志需要审计追踪操作历史
session-memory切换会话时自动保存/恢复上下文需要持久化记忆,重启后记得之前聊过什么

建议: 刚入门先 Skip for now,不影响核心功能。等熟悉后再根据实际需求开启,尤其是 session-memory 对长期对话体验提升明显。

Skip for now跳过多个步骤后

选择tui

选择tui

也可以打开http://127.0.0.1:18789/chat?session=main,更方便修改配置

后续直接启动可以选择pnpm openclaw dashboard --no-open

回到飞书,点击应用能力,再点击机器人中的“添加”按钮

点击创建版本

点击订阅方式的编辑按钮,选择长连接,然后点击添加事件

依次搜索四个事件并添加:1)用户进入与机器人的会话 2)解散群 3)机器人进群 4)接收消息

点击创建版本

简单填写你的应用版本号、更新说明和应用能力,点击发布

打开飞书,点击应用

打开测试,如果出现以下情况,到openclaw项目的终端执行pnpm openclaw pairing approve feishu 对应的配对码

激活完成后,继续测试飞书对话

在对话中切换模型

d)安装能发现skills的skills

执行npx skills add https://github.com/vercel-labs/skills --skill find-skills

选择openclaw

全局安装,采用符号链接,选择yes

继续yes

可以打开网站或命令行pnpm openclaw skills list验证find-skills是否安装

Mac启动前最好设置权限

执行调查任务,发现似乎没加载find-skills工具

让它自己分析找不到找不到的原因并自行加载find-skills

e)自动安装浏览器操作、数据可视化、高德地图的skills

切换模型

自动安装skills并执行playwright-skill打开浏览器

成功获取数据

创建访问链接成功

查看链接以及下载csv,看起来地图过于简化了

让它继续优化

打开下载文件和地图链接,看起来有所进步,但仍有不足,如果需要更准更美观的话建议换更智能的ai模型或或继续提要求或换工具

创作不易,禁止抄袭,转载请附上原文链接及标题

Read more

服务端之NestJS接口响应message编写规范详解、写给前后端都舒服的接口、API提示信息标准化

服务端之NestJS接口响应message编写规范详解、写给前后端都舒服的接口、API提示信息标准化

MENU * 前言 * 定义 * 提示信息设计原则 * 提示信息风格分类 * 提示信息模板化设计 * 国际化与多语言支持 * 最佳实践 * 参考示例(NestJS响应) * 总结 * 统一风格示例清单推荐 * API响应message清单(可直接使用) 前言 在现代后端开发中,接口响应不仅仅是数据的传递,还承担着向前端或用户传递操作状态和结果的功能。一个规范、统一的message字段设计,可以显著提升系统的可维护性、前端开发效率和用户体验。 定义 响应结构示例(NestJS风格) 各字段作用 提示信息设计原则 简洁明了 1、不宜过长,一般3~12个汉字。 2、避免含糊不清的词,如“完成了”、“OK”等。 统一风格 1、同一项目接口建议使用统一动词+状态组合,例如:获取数据成功、数据加载完成。 上下文清晰 1、提示信息应体现操作对象或类型,如“用户列表获取成功”

cann-recipes-train 仓库深度解读:昇腾平台下 DeepSeek-R1 与 Qwen2.5 强化学习训练优化实践

cann-recipes-train 仓库深度解读:昇腾平台下 DeepSeek-R1 与 Qwen2.5 强化学习训练优化实践

cann-recipes-train 仓库深度解读:昇腾平台下 DeepSeek-R1 与 Qwen2.5 强化学习训练优化实践 前言 自 DeepSeek-R1 发布以来,大模型的强化学习(RL)训练掀起了新一轮的技术热潮。各大厂商与开源社区纷纷投入实践,持续探索更高效的 RL 训练体系。本文将基于 cann-recipes-train 仓库,解读两个实践样例:DeepSeek-R1 的 RL 训练优化实践样例、基于 verl 框架的 Qwen2.5 强化学习实践样例 cann-recipes-train 仓库全景解析:昇腾训练优化的"实战底座" 大模型训练拼效率的阶段,CANN 直接帮我们搞定了底层异构硬件适配、资源调度这些麻烦事,不用再从零研究 GPU 和 NPU 怎么协同,现有模型代码也不用大改就能对接,训

libwebkit2gtk-4.1-0安装依赖处理:Ubuntu 22.04场景解析

libwebkit2gtk-4.1-0 安装踩坑实录:Ubuntu 22.04 下的依赖破局之道 你有没有遇到过这样的场景?在一台干净的 Ubuntu 22.04 系统上,想装一个基于 WebKitGTK 的应用,结果运行 apt install 时突然弹出一串红色错误: The following packages have unmet dependencies: libwebkit2gtk-4.1-0 : Depends: libjavascriptcoregtk-4.1-0 (= 2.36.3-0ubuntu0.22.04.1) but it is not going to be installed 然后无论你怎么 apt --fix-broken install 、 apt

前端CI/CD流程:自动化部署的正确打开方式

前端CI/CD流程:自动化部署的正确打开方式 毒舌时刻 CI/CD?听起来就像是前端工程师为了显得自己很专业而特意搞的一套复杂流程。你以为配置了CI/CD就能解决所有部署问题?别做梦了!到时候你会发现,CI/CD配置出错的概率比手动部署还高。 你以为随便找个CI/CD工具就能用?别天真了!不同的工具配置方式不同,坑也不同。比如Jenkins的配置文件就像是天书,GitLab CI的YAML语法也能让你崩溃。 为什么你需要这个 1. 自动化部署:CI/CD可以自动完成代码测试、构建和部署,减少手动操作,提高部署效率。 2. 减少人为错误:自动化部署可以避免手动部署时的人为错误,提高部署的可靠性。 3. 快速反馈:CI/CD可以在代码提交后立即进行测试和构建,及时发现问题,提供快速反馈。 4. 持续集成:CI/CD可以确保代码的持续集成,避免代码冲突和集成问题。 5. 环境一致性:CI/CD可以确保不同环境的配置一致,避免环境差异导致的问题。 反面教材