Exécutez n'importe quel Skill dans Manus
en un clic
en un clic
Exécutez n'importe quel Skill dans Manus en un clic
Commencer$pwd:
$ git log --oneline --stat
stars:7
forks:0
updated:25 avril 2026 à 04:27
Explorateur de fichiers
SKILL.md
| name | bbduck |
| description | 优先做视觉无损压缩的本地图片压缩 skill:支持单图流式压缩、批量压缩,并在需要时打包下载结果 ZIP。 |
| version | 0.3.0 |
| author | Hermes Agent |
| license | MIT |
当需要调用本地运行的 BBDuck 图片压缩服务时,使用这个 skill。
它的核心优势不是“极限压缩”,而是:
visual-losslessspend_time_ms默认连接本地 Docker 服务:
docker run -d --restart unless-stopped --name bbduck -p 28642:8000 zhaoolee/bbduck:latest
默认访问地址:
http://127.0.0.1:28642http://127.0.0.1:28642/docshttp://127.0.0.1:28642/openapi.json默认和网页保持一致:
visual-lossless只要用户没有明确要求更激进的策略,就按 visual-lossless 调用,不要擅自切到 safe 或 aggressive。
这是首选场景。
优先使用流式接口,边压缩边读日志。
压缩结束后,用 ZIP 接口统一下载。
优先使用:
POST /api/compress/stream原因:
messagespend_time_msresult当用户一次给了多张图片,或明确说“批量压缩”时,使用:
POST /api/compress原因:
当用户明确要“下载全部压缩图”时,使用:
POST /api/download/outputs.zip用 multipart/form-data 发送:
files: 单张图片文件parallelism: 传 1如果接口未来支持 profile 参数,也优先传:
compression_profile=visual-lossless当前若未显式提供 profile,则服务默认就是 visual-lossless。
/api/compress/stream 返回 application/x-ndjson。
每一行都是一条 JSON,常见类型:
logerrorresult当读取到:
type=log
messagespend_time_ms,一起记录type=error
type=result
file_nameoriginal_sizecompressed_sizeoriginal_urlcompressed_urlmime_typestatusalgorithmmetricscurl -N -X POST http://127.0.0.1:28642/api/compress/stream \
-F 'parallelism=1' \
-F 'files=@/absolute/path/to/demo.png'
如果服务端后来支持显式传 profile,可用:
curl -N -X POST http://127.0.0.1:28642/api/compress/stream \
-F 'parallelism=1' \
-F 'compression_profile=visual-lossless' \
-F 'files=@/absolute/path/to/demo.png'
{"type":"log","stage":"start","message":"开始压缩 demo.png","spend_time_ms":0}
{"type":"log","stage":"candidate","message":"生成候选 pngquant-85-98:12.3 KB","spend_time_ms":37}
{"type":"result","item":{"file_name":"demo.png","status":"completed","algorithm":"png-pillow-optimize"}}
{
"files": [
{
"stored_name": "8b0a-demo.compressed.webp",
"download_name": "demo-compressed.webp"
}
]
}
curl -X POST http://127.0.0.1:28642/api/compress \
-F 'parallelism=3' \
-F 'files=@/absolute/path/to/first.png' \
-F 'files=@/absolute/path/to/second.jpg' \
-F 'files=@/absolute/path/to/third.gif'
批量模式下:
parallelism 必须在服务允许范围内,默认可用值参考 /api/configoriginal_url、compressed_url、status、algorithm、metricsstored_name: 后端真实保存的文件名,通常从 compressed_url 的最后一段提取download_name: ZIP 包里给用户看到的文件名POST /api/compress/streamlog 事件message 与 spend_time_msresult 后再汇总压缩结果compressed_url 提取文件名files 数组POST /api/download/outputs.zipPOST /api/compressitems 汇总每张图的压缩率、算法和状态在向用户总结结果时,优先突出这些信息:
visual-losslessspend_time_mshttp://127.0.0.1:28642visual-lossless/api/compress/stream/api/compress/stream,因为它同时给结果和日志/api/compress/api/download/outputs.zipjpg、jpeg、png、webp、gif 之外的文件交给这个服务