Skills 技能包
可被 AI Agent 直接调用的封装能力
两者在一条流水线上各管一段:ppt-asset-sourcing 负责把素材拿回来(找米),
draw-router 负责把描述变成图(下锅)。
draw-router
多通道图像生成执行器。把 Cloudflare / Agnes / DashScope 收进一条命令,按策略择优出图,失败自动降级,并对结果做质量门禁。
为什么需要它
单一图像通道会挂、会限流、会因模型先验把画面带偏。draw-router 把多个通道编排成一条带降级链的管线,让"出图"这件事对上层调用者变成一个稳定接口。
通道
| 通道 | 模型 | 免费额度 |
|---|---|---|
| Cloudflare SDXL | stable-diffusion-xl-base-1.0 | 10000 Neurons / 天 |
| Cloudflare Flux | flux-1-schnell | 10000 Neurons / 天 |
| Agnes AI | agnes-image-2.1-flash | 有限 |
| DashScope | qwen-image-3.0 | 付费 |
用法
# 基本
python skills/draw-router/scripts/draw-router.py "一只白鹭在雾中飞翔"
# 指定策略与比例
python skills/draw-router/scripts/draw-router.py "prompt" --profile cover --ratio 3:4
# 只用免费通道
python skills/draw-router/scripts/draw-router.py "prompt" --free-only
# 自检 / 统计
python skills/draw-router/scripts/draw-router.py --diagnose
python skills/draw-router/scripts/draw-router.py --stats
策略
| 策略 | 通道顺序 | 场景 |
|---|---|---|
balanced | CF-SDXL → CF-Flux → Agnes → DashScope | 默认 |
cover | CF-SDXL → Agnes → CF-Flux | 封面 |
figure | Agnes → CF-SDXL → CF-Flux | 人像 |
draft | CF-Flux → CF-SDXL → Agnes | 草稿 |
art | CF-SDXL → Agnes → CF-Flux | 艺术 |
realistic | Dreamshaper → CF-SDXL → Agnes | 写实 |
输出
stdout 末行输出结构化 JSON,便于上层解析:
{
"success": true,
"provider": "cloudflare-sdxl",
"model": "stable-diffusion-xl-base-1.0",
"file_path": "/path/to/output.png",
"file_size": 2048576,
"generation_time": 19.5
}
质量门禁
- 文件大小:不小于 20KB,拦住"200 但空图"的假成功
- 格式校验:检查文件头魔数,确认为有效图像
- 瞬时重试:单通道失败自动重试,再降级到下一通道
配置
密钥经 provider-catalog.json 注入,不入库:
{
"providers": {
"cloudflare": { "account_id": "...", "api_token": "..." },
"agnes": { "api_key": "..." },
"dashscope": { "api_key": "..." }
}
}
ppt-asset-sourcing
PPT 素材获取。先回答“去哪找”,再直接把找得到的拉回来:整理 31 个素材站的国内可达性与商用授权边界,并用一条命令批量抓取图片 / 图标 / 字体 / 配色。
为什么需要它
做 PPT 的时间往往不是花在排版上,而是花在“找一张能用的图”。这个 skill 把素材来源分成三层:渠道档案(去哪找)、授权分级(能不能用)、执行脚本(直接拿)。
能直接抓的四类
| 类别 | 走什么 | 授权 |
|---|---|---|
| 图片 | Pixabay API(需 key) / Pexels CDN 直链 | 免费商用免署名 |
| 图标 | IconPark(从 npm 组件包提取 SVG,62 个内置名) | Apache-2.0 |
| 字体 | GitHub Release / 猫啃网 OSS 直链(需 Referer) | 免费商用 |
| 配色 | 16 组经典色板(md + json) | 色值无版权 |
用法
# 先自检(key / 通道 / 输出目录)
python skills/ppt-asset-sourcing/scripts/ppt-asset-grab.py --diagnose
# 图片
python skills/ppt-asset-sourcing/scripts/ppt-asset-grab.py images --query agriculture --count 8
# 图标(也可 --names home,leaf,chart-pie 自定义)
python skills/ppt-asset-sourcing/scripts/ppt-asset-grab.py icons
# 字体 / 配色
python skills/ppt-asset-sourcing/scripts/ppt-asset-grab.py fonts --fonts github
python skills/ppt-asset-sourcing/scripts/ppt-asset-grab.py palettes
# 一次抓齐
python skills/ppt-asset-sourcing/scripts/ppt-asset-grab.py all --out "E:\目标目录"
设计约定
- 不硬编码密钥:Pixabay key 读环境变量
PIXABAY_API_KEY或provider-catalog.json - 质量门禁:每个产物校验体积 + 文件头魔数,不产生空文件
- 只抓可商用渠道:iconfont(登录墙 + 逐个看授权)、第一PPT(站方声明仅限学习)不在脚本范围,需要时手动取
链接失效的处理
字体与图标走上游 CDN,上游发版后直链会 404。已知两个变动点:
- GitHub 字体:版本号写在脚本的
GITHUB_FONTS里。失效时查api.github.com/repos/<owner>/<repo>/releases/latest拿新 tag 与 asset 名。注意同名资产的档位会变(霞鹜文楷 v1.510 有 Bold,v1.522 改成 Light/Medium/Regular)。 - 猫啃网:页面里的
oss.maoken.com/*.zip直链必须带Referer: https://www.maoken.com/,否则 OSS 防盗链返回 403。
与相邻技能的分工
- 本 skill:素材从哪来(不负责排版)
draw-router:把 prompt 变成图(不负责找素材)- 图上加精确文字、数据图表、审美风格统辖各有专责
更新于 2026-09 · Python 3.8+