多Agent协作模式:文章优化系统

基于"分而治之"思想的多Agent协作模式,实现高质量文章优化

本文档详细讲解基于多Agent协作思想的文章优化系统,通过多个专业化Agent的分工协作,实现文章的主题分析、语言优化、内容丰富和可读性提升。


目录

  1. 系统概述
  2. 核心思想:多Agent协作
  3. 系统架构设计
  4. 代码实现详解
  5. 优势分析
  6. 解决的问题
  7. 完整代码
  8. 使用示例
  9. 扩展建议
  10. 参考资料

系统概述

什么是多Agent协作?

多Agent协作是一种将复杂任务分解为多个子任务,由不同的专业化Agent分别处理,最后整合结果的AI系统设计模式。

在这里插入图片描述

文章优化系统的目标

通过多个专业化Agent的协作,对文章进行全方位的优化:

  • 主题分析:理解文章核心主题
  • 语言优化:改进语法和用词
  • 内容丰富:提出内容扩展建议
  • 可读性提升:改善文章结构和表达
  • 综合优化:整合所有建议,生成优化后的文章

核心思想:多Agent协作

设计理念

单一Agent处理复杂任务
    ↓ 问题:任务复杂,容易出错,难以聚焦
    ↓
分解为多个专业化Agent
    ↓ 优势:各司其职,专业聚焦,结果更优
    ↓
协作完成整体任务

工作流程

原始文章
    ↓
┌─────────────────────────────────┐
│  主题分析Agent                   │
│  分析文章主题                    │
└───────────┬─────────────────────┘
            ↓ 主题结果
┌─────────────────────────────────┐
│  语言优化Agent                   │
│  检查语法和用词                  │
├─────────────────────────────────┤
│  内容丰富Agent                   │
│  提出扩展建议                    │
├─────────────────────────────────┤
│  可读性评价Agent                 │
│  评估可读性                      │
└───────────┬─────────────────────┘
            ↓ 所有建议
┌─────────────────────────────────┐
│  综合优化Agent                   │
│  整合所有建议,生成优化文章        │
└─────────────────────────────────┘
            ↓
        优化后的文章

系统架构设计

Agent分工

Agent 职责 输入 输出
主题分析Agent 分析文章核心主题 原始文章 主题分析结果
语言优化Agent 检查语法和用词 文章 + 主题 语言优化建议
内容丰富Agent 提出内容扩展建议 文章 + 主题 内容丰富建议
可读性评价Agent 评估可读性 文章 + 主题 可读性改进建议
综合优化Agent 整合所有建议 文章 + 所有建议 优化后的文章

数据流

原始文章
    ↓
主题分析Agent → 主题结果
    ↓
    ├─→ 语言优化Agent → 语言建议
    ├─→ 内容丰富Agent → 内容建议
    └─→ 可读性评价Agent → 可读性建议
    ↓
综合优化Agent ← 所有建议
    ↓
优化后的文章

代码实现详解

1. 基础调用函数

def call_large_model(prompt):
    """调用大语言模型的统一接口"""
    client = ZhipuAiClient(api_key=os.environ.get("zhipuApiKey"))
    response = client.chat.completions.create(
        model="glm-3-turbo",
        messages=[
            {"role": "user", "content": prompt},
        ],
    )
    response_text = response.choices[0].message.content
    return response_text

作用

  • 封装大模型调用逻辑
  • 统一接口,便于维护
  • 使用智谱AI的GLM-3-Turbo模型

2. 主题分析Agent

def theme_analysis_agent(article_text):
    """分析文章主题"""
    prompt_analysis = f"请分析并输出以下文章的主题:{article_text}"
    theme_analysis_result = call_large_model(prompt_analysis)
    return theme_analysis_result

功能

  • 理解文章的核心主题
  • 为后续Agent提供上下文信息
  • 使用简洁的提示词,让模型专注于主题提取

输出示例

这篇文章的主题是分析《黑神话:悟空》游戏成功的原因,主要从文化内涵、视觉呈现、游戏品质和宣传推广四个方面进行阐述。

3. 语言优化Agent

def language_optimization_agent(article_text, theme_analysis_result):
    """检查语法和用词,提出优化建议"""
    prompt_language = f"""请检查下面这篇文章中的语法错误和用词不当之处,并提出优化建议。
建议要尽量简练,不超过100字。

文章主题:{theme_analysis_result}

文章内容:{article_text}"""
    language_optimization_suggestions = call_large_model(prompt_language)
    return language_optimization_suggestions

