资讯动态

Swarms 论文实现实战:基于 LongAgent 的学术论文与长文档多 Agent 处理管线

发布时间:2026/9/17 22:10:08 来源:尧图企业网站定制
Swarms 论文实现实战基于 LongAgent 的学术论文与长文档多 Agent 处理管线【免费下载链接】swarmsThe Enterprise-Grade Multi-Agent Orchestration Framework. Website: https://swarms.ai项目地址: https://gitcode.com/GitHub_Trending/swar/swarms本指南以 paper_implementations 目录 及其核心实现 long_agent.py 为主体讲解如何在 Swarms 框架中将「长文档切分 → 多 Agent 并行分析 → 聚合报告」这一学术级多 Agent 架构落到可运行的代码中。读完你将掌握LongAgent的完整 API、PDF/Markdown/纯文本三种输入管线、基于 token 的自动分块策略、多文档并行处理与聚合 Agent 的生成方式并能直接迁移到论文综述、研报分析、合规审查等超长上下文场景。一、目录定位学术多 Agent 概念的工程化落地examples/multi_agent/paper_implementations/README.md 明确说明了该目录的定位收录多 Agent 系统领域学术论文与研究概念的实现用于展示理论上的多 Agent 概念如何借助 Swarms 框架在工程上落地。当前目录包含文件说明long_agent.py长上下文处理 Agent 的完整实现LongAgent 类README.md目录说明文档它与 examples/multi_agent 目录下的其他实现如 mixture_of_agents、council、moa 等同属「论文/研究概念 → Swarms 代码」的落地层而LongAgent聚焦的核心问题是当输入文档远超单个模型上下文窗口时如何不丢失信息地完成分析与综述。其答案是经典的map-reduce分而治之架构——把长文档拆成若干块交给多个 Agent 分别处理map再把所有摘要交给一个聚合 Agent 汇总成完整报告reduce。二、LongAgent 核心架构与设计意图从源码看LongAgent 是一个自包含的处理管线整体流程如下输入文档PDF / Markdown / TXT │ ▼ ┌─ 文档加载load_pdf / load_markdown / load_text──┐ │ token 统计count_tokens来自 litellm │ └──────────────────────┬────────────────────────────┘ ▼ 按 token 预算分块_split_into_chunks ▼ 每个分块 → 独立 Agentmax_loops1并行/顺序分析 ▼ 所有摘要写入共享 Conversation 对象 ▼ 聚合 Agent_create_aggregator_agent生成终稿 ▼ history_output_formatter 按指定类型输出其构造函数参数定义了整条管线的关键行为参数默认值作用nameLongAgent实例名称descriptionA long-form content processing agent实例描述token_count_per_agent16000单个 Agent 的 token 预算决定每个分块的大小output_typefinal最终输出格式见 history_output_formatter 支持的枚举model_namegpt-5.4分块分析 Agent 使用的模型aggregator_model_namegpt-5.4聚合 Agent 使用的模型可独立配置实例内部维护三个核心状态content当前加载的原始内容、metadata来源类型与文件路径信息、agents已创建的分块 Agent 列表以及一个 Conversation 对象用于汇总所有中间结果。这种「分析模型与聚合模型解耦」的设计允许在成本敏感场景下用轻量模型做分块摘要、用更强模型做最终综述。三、输入层PDF / Markdown / 纯文本三种加载管线LongAgent的输入层对三种文档类型提供了对称的加载接口全部写入self.content并记录self.metadataload_pdf(file_path)使用PyPDF2逐页提取文本。若文件不存在会抛出FileNotFoundError成功后metadata[source] pdf并记录file_path源码 L43-L67。load_markdown(file_path)以 UTF-8 读取 Markdown 内容并调用markdown库将其转成 HTML 以便后续结构化处理metadata[source] markdown源码 L69-L93。load_text(text)直接接收大段字符串metadata[source] text源码 L95-L107。配套的get_content()与get_metadata()用于在管线任意阶段取回当前文档内容与其来源元数据。这组接口的实用价值在于论文综述、研报分析等场景的输入往往是异构的——正文可能是 PDF附带笔记是 Markdown调研摘要是纯文本LongAgent把它们统一成同一种「可切分文本」为后续统一处理铺路。四、token 统计与分块策略4.1 单文档与多文档 token 统计count_token_document(file_path)依据扩展名路由到对应加载器然后调用 swarms/utils/litellm_tokenizer.py 中的count_tokens完成计数并通过 swarms/utils/formatter.py 的print_panel渲染 Rich 面板输出源码 L127-L159。.pdf、.md、.txt之外的后缀会抛出ValueError。值得强调的是count_tokens底层基于litellm.encode默认模型为gpt-5.4且实现了主/备双编码器降级主模型 tokenize 失败时自动回退到备选编码器若两者都失败才抛出ValueError。这意味着 token 统计是「按模型预估」的近似值而非字节计数在配置token_count_per_agent时应为输出 token 留出余量。count_multiple_documents(file_paths)则用ThreadPoolExecutor并行统计多个文档max_workers取max(1, int(os.cpu_count() * 0.2))——即 CPU 核数的 20%至少为 1。单个文档处理异常时只记录错误面板并跳过不影响整体计数源码 L161-L193。4.2 按 token 预算分块_split_into_chunks分块是整套架构的枢纽。_split_into_chunks采用贪心句子打包算法用. 将文本粗略切分为句子逐句累计 token若加入当前句会超过token_count_per_agent则把当前块封口、开启新块剩余未满一块的句子作为最后一个块追加。算法刻意保持简单不依赖语义切分换来的是确定性与零额外依赖。在真实使用中若需要更高质量的切分边界例如避免在表格、公式、代码块中间断开可以在调用_split_into_chunks前对文本做预处理或按论文章节标题预先分割后再喂入。五、分块 Agent 与聚合 Agent 的创建与运行5.1 为每个分块创建分析 Agentcreate_agents_for_documents(file_paths)是管线的 map 阶段源码 L195-L273对每个文档加载内容、切块然后为每个块实例化一个 Agentagent_name采用Document Analysis Agent - {文件名} - Chunk {序号}命名便于在Conversation中溯源system_prompt内置了「文档分析专家」提示词涵盖文档分析、摘要生成、信息抽取、响应格式、上下文感知五方面职责model_name取构造时的model_namemax_loops1单轮处理不做反思循环max_tokenstoken_count_per_agent随后agent.run(...)把分块文本作为任务执行输出写入self.conversation.add(roleagent.agent_name, contentoutput)并把 Agent 追加进self.agents。这里的max_loops1是刻意选择分块任务的边界清晰单轮分析即可产出摘要避免不必要的重复调用。如果需要让每个分块先分析再自我纠错可以在此处把max_loops调大或参考 Agent.run 的交互式/自主双模式进行扩展。5.2 聚合 Agent从摘要到结构化报告_create_aggregator_agent()是管线的 reduce 阶段源码 L322-L363创建一个名为Document Aggregator Agent的 Agent提示词聚焦四类能力合成与整合合并多个摘要、解决矛盾、去冗余、报告结构含执行摘要的层级结构、分析与洞察跨摘要提炼主题与结论、质量保障事实一致性、专业语气。它使用独立的aggregator_model_name同样max_loops1、max_tokenstoken_count_per_agent。5.3 主入口run端到端执行run(file_paths)把上述阶段串成完整流水线count_multiple_documents统计总 token并估算total_amount_of_agents total_tokens / token_count_per_agent并输出面板——这是规划阶段最重要的成本预估create_agents_for_documents完成所有分块分析摘要进入共享Conversation创建聚合 Agent用conversation.get_str()取回全部摘要作为其输入聚合 Agent 按固定大纲生成终稿Executive Summary → Main Findings and Analysis → Key Themes and Patterns → Detailed Breakdown by Topic → Conclusions and Implications终稿也写入Conversation最后交给history_output_formatter按output_type输出。5.4 输出格式详解output_type最终由 history_output_formatter 解析其支持的取值远超默认的final取值返回内容list消息字典列表dict/dictionary会话字典string/str/all会话拼接字符串final/last最后一条消息内容即聚合终稿jsonJSON 字符串yamlYAML 字符串xmlXML 字符串dict-all-except-first/str-all-except-first除首条外全部消息list-final/dict-final末条消息的不同形态默认final恰好是论文综述场景最需要的——只返回聚合后的完整报告而所有分块摘要仍保存在Conversation中可随时取回审计。六、把 LongAgent 接入真实项目最小可用示例下面是在 Swarms 项目中调用LongAgent处理多篇论文的最小示例需要先按 README 完成框架安装并配置模型 API Keyfrom examples.multi_agent.paper_implementations.long_agent import LongAgent agent LongAgent( token_count_per_agent16000, output_typefinal, model_namegpt-5.4, aggregator_model_namegpt-5.4, ) # 处理多篇 PDF / Markdown 文档输出一份结构化综述 report agent.run( file_paths[ paper_1.pdf, paper_2.pdf, related_notes.md, ] ) print(report)参数调整建议token_count_per_agent这是吞吐量与质量的平衡旋钮。调小会生成更多更细的分块 Agent聚合时上下文更碎调大则每个分块携带更多上下文摘要更连贯但需保证max_tokens与模型上下文窗口的兼容性。实践中 8k16k 是常见区间。model_namevsaggregator_model_name成本优化场景下可让分块 Agent 用轻量模型、聚合 Agent 用旗舰模型因为聚合阶段对推理与结构化的要求最高。output_type需要中间审计时改传str-all-except-first可拿到每个分块 Agent 的独立摘要。七、与框架其他能力的协作边界LongAgent本身是串行创建分块 Agent 的create_agents_for_documents内为for循环这是为了保证共享Conversation的写入顺序与可溯源性。若需进一步并行化可参考仓库中两类现成方案多文档并行统计已示范了ThreadPoolExecutor的用法count_multiple_documents可将同样的模式迁移到分块 Agent 执行阶段仓库的 concurrent_workflow.py 与 batch_agent_execution.py 提供了框架级的并发编排能力适合把「多文档 → 多 Agent」升级为异步批量执行。此外Conversation对象天然支持autosave、JSON/YAML 导出conversation.py与动态上下文窗口自动分块dynamic_auto_chunking可以把 LongAgent 的中间摘要落盘实现「先跑分块、后补聚合」的断点式工作流。八、总结与适用场景LongAgent用约 400 行代码在 Swarms 框架上完整实现了「长文档 map-reduce 多 Agent 综述」这一论文级架构核心价值在于突破上下文窗口限制token 预算化分块任意长度的文档都可被有序消化分析与聚合解耦两个模型名独立配置质量与成本可分别调优全程可审计所有分块摘要与终稿都沉淀在Conversation中支持十余种输出形态即插即用直接复用 Agent 与 Conversation 等框架核心组件无需自造轮子。典型落地场景包括多篇学术论文的横向综述、券商研报与招股书分析、长合同合规审查、企业内部知识库文档合并。若你的输入恰好是超长 PDF 或跨格式材料long_agent.py 是通往「多 Agent 处理长文档」最快的一条路径。【免费下载链接】swarmsThe Enterprise-Grade Multi-Agent Orchestration Framework. Website: https://swarms.ai项目地址: https://gitcode.com/GitHub_Trending/swar/swarms创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价