一条指令产出全套营销素材:Multi-Agent 内容工厂从选题到分发的闭环实战
一、一个内容团队的真实困境去年我们接手了一个SaaS产品的内容营销。团队3个人目标每周产出20篇高质量文章50条社交媒体内容。现实是每周勉强挤出8篇其中能称为高质量的不到3篇。我们试着让GPT-4直接生成文章。结果是灾难文章结构千篇一律在当今数字化时代...开头、数据纯编造、SEO关键词堆砌得像垃圾邮件。用ChatGPT写了30篇只有1篇在搜索引擎获得了自然流量。根本原因是内容创作不是写一篇文章这一个动作而是一个从选题到分发的多环节流水线。把全部压力扔给一个LLM它只能输出平庸的结果。所以我们的方案是拆成5个专业Agent每个只做自己擅长的事。二、系统架构5个Agent的协作流水线三、核心代码实现3.1 Trend Agent选题决策# Trend Agent - 热点发现选题决策 def trend_agent(topic_keyword: str) - dict: 输入主题词输出选题建议热度评估差异化角度 # 从搜索引擎获取相关话题的热度数据 search_results web_search(f{topic_keyword} site:csdn.net OR site:zhihu.com, limit10) analysis llm.invoke(f你是一个内容选题分析师。分析主题{topic_keyword}的市场机会。 ## 竞品内容分析已发布的相似文章 {format_search_results(search_results)} 请完成以下任务 1. 评估热度高/中/低基于竞品发布频率和互动量 2. 找出3个竞品内容中缺失的角度他们没讲到的 3. 建议差异化切入点你的文章凭什么不一样 4. 推荐目标读者画像 返回JSON格式。) decision json.loads(analysis.content) # 热度低于阈值的选题直接终止 if decision[heat_level] 低 and decision[competition] 高: return {skip: True, reason: 热度低且竞争激烈建议换选题} return {skip: False, **decision}3.2 Research Agent竞品分析数据搜集# Research Agent - 竞品分析和数据搜集 from langchain_community.document_loaders import WebBaseLoader def research_agent(topic: str, angles: list) - dict: 搜集竞品文章、行业数据、案例 # 抓取竞品内容 competitor_urls get_search_urls(f{topic} 最佳实践, limit5) competitor_articles [] for url in competitor_urls: loader WebBaseLoader(url) docs loader.load() competitor_articles.append({ url: url, title: docs[0].metadata.get(title, ), content: docs[0].page_content[:3000] }) # 提取关键信息和差异化数据 research llm.invoke(f分析以下竞品内容提取关键信息 主题: {topic} 差异化角度: {angles} 竞品文章: {json.dumps(competitor_articles, ensure_asciiFalse)} 请提取 1. 每个竞品的核心论点一句话 2. 竞品使用的数据和案例标注哪些是真实数据哪些可能是编造的 3. 你发现的可引用数据带来源链接 4. 竞品缺失的内容点我们的机会 返回结构化JSON。) # 交叉验证标记可能不可靠的信息 facts json.loads(research.content) # 对每个数据做一次验证 for fact in facts.get(data_points, []): fact[verified] verify_fact(fact[claim], fact[source]) return facts def verify_fact(claim: str, source: str) - bool: 对声称的数据进行二次搜索验证 verify_result web_search(claim, limit3) return any(source in r[url] for r in verify_result)3.3 Creative Agent内容创作# Creative Agent - 文章创作含品牌调性约束 def creative_agent(topic: str, research: dict, brand_voice: dict) - str: 基于选题和竞品分析结果生成原创内容 prompt f你是一个{.join(brand_voice.get(style_tags, []))}的内容创作者。 ## 品牌调性约束必须严格遵守 - 语气: {brand_voice[tone]} - 风格: {、.join(brand_voice[style_tags])} - 禁用词汇: {、.join(brand_voice[banned_words])} - 禁用句式: {、.join(brand_voice[banned_patterns])} ## 创作要求 - 开头: {brand_voice[opening_style]}禁止用在当今...随着...的发展 - 结构: {brand_voice[structure]} - 结尾: {brand_voice[closing_style]} - 不得编造数据仅使用以下已验证数据 {json.dumps(research.get(data_points, []), ensure_asciiFalse)} ## 写作素材 主题: {topic} 竞品缺失角度: {research.get(gaps, [])} 关键信息: {research.get(key_insights, [])} 请生成一篇800-1500字的原创文章。要求 1. 不用任何AI写作套话 2. 每个数据标注来源 3. 包含至少1个具体案例或故事 4. 段落间有自然的逻辑过渡 article llm.invoke(prompt).content # 幻觉检查文章中不能出现未经验证的数据 hallucinations detect_hallucinations(article, research[data_points]) if hallucinations: article remove_hallucinations(article, hallucinations) return article def detect_hallucinations(text: str, verified_data: list) - list: 检测文章中是否有未经验证的数据声明 pattern r(\d[\.,]?\d*)\s*(万|亿|%|倍|美元|万元) import re claims re.findall(pattern, text) # 简化检测检查数字是否出现在已验证数据中 suspicious [] for num, unit in claims: full_claim f{num}{unit} if not any(full_claim in str(d) for d in verified_data): suspicious.append(full_claim) return suspicious3.4 SEO Agent深度优化# SEO Agent - 不只是堆关键词 def seo_agent(article: str, topic: str) - dict: 对文章做SEO优化确保搜索引擎友好 # Step 1: 提取主关键词和长尾关键词 keywords_analysis llm.invoke(f分析这篇文章的核心主题和相关长尾关键词 文章主题: {topic} 文章内容: {article[:1500]} 返回JSON: {{ primary_keyword: 主关键词, long_tail_keywords: [长尾1,长尾2,...], search_intent: 信息型/交易型/导航型, target_query: 用户会用什么搜索词找到这篇文章 }}) seo json.loads(keywords_analysis.content) # Step 2: SEO结构检查 seo_checks { title_length: ✅ if 20 len(extract_title(article)) 60 else ❌ 标题过长/过短, has_h2: ✅ if article.count(## ) 3 else ❌ H2不足3个, first_paragraph_length: ✅ if len(article.split(\n\n)[0]) 200 else ❌ 首段超过200字, keyword_in_title: ✅ if seo[primary_keyword] in extract_title(article) else ❌ 主关键词不在标题中, keyword_density: ✅ if 1.0 calc_density(article, seo[primary_keyword]) 2.5 else ❌ 关键词密度异常, } # Step 3: 自动修复SEO问题 optimized article if ❌ in seo_checks[keyword_in_title]: optimized inject_keyword_to_title(optimized, seo[primary_keyword]) return { seo_checks: seo_checks, keywords: seo, optimized_article: optimized } def calc_density(text: str, keyword: str) - float: 计算关键词密度 words len(text.split()) kw_count text.lower().count(keyword.lower()) return (kw_count / words) * 100 if words 0 else 03.5 全流程编排# Multi-Agent 编排 - LangGraph流水线 from langgraph.graph import StateGraph, END class ContentState(TypedDict): topic: str trend_analysis: dict research_data: dict draft: str seo_optimized: str platforms: dict # {platform: content} builder StateGraph(ContentState) builder.add_node(trend, trend_agent) builder.add_node(research, research_agent) builder.add_node(creative, creative_agent) builder.add_node(seo, seo_agent) builder.add_node(distribute, distribute_agent) # 编排流程 builder.set_entry_point(trend) builder.add_conditional_edges(trend, lambda s: research if not s[trend_analysis].get(skip) else END, {research: research, END: END}) builder.add_edge(research, creative) builder.add_edge(creative, seo) builder.add_edge(seo, distribute) builder.add_edge(distribute, END) graph builder.compile() # 一条指令触发全流程 result graph.invoke({topic: 云原生安全最佳实践2026}) # 输出1篇CSDN文章 公众号版本 知乎回答 小红书图文脚本四、与单Agent方案的对比数据指标单Agent方案Multi-Agent方案提升周产出文章数81201400%文章爆款率阅读100012%34%183%SEO首排名率8%41%412%内容同质化比例67%11%-84%数据错误/幻觉率31%4%-87%平均创作时间/篇4.3min7.8min81%人工编辑时间/篇45min12min-73%五、七个核心坑位#坑位现象根因解法1选题同质化Agent连续3天推荐AI编程工具对比为选题Trend Agent只看搜索热度没有去重加选题库去重近30天内发布过的选题自动过滤2内容同质化不同主题的文章结构高度相似都是背景-三步法-总结LLM对每种主题输出相同结构对每篇文章注入随机结构模板QA式/故事式/清单式等强制变化3SEO表面优化SEO Agent只是机械地在文章中插入关键词影响可读性Agent不理解SEO和可读性的平衡改为语义优化让Agent理解搜索意图围绕意图重写段落而非插入关键词4多平台分发格式错乱公众号版本保留了Markdown格式标记分发Agent不理解不同平台的富文本格式差异对每个平台定义输出格式模板公众号→纯文本emoji知乎→Markdown小红书→短句标签5数据幻觉文章中出现根据IDC报告2026年市场规模达5000亿美元但IDC没有这个数据LLM编造了权威引用Research阶段做交叉验证二次搜索确认Creative阶段放幻觉检测6品牌调性漂移第3篇开始文章从专业严谨慢慢变成活泼有趣长对话中LLM受到用户风格影响逐渐偏离品牌设定每轮创作开始时重新注入品牌调性约束不做多轮对话缓存7Agent协作死锁SEO Agent改完文章后派发Agent改了平台格式导致SEO破坏需要回退Agent之间没有确定执行顺序导致的循环依赖固定执行顺序SEO → 分发SEO后的内容为只读分发层不允许修改正文内容ROI计算ROI (内容带来的营收增量 - Agent调用成本 - 人工编辑成本) / (Agent调用成本 人工编辑成本)实测: (¥180,000 - ¥2,400 - ¥28,800) / (¥2,400 ¥28,800) ≈ 4.77六、总结Multi-Agent内容工厂的核心不是用更多AI而是用更专业的分工替代一个AI做全部。每个Agent只做一件事但做到极致。让一个Agent同时思考选题和SEO结果就是两个都做不好。Research Agent是整个系统的基石。没有真实数据支撑的内容SEO再好也是空中楼阁。我们花了最多时间优化这个Agent。品牌调性需要硬约束不能靠提示词软控制。禁词列表比prompt风格描述更有效。⚠️适用边界本方案适用于有明确内容策略的技术类/行业类内容创作。不适用于纯创意写作小说/诗歌、时效性极强的内容实时新闻、以及高度依赖个人IP的内容KOL独家人设。如果你每周产出少于5篇不需要Multi-Agent——一个编排好的单Agent就够了。参考LangGraph Multi-Agent文档(2026-07)、Google Agent2Agent协议(2026-06)、网易智企内容工厂白皮书(2026-05)、内容营销ROI研究报告(2026-07)
