LIVE · 一个人的 AI 公众号工厂 · 全自动落到草稿箱

fengyun-publish
端到端 AI 公众号写作发布流水线

热点选题 → 深度调研 → 写稿 → 三轨评审 → 排版 → 封面 → 推草稿, 一共 19 步全自动,产出直接落到微信公众号草稿箱。
不是 prompt 链,是建在 Claude Code 原生 harness 上的工业流水线。

⬇ 下载即用 · GitHub 直达

MIT 开源 · Python + Claude Code Agent SDK · git clone 后填凭证即可跑你自己的公众号

claude-code · fengyun-publish skill
ship 一篇关于 Claude Code Auto Mode 的稿子
# 主线程自动跑完 19 个 BLOCKING Step ↓
[1.0] ITI I-1 广搜 · 290 候选聚合 ...
[3.0] fengyun-writer 写完整稿 · 4800 字 ...
[6.0] 三轨 critic 并行投票 · B/C 互不知晓 ...
[7.x] 花叔配图决策 + Seedream 封面/内文图 ...
[8.0] gate.py 物理保安放行 → 推草稿箱 ... ✓ media_id f5xAnh6…
# 剩最后一击:风云在手机上审阅 + 发布
19
BLOCKING Step
5
Layer 架构
3
轨独立 Critic
48
脚本 · 15,016 行
MIT
开源协议
What Is It · 这是什么

不是 prompt 链,是一条工业流水线

Python + Claude Code skill 编排。对标数字生命卡兹克,一个人运营 AI 赛道公众号「研究 Agent 的云」。 所有发出去的文章,都是用这套 pipeline 跑出来的活物,不是设计草稿。

🚧

19 个 BLOCKING Step

物理 gate.py 拦截:任一 step 没真跑过都通不过。8 项 fake-pass 防伪字段,防主线程拍脑袋写占位。

⚖️

三轨独立 Critic 投票

数字分 + 灵魂判断 + 挂名意愿,三个评委互不知晓彼此 verdict。全自动 critic-revise loop,3 轮后自动出口不等人。

🔁

数据飞轮自我进化

force_ship 学习回路 + flywheel_report.py,把每一次产出沉淀成「改机制而不是改这一篇」的信号。

The Harness · 核心架构

本质是一个 Harness 循环,而不是一次性生成

LLM 只负责「写」这一个动作,真正决定质量的是外面这层 harness: 写完 → 三轨评 → 不过就改 → 物理 gate 拦门 → 飞轮把信号喂回机制。一篇文章在循环里反复打磨,直到所有闸门同时放行。

harness主控循环

为什么 harness 比模型更重要

同一个 Claude,裸用是「能写但不稳」,套上 harness 就成了「每篇都过得了自己这关」的产线。差距全在循环和闸门里。

  • 1
    每一步都 BLOCKING:19 步串成硬链路,gate.py 作为 PreToolUse hook 在推草稿前拦一刀,缺任一 pass_flag 直接 sys.exit(2) 阻断。
  • 2
    评审与写作解耦:三轨 critic 独立投票,互不串供;不达标自动进 revise loop,最多 3 轮后走 partial_pass / abort,绝不卡死等人。
  • 3
    防伪而非自欺:8 项 fake-pass 字段要求每步既 *_pass*_real_run + *_source,正则校验,杜绝「假装跑过」。
  • 4
    飞轮闭环:force_ship 学习信号不再死在 JSON,flywheel_report.py 聚合成「改 writer SOP 不改这一篇」的机制提示,系统会自己变好。
Architecture · 5 Layer

自下而上五层,全部 LIVE 在跑

数据层喂料 → 决策层选题写稿评审 → 渲染层排版配图 → 发布层推草稿 → 反馈层把结果回灌决策层,形成闭环。

EFEEDBACK
反馈层 数据飞轮 · 让系统自己进化
flywheel_report.pyforce_ship 学习回路invocation log 聚合 ✓ LIVE 193→198
DPUBLISH
发布层 推草稿 + 审计留痕
微信公众号 APICloudflare Worker 反代运行日志verify_audit ✓ LIVE
CRENDER
渲染层 排版 + 封面 + 内文图
huashu 克制排版Seedream 封面内文图placeholder 兜底 ✓ LIVE
BDECIDE
决策层 选题 → 写稿 → 评分 → 三轨 critic → gate 保安
ITI 选题fengyun-writerharness 评分fengyun_lintcritic_votegate.py ✓ LIVE
ADATA
数据层 52 信源喂料 + 特征矩阵
aihotwe-mp-rssRSSHubTrendRadararxivdb.sqliteparquet ✓ LIVE

⤴ 反馈层 E 把每次产出的信号回灌决策层 B —— 这就是 harness 循环的闭环

