Skip to main content

skill-wechat-publisher

微信公众号文章自动创作与发布工具。给定参考文章、文字或文档,自动搜索整理全网相关信息、生成图文并茂的公众号文章,并发布到微信公众号草稿箱。特别强调反 AI 检测写作。 触发场景(沾边就用):用户提到"公众号 / 微信文章 / 推文 / 公号 / 发文 / mp / 草稿箱 / 群发",或要求把话题/文档/笔记写成公众号文章并发布到微信。

설치로 이동

소스 정보

저장소
ZJU-REAL/Easel
최근 소스 활동
2026년 9월 16일 04:49
감지된 SKILL.md 언어
중국어
스타
1,262
포크
183

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

파일 탐색기
100 개 파일

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
skill-wechat-publisher
description
微信公众号文章自动创作与发布工具。给定参考文章、文字或文档,自动搜索整理全网相关信息、生成图文并茂的公众号文章,并发布到微信公众号草稿箱。特别强调反 AI 检测写作。 触发场景(沾边就用):用户提到"公众号 / 微信文章 / 推文 / 公号 / 发文 / mp / 草稿箱 / 群发",或要求把话题/文档/笔记写成公众号文章并发布到微信。
layer
publish
# 微信公众号文章自动创作与发布 从素材输入到公众号草稿箱的完整自动化流程:用户只需提供话题或参考资料,skill 完成搜索调研、撰写、配图、排版、AI 味自检、发布。 > **不要调用 `baoyu-post-to-wechat` skill。** 路由时同时看到两者,一律选本 skill(`wechat-publisher`),它带多账号 / 主题排版 / 反 AI 检测 gate。 ## ⚠️ 环境依赖(部分可跑) | 能力 | 状态 | 依赖 | |------|------|------| | 公众号发草稿(`publish.py` → **默认后台会话**) | ✅ 可跑 | 先扫码登录公众号后台(`skills/shared/scripts/weixin_mp_stats.py login`,或 Web 账号页「登录公众号后台」)。**免 app_id/app_secret、免 IP 白名单**,只创建草稿,不自动群发 | | 公众号发草稿(`publish.py --official-api` → 官方 HTTP API,回退) | ✅ 可跑 | `wechat-publisher.yaml` 的 `app_id`/`app_secret` + 出口 IP 加进公众号 IP 白名单 | | 反 AI 检测(`ai_score.py`) | ✅ 可跑 | 纯本地,无外部依赖 | | MD→公众号排版(`html_converter.py`) | ✅ 可跑 | 纯本地 | | 生成配图(`generate_image.py`) | ❌ 当前不可用 | 需图像 API key(OpenAI Images / Gemini 代理) | | 多平台同步(`multi_publish.py`,阶段七) | ❌ 当前不可用 | 需浏览器 + Wechatsync Chrome 扩展 | 核心链路(写作→排版→反 AI 检测→发草稿)的 Markdown / HTML 入口默认复用已扫码的公众号后台会话,不要求 `wechat-publisher.yaml` 或 `app_id`/`app_secret`;仅显式选择 `--official-api` 时需要官方 API 凭证。配图缺 key 时改用外部生图或跳过,多平台同步默认不启用。 ## 账号与人格 YAML 示例提供 2 个账号配置:`main`(刷屏AI / 飞哥 / `refined-blue`,热情北京口语,面向 AI 产品)与 `tech`(蒜是哪根葱 / 葱哥 / `minimal-mono`,冷幽默技术直男,面向工程实践)。官方 API 模式按 `--account` 或 YAML 的 `default` 选择账号。后台会话模式的实际发布账号以当前扫码登录的公众号为准,`--account` 不会切换浏览器登录态;没有 YAML 时,可用 `--author` / `--theme` 指定署名和主题,并优先使用当前 Easel Profile 的语气。 **必须按当前账号的 voice 改写语气** —— 两个号写出明显风格差异,这本身就是反 AI 检测的关键(平台对每个号建历史文风基线)。 ## 前置条件 以下命令均从 Easel 项目根目录运行。 ### 默认:公众号后台会话(Markdown / HTML) 先检查已有登录态,不要因缺少 YAML 或官方 API 凭证而停止发布: ```bash python3 skills/shared/scripts/weixin_mp_stats.py whoami # 仅在确认未登录或会话过期时执行,也可在 Web 账号页扫码登录 python3 skills/shared/scripts/weixin_mp_stats.py login ``` `loggedIn: true` 时继续使用默认的 `publish.py --input` / `--html` 流程;检查报错时先排查具体异常,不把网络或浏览器错误当成缺少 API 凭证。会话模式无需创建 `wechat-publisher.yaml`、调用 `wechat_api.py` 验证 token 或配置 IP 白名单。 ### 可选回退:官方 API(`--official-api`) 只有显式选择官方 API 发布时,才执行以下凭证配置与连接检查: ```bash cp skills/openclaw/skill-wechat-publisher/wechat-publisher.yaml.example skills/openclaw/skill-wechat-publisher/wechat-publisher.yaml # 编辑该文件,填写 app_id / app_secret / author / theme,并在公众号后台配置出口 IP 白名单 python3 skills/openclaw/skill-wechat-publisher/scripts/wechat_api.py list-accounts # 验证 API 连接,仅输出状态,不输出 token (cd skills/openclaw/skill-wechat-publisher/scripts && python3 -c "from wechat_api import get_access_token; get_access_token(); print('OK')") ``` 官方 API 配置文件固定放 skill 根目录(`config.py::_find_unified_yaml()` 只查此处),所选账号必须有 `app_id` 和 `app_secret`。API 参数细节见 [references/api_reference.md](references/api_reference.md),错误码见 [references/errors.md](references/errors.md)。这些要求不适用于默认的后台会话发布。 ## 完整工作流程(7 阶段,第 7 为可选 opt-in) ### 阶段一:理解需求与收集素材 搞清用户要什么,同时采集**真人味原料**(具体人名/时间/金额/产品版本/踩过的坑 —— 反 AI 检测最重要原料)。识别目标账号(AI 产品→main,工程→tech),选定 `article_structure` + `opening_hook`。产出 `outputs/主题名/brief.md`。 ### 阶段二:全网信息搜索与整理 既搜**权威层**(WebSearch:资讯/数据/案例/官方报告),也搜**真人层**(Reddit/HN/V2EX/即刻/X/小红书的原话作语料)。关键数据多源交叉。产出 `research.md`,每条标来源、分层。 ### 阶段三:撰写骨架稿(第一轮) 按结构写初稿,**允许有 AI 味**(下一阶段专门人味化)。`article_structure` 8 种、`opening_hook` 7 种的完整选择规则与写法见 [references/article-structures.md](references/article-structures.md)。骨架稿阶段就主动**混用行内标色**(见 [references/inline-markup.md](references/inline-markup.md))。避免"首先/其次""值得一提的是""随着…的发展"等 AI 套话。 ### 阶段 3.5:人味化改写 pass(反 AI 检测核心) 独立 pass,不与阶段三混。对骨架稿逐段过 **9 条强制清单**(Burstiness / 句式多样性 / AI 高频词黑名单 / 开头破冰 / 人称立场 / 事实密度 / 标点多样性 / 结构不完美 / 按账号 voice 过滤)。每条阈值、完整禁用词表、改写示例**必须逐条对照** [references/anti-ai-checklist.md](references/anti-ai-checklist.md)。 ### 阶段四:生成配图(当前环境需外部 key) 默认风格 `hand-drawn-blue`;有具体数字/对比→用 `infographic-*`,金句大字→用 `marker-*`;图内需一字不差的文字→改走**排版卡 typeset-card**(HTML/CSS → 无头 Chrome 2× 截图)。风格选择、共享视觉原则见 [references/image-styles-guide.md](references/image-styles-guide.md);排版卡设计系统见 [references/typeset-card.md](references/typeset-card.md)。一篇 6-10 张,统一一种风格。生图入口 `scripts/generate_image.py`(需图像 API key),上传用 `scripts/image_handler.py upload`。 ### 阶段五:格式转换与排版 ```bash python3 skills/openclaw/skill-wechat-publisher/scripts/html_converter.py article.md --theme refined-blue -o article.html python3 skills/openclaw/skill-wechat-publisher/scripts/html_converter.py article.md --list-themes ``` 主题一般由 `publish.py --account` 自动从 yaml 读。15 套主题的推荐表与视觉简介见 [references/themes.md](references/themes.md),行内标色系统见 [references/inline-markup.md](references/inline-markup.md)。主题预览:`assets/theme-previews/index.html`。 ### 阶段 5.5:AI 味自检 gate(publish.py 内置强制拦截) `publish.py` 发草稿前自动调 `ai_score.check_ai_score()`,分数 ≥ 阈值(默认 45)直接拦住。阈值:<35 🟢PASS / 35-45 🟡WARN / ≥45 🔴FAIL。手动看细节报告: ```bash python3 skills/openclaw/skill-wechat-publisher/scripts/ai_score.py outputs/主题名/article.md --threshold 45 ``` 命中时按脚本列出的 AI 套话/高频词逐句**重写整个句式**(不只换词),重跑到通过。可选双保险:朱雀 / GPTZero 第三方检测。 ### 阶段六:发布到草稿箱(默认走后台会话,不自动群发) ```bash python3 skills/openclaw/skill-wechat-publisher/scripts/publish.py --account main \ --input outputs/主题名/article.md \ --cover .../cover.jpg --title "标题" --digest "120 字以内摘要" --exec ``` **默认走公众号后台会话发布**(免 app_secret、免 IP 白名单)——前提是已扫码登录后台 (`skills/shared/scripts/weixin_mp_stats.py login`,或 Web 账号页「登录公众号后台」);封面与正文内嵌图会自动传 mp CDN。 若后台未登录会报错提示先登录。加 `--official-api` 可回退到官方 HTTP API(需 app_secret + IP 白名单)。 先省略 `--exec` 预览账号、模式和输入;dry-run 只打印参数,不验证登录态、上传或建草稿,不能据此宣称发布成功。向用户展示标题/摘要并取得确认后再执行。成功后调用 `skill-publish-log` 记录草稿;再告知用户登录 mp.weixin.qq.com 查看/群发。 ### 阶段七:多平台同步(可选,默认不启用,当前环境不可用) 一键同步到知乎/掘金/CSDN/头条(均存草稿)。基于 Wechatsync Chrome 扩展 + `@wechatsync/cli`,需浏览器。触发方式与失败处理见 [references/multi-platform-sync.md](references/multi-platform-sync.md)。 ## 贴图模式(newspic,与文章模式并列) 对标公众号"图片消息":5-10 张卡片墙 + 100-300 字短描述。4 步:`brief.md → newspic_build.py 拆卡 → generate_image.py 批量生图 → publish.py --type newspic`。短文本过精简版 AI 味 gate(`ai_score.py --mode newspic`)。字段说明、判据、限制见 [references/newspic-mode.md](references/newspic-mode.md)。 ## 文件组织约定 所有产物放项目内 `outputs/主题名/`:最终稿和封面在目录顶层,研究稿、调试 HTML、配图等中间文件放 `assets/`。不要把临时产物写到 Skill 根目录。 ## 脚本说明 | 脚本 | 用途 | |---|---| | `publish.py` | 完整发布(一键,含 AI 味 gate),支持 `--type news\|newspic` | | `generate_image.py` | 统一生图入口(需图像 API key) | | `newspic_build.py` | 贴图拆卡器(brief.md → card_plan.json) | | `wechat_api.py` | facade —— 重导出下述模块 + CLI | | `config.py` | (内部)yaml + 配图风格加载 / `set_account` / `get_config` | | `wechat_token.py` | (内部)`get_access_token`,本地缓存 | | `api.py` | (内部)图片上传 / 草稿 / 发布 | | `html_converter.py` | Markdown → 微信 HTML(多主题 + 行内标色) | | `image_handler.py` | 图片下载 / 上传 / 替换 | | `ai_score.py` | 反 AI 检测自检(`--mode news\|newspic`) | | `multi_publish.py` | 多平台同步(阶段七,默认不启用,需浏览器) | ## Profile 感知 有 Easel Profile 时,用 Profile 的账号定位/受众/语气凝练覆盖账号 voice;无 Profile 时退到 yaml 内置 `main`/`tech` 双账号 voice。 ## 注意事项 - 文章始终发**草稿箱**,不自动群发;后台会话发布到当前扫码账号,官方 API 模式才用 `--account` 选择发布账号。 - 默认 dry-run;没有用户对当前标题、摘要、账号和素材的明确确认,不得添加 `--exec`。 - Markdown、HTML 与贴图三条入口都会在上传前扫描密钥、内部地址和路径,命中时必须改稿,不得绕过。 - 两账号 voice/theme 差异是反 AI 检测策略的一部分,不要趋同。 - 错误码(40164 IP 白名单 / 40001 token / 48001 未授权等)见 [references/errors.md](references/errors.md)。
GitHub에서 보기