Install
openclaw skills install @zhaobod1/huo15-claw-butler-file-deliveryDeliver files (report, PDF, image, spreadsheet, archive, code) to 龙虾管家 client via file.push node, avoiding failed WebChat file sends.
openclaw skills install @zhaobod1/huo15-claw-butler-file-delivery龙虾管家(Claw Butler)客户端通过 WebChat 通道连接。WebChat 是 OpenClaw 的内部通道,不支持出站文件投递 —— 你若想用普通消息附带文件,会得到 Delivering to WebChat is not supported / 客户端只看到 Message failed,或文件退化成一个打不开的链接。
正确做法:用客户端的 file.push node 能力把文件推过去。 客户端收到后会自动内联预览(图片 / PDF / Markdown / 代码 / 音视频),并让用户一键保存到设备。
用 nodes 工具,action: "invoke",命令 file.push:
nodes(
action="invoke",
node="<目标客户端,单设备可用 auto>",
invokeCommand="file.push",
invokeParamsJson="{...见下...}"
)
invokeParamsJson 是一段 JSON 字符串,字段:
| 字段 | 说明 |
|---|---|
fileName | 文件名(带扩展名,决定预览类型)。必填。 |
mimeType | MIME 类型,如 application/pdf、image/png、text/markdown。建议填。 |
contentBase64 | 小文件(≤ ~48MB):文件字节的 base64。 |
url | 大文件:先把文件传到可访问地址(公司 OSS 等),再推 HTTP(S) URL,客户端自取。 |
contentBase64 与 url 二选一:小文件走 base64(不依赖外网),大文件走 url(避免一次性塞爆连接)。
小文件(内联 base64):
nodes(action="invoke", node="auto", invokeCommand="file.push",
invokeParamsJson="{\"fileName\":\"周报.pdf\",\"mimeType\":\"application/pdf\",\"contentBase64\":\"JVBERi0xLjQ...\"}")
大文件(OSS 中转):
nodes(action="invoke", node="auto", invokeCommand="file.push",
invokeParamsJson="{\"fileName\":\"数据集.zip\",\"mimeType\":\"application/zip\",\"url\":\"https://huo15-odoo.oss-cn-qingdao.aliyuncs.com/exports/数据集.zip\"}")
成功返回 { ok: true, payload: { received: true, fileName } },用户端会弹出预览。
/home/...、media://...)直接当链接发给用户 —— 客户端拿不到,必死链。改用 file.push:小文件 base64、大文件先传 OSS 再推 url。url 模式;contentBase64 仅用于小文件。