内容路由器|一份素材进去多种成品出来:11 维内容画像 → 智能推荐 8 种输出形态 → 一键调度,零依赖
- ✓Open-source license (MIT)
- ✓Actively maintained (<30d)
- ✓Clear description
- ✓Topics declared
- ✓Documented (README)
git clone https://github.com/savantcat/content-routerTools overview
# 🔀 内容路由器 · Content Router
### 一份素材进去,多种成品出来。
写一次,改四次 —— 这是多平台创作者最耗命的地方。
内容路由器把「这篇该做成什么」变成一道**可计算**的问题:**11 维内容画像 → 智能推荐 → 一键调度**。
[](LICENSE)
[](engine.py)
[](requirements.txt)
[](https://m8ven.ai/mcp/savantcat/content-router?s=readme)
---
## 🚧 先说边界:它管「做成什么」,不管「发到哪」
这是两件事,别混:
| 你的问题 | 该用谁 |
|:---|:---|
| 这篇素材**该做成什么**?PPT、信息图、漫画还是短视频? | **内容路由器**(本仓库) |
| 文章写完了,怎么改成**知乎版 / CSDN 版 / 小红书版**? | [`content-creator-skills`](https://gitee.com/savantcat/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`](https://gitee.com/savantcat/content-creator-skills)。两件事分开做,才不会互相打架。
> 上表的「对应工作流」是 Hermes Agent 生态内的私有技能,**未随本仓库开源**。
> 但**不影响使用**:`route()` 只产出 `dispatch_prompt` 与目标技能名,你自己接上任意 Agent 或手工执行都行 —— 本仓库可独立运行,**零强制依赖**。
## 🚀 30 秒跑起来
```bash
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% 张力低+情感客观+非时效
```
## 📦 批量路由:素材库 → 产出决策表
单篇分析只是玩具,**批量**才是刚需 —— 素材囤了一堆,一篇篇问太慢,也永远问不完。
```bash
python engine.py batch ./我的素材库 --out 产出决策表.md
```
一张表告诉你**每篇素材该做成什么**,直接当工作计划用(实测输出):
| # | 素材 | 字数 | 结构 | 首推形态 | 适配度 | 次选 |
|:--|:--|--:|:--|:--|:--|:--|
| 1 | 知识星球_专享版.md | 863 | 并列观点 | **信息图** | 100% | PPT演示文稿 / 60秒短视频脚本 |
| 2 | 百家号_粘贴版.md | 1,010 | 碎片集合 | **信息图** | 67% | 60秒短视频脚本 / PPT演示文稿 |
| 3 | 公众号_AI客服国标MCP.md | 1,199 | 并列观点 | **60秒短视频脚本** | 57% | 信息图 / PPT演示文稿 |
| 4 | CSDN_技术版_MCP服务端实战.md | 1,243 | 并列观点 | **信息图** | 56% | PPT演示文稿 / 60秒短视频脚本 |
```
📦 扫描到 7 篇素材
**形态分布**:信息图 ×4、60秒短视频脚本 ×3
**最值得先做的 5 篇**:
- 知识星球_专享版.md → **信息图**(适配 100%)
- 百家号_粘贴版.md → **信息图**(适配 67%)
...
```
**适配度 = 判据命中率**(该形态得分 ÷ 该形态满分),跨形态可比。
首推 <40% 时它会直接告诉你「**这篇还没有明显适合的形态,别急着动手**」——不硬推,这是它可信的原因。
## 🧩 当库用
```python
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 可以直接调这几个工具,不必读源码、不必抄公式。
```bash
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_content` | 11 维画像 + 形态推荐(一次给全,最常用) |
| `recommend_formats` | 只出排序推荐:适配度% + 命中的判据 |
| `get_dispatch_prompt` | 为指定形态生成调度提示词(交给任意 Agent 执行) |
| `list_formats` | 6 种跨媒介输出形态的定义与适用内容 |
| `profile_schema` | 11 维画像的口径与取值范围 |
客户端配置(stdio):
```json
{ "mcpServers": { "content-router": { "command": "python", "args": ["server.py"] } } }
```
服务端为**纯计算、纯读**:5 个工具的四个 annotation hint 全部声明(`readOnlyHint=true` / `destructiveHint=false` / `idempotentHint=true` / `openWorldHint=false`),不写盘、不发起任何外部请求、不需要 API Key。
## 💻 命令行
```bash
# 分析 + 推荐
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 元信息
```
## 🔗 相关仓库
- [`content-creator-skills`](https://gitee.com/savantcat/content-creator-skills) —— 平台改写三件套(多平台改写 / 去 AI 味 / 旧文变选题),负责**「发到哪」**。
- [`savantcat-portfolio`](https://gitee.com/savantcat/savantcat-portfolio) —— 全部开源项目索引。
## 📄 License
MIT — 见 [LICENSE](LICENSE)。
## 👤 作者
合尘猫 · AI 落地实践 · <https://savantcat.cn>
What people ask about content-router
What is savantcat/content-router?
+
savantcat/content-router is tools for the Claude AI ecosystem. 内容路由器|一份素材进去多种成品出来:11 维内容画像 → 智能推荐 8 种输出形态 → 一键调度,零依赖 It has 1 GitHub stars and its last recorded update is dated 2026-10-06.
How do I install content-router?
+
You can install content-router by cloning the repository (https://github.com/savantcat/content-router) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is savantcat/content-router safe to use?
+
Our security agent has analyzed savantcat/content-router and assigned a Trust Score of 95/100 (tier: Verified). See the full breakdown of passed checks and flags on this page.
Who maintains savantcat/content-router?
+
savantcat/content-router is maintained by savantcat. The last recorded GitHub activity is dated 2026-10-06, with 0 open issues.
Are there alternatives to content-router?
+
Yes. On ClaudeWave you can browse similar tools at /categories/tools, sorted by popularity or recent activity.
Deploy content-router to your cloud
Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.
Maintain this repo? Add a badge to your README
Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.
[](https://claudewave.com/repo/savantcat-content-router)<a href="https://claudewave.com/repo/savantcat-content-router"><img src="https://claudewave.com/api/badge/savantcat-content-router" alt="Featured on ClaudeWave: savantcat/content-router" width="320" height="64" /></a>More Tools
A single CLAUDE.md file to improve Claude Code behavior, derived from Andrej Karpathy's observations on LLM coding pitfalls.
An AI skill that provides design intelligence for building professional UI/UX across multiple platforms.
🪨 why use many token when few token do trick. Viral skill + proxy for coding agents that cuts 65% of tokens by talking like a caveman.
CLI proxy that reduces LLM token consumption by 60-90% on common dev commands. Single Rust binary, zero dependencies
The fastest, litest AI Gateway. Rust core with Python SDK. Call 100+ LLM APIs in OpenAI (or native) format with cost tracking, guardrails, load balancing, and logging [Bedrock, Azure, OpenAI, Anthropic, OpenAI, VertexAI, vLLM, Nvidia NIM]
Use Claude Code, Codex, VSCode, Pi, and OpenCode (and 6 other harnesses) for free (1.3B+ free tokens) from your terminal, app, IDE, or phone, and now from the browser with native browser sessions (multi-harness + multi-model) like OpenClaw (voice supported + ToS friendly)