ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

使用 AG2 编排 GPT Researcher 多智能体研究团队:从规划到发布的完整实践指南

使用 AG2 编排 GPT Researcher 多智能体研究团队:从规划到发布的完整实践指南 使用 AG2 编排 GPT Researcher 多智能体研究团队从规划到发布的完整实践指南【免费下载链接】gpt-researcherAn autonomous agent that conducts deep research on any data using any LLM providers项目地址: https://gitcode.com/GitHub_Trending/gp/gpt-researcher本指南聚焦 GPT Researcher 仓库中基于 AG2 框架实现的多智能体深度研究工作流讲解由 8 个专职智能体组成的研究团队如何协作完成从主题规划、深度检索、评审修订到多格式发布的完整闭环。读完本文你将掌握该工作流的智能体分工、五阶段执行流程、task.json全部配置项的运行原理以及如何在命令行或 Web 应用中启动这一编排体系。AG2 与多智能体研究编排AG2 是一个用于构建 LLM 多智能体应用的框架本仓库在multi_agents/ag2/目录下提供了完整的 AG2 编排示例用于承载 GPT Researcher 的多智能体研究工作流。该示例的核心设计思路是不把研究当作单一大模型的一次性问答而是拆解为规划Planning、数据收集与分析、评审与修订、写作与提交、发布五个阶段由具备不同专长的智能体接力完成。正如multi_agents/ag2/README.md所述该实现与仓库中基于 LangGraph 的多智能体流程使用同一套智能体与阶段划分仅在编排层换用 AG2。这套设计借鉴了斯坦福的 STORM 论文思想——通过多智能体团队协作提升研究的深度与质量。一次典型的运行可以生成一份 5-6 页的研究报告支持 PDF、DOCX、Markdown 等多种格式。需要说明的是该示例为追求最佳性能仅使用 OpenAI API对应配置中的model字段如gpt-4o。AG2 编排的 GPT Researcher 多智能体流水线从人类反馈、规划到并行研究、评审修订与发布的多阶段协作流程。研究团队8 个各司其职的智能体AG2 版研究团队由 8 个智能体构成覆盖从人类监督到最终发布的全链路实现见 multi_agents/ag2/agents/orchestrator.py智能体职责Human流程中的人在环human-in-the-loop监督研究过程并向智能体提供反馈Chief Editor主编统筹研究流程并管理整个团队Researcher研究员基于 gpt-researcher 内核的自主智能体对给定主题进行深度研究Editor编辑负责规划研究大纲与章节结构Reviewer评审员依据一组准则校验研究结果是否正确Revisor修订者根据评审员反馈修订研究结果Writer写作者负责汇编并撰写最终报告Publisher发布者负责以多种格式发布最终报告在 AG2 编排层这些角色对应ConversableAgent具备 LLM 配置的可对话智能体与一个UserProxyAgentHuman。注意编排层与执行层是两个概念ChiefEditorAgent先为每个角色创建 AG2 对话智能体用于过程消息的协调与呈现真正的任务执行则调用multi_agents/agents/下的EditorAgent、ResearchAgent、ReviewerAgent、ReviserAgent、WriterAgent、PublisherAgent、HumanAgent等实现类。工作流程五个阶段如何衔接一次完整的 AG2 研究任务在ChiefEditorAgent.run_research_task()中依次推进见 multi_agents/ag2/agents/orchestrator.py规划阶段PlanningResearcher 先对主查询执行run_initial_research初始研究产出概要随后 Editor 基于概要规划报告标题与章节列表Human 可对计划给出反馈详见下文人在环部分。数据收集与分析对规划出的每个章节sectionResearcher 通过run_depth_research执行深度研究各章节通过asyncio.gather并行推进_run_parallel_research。评审与修订每个章节的草稿进入 Reviewer → Reviser 的迭代循环最多执行max_revisions轮直至评审通过或达到上限。写作与提交Writer 依据全部研究数据撰写引言、结论、目录与来源列表并按准则如启用follow_guidelines重写报告头结构。发布Publisher 将完整 Markdown 排版组装后按publish_formats写入指定格式文件。快速上手安装、配置与运行1. 安装依赖需要分别安装仓库根目录与 AG2 子模块的依赖pip install -r requirements.txt pip install -r multi_agents/ag2/requirements.txtAG2 子模块的依赖声明非常精简见 multi_agents/ag2/requirements.txtag2[openai]0.11.2即 AG2 框架及其 OpenAI 扩展安装后以autogen包形式被导入。2. 配置环境变量export OPENAI_API_KEY{Your OpenAI API Key here} export TAVILY_API_KEY{Your Tavily API Key here}OPENAI_API_KEY供_llm_config()中的 OpenAI 类型模型调用使用orchestrator.py 将api_type固定为openaitemperature固定为 0。TAVILY_API_KEY供 gpt-researcher 的深度检索默认使用 Tavily 检索器使用。可选STRATEGIC_LLMmain.py的open_task()会读取该环境变量若其包含:如provider:model格式则取后半段作为task[model]否则直接整体覆盖实现不修改task.json也能切换模型。可选DOC_PATH当task.json中source设为local时用于指定本地文档目录。3. 运行python -m multi_agents.ag2.main入口文件为 multi_agents/ag2/main.pyopen_task()负责读取同目录下的task.jsonmain()创建ChiefEditorAgent并执行run_research_task(task_iduuid.uuid4())。运行产生的报告写入./outputs/run_{task_id}_{query前40字符}/目录由_create_output_directory生成见 orchestrator.py。此外main.py还暴露了可编程入口run_research_task(query, websocket, stream_output, tone, headers)支持传入 WebSocket 与流式输出回调——这是后端 Web 应用如backend/server/app.py集成该多智能体流程的接口。深入 task.json全部配置项与底层行为要修改研究查询并定制报告编辑 multi_agents/ag2/task.json。仓库默认内容如下{ query: Is AI in a hype cycle?, max_sections: 3, max_revisions: 3, publish_formats: { markdown: true, pdf: true, docx: true }, include_human_feedback: false, follow_guidelines: false, model: gpt-4o, guidelines: [ The report MUST be written in APA format, Each sub section MUST include supporting sources using hyperlinks. If none exist, erase the sub section or rewrite it to be a part of the previous section, The report MUST be written in spanish ], verbose: true }各字段含义及底层影响如下query研究查询或任务主题。可通过run_research_task(query...)在运行时覆盖详见 main.py。model智能体使用的 OpenAI LLM 模型。在编排层用于构建 AG2 的llm_config在执行层由call_model透传给gpt_researcher.utils.llm.create_chat_completion见 multi_agents/agents/utils/llms.py实际供应商来自全局配置cfg.smart_llm_provider。max_sections报告最大章节数每个章节是研究查询的一个子主题。该值直接注入 Editor 的规划提示词约束其生成最多 N 个 section headerseditor.py且提示词明确要求排除 introduction、conclusion 与 references。max_revisions每个章节的最大评审/修订轮数。在_run_section中控制 Reviewer → Reviser 循环次数orchestrator.py评审返回None时提前结束循环。include_human_feedback为true时用户可向智能体提供反馈为false时智能体全自主运行。它同时影响两个层面AG2 编排层UserProxyAgent的human_input_modeALWAYS/NEVERorchestrator.py以及执行层HumanAgent.review_plan是否在 WebSocket 或控制台向用户征询对章节计划的意见human.py。用户回复no或批准类语义即视为认可计划is_human_plan_approval判定否则反馈会回灌给 Editor 重新规划章节。publish_formats报告发布格式报告写入outputs目录。PublisherAgent按布尔值分别调用write_md_to_pdf、write_md_to_word、write_text_to_mdfile_formats.pyPDF 借助md2pdf配合pdf_styles.css样式渲染DOCX 先由mistune将 Markdown 转 HTML再用htmldocx写入 Word 文档Markdown 直接落盘。文件名均为随机 UUID与运行目录拼接。source研究数据来源选项为web或local。ResearchAgent将其透传给GPTResearcher的report_sourceresearcher.py设为local时需配置DOC_PATH环境变量。follow_guidelines为true时报告遵循下方guidelines耗时更长但更合规为false时生成更快但可能不遵循准则。该开关直接决定 Reviewer 是否执行准则评审reviewer.py以及 Writer 是否调用revise_headers依据准则重写标题结构writer.py。guidelines报告必须遵循的准则列表。Reviewer 的评审提示词会逐条拼接这些准则并判断草稿是否达到可发布标准若revision_notes存在评审员会被告知仅对关键问题追加反馈reviewer.py避免无限修订。verbose为true时应用向控制台输出详细日志。典型输出包括各阶段状态、评审反馈、修订说明与最终报告布局通过 views.py 的print_agent_output以不同颜色区分智能体为false时静默执行。源码透视AG2 编排层的协作机制ChiefEditorAgent是整套工作流的指挥中心其协作机制可分为三层AG2 对话层_initialize_ag2_team()用统一llm_config模型来自task[model]temperature0创建 7 个ConversableAgent与 1 个UserProxyAgent组成GroupChat。值得注意的是speaker_selection_methodmanual——AG2 群聊的发言人并非由模型自动选择而是由编排器显式驱动。_chat()通过agent.send(message, self.manager, request_replyFalse)将消息注入群聊管理器_log()再将其同时转发到 WebSocket 流若存在或控制台。执行层调用链真正的业务逻辑发生在run_research_task()中核心阶段及其实现类如下初始研究ResearchAgent.run_initial_research→GPTResearcher(query, report_typeresearch_report, ...)→conduct_research()write_report()researcher.py章节规划EditorAgent.plan_research调用call_model(prompt, model, response_formatjson)要求返回含title、date、sections的 JSONeditor.py并行深度研究_run_parallel_research对每个章节并发执行_run_section内部复用run_subtopic_researchreport_typesubtopic_reportresearcher.py评审/修订循环ReviewerAgent.review_draft按准则输出评审意见ReviserAgent.revise_draft以 JSON 返回修订后的草稿与说明reviser.py评审返回None由is_none_accept_response判定接受语义即终止循环写作WriterAgent.write_sections生成引言、结论、目录、来源列表 JSONget_headers定义报告排版结构writer.py发布PublisherAgent.generate_layout按标题/日期/引言/目录/章节正文/结论/可视化/参考文献模板组装 Markdown再按格式写出publisher.py。错误处理与健壮性call_model在 LLM 调用失败时记录错误日志JSON 解析统一走parse_json_markdown(response, parserjson_repair.loads)可自动修复模型偶尔输出的畸形 JSONllms.py这是多智能体流水线在真实环境中的关键容错设计。常见问题与运行提示报告没有产出确认outputs/目录下存在run_*文件夹且publish_formats中至少有一项为truePDF/DOCX 生成失败不会中断流程对应函数捕获异常并打印错误返回空路径此时 Markdown 仍是兜底产物。评审循环异常频繁调低max_revisions或为guidelines增加更明确、可判定的约束开启follow_guidelines后单次任务耗时显著增加。想切换模型或数据源优先使用STRATEGIC_LLM环境变量覆盖model通过source: localDOC_PATH切换为本地文档研究。Web 集成方式前端/后端可通过run_research_task传入 WebSocket 与stream_output将各智能体状态实时推送到界面include_human_feedback: true时 HumanAgent 会经由 WebSocket 以human_feedback类型消息向用户请求对章节计划的反馈。更多细节可继续阅读 multi_agents/README.md 与 multi_agents/ag2/README.md深入理解各智能体实现可查看 multi_agents/agents/ 目录下的源码。【免费下载链接】gpt-researcherAn autonomous agent that conducts deep research on any data using any LLM providers项目地址: https://gitcode.com/GitHub_Trending/gp/gpt-researcher创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表