内容路由器 · 素材该做成什么

给素材做 11 维内容画像,推荐跨媒介输出形态(PPT/信息图/短视频/漫画等 6 种)并给出可执行调度提示词

OtherPythonv1.0.1

🔀 内容路由器 · Content Router

一份素材进去,多种成品出来。

写一次,改四次 —— 这是多平台创作者最耗命的地方。 内容路由器把「这篇该做成什么」变成一道可计算的问题:11 维内容画像 → 智能推荐 → 一键调度。

License Python Deps

M8ven Verified


🚧 先说边界:它管「做成什么」,不管「发到哪」

这是两件事,别混:

你的问题该用谁
这篇素材该做成什么?PPT、信息图、漫画还是短视频?内容路由器(本仓库)
文章写完了,怎么改成知乎版 / CSDN 版 / 小红书版?content-creator-skills 里的 multi-platform-rewrite
  • 路由器推荐的是跨媒介形态——媒介变了:文字 → 图表 / 视频 / 漫画 / PPT / 可复用技能。
  • 平台改写是同媒介换平台——还是文章,只换读者、语气和钩子。

两者的关系是上下游:先路由,再改写。路由器告诉你这篇值不值得做成视频,改写技能负责把它写成视频号能发的样子。 本仓库不碰平台改写,那条线交给 content-creator-skills。

😩 你是不是也这样

同一份素材,公众号写完,知乎版、CSDN 版、小红书版还得从头再改一遍,一晚上没了。

但比这更亏的是另一种累:你花了两天把一篇深度长文做成 60 秒短视频,结果它根本没有叙事张力,讲出来像念说明书; 另一篇随手记的案例,其实天生就是一张信息图,你却把它硬写成了长文。

你根本不知道这篇最适合做成什么。 凭感觉选,一半力气花在错的形态上。

✨ 它怎么解决

一篇素材  ──▶  ① 11维画像  ──▶  ② 匹配推荐(带分数+理由)  ──▶  ③ 生成调度提示词
                字数/结构/密度           PPT ⭐⭐⭐                 交给你的 Agent 执行
                视觉潜力/叙事张力…        信息图 ⭐⭐⭐
                                        短视频脚本 ⭐⭐

不是模板填空。 先给内容做体检,再基于体检结果匹配形态,最后才谈转换。

📐 11 维内容画像

维度判定维度判定
① 字数短 / 中 / 长⑦ 叙事张力低 → 高
② 信息密度有效信息点占比⑧ 视觉叙事潜力能否改编漫画
③ 结构类型线性/并列/层级/碎片/流程⑨ 信息图解潜力核心观点 ≤8 个?
④ 视觉潜力可否图表化⑩ 实战可操作性读者要不要动手
⑤ 深度等级入门 / 中级 / 深度⑪ 时效性永久 → 时效
⑥ 情感色彩客观/积极/反思/警示

🎯 6 种跨媒介输出形态

形态适合什么内容对应工作流
📊 PPT 演示文稿方法论、层级框架、教学ppt-director-workflow
🎬 60 秒短视频脚本热点、情绪型短内容beat-plan-video-workflow
📊 信息图并列对比、概念梳理baoyu-infographic
🎨 漫画 / 视觉故事案例、故事、有人物对白baoyu-comic
📧 Newsletter深度 + 私密语感—
🛠️ Skill 封装方法论、可复用工作流—

以上都是媒介发生改变的形态。公众号版、小红书版这类同媒介换平台的改写,不在本仓库职责内, 请用 content-creator-skills。两件事分开做,才不会互相打架。

上表的「对应工作流」是 Hermes Agent 生态内的私有技能,未随本仓库开源。 但不影响使用:route() 只产出 dispatch_prompt 与目标技能名,你自己接上任意 Agent 或手工执行都行 —— 本仓库可独立运行,零强制依赖。

🚀 30 秒跑起来

git clone https://gitee.com/savantcat/content-router.git
cd content-router
python engine.py analyze README.md

输出:

📐 内容画像报告
========================================
字数:      1,551 字(中文)
密度:      ░░░░░░░░░░ 0.09
结构:      流程步骤
视觉潜力:  ███    高
深度等级:  入门
叙事张力:  █      低
情感色彩:  客观
实战性:    █      低
信息图解:  低
漫画潜力:  中
时效性:    永久

🏆 推荐输出(按适配度排序)
----------------------------------------
🥇 信息图           ⭐⭐  适配 44%  核心点10个+视觉高+图解低
🥈 PPT演示文稿       ⭐⭐  适配 38%  结构流程步骤+视觉高+内容入门
🥉 漫画/视觉故事       ⭐  适配 29%  漫画潜力中+张力低
4. 结构化Skill封装    ⭐  适配 29%  实战低+结构流程步骤+深度入门
5. 60秒短视频脚本      ⭐  适配 14%  张力低+情感客观+非时效

