360 Secure SkillHub
360 安全技能中心

Feishu Media Delivery

作为多模态Agent的最后一公里交付层,核心功能是按飞书正确协议可靠发送本地生成的图片、视频,避免协议错误。典型场景包括生成的jpg/png需发为飞书图片消息、mp4发为媒体消息、多模态Agent完成生成后的交付。输入为本地媒体文件及飞书目标open_id,输出为飞书成功响应;含 fallback策略,需配置飞书应用ID等环境变量。

zhy2015
zhy2015
热度 52.25
最近更新 2026-05-11 17:34:16
分类:自动化依赖:代码执行 / 第三方 API / 读写文件应用场景:自动化脚本 / 工作流

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add feishu-media-delivery
Metadata
name
feishu-media-delivery
description
Reliably deliver generated images and videos to Feishu/Lark users and chats. Use when an agent already has a local image/video result and must send it to Feishu without guessing protocol details. Handles Feishu image messages (upload -> image_key -> msg_type=image), Feishu video/media messages (upload -> file_key -> msg_type=media), and fallback delivery patterns for multimodal generation agents.

Feishu Media Delivery

Use this skill as the last-mile delivery layer for multimodal agents.

It does not generate content. It only makes sure already-generated files are sent to Feishu with the correct protocol.

What this skill is for

Use this skill when you already have a generated result and need to deliver it to a Feishu user/chat.

Typical cases:

  • A generated jpg/png must be sent as a real Feishu image message
  • A generated mp4 must be sent as a real Feishu media message
  • A multimodal agent finished generation and now needs reliable delivery
  • You want to avoid protocol mistakes like sending jpg/mp4 as the wrong message type

Hard rules

Images

For images, do not send the local file as plain text or guess a generic attachment format.

Correct flow:

  1. Upload image to Feishu IM resource API
  2. Get image_key
  3. Send message with msg_type=image

Use:

  • scripts/send-image.mjs

Videos

For mp4 videos, do not send them as file messages.

Correct flow:

  1. Upload mp4 to Feishu IM file API
  2. Get file_key
  3. Send message with msg_type=media

Use:

  • scripts/send-media.mjs

Required environment

The scripts expect:

  • FEISHU_APP_ID
  • FEISHU_APP_SECRET_PATH or default secret file at ~/.openclaw/secrets/feishu_app_secret

Default secret path:

  • ~/.openclaw/secrets/feishu_app_secret

Receive ID assumptions

The bundled scripts default to receive_id_type=open_id.

Use them directly when the target is a Feishu user open_id like:

  • ou_xxx

If you need group delivery later, extend the script to accept chat_id and switch receive_id_type.

Commands

Send image to a Feishu user

cd scripts
node send-image.mjs <open_id> /path/to/image.jpg

Example:

cd scripts
node send-image.mjs ou_xxx /tmp/result.jpg

Send mp4 video to a Feishu user

cd scripts
node send-media.mjs <open_id> /path/to/video.mp4 mp4 5000

Arguments:

  • arg1: target open_id
  • arg2: local mp4 path
  • arg3: file type, usually mp4
  • arg4: duration in milliseconds, optional but recommended

Example:

cd scripts
node send-media.mjs ou_xxx /tmp/result.mp4 mp4 5000

Output expectations

A successful send should return Feishu success payloads such as:

  • code: 0
  • msg: success

Do not assume transport success only from local script execution. Check the returned Feishu response.

Fallback policy

Image fallback

If real Feishu image sending fails, report that image delivery failed. Do not silently pretend the image was delivered.

Video fallback

If Feishu media sending fails, fallback to sending a direct link if one exists. State clearly that this is a fallback.

Recommended agent usage

For a multimodal content agent, use this skill after generation:

  • image result -> send-image.mjs
  • mp4 result -> send-media.mjs

This keeps protocol details out of the model prompt and reduces failure risk for weaker models.