Pipeline · 19 Step

四个阶段,串成一条硬链路

WRITE_AGENT.md(系统级宪法)为权威。每一步都有对应的脚本或 skill,跑过留痕,没跑过过不了 gate。

PHASE 01

Collect 选题调研

  1. ITI I-1 广搜聚合候选
  2. topic_recommender 排序 + 7 天去重
  3. 自动选题 + slug
  4. 开头 harness + dogfood gate
  5. ITI I-2 深搜调研
PHASE 02

Write 写稿打磨

  1. Voice DNA + corpus 必读
  2. fengyun-writer 写完整稿
  3. 标题 harness 信号评分
  4. ending harness 信号评分
  5. humanizer-zh 去 AI 味
PHASE 03

Verify 三轨评审

  1. fengyun_lint 机械层
  2. 王小波语感预审
  3. 三轨 critic vote
  4. 不达标 → revise loop(≤3 轮)
PHASE 04

Publish 排版发布

  1. 配图候选位置预筛
  2. 花叔配图决策(BLOCKING)
  3. 内文图 + 封面 Seedream
  4. gate 守门 → 推草稿
  5. 报告 + audit log
Critic × Gate · 质量闸门

三轨独立评委 + 物理保安双保险

三个评委从不同维度独立投票,互不知晓彼此结论;最后由物理 gate 在推草稿前做不可绕过的拦截。

Track A · 数字分

综合爆款率预测

0–100 分,≥ 60 PASS。5 维加权 + style_match 25% 混合。

tools/sop_v2_1.py
Track B · 灵魂判断

花叔视角 ship / not_ship

这段话有没有 emotion?选题敢不敢从 0 到 1?binary 裁决。

huashu-perspective skill
Track C · 挂名意愿

这是不是风云会写的

独立第三方评委(Round 24 fork),founder verdict 硬否决优先。

content-judge skill

🌳门控树 · gate_tree

A 缺 → abort(工具链断) A < 60 → revise C reject → revise(C 硬否决) C pass + B pass → ship ✓ C pass + B reject → human_gate(3 轮后) B skip + C skip → pass(单轨兜底)

🛡️Gate 物理保安 · gate.py

  • 11 组 pass_flag 必须全 true:writer / title / ending / lint / humanizer / 王小波 / critic / 配图 / 封面 / image …
  • 8 项 fake-pass 防伪:每步既要 *_pass 又要 *_real_run + *_source,正则校验来源
  • Round 25 图片硬规则image_paths 非空 + 每文件 ≥ 5KB
  • R18 自暴分级:自暴 AI 身份 → 立即终止
  • 缺任一 → sys.exit(2) 阻断 Claude 调用
Tech Stack · 技术栈

用最朴素的工具,搭最硬的链路

01

Claude Code 原生

建在 Agent SDK + skill 体系上,orchestrator-worker 模式,主线程编排子 agent。

02

物理 Gate 拦截

PreToolUse hook 不可绕过,把「质量」从约定变成代码强制执行的不变量。

03

52 信源喂料

aihot / 公众号 / RSSHub / arxiv 多源聚合,国内外 1:1,DB 优先读取。

04

下载即用

MIT 开源,clone 后填 .env + preflight 全绿即可跑你自己的公众号。

语言 · 规模
Python 3.x48 脚本 / 15,016 行
PowerShell 5.1preflight / run_*
Claude CodeAgent SDK · skill
关键库
pandas · numpy评分 / parquet
anthropicClaude API
ThreadPoolExecutorSeedream 并发出图
外部服务
微信公众号 API推草稿 / 素材
Cloudflare Worker自建反代
火山 Seedream封面 / 内文图

想用?直接下载。想合作?直接找我。

整套系统 MIT 开源在 GitHub,clone 即用跑你自己的公众号; 想定制、想一起做内容、或者单纯想聊聊这套 harness 怎么搭的——加我微信。

⬇ 下载使用 · GitHub 直达
About · 关于作者

一个人,把公众号做成了一座工厂

风云
公众号「研究 Agent 的云」主理人 · @duliangkuan

一个人运营 AI 赛道公众号,所有发出的文章都是用这套 pipeline 跑出来的。 README 里你看到的每一个 step,都是在我自己公众号上反复试过的活物,不是设计草稿。

「这是我的第一个 MIT 开源项目,欢迎 ⭐ star / 提 issue / 拍砖 / PR。」
🐙
GitHub 项目(下载即用)
github.com/duliangkuan/fengyun-publish
直达 →
💬
个人微信(合作请备注「来自网站」)
FengYunAgent
扫码 →
📧
邮箱
2330304961@qq.com
发邮件 →
📰
微信公众号
研究 Agent 的云
微信搜索