功能

  • 检查语法错误
  • 识别用词不当
  • 提出简洁的优化建议(不超过100字)

关键点

  • 接收主题分析结果,确保建议与主题一致
  • 限制建议长度,避免冗余

4. 内容丰富Agent

def content_enrichment_agent(article_text, theme_analysis_result):
    """提出内容扩展和丰富建议"""
    prompt_content = f"""请阅读下面这篇文章,根据主题为该文章提出可以进一步扩展和丰富的内容点或改进建议,
比如添加案例、引用数据等。建议要尽量简练,不超过100字。

文章主题:{theme_analysis_result}

文章内容:{article_text}"""
    content_enrichment_suggestions = call_large_model(prompt_content)
    return content_enrichment_suggestions

功能

  • 识别内容薄弱环节
  • 提出扩展建议(案例、数据、引用等)
  • 确保建议与主题相关

5. 可读性评价Agent

def readability_evaluation_agent(article_text, theme_analysis_result):
    """评估文章可读性,提出改进建议"""
    prompt_readability = f"""请阅读下面这篇文章,根据主题评估该文章的可读性,
包括段落长度、句子复杂度等,提出一些有助于文章传播的改进建议。
建议要尽量简练,不超过100字。

文章主题:{theme_analysis_result}

文章内容:{article_text}"""
    readability_evaluation_result = call_large_model(prompt_readability)
    return readability_evaluation_result

功能

  • 评估段落长度是否合适
  • 分析句子复杂度
  • 提出提升传播效果的改进建议

6. 综合优化Agent

def comprehensive_optimization_agent(article, theme_analysis_result, 
                                    language_optimization_suggestions, 
                                    content_enrichment_suggestions, 
                                    readability_evaluation_result):
    """整合所有建议,生成优化后的文章"""
    final_optimization_plan = f"""请阅读下面这篇文章,以及若干个负责专项优化的agent给出的改进建议,
重写这篇文章,提升文章的整体质量。

文章原文:{article}

文章主题分析:{theme_analysis_result}

语言优化建议:{language_optimization_suggestions}

内容丰富建议:{content_enrichment_suggestions}

可读改进建议:{readability_evaluation_result}。

优化后文章:"""
    final_optimization_result = call_large_model(final_optimization_plan)
    return final_optimization_result

功能

  • 整合所有Agent的建议
  • 综合考虑多个维度
  • 生成最终优化后的文章

关键点

  • 将所有建议作为上下文提供给模型
  • 让模型综合权衡,生成最优结果

7. 主流程

# 1. 主题分析
theme_analysis_result = theme_analysis_agent(article)

# 2. 并行执行三个优化Agent(可以并行,但代码中是串行)
language_optimization_suggestions = language_optimization_agent(article, theme_analysis_result)
content_enrichment_suggestions = content_enrichment_agent(article, theme_analysis_result)
readability_evaluation_result = readability_evaluation_agent(article, theme_analysis_result)

# 3. 综合优化
final_optimization_plan = comprehensive_optimization_agent(
    article, 
    theme_analysis_result, 
    language_optimization_suggestions, 
    content_enrichment_suggestions, 
    readability_evaluation_result
)

# 4. 保存结果
results = {
    "主题分析结果": theme_analysis_result,
    "语言优化建议": language_optimization_suggestions,
    "内容丰富建议": content_enrichment_suggestions,
    "可读性评价结果": readability_evaluation_result,
    "最终优化方案": final_optimization_plan
}
with open('results.json', 'w', encoding='utf-8') as f:
    json.dump(results, f, ensure_ascii=False, indent=4)

优势分析

1. 专业化分工

优势

  • ✅ 每个Agent专注于单一任务,专业性强
  • ✅ 提示词更精准,效果更好
  • ✅ 易于优化和维护

对比

单一Agent方式:
"请优化这篇文章" → 任务太宽泛,效果一般

多Agent方式:
"请分析主题" → 聚焦明确,效果更好
"请检查语法" → 任务清晰,结果准确

2. 结果可解释性

优势

  • ✅ 每个步骤的结果都可见
  • ✅ 可以追踪优化过程
  • ✅ 便于人工审核和调整

示例

{
    "主题分析结果": "...",
    "语言优化建议": "...",
    "内容丰富建议": "...",
    "可读性评价结果": "...",
    "最终优化方案": "..."
}

3. 灵活性和可扩展性

优势

  • ✅ 可以轻松添加新的Agent
  • ✅ 可以调整Agent的执行顺序
  • ✅ 可以针对不同场景定制Agent

