用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

4.2_WEB——前端语言三剑客(HTML、JS、CSS)

前言:本文只对三种前端常用的编辑于言 HTML、JS、CSS 的语法做最基础的描述。 一.HTML(Hyper Text Markup Language) 1.概念 * HTML的全称为超文本标记语言,是一种标记语言。它包括一系列标签,通过这些标签可以将网络上的文档格式统一,使分散的Internet资源连接为一个逻辑整体。 * 超文本是一种组织信息的方式,它通过超级链接方法将文本中的文字、图表与其他信息媒体相关联。这些相互关联的信息媒体可能在同一文本中,也可能是其他文件,或是地理位置相距遥远的某台计算机上的文件。 * HTML是一种基础技术,常与CSS、JavaScript一起被众多网站用于设计网页、网页应用程序以及移动应用程序的用户界面 。网页浏览器可以读取HTML文件,并将其渲染成可视化网页。HTML描述了一个网站的结构语义随着线索的呈现,使之成为一种标记语言而非编程语言。 2.特点 超文本标记语言文档制作不是很复杂,但功能强大,支持不同数据格式的文件镶入,这也是万维网(WWW)盛行的原因之一,其主要特点如下: 1. 简易性: 2. 超文本标记语言版本升级采

Android WebRTC推流入门指南:从零搭建低延迟直播方案

快速体验 在开始今天关于 Android WebRTC推流入门指南:从零搭建低延迟直播方案 的探讨之前,我想先分享一个最近让我觉得很有意思的全栈技术挑战。 我们常说 AI 是未来,但作为开发者,如何将大模型(LLM)真正落地为一个低延迟、可交互的实时系统,而不仅仅是调个 API? 这里有一个非常硬核的动手实验:基于火山引擎豆包大模型,从零搭建一个实时语音通话应用。它不是简单的问答,而是需要你亲手打通 ASR(语音识别)→ LLM(大脑思考)→ TTS(语音合成)的完整 WebSocket 链路。对于想要掌握 AI 原生应用架构的同学来说,这是个绝佳的练手项目。 从0到1构建生产级别应用,脱离Demo,点击打开 从0打造个人豆包实时通话AI动手实验 Android WebRTC推流入门指南:从零搭建低延迟直播方案 移动端推流的现实挑战 在移动端实现高质量推流,开发者常遇到三个"拦路虎": * 网络波动:地铁、

Nuxt 4 + WebAssembly 实战:从零搭建媲美 TinyPNG 的浏览器端图片压缩工具

Nuxt 4 + WebAssembly 实战:从零搭建媲美 TinyPNG 的浏览器端图片压缩工具

前言 你有没有想过,TinyPNG 把你的图片压小了 70%,它到底做了什么?答案是:JPEG 用的 MozJPEG 编码器,PNG 用的是有损量化(把 1600 万色降到 256 色)。这些算法本身是开源的,而且都已经有了 WebAssembly 移植版。 换句话说,你完全可以在浏览器里跑跟 TinyPNG 一样的压缩算法,不需要任何服务端。 我最近在做 PixelSwift,就是基于这个思路实现的纯前端图片工具。本文是系列第一篇,完整走一遍图片压缩功能的技术实现,从 Vite 配置 WASM 到 Web Worker 通信到三种格式的编码引擎。 一、整体架构设计 1.1 技术栈 层技术选型理由框架Nuxt 4 + Vue 3SSR 做

IDEA/WebStorm 切换分支(超简单)

IDEA/WebStorm 切换分支(超简单)

IDEA/WebStorm 切换分支 * 1、git命令方式切换分支 * 1.1、 切换至本地已`存在`的分支A * 1.2、 切换至本地`不存在`的新分支A * 2、idea/webstorm 右键项目 切换分支 * 3、idea/webstorm 右下角状态栏 切换分支 * 4、idea/webstorm git面板 切换分支 1、git命令方式切换分支 1.1、 切换至本地已存在的分支A git checkout A 1.2、 切换至本地不存在的新分支A * -b表示创建并切换分支 git checkout -b A 2、idea/webstorm 右键项目