贴图 / 多图推送
贴图 / 多图推送一条龙 —— 构思→生图→图片消息群发,九宫格自动排布、多图打包。
套件说明 · 本 skill 属 aws-wechat-article-* 一条龙套件(共 9 个 slug,入口 aws-wechat-article-main)。跨 skill 的相对引用依赖同一 skills/ 目录,建议一并 clawhub install 全套。源码:https://github.com/aiworkskills/wechat-article-skills
能力披露(Capabilities)
本 skill 编排贴图与多图推送,调用同套件的 image_create.py(images)生图;可选调用 publish.py 发布。会把图片 prompt 发给外部图像 API;若走发布路径,会把图片作为 POST body 上传到微信 API。 具体行为:
- 凭证读取:
aws.env 的 IMAGE_MODEL_API_KEY;走发布时额外读取 WECHAT_{N}_APPID / WECHAT_{N}_APPSECRET
- 凭证外发:
IMAGE_MODEL_API_KEY 以 Authorization: Bearer 头发送到 image_model.base_url 外部端点;WECHAT_{N}_APPID/APPSECRET 用于换 access_token 后调用微信 API
- 内容外发:图片 prompt 发给图像 API;图片文件(PNG/WEBP)发给微信
material/add_material / draft/add
- 文件读:仓库内
.aws-article/config.yaml、本篇 article.yaml、imgs/prompts/*.md
- 文件写:本篇
imgs/*.{png,webp}、imgs/outline.md、article.yaml 状态字段
- shell:
python3 {baseDir}/../aws-wechat-article-images/scripts/image_create.py;可选 python3 {baseDir}/../aws-wechat-article-publish/scripts/publish.py
配套 skill(informational)
本 skill 属 aws-wechat-article-* 一条龙公众号套件的贴图/多图推送专用分支(入口 aws-wechat-article-main)。工作流中的生图步骤与发布步骤依赖同套件其他 slug 提供的能力。
- 至少需要同时安装
aws-wechat-article-images(用于生图);若要走发布链路,建议再装 aws-wechat-article-publish。
- 套件完整装齐到同一
skills/ 根目录时,跨 skill 引用都能读到。
- 单独安装本 skill 时,生图/发布相关步骤会在执行阶段遇到缺失文件;本 skill 内的选题规划、图序、风格约定等本地步骤仍可用。
完整 9 slug 清单见 源码仓库。
路由
长文图文(标题+正文+插图+后台发文)→ aws-wechat-article-main;长文内单篇插图 → aws-wechat-article-images。
创作以图片为主的公众号内容:多张图片 + 每张配文,统一风格。
产出目标(先看这个)
- 输入:主题 / 选题卡 / 用户素材图(任选其一)
- 输出:
imgs/(outline + prompts + 图片)与可发布的多图内容
- 风格:整组统一(避免每张图风格漂移)
配置检查 ⛔
任何操作执行前,必须按 首次引导 执行其中的 「检测顺序」。检测通过后才能进行以下操作(或用户明确书面确认「本次不检查」):
从选题到发布的前置规则见 aws-wechat-article-main/SKILL.md;本 skill 描述贴图子流程。
图片模型:image_model(provider、base_url、model 等)在 config.yaml;IMAGE_MODEL_API_KEY 在 aws.env。键名对照 {baseDir}/../aws-wechat-article-main/references/env.example.yaml(与 image_create.py 一致)。
交互约定:须遵守 main 的智能体行为约束——未通过环境校验且未获用户明确「本次例外」时,不得假装已走专用生图 API。
脚本目录
Agent 执行:确定本 SKILL.md 所在目录为 {baseDir}。
| 脚本 | 路径(相对仓库 skills/) | 用途 |
|---|
image_create.py | aws-wechat-article-images/scripts/image_create.py | 专用生图 API:读取 .aws-article/config.yaml 的 image_model + 根目录 aws.env 的 IMAGE_MODEL_API_KEY |
publish.py | {baseDir}/../aws-wechat-article-publish/scripts/publish.py | 发布(与 publish skill 一致) |
工作流
贴图进度:
- [ ] 第1步:环境检查 + 本篇约束(合并 YAML)
- [ ] 第2步:确定选题
- [ ] 第3步:确定风格
- [ ] 第4步:规划图序
- [ ] 第5步:展示方案并等待确认 ⛔
- [ ] 第6步:生成图片(**脚本失败时**见同节「调用失败」分支)
- [ ] 第7步:审稿
- [ ] 第8步:发布
第1步:环境检查 + 本篇约束(合并 YAML)
若本篇在 drafts/…/ 下:按 .aws-article/config.yaml → 本篇 article.yaml 合并读取约束(同键本篇优先,最后层覆盖),重点字段:multi_image_count、tone、target_reader、custom_sticker_style > default_sticker_style(须为 YAML 字符串列表;custom_* 非空时优先于 default_*;多候选时智能体择一并写回本篇为单元素列表)。若无有效 YAML,以用户口述主题 + skill 默认值作为约束。
第2步:确定选题
topics 产出的贴图卡片 / 用户直接给主题 / 用户提供素材图片。
第3步:确定风格
贴图风格加载优先级:
- 用户指定(「用知识卡片风格」)
- 本篇合并配置中的
custom_sticker_style > default_sticker_style(若有;custom_* 优先;列表多元素时须先择一)
.aws-article/presets/sticker-styles/ 下的自定义风格
- fallback:根据贴图主题自动选择 Type(氛围 or 信息图)× 默认 Style(扁平矢量),使用共享 image-styles/
全组图统一风格。
第4步:规划图序
产出 imgs/outline.md:每张图的用途、文案要点、文件名。详见:references/workflow.md
第5步:展示方案并等待确认 ⛔
第6步:生成图片
生成方式(优先级):
- 优先:调用
image_create.py — 依赖 config.yaml 的 image_model + aws.env 的 IMAGE_MODEL_API_KEY
- 降级:当前 Agent 多模态 / 仅出 prompts — 仅当环境未就绪、用户接受 main「本次例外」、或已按本节下方「调用失败」表格处理(网络重试后仍失败等)时
必须告知用户当前使用的方式:
- 已配置且调用脚本 →
ℹ️ 使用 image_create.py 调用专用生图模型({model})
- Agent 生图 / 仅 prompts →
ℹ️ 本次未走 image_create.py(原因:…)
调用专用 API 时(在仓库根执行,路径按本篇 imgs/ 调整):
python {baseDir}/../aws-wechat-article-images/scripts/image_create.py batch drafts/YYYYMMDD-slug/imgs/prompts/ -o drafts/YYYYMMDD-slug/imgs/
单张:python {baseDir}/../aws-wechat-article-images/scripts/image_create.py generate imgs/prompts/01.md -o imgs/01.png
连通性自检:python {baseDir}/../aws-wechat-article-images/scripts/image_create.py test
图片内文字与 prompt 构建规则与长文配图一致,见 aws-wechat-article-images/SKILL.md 与 prompt-construction.md。
image_create.py 调用失败时(智能体必选分支)
沿用配图 skill 的同一规则:必须摘要 stderr 关键行,按 网络 / 配置·凭证 / 业务·参数 分类处理;禁止配置错误时静默降级。细则参照 aws-wechat-article-images/SKILL.md 第 6 步「调用失败」表格。
第7步:审稿
贴图专用清单:references/checklist.md
第8步:发布
python {baseDir}/../aws-wechat-article-publish/scripts/publish.py full article/
过程文件
| 读取 | 产出 |
|---|
topic-card.md(可选)、.aws-article/config.yaml + 本篇 article.yaml | imgs/(outline + prompts + 图片) |