扩展示例

# 可以添加新的Agent
def style_optimization_agent(article_text, theme_analysis_result):
    """风格优化Agent"""
    # ...

def structure_optimization_agent(article_text, theme_analysis_result):
    """结构优化Agent"""
    # ...

4. 并行处理能力

优势

  • ✅ 多个Agent可以并行执行(需要修改代码)
  • ✅ 提高处理效率
  • ✅ 充分利用计算资源

并行优化

import concurrent.futures

# 并行执行三个Agent
with concurrent.futures.ThreadPoolExecutor() as executor:
    language_future = executor.submit(language_optimization_agent, article, theme_analysis_result)
    content_future = executor.submit(content_enrichment_agent, article, theme_analysis_result)
    readability_future = executor.submit(readability_evaluation_agent, article, theme_analysis_result)
    
    language_optimization_suggestions = language_future.result()
    content_enrichment_suggestions = content_future.result()
    readability_evaluation_result = readability_future.result()

5. 质量控制

优势

  • ✅ 每个Agent都有明确的输出要求(如"不超过100字")
  • ✅ 可以单独验证每个Agent的输出
  • ✅ 便于调试和优化

解决的问题

1. 复杂任务难以一次性完成

问题

  • 文章优化涉及多个维度(语言、内容、结构、可读性)
  • 单一提示词难以覆盖所有方面
  • 结果质量不稳定

解决方案

  • 将复杂任务分解为多个子任务
  • 每个Agent专注一个维度
  • 最后整合所有结果

2. 优化建议缺乏针对性

问题

  • 通用优化建议往往不够精准
  • 没有考虑文章的具体主题和上下文

解决方案

  • 主题分析Agent提供上下文
  • 其他Agent基于主题给出针对性建议
  • 确保建议与文章主题一致

3. 优化过程不透明

问题

  • 不知道文章是如何优化的
  • 无法追踪优化过程
  • 难以人工干预

解决方案

  • 每个Agent的输出都保存
  • 可以查看每个步骤的结果
  • 便于人工审核和调整

4. 难以平衡多个优化维度

问题

  • 语言优化可能与内容丰富冲突
  • 难以同时兼顾多个方面

解决方案

  • 综合优化Agent整合所有建议
  • 让模型综合权衡
  • 生成平衡的优化结果

5. 扩展性差

问题

  • 单一Agent难以扩展新功能
  • 修改影响范围大

解决方案

  • 模块化设计,易于添加新Agent
  • 每个Agent独立,互不影响
  • 可以灵活组合使用

完整代码

#coding:utf-8

import os
import json
from zai import ZhipuAiClient

'''
利用agent思想优化文章
多Agent协作模式:通过多个专业化Agent的分工协作,实现文章的全方位优化
'''

# 安装依赖:pip install zhipuai
# API Key获取:https://open.bigmodel.cn/ 注册获取APIKey
# 设置环境变量:export zhipuApiKey="your_api_key" (Linux/Mac)
# 或:set zhipuApiKey=your_api_key (Windows CMD)
# 或:$env:zhipuApiKey="your_api_key" (Windows PowerShell)

def call_large_model(prompt):
    """
    调用大语言模型的统一接口
    
    Args:
        prompt: 提示词
        
    Returns:
        str: 模型返回的文本内容
    """
    client = ZhipuAiClient(api_key=os.environ.get("zhipuApiKey"))
    response = client.chat.completions.create(
        model="glm-3-turbo",  # 使用智谱AI的GLM-3-Turbo模型
        messages=[
            {"role": "user", "content": prompt},
        ],
    )
    response_text = response.choices[0].message.content
    return response_text

# ==================== 专业化Agent定义 ====================

def theme_analysis_agent(article_text):
    """
    主题分析Agent:分析文章的核心主题
    
    Args:
        article_text: 文章内容
        
    Returns:
        str: 主题分析结果
    """
    prompt_analysis = f"请分析并输出以下文章的主题:{article_text}"
    theme_analysis_result = call_large_model(prompt_analysis)
    return theme_analysis_result

def language_optimization_agent(article_text, theme_analysis_result):
    """
    语言优化Agent:检查语法错误和用词不当,提出优化建议
    
    Args:
        article_text: 文章内容
        theme_analysis_result: 主题分析结果
        
    Returns:
        str: 语言优化建议(不超过100字)
    """
    prompt_language = f"""请检查下面这篇文章中的语法错误和用词不当之处,并提出优化建议。
建议要尽量简练,不超过100字。

文章主题:{theme_analysis_result}

文章内容:{article_text}"""
    language_optimization_suggestions = call_large_model(prompt_language)
    return language_optimization_suggestions

