这不只是教程,是一份完整实录。(实在不会,丢给CC让他帮你安装)
从【以为很简单】到【真的跑通】,每一个报错、每一个坑、每一次修正,我都记下来了。
最终结果:从素材到公众号草稿箱,全链路自动化可用。
🤖 这个系统在做什么?
一句话:给素材 → 自动写文 → 自动排版 → 自动进公众号草稿箱。
我只做三件事:
- 写选题与要求(
task.md) - 放原始素材(
materials.md) - 审稿后点击发布
其余流程由系统自动完成。
这套系统的核心价值在于:把重复劳动交给机器,把创意决策留给人。
🧩 系统组成(最终可用架构)
整个系统由 5 个核心组件构成:
1. Claude Code CLI — 写作引擎
根据 task.md 和 materials.md 生成符合要求的 article.md。这是整个系统的大脑,负责理解需求、提炼素材、生成文章。
2. AGENTS.md — 写作规范
这是稳定输出的关键。AGENTS.md 是一个开放标准,用于指导 AI 编码代理的行为规范。
在内容创作场景中,它定义了写作风格、禁用词汇、排版规则等约束条件,确保 AI 生成的内容始终符合你的品牌调性。
3. KIE API — 图像生成
用于生成文章封面图。KIE.ai 提供了多种 AI 图像生成模型的统一接口,包括 GPT-Image-1、Midjourney、Flux 等,价格比官方更实惠,响应速度快。
4. ImageMagick — 图片处理
负责封面图的裁剪和尺寸处理。微信公众号封面图有特定尺寸要求:大图 900×383px (2.35:1),小图 383×383px (1:1)。
ImageMagick 可以通过命令行快速完成批量裁剪。
5. @wenyan-md/cli — 发布工具
将 Markdown 转换为微信公众号格式并推送到草稿箱。这个工具支持自动上传图片、应用主题样式、处理代码高亮和公式渲染。
完整流程:
素材(task.md + materials.md)
↓
Claude Code CLI 读取 AGENTS.md 规范
↓
生成 article.md
↓
(可选)KIE API 生成封面图
↓
ImageMagick 裁剪为 900×383px
↓
wenyan publish 推送
↓
公众号草稿箱 ✅
🛠 从零到跑通:完整过程
1)先盘点依赖
当时已完成:
- ✅ Claude Code CLI
- ✅ Node.js / Python3
- ✅ ImageMagick
待完成:
- ❌ 安装 wenyan 发布工具
- ❌ 配置公众号 AppID/AppSecret
- ❌ 配置微信 API IP 白名单
- ❌ 配置 KIE API Key(可选)
- ❌ 端到端发布测试
2)安装 wenyan(第一个坑)
一开始装错包名:
npm install -g wenyan-cli
报错 404(包不存在)。
正确包名是:
npm install -g @wenyan-md/cli
安装成功(1.0.11)。
💡 经验: 包名容易搞混,遇到 404 先去 npm 官网确认正确的 package name。
3)公众号配置(第二个坑:命令用错)
一开始以为可以这样配:
wenyan config set appId xxx
wenyan config set appSecret xxx
结果报错:too many arguments。
原因:这个版本的 wenyan 不支持这套 config 子命令。
正确方式:用环境变量(示例):
echo 'export WECHAT_APP_ID="你的AppID"' >> ~/.zshrc
echo 'export WECHAT_APP_SECRET="你的AppSecret"' >> ~/.zshrc
source ~/.zshrc
KIE 也是同理:
echo 'export KIE_API_KEY="你的KIE_API_KEY"' >> ~/.zshrc
source ~/.zshrc
⚠️ 安全提醒: AppSecret 只展示一次,若泄露请立即重置并更新本地环境变量。
4)IP 白名单(最大的坑)
这是我踩得最深的一个坑。
报错:
40164: invalid ip xxx.xxx.xxx.xxx, not in whitelist
现象: 每次请求显示的出口 IP 都可能变化。
根因: VPN/代理自动切换节点导致出口 IP 不固定。
我最终的解决方案:
① 查询当前出口 IP(通过本地代理):
curl -s --proxy http://127.0.0.1:7890 https://api.ipify.org
② 把返回 IPv4 加到公众号后台「API IP 白名单」
③ 发布时固定走同一代理出口:
HTTPS_PROXY=http://127.0.0.1:7890 HTTP_PROXY=http://127.0.0.1:7890 \
wenyan publish -f "./article.md"
然后成功拿到 media_id,文章进入草稿箱。
💡 经验: 如果你在国内服务器运行,直接用 curl -s https://ipinfo.io/ip 查询出口 IP 即可,不需要代理。
5)验收命令(替代 doctor)
wenyan doctor 在该版本不可用。
可以用渲染命令做最小验收:
echo "# 测试" | wenyan render | head -20
能正常输出 HTML 结构说明本地渲染链路没问题。
再用一次 wenyan publish 验证微信接口链路:
wenyan publish -f "./test-article.md"
✅ 最终可复用 SOP(精简版)
经过多次踩坑,我总结出这套可直接复用的标准流程:
Step 1:安装工具
npm i -g @wenyan-md/cli
brew install imagemagick # macOS
Step 2:配置环境变量
export WECHAT_APP_ID="你的AppID"
export WECHAT_APP_SECRET="你的AppSecret"
export KIE_API_KEY="你的KIE_API_KEY" # 可选
Step 3:公众号后台配置
- 启用 AppSecret
- 添加 API IP 白名单(填实际出口 IPv4)
Step 4:本地渲染测试
echo "# 测试" | wenyan render | head -20
Step 5:发布测试(必要时带代理)
HTTPS_PROXY=http://127.0.0.1:7890 \
wenyan publish -f "./article.md"
Step 6:到草稿箱确认文章与封面
🕳️ 坑点总表(实战版)
| 坑 | 现象 | 根因 | 解决方案 |
|---|---|---|---|
| 包名错误 | npm 404 | 包名写错 | 用 @wenyan-md/cli |
| 配置命令错误 | too many arguments | 版本不支持 config set | 改用环境变量 |
| IP 白名单反复失败 | 40164 invalid ip | 代理出口 IP 漂移 | 固定节点+固定代理端口 |
| 封面报错 | 找不到 cover | frontmatter 缺字段/路径无效 | 补 cover 且路径有效 |
| doctor 命令不存在 | not valid command | 该版本无此子命令 | 用 render + publish 验证 |
| 图片尺寸不对 | 封面显示不全 | 未按 2.35:1 裁剪 | 用 ImageMagick 裁剪为 900×383px |
🎯 关键技术深度解析
AGENTS.md:稳定输出的灵魂
很多人以为 AI 写作就是“丢个 prompt 就行”。
错了。
真正决定质量的,是你的 AGENTS.md。
AGENTS.md 是一个由 Linux 基金会下属的 Agentic AI Foundation 管理的开放标准。它最初是为编码代理设计的,但现在被广泛应用于各种 AI 自动化场景。
它的作用是什么?
把你的部落知识(tribal knowledge)写成机器可读的规范。
就像资深工程师脑子里的那些“潜规则”:
- 这个项目用什么技术栈
- 代码风格是什么样的
- 哪些文件绝对不能碰
- 测试怎么跑
在内容创作场景中,AGENTS.md 定义的是:
-
写作风格:口语化程度、段落长度、是否用 emoji
-
禁用词汇:哪些 AI 味的词绝对不能出现
-
排版规则:标题层级、引用格式、代码块样式
-
质量标准:字数范围、数据引用要求、可读性基准
一个好的 AGENTS.md 应该包含:
- 可执行命令(Commands first): AI 能直接跑的指令
- 具体代码示例(Code examples over explanations):展示什么是好的输出
- 明确边界(Clear boundaries):告诉 AI 什么绝对不能做
- 技术栈细节(Project knowledge):版本号、文件位置、依赖关系
💡 最佳实践:
-
控制在 ≤150 行,太长会稀释信号
-
用反引号包裹命令,让 AI 能直接复制粘贴
-
把 AGENTS.md 当代码一样做 code review
-
当 AI 犯错时,迭代更新规范
我的 AGENTS.md 里写了什么?
- 禁用“首先、其次、综上所述”等 AI 套话
- 要求 70% 段落必须是单句(<50 字)
- 数据必须加粗,引用必须用
>格式 - 标题不超过 35 字,必须包含数据+情绪反差
规范写得越细,AI 输出越稳定、越像你自己。
wenyan-md:从 Markdown 到公众号的最后一公里
wenyan 是一个开源工具,专门解决“Markdown → 微信公众号”这个痛点。
它做了这些事:
- 自动转换格式: Markdown 语法 → 微信富文本
- 图片自动上传:扫描文章中的图片路径,自动上传到微信素材库
- 主题样式应用:支持多种预设主题,也可以自定义 CSS
- 代码高亮:自动处理代码块的语法高亮
- 公式渲染:支持 LaTeX 数学公式
- 推送草稿箱:调用微信 API,直接创建草稿
**
**
关键 API 调用链路:
1. 获取 access_token
POST https://api.weixin.qq.com/cgi-bin/token
2. 上传图片素材
POST https://api.weixin.qq.com/cgi-bin/material/add_material
3. 创建草稿
POST https://api.weixin.qq.com/cgi-bin/draft/add
citation
wenyan 把这些复杂的 API 调用封装成一个简单的命令:
wenyan publish -f "./article.md"
这就是工程化的力量。
KIE API:多模型图像生成的统一入口
之前生成封面图,我要在不同平台之间切换:
- Midjourney 要去 Discord
- DALL-E 要去 OpenAI 后台
- Stable Diffusion 要自己部署
现在有了 KIE API,一个接口调用所有主流模型。
支持的模型包括:
- GPT-Image-1 / 1.5: OpenAI 最新图像模型,文字渲染准确
- Flux.1 Kontext:开源模型,风格化能力强
- Midjourney:商业插画首选
- Nano Banana Pro: YouMind 自研,速度快
价格优势:
KIE 的定价比官方便宜 20-30%,而且按需付费,不需要订阅。
集成方式:
# 设置 API Key
export KIE_API_KEY="your_api_key"
# 生成图片(伪代码示例)
curl -X POST https://api.kie.ai/v1/images/generate \
-H "Authorization: Bearer $KIE_API_KEY" \
-d '{"prompt": "...", "model": "gpt-image-1"}'
生成的图片可以直接用 ImageMagick 裁剪:
magick input.jpg -crop 900x383+0+0 cover.jpg
ImageMagick:命令行图片处理的瑞士军刀
ImageMagick 是一个开源的图像处理工具,支持超过 100 种图片格式。
核心命令:
1. 裁剪图片
# 从左上角裁剪 900×383 的区域
magick input.jpg -crop 900x383+0+0 output.jpg
# 居中裁剪
magick input.jpg -gravity center -crop 900x383+0+0 output.jpg
2. 调整尺寸
# 缩放到 900×383(可能变形)
magick input.jpg -resize 900x383 output.jpg
# 按比例缩放,宽度固定 900px
magick input.jpg -resize 900x output.jpg
3. 批量处理
# 批量裁剪当前目录所有 jpg
for img in *.jpg; do
magick "$img" -crop 900x383+0+0 "cropped_$img"
done
💡 实战技巧:
微信公众号封面有大图(2.35:1)和小图(1:1)两种显示形式。如果想同时兼顾,可以做一张 1283×383px 的图:左边 383×383 是小图区域,右边 900×383 是完整大图。
🔄 完整自动化工作流实战
现在把所有组件串起来,看看一篇文章是怎么从 0 到发布的。
场景:我要写一篇“独立开发者搞钱案例”
Step 1:准备素材
创建 task.md:
# 任务
将 YouTube 视频转换成公众号文章
# 要求
- 字数 1500-2000
- 风格:信息猎手+卡兹克
- 必须包含数据和 SOP
创建 materials.md:
# 素材
- YouTube 视频链接:https://youtube.com/watch?v=xxx
- 视频文字稿:(粘贴完整转录文本)
Step 2: Claude 自动写作
claude code --agents ./AGENTS.md \
"读取 task.md 和 materials.md,生成 article.md"
Claude 会:
- 读取 AGENTS.md 了解写作规范
- 分析 materials.md 提取核心信息
- 按照 task.md 的要求生成文章
- 输出 article.md
Step 3:生成封面图(可选)
# 调用 KIE API 生成封面
# (这里可以用脚本或手动)
# 裁剪为公众号尺寸
magick cover-raw.jpg -crop 900x383+0+0 cover.jpg
Step 4:发布到草稿箱
wenyan publish -f "./article.md"
Step 5:人工审核
登录公众号后台,在草稿箱中:
- 检查排版是否正常
- 确认图片是否都上传成功
- 微调细节(如果需要)
- 点击发布
整个流程,除了审核,全部自动化。
从素材到草稿箱,不超过 5 分钟。
💡 进阶优化方向
系统跑通后,我又做了一些优化:
1)多平台发布
wenyan 不仅支持微信,还支持知乎、掘金、CSDN 等平台。
可以写一个脚本,一次生成,多平台分发:
# 发布到微信
wenyan publish -f "./article.md" --platform wechat
# 发布到知乎
wenyan publish -f "./article.md" --platform zhihu
2)定时发布
结合 cron 或 GitHub Actions,可以实现定时自动发布:
# .github/workflows/publish.yml
name: Auto Publish
on:
schedule:
- cron: '0 9 * * *' # 每天早上9点
jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- run: npm i -g @wenyan-md/cli
- run: wenyan publish -f "./article.md"
env:
WECHAT_APP_ID: ${{ secrets.WECHAT_APP_ID }}
WECHAT_APP_SECRET: ${{ secrets.WECHAT_APP_SECRET }}
3)内容质量监控
可以加一个 AI 审核层,在发布前自动检查:
- 是否有敏感词
- 字数是否达标
- 是否有明显的 AI 痕迹
- 数据引用是否准确
如果不通过,自动打回重写。
4)数据分析闭环
发布后,可以用 n8n 或 Zapier 监控文章数据:
- 阅读量
- 点赞数
- 分享数
- 用户评论
然后自动生成数据报告,反馈到下一次的 task.md 中,形成闭环优化。
🤔 这套系统值不值得搭?
如果你是:
- 偶尔写一篇:不必折腾全自动,手动发布更快
- 每周稳定更新:值得投入 1-2 天搭建
- 批量产出内容:必须搞,能节省 80% 时间
- 团队协作:非常值得,统一规范+自动化审核
投入产出比:
- 搭建时间:1-2 天(包括踩坑)
- 单篇文章节省时间:30-60 分钟
- 回本周期:发布 5-10 篇文章后
**
**
但工具只是放大器。
真正决定内容质量的,永远是你的 AGENTS.md。
规范写得越细,AI 输出越稳定、越像你自己。
如果你的 AGENTS.md 只有 3 行,那 AI 生成的内容就是 3 行的质量。
如果你的 AGENTS.md 有 150 行细节约束,那 AI 就能生成 150 行质量的内容。
这是一个“垃圾进,垃圾出”(Garbage In, Garbage Out)的系统。
你投入多少,就能收获多少。
🎬 写在最后
这套系统从想法到跑通,我花了整整半天。
踩了很多坑。
但当我第一次看到文章自动出现在草稿箱时,那种成就感是无法替代的。
这不仅仅是一个自动化工具。
它改变了我对内容生产的理解:
从手工作坊 → 流水线工厂。
**
**
以前写一篇文章,我要:
- 找素材(30 分钟)
- 写初稿(2 小时)
- 排版(30 分钟)
- 配图(30 分钟)
- 上传发布(10 分钟)
总计:3 小时 40 分钟。
**
**
现在:
- 准备素材(10 分钟)
- 运行脚本(2 分钟)
- 审稿微调(20 分钟)
总计:32 分钟。
效率提升了 7 倍。
更重要的是,我的精力被解放了。
我不再纠结【这个词用得对不对】、【这个段落要不要换行】。
我只需要关注:这个选题值不值得写?这个观点够不够深刻?
工具处理执行,人类负责决策。
这才是 AI 时代内容创作的正确姿势。
如果你也想搭建这样一套系统,我的建议是:
别怕踩坑。
每一个报错,都是你对系统理解更深一层的机会。
每一次调试,都是你把“隐性知识”变成“显性规范”的过程。
当你把所有坑都踩完,你就拥有了一套真正属于自己的内容生产流水线。
而这套流水线,会成为你最大的竞争壁垒。
P. S. 如果你在搭建过程中遇到问题,欢迎留言交流。我会持续更新这套系统的优化方案。
此即未来。