我用 AI 搭了一个公众号自动发文系统,全程踩坑实录(已跑通)
这不只是教程,是一份完整实录。(实在不会,丢给CC让他帮你安装) 从【以为很简单】到【真的跑通】,每一个报错、每一个坑、每一次修正,我都记下来了。 最终结果:从素材到公众号草稿箱,全链路自动化可用。 一句话:给素材 → 自动写文 → 自动排版 → 自动进公众号草稿箱。 我只做三件事: 其余流程由系统自动完成。 这套系统的核心价值在于:把重复劳动交给机器,把创意决策留给人。 整个系统由 5 个核心组件构成: 1. Claude Code CLI — 写作引擎 根据 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 推送 ↓ 公众号草稿箱 ✅ 当时已完成: 待完成: 一开始装错包名: npm install -g wenyan-cli 报错 404(包不存在)。 正确包名是: npm install -g @wenyan-md/cli 安装成功(1.0.11)。 **💡 经验:**包名容易搞混,遇到 404 先去 npm 官网确认正确的 package name。 一开始以为可以这样配: 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 只展示一次,若泄露请立即重置并更新本地环境变量。 这是我踩得最深的一个坑。 报错: 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" 然后成功拿到 **💡 经验:**如果你在国内服务器运行,直接用 可以用渲染命令做最小验收: echo "# 测试" | wenyan render | head -20 能正常输出 HTML 结构说明本地渲染链路没问题。 再用一次 wenyan publish -f "./test-article.md" 经过多次踩坑,我总结出这套可直接复用的标准流程: 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:公众号后台配置 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 包名写错 用 配置命令错误 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 很多人以为 AI 写作就是“丢个 prompt 就行”。 错了。 真正决定质量的,是你的 AGENTS.md。 AGENTS.md 是一个由 Linux 基金会下属的 Agentic AI Foundation 管理的开放标准。它最初是为编码代理设计的,但现在被广泛应用于各种 AI 自动化场景。 它的作用是什么? 把你的部落知识(tribal knowledge)写成机器可读的规范。 就像资深工程师脑子里的那些“潜规则”: 在内容创作场景中,AGENTS.md 定义的是: 一个好的 AGENTS.md 应该包含: 💡 最佳实践: 我的 AGENTS.md 里写了什么? 规范写得越细,AI 输出越稳定、越像你自己。 wenyan 是一个开源工具,专门解决“Markdown → 微信公众号”这个痛点。 它做了这些事: 关键 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,一个接口调用所有主流模型。 支持的模型包括: 价格优势: 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 是一个开源的图像处理工具,支持超过 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:准备素材 创建 \# 任务 将 YouTube 视频转换成公众号文章 \# 要求 - 字数 1500-2000 - 风格:信息猎手+卡兹克 - 必须包含数据和 SOP 创建 \# 素材 - YouTube 视频链接:https://youtube.com/watch?v=xxx - 视频文字稿:(粘贴完整转录文本) Step 2: Claude 自动写作 claude code --agents ./AGENTS.md \ "读取 task.md 和 materials.md,生成 article.md" Claude 会: Step 3:生成封面图(可选) \# 调用 KIE API 生成封面 \# (这里可以用脚本或手动) \# 裁剪为公众号尺寸 magick cover-raw.jpg -crop 900x383+0+0 cover.jpg Step 4:发布到草稿箱 wenyan publish -f "./article.md" Step 5:人工审核 登录公众号后台,在草稿箱中: 整个流程,除了审核,全部自动化。 从素材到草稿箱,不超过 5 分钟。 系统跑通后,我又做了一些优化: wenyan 不仅支持微信,还支持知乎、掘金、CSDN 等平台。 可以写一个脚本,一次生成,多平台分发: \# 发布到微信 wenyan publish -f "./article.md" --platform wechat \# 发布到知乎 wenyan publish -f "./article.md" --platform zhihu 结合 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 }} 可以加一个 AI 审核层,在发布前自动检查: 如果不通过,自动打回重写。 发布后,可以用 n8n 或 Zapier 监控文章数据: 然后自动生成数据报告,反馈到下一次的 task.md 中,形成闭环优化。 如果你是: 投入产出比: 但工具只是放大器。 真正决定内容质量的,永远是你的 AGENTS.md。 规范写得越细,AI 输出越稳定、越像你自己。 如果你的 AGENTS.md 只有 3 行,那 AI 生成的内容就是 3 行的质量。 如果你的 AGENTS.md 有 150 行细节约束,那 AI 就能生成 150 行质量的内容。 这是一个“垃圾进,垃圾出”(Garbage In, Garbage Out)的系统。 你投入多少,就能收获多少。 这套系统从想法到跑通,我花了整整半天。 踩了很多坑。 但当我第一次看到文章自动出现在草稿箱时,那种成就感是无法替代的。 这不仅仅是一个自动化工具。 它改变了我对内容生产的理解: 从手工作坊 → 流水线工厂。 以前写一篇文章,我要: 总计:3 小时 40 分钟。 现在: 总计:32 分钟。 效率提升了 7 倍。 更重要的是,我的精力被解放了。 我不再纠结【这个词用得对不对】、【这个段落要不要换行】。 我只需要关注:这个选题值不值得写?这个观点够不够深刻? 工具处理执行,人类负责决策。 这才是 AI 时代内容创作的正确姿势。 如果你也想搭建这样一套系统,我的建议是: 别怕踩坑。 每一个报错,都是你对系统理解更深一层的机会。 每一次调试,都是你把“隐性知识”变成“显性规范”的过程。 当你把所有坑都踩完,你就拥有了一套真正属于自己的内容生产流水线。 而这套流水线,会成为你最大的竞争壁垒。 P. S. 如果你在搭建过程中遇到问题,欢迎留言交流。我会持续更新这套系统的优化方案。 此即未来。🤖 这个系统在做什么?

task.md)materials.md)🧩 系统组成(最终可用架构)
task.md 和 materials.md 生成符合要求的 article.md。这是整个系统的大脑,负责理解需求、提炼素材、生成文章。
🛠 从零到跑通:完整过程
1)先盘点依赖
2)安装 wenyan(第一个坑)
3)公众号配置(第二个坑:命令用错)
4)IP 白名单(最大的坑)


media_id,文章进入草稿箱。curl -s https://ipinfo.io/ip 查询出口 IP 即可,不需要代理。5)验收命令(替代 doctor)
wenyan doctor 在该版本不可用。wenyan publish 验证微信接口链路:
✅ 最终可复用 SOP(精简版)

🕳️ 坑点总表(实战版)
@wenyan-md/cli
🎯 关键技术深度解析
AGENTS.md:稳定输出的灵魂
> 格式
wenyan-md:从 Markdown 到公众号的最后一公里
KIE API:多模型图像生成的统一入口

ImageMagick:命令行图片处理的瑞士军刀
🔄 完整自动化工作流实战
场景:我要写一篇“独立开发者搞钱案例”
task.md:materials.md:
💡 进阶优化方向
1)多平台发布
2)定时发布
3)内容质量监控
4)数据分析闭环
🤔 这套系统值不值得搭?
🎬 写在最后

