一句话:Claude Code 作为大脑,MinerU(
opendatalab/MinerU,60k+ stars)作为文档理解层,ip-publisher 作为内容生产与发布层——三者组合,构建一个真正可以无人值守运行的内容 Agent。
背景:为什么"AI 写作"还是很费人力?
大多数人用 AI 做内容的现实:
- 手动找资料
- 手动粘贴进 ChatGPT
- AI 生成 → 手动润色
- 手动复制到各平台
- 手动调格式、上传图片
- 手动发布
→ 省了 30% 的时间,但还是很累
真正的自动化应该是这样的:
- 触发词 / 定时任务
- Agent 自动找今天热点
- Agent 调用 MinerU 解析相关文档
- Agent 基于你的人设生成文章
- Agent 自动发布到小红书 / 知乎 / 公众号
- 完成,不需要人在
一、三层架构拆解
层级 | 工具 | 职责 | 核心能力 |
大脑层 | Claude Code | 理解意图、编排工具调用 | 上下文理解、工具链编排、质量判断 |
知识层 | MinerU | 文档 → 结构化知识 | 84语言OCR、公式/表格/多栏完美还原 |
发布层 | ip-publisher | 生成 → 适配 → 发布 | 热点抓取、人设改写、多平台发布 |
二、搭建步骤(完整可复现)
Step 1:安装三个工具
# MinerU(文档解析)
pip install mineru
mineru --version
# > MinerU 2.5-Pro
# ip-publisher(内容生产与发布)
git clone https://github.com/veeicwgy/ip-publisher
cd ip-publisher && pip install -e .
ip-publisher init
# 生成 ~/.ip-publisher/profile.yaml
Step 2:配置个人人设
# ~/.ip-publisher/profile.yaml
profile:
name: "你的名字"
occupation: "AI 工程师 / 开源开发者"
writing_style: "技术深度 + 人话表达,不装逼,有干货"
domains:
- "AI工具"
- "开源项目"
- "LLM应用"
- "文档处理"
platforms:
zhihu:
enabled: true
style: "分析型长文,有数据支撑,结构清晰"
xiaohongshu:
enabled: true
style: "情绪化,有冲击感的数字,适合种草"
csdn:
enabled: true
style: "代码为主,技术深度优先"
# 关键:指向 MinerU 解析的知识库
knowledge_base:
path: "~/.ip-publisher/knowledge/"
auto_inject: true
Step 3:配置 Claude Code MCP
{
"mcpServers": {
"mineru": {
"command": "uvx",
"args": ["mineru-mcp"],
"env": {
"MINERU_TOKEN": "your_mineru_api_token"
}
},
"ip-publisher": {
"command": "python",
"args": ["-m", "ip_publisher.mcp_server"],
"env": {
"PROFILE_PATH": "~/.ip-publisher/profile.yaml"
}
}
}
}
Step 4:运行完整工作流
# 方式一:手动触发(指定文档)
claude "读取 ./reports/mineru_paper.pdf,结合今天 AI 领域热点,
按我的人设写一篇知乎深度文章并发布"
# 方式二:定时任务(全自动,每天 9 点)
# crontab -e
0 9 * * * claude "抓取今日热点,从知识库选最相关内容,生成并发布三平台文章"
三、关键代码:MinerU 解析结果如何注入文章生成
3.1 知识提取器
# knowledge_extractor.py
import subprocess
import json
from pathlib import Path
from anthropic import Anthropic
def extract_publishable_knowledge(pdf_path: str) -> dict:
"""
从 PDF 提取适合发布的结构化知识
Returns:
headline_data: 标题级数字/结论
key_tables: 对比表格
core_conclusions: 核心结论 3-5 条
unique_insights: 独家信息点
code_examples: 代码示例
citations: 可引用权威表述
"""
output_dir = Path(f"/tmp/mineru_{Path(pdf_path).stem}")
output_dir.mkdir(exist_ok=True)
subprocess.run([
"mineru", "-p", pdf_path,
"-o", str(output_dir),
"--mode", "precision",
"--lang", "ch"
], check=True)
md_files = list(output_dir.glob("*.md"))
with open(md_files[0]) as f:
content = f.read()
client = Anthropic()
response = client.messages.create(
model="claude-sonnet-4-5",
max_tokens=3000,
messages=[{
"role": "user",
"content": f"""从这篇文档中提取适合内容创作的知识,以 JSON 格式返回:
{{
"headline_data": ["最震撼的数字/结论,适合做标题"],
"key_tables": ["重要对比表格的 Markdown 格式"],
"core_conclusions": ["核心结论1", "核心结论2", "核心结论3"],
"unique_insights": ["只有这篇文档有、网上没有的独家信息"],
"code_examples": ["代码片段(如有)"],
"citations": ["可引用的权威表述(带来源)"]
}}
文档内容(前8000字):
{content[:8000]}"""
}]
)
return json.loads(response.content[0].text)
3.2 与 ip-publisher 的集成适配器
# mineru_ippublisher_bridge.py
import yaml
from knowledge_extractor import extract_publishable_knowledge
def prepare_article_context(pdf_path: str, hot_topic: str, platform: str) -> str:
"""组合 MinerU 知识 + 热点 → 生成文章 prompt"""
with open("~/.ip-publisher/profile.yaml") as f:
profile = yaml.safe_load(f)
knowledge = extract_publishable_knowledge(pdf_path)
platform_styles = {
"zhihu": "深度分析,有数据支撑,结构化观点,字数 1500-3000",
"xiaohongshu": "情绪化表达,突出冲击感数字,口语化,加emoji,字数 300-800",
"csdn": "代码为主,有完整可运行示例,技术术语准确,字数 2000-4000",
"wechat": "叙事型,有故事感,引导分享,字数 1000-2000"
}
return f"""
你是一个{profile['profile']['occupation']},风格:{profile['profile']['writing_style']}
今日热点:{hot_topic}
从专业文档提取的知识:
- 标题级数据:{knowledge['headline_data']}
- 核心结论:{knowledge['core_conclusions']}
- 独家信息:{knowledge['unique_insights']}
- 对比表格:{knowledge['key_tables']}
请结合热点和上述知识,写一篇{platform_styles[platform]}的文章。
所有数据必须来自上面提供的知识,不要编造。
"""
四、这套工具链能做什么,不能做什么
✅ 适合的场景
- 每周读行业研报 → 产出知乎长文 ⭐⭐⭐⭐⭐
- AI 论文 → 技术科普文 ⭐⭐⭐⭐⭐
- 产品发布会 PDF → 多平台评测 ⭐⭐⭐⭐
- 政策文件 → 解读文章 ⭐⭐⭐⭐
- 竞品分析报告 → 对比内容 ⭐⭐⭐⭐
❌ 不适合的场景
- 纯评论类内容(无文档来源)→ 直接用 ip-publisher 即可
- 视频内容脚本 → ip-publisher 当前不支持视频平台
- 需要实时数据的内容 → MinerU 处理静态文档,不适合实时行情
五、快速开始
# 三分钟跑通最小 demo
pip install mineru
git clone https://github.com/veeicwgy/ip-publisher && cd ip-publisher
pip install -e . && ip-publisher init
# 测试解析
mineru -p test.pdf -o ./output
cat ./output/*.md | head -100
# 测试发布(dry-run 模式,不实际发布)
ip-publisher generate --source ./output/*.md --platform zhihu --dry-run
相关链接
- MinerU 开源版:github.com/opendatalab/MinerU(60k+ stars,Apache 2.0)
- MinerU SaaS API:mineru.net(
pip install mineru-open-sdk) - ip-publisher:github.com/veeicwgy/ip-publisher(快速增长中 🚀)
- MinerU 论文:arXiv:2604.04771