# LangGraph Multi-Agent 示例——运行说明与项目架构 本文档说明如何运行本示例,以及项目结构与主要模块。对应博客见 [8_multiagent.md](../8_multiagent.md)。 — 1 项目简介 本示例为 LangGraph 多智能体协作(Multi-Agent Collaboration) 的完整实现:针对用户给定的主题,先通过 Send 扇出 让 技术向研究智能体、业务向研究智能体、GitHub 热点向研究智能体 三路 并行执行,再经 汇聚节点 合并为一份研究摘要,由写作智能体撰写博客正文,由评审智能体对「研究 + 博客」做质量评审;若分数未达阈值且未达最大轮次,则回到写作智能体修订,形成「并行研究 → 汇聚 → 写作 → 评审 → 可选修订」的闭环。 – 技术栈:LangGraph(状态图 + Send 并行 + 条件边)+ LangChain(OpenAI / DashScope 等 + LCEL) – 运行方式:本地命令行运行 `python main.py` 或传入自定义主题 `python main.py “你的主题”`;加 `-v` 或 `–verbose` 可开启每步详细日志(STEP_VERBOSE) – 默认示例:主题「2024-2025 年人工智能领域的三大新兴趋势及其实际应用」;可选通过状态传入 `max_iterations` 控制最大修订轮数(默认 3) 为什么不用单智能体? – 并行执行:技术向、业务向、GitHub 热点向研究是三个独立节点,由框架并行调度(三路 LLM 调用可同时进行),总耗时接近「单路耗时」而非「三路相加」,单智能体若顺序做多段调研则无法省时。 – 角色专精:技术向 / 业务向 / GitHub 热点向使用不同 prompt(模型与算法、场景与价值、GitHub 趋势与推荐),各写各的、再合并,比一个「大而全」的 prompt 更容易控制质量与风格。 – 可扩展:新增一路研究(如「合规与风险」)只需加一个节点和一条 Send,不必改单智能体的长 prompt 或逻辑。 — 2 快速开始 环境要求 – Python 3.12+(researcher_github 节点通过 mcp-github-trending MCP 获取真实 GitHub 趋势数据,该包需 3.12+) – Conda 或 venv – 可调用 OpenAI 或兼容接口(如 DashScope)的 API Key 安装步骤 1. 进入目录并创建虚拟环境 Windows (conda): shell conda create -n venv_multiagent python=3.12 -y conda activate venv_multiagent Windows (venv): shell python3.12 -m venv venv_multiagent .venv_multiagentScriptsactivate macOS/Linux: 将上述 `.venv_multiagentScriptsactivate` 改为 `source venv_multiagent/bin/activate`。 2. 安装依赖 shell pip install -r requirements.txt 可选国内镜像: shell pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple 3. 配置 API 在主目录下创建 `.env` 文件,例如: env OPENAI_API_KEY=sk-xxxx # 若使用 DashScope 等兼容接口,可设置: # DASHSCOPE_API_KEY=sk-xxxx # BASE_URL=https://dashscope.xxx # MODEL=qwen-plus 未配置时,程序会因缺少 API Key 在调用 LLM 时报错。 日志文件:运行过程中日志会同时写入控制台与默认文件 `multiagent.log`。可通过环境变量 `MULTIAGENT_LOG_FILE` 指定其他路径。 — 3 运行方式 在项目目录 下、已激活虚拟环境后执行: shell # 默认:使用预设主题 python main.py # 单次自定义主题 python main.py “大语言模型在代码生成中的应用” # 开启每步详细日志(STEP_VERBOSE),输出研究/写作/评审的预览与数据源等 python main.py -v “大语言模型在代码生成中的应用” python main.py –verbose “你的主题” 或使用 Jupyter:打开 `main.ipynb`,依次运行各单元格,可查看流程图(Mermaid 图)与每步输出。 运行结束后,最终报告( 研究摘要 + 博客正文)会打印在控制台;通过 `python main.py -v “主题”` 或 `python main.py –verbose “主题”` 可开启 STEP_VERBOSE,每步(研究、写作、评审、路由)的详细日志会写入控制台与 `multiagent.log`。如需限制修订轮数,可在调用时传入状态,例如:`graph.invoke({“topic”: “你的主题”, “max_iterations”: 2})`。 — 4 项目结构与源码架构 4.1 目录与主要文件 | 文件 | 说明 | |——|——| | `main.py` | 入口:构建图、执行预设或命令行传入的主题、打印最终报告;支持 `-v`/`–verbose` 开启 STEP_VERBOSE | | `multiagent_graph.py` | 核心:`MultiAgentState`、research_fork / researcher_tech / researcher_business / researcher_github(三路并行)/ merge_research / writer / critic、Send 扇出与条件边 | | `prompt.py` | 研究、写作与评审的提示词:`RESEARCHER_PROMPT`、`WRITER_PROMPT`、`WRITER_REFINE_PROMPT`、`CRITIC_SYSTEM/USER` | | `config_parser.py` | 从 `.env` 读取 API Key、base_url、model | | `log_config.py` | 日志配置:输出到控制台与 `multiagent.log` | | `requirements.txt` | Python 依赖 | | `README.md` | 本说明文档 | 4.2 主流程(文字版) 用户给定主题 (topic) → research_fork:扇出,不修改状态 → Send 并行:researcher_tech、researcher_business、researcher_github 三路同时运行 – researcher_tech:仅写 state[“research_tech”] – researcher_business:仅写 state[“research_business”] – researcher_github:仅写 state[“research_github”](GitHub 热点与推荐) → merge_research:三路都完成后执行,将三块研究合并为 research,透传 max_iterations → writer:首轮根据 topic + research 撰写博客 → state[“draft”]、state[“report”]、state[“iteration”]=1 → critic:对「研究 + 博客」评审,输出 JSON → state[“critique”]、state[“critique_score”] → 条件边:若 critique_score >= 85 或 iteration >= max_iterations → END;否则 → writer(修订轮) → writer(修订):根据 critique 修订博客,iteration += 1 → 再次进入 critic,直至达标或达最大轮次 4.3 主流程(Mermaid) mermaid flowchart LR START(“__start__”) –> fork[research_fork] fork –> researcher_tech[researcher_tech] fork –> researcher_business[researcher_business] fork –> researcher_github[researcher_github] researcher_tech –> merge[merge_research] researcher_business –> merge researcher_github gpt 教程 –> merge merge –> writer[writer: 撰写/修订博客] writer –> critic[critic: 评审报告] critic –> cond{分数达标或达最大轮次?} cond –>|是| END(“__end__”) cond –>|否| writer 4.4 典型运行示例 – 默认主题:输入「2024-2025 年人工智能领域的三大新兴趋势及其实际应用」→ 技术向、业务向、GitHub 热点向三路研究并行执行 → 汇聚 → writer 撰写首稿 → critic 打分;若低于 85 分且未达 3 轮,则 writer 根据评审意见修订,再评审,直至达标或满 3 轮,最后打印「 研究摘要」「 博客正文」。 – 自定义主题:`python main.py “多智能体协作的常见架构”` → 同样先并行研究、汇聚、再写作、再评审与可选修订。 — 5 扩展建议 – 调整评审阈值与轮数:在 `prompt.py` 中修改 `CRITIC_SCORE_THRESHOLD`(默认 85);调用时传入 `max_iterations` 可限制最大修订轮数。 – 接入真实检索工具:在 researcher 节点中为 LLM 配备检索工具(如 Tavily、Bing),实现真实「调研」而非仅 LLM 归纳。 – 并行或层级扩展:本示例已包含三路并行研究(技术向 + 业务向 + GitHub 热点向);可再增加一路(如「合规与风险」)或引入协调者智能体做任务分解与汇总。 – 更换模型:在 `.env` 中设置 `MODEL` 为其他模型(如 gpt-4o、qwen-plus)。 – 提示词�
发布者:Ai探索者,转载请注明出处:https://javaforall.net/279022.html原文链接:https://javaforall.net
