OpenClaw + 飞书机器人:如何让 AI 助手发送图片

OpenClaw 的 AI 助手每次启动都会读取工作区里的 TOOLS.md 文件。这个文件是"本地笔记",用来记录环境相关的特殊配置和方法。所以解决方案很简单:把飞书发图的正确方法写进 TOOLS.md,AI 下次醒来读到就会了。

用 Apifox,节省研发团队的每一分钟

OpenClaw + 飞书机器人:如何让 AI 助手发送图片

免费使用 Apifox

相关推荐

最新文章

API

一体化协作平台

API 设计

API 文档

API 调试

自动化测试

API Mock

API Hub

立即体验 Apifox
目录

背景

OpenClaw 是一个开源的 AI 助手框架,支持飞书、Telegram、Discord 等多渠道接入。AI 助手可以通过内置的 message 工具发送文字消息,但在飞书上发送图片时遇到了问题——飞书那边收到的是文件路径,不是真正的图片。这不是一个需要你写代码解决的问题。你只需要告诉 AI 助手正确的方法,让它自己去执行。    

OpenClaw + 飞书机器人:如何让 AI 助手发送图片

               

问题

OpenClaw 的 message 工具在飞书上发图有 bug:

  • filePath 参数 → 飞书收到的是路径文本
  • media 参数 + 本地路径 → 失败
  • buffer 参数 + base64 → 数据太大AI 助手并不知道还有别的办法。

       

核心思路

OpenClaw 的 AI 助手每次启动都会读取工作区里的 TOOLS.md 文件。这个文件是"本地笔记",用来记录环境相关的特殊配置和方法。

   

所以解决方案很简单:把飞书发图的正确方法写进 TOOLS.md,AI 下次醒来读到就会了。

   

AI 助手有 exec 工具可以执行 shell 命令,而飞书发图的本质就是三个 curl 调用。只要 TOOLS.md 里写清楚了步骤,AI 自己就能组合执行。

   

操作方法

在 OpenClaw 工作区的 TOOLS.md 文件中,加入以下内容(直接在对话里发给 OpenClaw 就行了)

## 飞书发图片(重要!)

OpenClaw 的 `message` 工具目前不能直接在飞书发送本地图片。

**正确方法:用 exec 工具执行 curl 调飞书 API,分三步:**

### Step 1: 获取 tenant_access_token

APP_SECRET=$(python3 -c "import json; c=json.load(open('/root/.openclaw/openclaw.json')); print(c['channels']['feishu']['appSecret'])")
TOKEN=$(curl -s -X POST 'https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal' \
  -H 'Content-Type: application/json' \
  -d '{"app_id":"你的APP_ID","app_secret":"'$APP_SECRET'"}' \
  | python3 -c "import json,sys; print(json.load(sys.stdin)['tenant_access_token'])")

### Step 2: 上传图片获取 image_key

IMAGE_KEY=$(curl -s -X POST 'https://open.feishu.cn/open-apis/im/v1/images' \
  -H "Authorization: Bearer $TOKEN" \
  -F "image_type=message" \
  -F "image=@/path/to/image.png" \
  | python3 -c "import json,sys; print(json.load(sys.stdin)['data']['image_key'])")

### Step 3: 发送图片消息

curl -s -X POST 'https://open.feishu.cn/open-apis/im/v1/messages?receive_id_type=open_id' \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"receive_id":"收信人open_id","msg_type":"image","content":"{\"image_key\":\"'$IMAGE_KEY'\"}"}'

注意:
- 主人的 open_id: ou_xxxxxxxx
- App ID: cli_xxxxxxxx
- 支持格式: JPEG, PNG, WEBP, GIF, TIFF, BMP, ICO

把上面的内容写进 TOOLS.md,替换其中的 APP_ID、open_id 为你的实际值。

   

为什么这样就行了?

OpenClaw 的架构决定了这种方式是可行的:

  1. TOOLS.md 是 AI 的"备忘录" — 每次会话启动,AI 助手都会读取这个文件,了解环境特有的工具和方法
  2. AI 有 exec 工具 — 可以执行任意 shell 命令,包括 curl
  3. 飞书的凭据已经在配置文件里 — AI 可以从 openclaw.json 中读取 appSecret,不需要额外配置
  4. AI 能理解上下文 — 当用户说"发张图片给我",AI 读到 TOOLS.md 里的说明,就知道该用 curl 而不是 message 工具本质上,这是在用自然语言给 AI 写"文档"。AI 不需要你写代码、改配置,它只需要一段说明文字就能学会新技能。

     

效果配置完成后,当你对 AI 助手说:

"截一张Apifox官网首屏的图给我,高清的 "AI 助手会:
  1. 读到 TOOLS.md 里的飞书发图方法
  2. exec 工具执行 curl 获取 Token
  3. 上传图片拿到 image_key
  4. 发送图片消息整个过程对用户来说是透明的,你只需要说一句话,剩下的 AI 自己搞定。
OpenClaw + 飞书机器人:如何让 AI 助手发送图片

   

总结

传统思路:发现 bug → 改代码 → 重新部署 AI 助手思路:发现 bug → 在 TOOLS.md 里写个 workaround → AI 自己读懂执行

 

这就是 OpenClaw 的设计哲学:用自然语言配置 AI 的能力。TOOLS.md、SOUL.md、AGENTS.md 这些文件不是给人看的配置文件,而是给 AI 看的"说明书"。

OpenClaw 交流群

如果你也在折腾 OpenClaw,或者对 AI Agent、自动化工具感兴趣,欢迎加入以下交流群。一起交流使用经验、分享自动化玩法、讨论最新进展。

扫码加入 OpenClaw 交流群