def content_enrichment_agent(article_text, theme_analysis_result):
    """
    内容丰富Agent:提出内容扩展和丰富建议
    
    Args:
        article_text: 文章内容
        theme_analysis_result: 主题分析结果
        
    Returns:
        str: 内容丰富建议(不超过100字)
    """
    prompt_content = f"""请阅读下面这篇文章,根据主题为该文章提出可以进一步扩展和丰富的内容点或改进建议,
比如添加案例、引用数据等。建议要尽量简练,不超过100字。

文章主题:{theme_analysis_result}

文章内容:{article_text}"""
    content_enrichment_suggestions = call_large_model(prompt_content)
    return content_enrichment_suggestions

def readability_evaluation_agent(article_text, theme_analysis_result):
    """
    可读性评价Agent:评估文章可读性,提出改进建议
    
    Args:
        article_text: 文章内容
        theme_analysis_result: 主题分析结果
        
    Returns:
        str: 可读性改进建议(不超过100字)
    """
    prompt_readability = f"""请阅读下面这篇文章,根据主题评估该文章的可读性,
包括段落长度、句子复杂度等,提出一些有助于文章传播的改进建议。
建议要尽量简练,不超过100字。

文章主题:{theme_analysis_result}

文章内容:{article_text}"""
    readability_evaluation_result = call_large_model(prompt_readability)
    return readability_evaluation_result

def comprehensive_optimization_agent(article, theme_analysis_result, 
                                    language_optimization_suggestions, 
                                    content_enrichment_suggestions, 
                                    readability_evaluation_result):
    """
    综合优化Agent:整合所有建议,生成优化后的文章
    
    Args:
        article: 原始文章
        theme_analysis_result: 主题分析结果
        language_optimization_suggestions: 语言优化建议
        content_enrichment_suggestions: 内容丰富建议
        readability_evaluation_result: 可读性评价结果
        
    Returns:
        str: 优化后的文章
    """
    final_optimization_plan = f"""请阅读下面这篇文章,以及若干个负责专项优化的agent给出的改进建议,
重写这篇文章,提升文章的整体质量。

文章原文:{article}

文章主题分析:{theme_analysis_result}

语言优化建议:{language_optimization_suggestions}

内容丰富建议:{content_enrichment_suggestions}

可读改进建议:{readability_evaluation_result}。

优化后文章:"""
    final_optimization_result = call_large_model(final_optimization_plan)
    return final_optimization_result

# ==================== 主程序 ====================

