核心用法
feishu-file-send 技能封装了飞书消息API的文件发送能力,通过统一的 message() 接口实现多类型文件传输。支持图片(PNG/JPG)、音频(WAV/MP3)、文档(PDF/Word/Excel)及任意二进制文件。
标准调用模式:
message(action="send", channel="feishu", media="/absolute/path/to/file.ext", caption="描述文本")
路径参数提供三个别名:media、file_path、path,确保向后兼容。caption 参数可选,用于添加文件说明。
显著优点
1. 企业级通道稳定性:依托飞书官方IM API,消息到达率高,支持已读回执与消息审计
2. 格式全覆盖:不限制文件扩展名,通过MIME类型自动识别,单技能满足全场景文件传输需求
3. 安全沙箱机制:强制要求文件位于 ~/.openclaw/workspace/ 目录,阻断 /tmp/ 等临时路径,防范路径遍历攻击(CVE-2026-26321)
4. 路径参数防呆设计:三重参数别名+显式错误提示,降低开发者误用 message 参数导致发送失败的风险
潜在缺点与局限性
- 路径硬约束:必须先将文件复制到workspace,增加I/O开销,不适合流式直发场景
- 单文件限制:未暴露飞书分片上传接口,超大文件(>100MB)可能触发API限流
- 无进度回调:发送过程为同步阻塞,无法获取上传进度百分比
- caption长度限制:受飞书消息体限制,描述文本过长会被截断
适合人群
- 企业自动化办公开发者(RPA/运维脚本)
- 需要将本地生成报告(PDF/Excel)自动推送至飞书群组的场景
- 语音转写、会议纪要等AI工作流的最终消息投递环节
常规风险
- 路径绕过风险:虽有目录白名单,但依赖调用方自觉遵守,恶意代码仍可通过
../../../尝试逃逸(需结合底层CVE-2026-26321防护) - 敏感文件残留:workspace为共享目录,多任务并发时可能泄露临时文件,建议发送后主动清理
- API凭证暴露:channel参数隐含飞书bot token,需确保运行环境隔离,避免日志打印完整message对象