📦 批量路由:素材库 → 产出决策表

单篇分析只是玩具,批量才是刚需 —— 素材囤了一堆,一篇篇问太慢,也永远问不完。

python engine.py batch ./我的素材库 --out 产出决策表.md

一张表告诉你每篇素材该做成什么,直接当工作计划用(实测输出):

#素材字数结构首推形态适配度次选
1知识星球_专享版.md863并列观点信息图100%PPT演示文稿 / 60秒短视频脚本
2百家号_粘贴版.md1,010碎片集合信息图67%60秒短视频脚本 / PPT演示文稿
3公众号_AI客服国标MCP.md1,199并列观点60秒短视频脚本57%信息图 / PPT演示文稿
4CSDN_技术版_MCP服务端实战.md1,243并列观点信息图56%PPT演示文稿 / 60秒短视频脚本
📦 扫描到 7 篇素材
**形态分布**:信息图 ×4、60秒短视频脚本 ×3
**最值得先做的 5 篇**:
- 知识星球_专享版.md → **信息图**(适配 100%)
- 百家号_粘贴版.md → **信息图**(适配 67%)
...

适配度 = 判据命中率(该形态得分 ÷ 该形态满分),跨形态可比。 首推 <40% 时它会直接告诉你「这篇还没有明显适合的形态,别急着动手」——不硬推,这是它可信的原因。

🧩 当库用

from engine import profile_content, recommend_formats, format_profile_report, format_recommendation
from engine import ContentRouter

text = open("我的文章.md", encoding="utf-8").read()

profile = profile_content(text)
print(format_profile_report(profile))
recs = recommend_formats(profile)          # [{"format": ..., "score": ..., ...}]
print(format_recommendation(recs))

# 一键调度:为选中形态生成 dispatch 提示词 + 落盘 JSON 报告
router = ContentRouter(output_dir="./router_output")
result = router.route("我的文章.md", target_formats=["PPT演示文稿", "信息图"])

🔌 作为 MCP 服务调用

server.py 把引擎包成标准 MCP server —— 别人的 Agent 可以直接调这几个工具,不必读源码、不必抄公式。

pip install "mcp>=2.1"

python server.py                                # 本地 stdio(Claude Desktop / Cursor / 任意 MCP 客户端)
python server.py --transport http --port 8769   # 远程 streamable-http
python server.py --selftest                     # 不走协议,直接遍历打全部工具
工具作用
analyze_content11 维画像 + 形态推荐(一次给全,最常用)
recommend_formats只出排序推荐:适配度% + 命中的判据
get_dispatch_prompt为指定形态生成调度提示词(交给任意 Agent 执行)
list_formats6 种跨媒介输出形态的定义与适用内容
profile_schema11 维画像的口径与取值范围

客户端配置(stdio):

{ "mcpServers": { "content-router": { "command": "python", "args": ["server.py"] } } }

服务端为纯计算、纯读:5 个工具的四个 annotation hint 全部声明(readOnlyHint=true / destructiveHint=false / idempotentHint=true / openWorldHint=false),不写盘、不发起任何外部请求、不需要 API Key。

💻 命令行

# 分析 + 推荐
python engine.py analyze 我的文章.md

# 分析 + 推荐 + 调度
python engine.py route 我的文章.md --formats PPT演示文稿,信息图,60秒短视频脚本

# 批量:整个素材目录 → 产出决策表(最实用的一步)
python engine.py batch ./我的素材库 --top 20 --out 产出决策表.md

🛡️ 已知风险与规避

风险规避
画像不准支持手动修正画像维度后重新推荐
推荐偏差永远给多个候选 + 理由,把决定权交回给你
跨 Skill 调度按优先级排列,不可用的分支跳过并提示
长文超 token自动分段摘要后再画像

📁 项目结构

engine.py          单文件核心引擎(画像 / 推荐 / 调度 / CLI),纯标准库
server.py          MCP 服务端(5 个工具,双通道 stdio / streamable-http)
server.json        MCP 元数据(官方 Registry 格式)
SKILL.md           Agent 技能定义 + 完整 API 说明
skill-card.md      技能卡片(用途 / 输出 / 风险)
_meta.json         元信息

🔗 相关仓库

📄 License

MIT — 见 LICENSE。

👤 作者

合尘猫 · AI 落地实践 · https://savantcat.cn

Setup from the maintainer

This listing does not have a supported local package template. Use the maintainer’s documentation for its hosted endpoint, authentication, and client-specific setup. No install command has been inferred.

Learn More