if __name__ == "__main__":
    # 示例文章
    article = """
    2024年8月20日,国产游戏《黑神话:悟空》正式上线,迅速引发了全网的热议与追捧,其火爆程度令人惊叹。黑悟空之所以能如此之火,原因是多方面的。
    从文化内涵来看,《黑神话:悟空》深深扎根于中国传统文化。《西游记》作为中国文学的经典之作,孙悟空更是家喻户晓的英雄形象,承载着无数国人的童年回忆和文化情感。该游戏以孙悟空为主角,让玩家能够在游戏中亲身扮演齐天大圣,体验其神通广大与英勇无畏,这种文化认同感和情感共鸣是黑悟空火爆的重要基础。它不仅仅是一款游戏,更像是一场文化的回归与盛宴,让玩家在游戏的世界里重新领略中国神话的魅力,使得传统文化以一种全新的、生动的方式呈现在大众面前。
    在视觉呈现方面,黑悟空堪称一场视觉盛宴。制作团队不惜投入大量的时间和精力,运用先进的游戏制作技术,精心打造了美轮美奂的游戏画面。从细腻逼真的环境场景,到栩栩如生的角色形象,再到炫酷华丽的技能特效,每一个细节都展现出了极高的制作水准。无论是神秘奇幻的山林洞穴,还是气势恢宏的天庭宫殿,都仿佛让玩家身临其境,沉浸在一个充满想象力的神话世界之中。这种极致的视觉体验,极大地满足了玩家对于游戏画面品质的追求,也是吸引众多玩家的关键因素之一。
    游戏品质上,黑悟空也达到了相当高的水平。它拥有丰富多样且极具挑战性的关卡设计,玩家需要运用智慧和技巧,不断探索、战斗,才能逐步推进游戏进程。角色的技能系统丰富且独特,玩家可以通过不同的技能组合,发挥出孙悟空的各种强大能力,增加了游戏的可玩性和策略性。同时,游戏的剧情紧凑且富有深度,在遵循原著故事框架的基础上,进行了大胆的创新和拓展,为玩家呈现了一个既熟悉又充满新鲜感的西游世界,让玩家在享受游戏乐趣的同时,也能感受到一个精彩绝伦的故事。
    再者,宣传推广策略也为黑悟空的火爆添了一把柴。从 2020 年开始,制作方每年 8 月 20 日都会公开最新的实机视频,这些视频在网络上广泛传播,引发了大量关注和讨论,成功地为游戏上线预热造势。在社交媒体上,关于黑悟空的话题热度持续攀升,玩家们纷纷自发地宣传分享,形成了强大的传播效应。此外,针对海外市场,黑悟空也积极开展宣传活动,通过号召海外网友参与视频投稿、与博主合作推广等方式,有效地扩大了游戏在国际上的影响力。
    《黑神话:悟空》的火爆并非偶然,而是其在文化内涵、视觉呈现、游戏品质以及宣传推广等多个方面共同发力的结果。它的成功,不仅为国产游戏树立了新的标杆,也证明了中国游戏产业在技术和创意上的巨大潜力。相信在黑悟空的带动下,未来会有更多优秀的国产游戏涌现,推动中国游戏产业不断向前发展,让中国的游戏文化在全球舞台上绽放更加耀眼的光芒。同时,黑悟空也为传统文化的传承与创新提供了新的思路和途径,让传统文化在现代社会中焕发出新的活力与生机。它不仅仅是一款游戏的成功,更是中国文化与现代科技融合发展的一个精彩范例,其影响力必将深远而持久。
    """
    
    print("="*60)
    print("开始文章优化流程...")
    print("="*60)
    
    # 步骤1:主题分析
    print("\n【步骤1】主题分析中...")
    theme_analysis_result = theme_analysis_agent(article)
    print(f"主题分析结果:{theme_analysis_result[:100]}...")
    
    # 步骤2:并行执行三个优化Agent
    print("\n【步骤2】执行优化Agent...")
    language_optimization_suggestions = language_optimization_agent(article, theme_analysis_result)
    print(f"语言优化建议:{language_optimization_suggestions[:100]}...")
    
    content_enrichment_suggestions = content_enrichment_agent(article, theme_analysis_result)
    print(f"内容丰富建议:{content_enrichment_suggestions[:100]}...")
    
    readability_evaluation_result = readability_evaluation_agent(article, theme_analysis_result)
    print(f"可读性评价结果:{readability_evaluation_result[:100]}...")
    
    # 步骤3:综合优化
    print("\n【步骤3】综合优化中...")
    final_optimization_plan = comprehensive_optimization_agent(
        article, 
        theme_analysis_result, 
        language_optimization_suggestions, 
        content_enrichment_suggestions, 
        readability_evaluation_result
    )
    
    # 步骤4:保存结果
    print("\n【步骤4】保存结果...")
    results = {
        "主题分析结果": theme_analysis_result,
        "语言优化建议": language_optimization_suggestions,
        "内容丰富建议": content_enrichment_suggestions,
        "可读性评价结果": readability_evaluation_result,
        "最终优化方案": final_optimization_plan
    }
    
    # 保存为JSON文件
    with open('results.json', 'w', encoding='utf-8') as f:
        json.dump(results, f, ensure_ascii=False, indent=4)
    
    print("\n" + "="*60)
    print("优化完成!结果已保存到 results.json")
    print("="*60)
    print(f"\n最终优化方案:\n{final_optimization_plan}")


参考资料

官方文档

Agent相关

文章优化相关

Python相关

最佳实践


总结

核心要点

  1. 多Agent协作:将复杂任务分解为多个专业化Agent
  2. 分工明确:每个Agent专注单一任务,提高专业性
  3. 结果整合:综合优化Agent整合所有建议,生成最终结果
  4. 可扩展性:易于添加新的Agent,灵活组合使用

适用场景

  • ✅ 文章优化和润色
  • ✅ 内容创作辅助
  • ✅ 文档质量提升
  • ✅ 文本分析和改进

注意事项

  • ⚠️ API调用成本:多个Agent会增加API调用次数
  • ⚠️ 处理时间:串行执行可能较慢,建议使用并行
  • ⚠️ 结果质量:依赖大模型能力,需要调优提示词

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