designing-multiagent-systems
从零构建多智能体系统:PicoAgents 框架教学库,配套书籍系统讲解 Agent 设计原理与协作
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
从零构建多智能体系统:PicoAgents 框架教学库,配套书籍系统讲解 Agent 设计原理与协作
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象这样一个场景:你正准备为团队构建一个自动化研究助手,需要让多个 AI Agent 协同工作——一个负责搜索最新论文,一个负责摘要提取,还有一个负责生成报告。但在真正动手之前,你面临一连串实际问题:如何让多个 Agent 之间高效传递信息?如何设计 Agent 之间的协作流程?如何评估 Agent 的输出质量?这些问题,正是 Victor Dibia 在他的新书《Designing Multi-Agent Systems》中要系统解答的。
Victor Dibia 是一位在 AI 工程领域深耕多年的研究员,曾在 Meta 等公司从事 AI 基础设施研发,同时活跃于技术写作与开源社区。他的上一本书《Hands-On Neural Search Methodologies》已经展现了将复杂技术用清晰语言表达的能力。而这本新书更进一步,以"Building LLM-Enabled Multi Agent Applications from Scratch"为副标题,从第一性原理出发,带读者从零构建一个完整的多智能体框架——PicoAgents。

图1:《Designing Multi-Agent Systems》书籍封面
PicoAgents 是这本书的核心代码产物,它不同于常见的生产级框架(如 LangGraph、AutoGen),它的设计目标纯粹是教学:用最清晰、最透明的方式展现多智能体系统的每个组成部分。这意味着你不会遇到生产框架中那些为了优化性能而牺牲可读性的代码抽象层,每一行实现都对应着书中的一个概念解释。
整个框架采用模块化架构,代码组织非常清晰:
picoagents/src/picoagents/
├── agents/ # Agent 核心(推理循环、工具调用、记忆、中间件)
├── workflow/ # DAG 工作流编排(顺序、并行、条件分支)
├── orchestration/ # 多 Agent 协作(轮询、AI 驱动、计划驱动)
├── tools/ # 工具系统(内置 15+ 工具 + MCP 集成)
├── eval/ # 评估框架(LLM-as-Judge、参考对比)
├── webui/ # FastAPI Web 界面
├── llm/ # LLM 客户端(OpenAI、Azure)
├── memory/ # 记忆实现(基础、ChromaDB)
└── termination/ # 终止条件(超时、Token 限制、外部信号)
每个模块都有对应的单元测试,测试覆盖率较为完善。对于想要深入理解多智能体系统内部运作原理的开发者来说,这个代码库本身就是最好的学习素材。
框架的核心依赖极为精简——仅有 4 个直接依赖:
pydantic>=2.0.0:数据模型与验证openai==1.107.1:LLM 调用typing-extensions>=4.0.0:类型提示requests>=2.25.0:HTTP 请求这种极简依赖策略正是教学导向的体现——引入越少依赖,读者理解代码时需要跨越的认知门槛就越低。扩展功能(Web UI、RAG、MCP 等)均以可选依赖组的方式提供,按需安装。
PicoAgents 中的 Agent 实现遵循经典的"推理-行动-观察"循环。核心类 BaseChatCompletionClient 定义了统一的 LLM 接口,任何 LLM 提供商只需实现 create() 异步方法即可接入。这种设计让你可以在不修改 Agent 逻辑的情况下,自由切换底层模型——从 OpenAI GPT 到 Anthropic Claude,从 Azure OpenAI 到本地模型。
Agent 的工具调用通过 @tool 装饰器实现,支持 Pydantic 模型作为工具输入输出的类型约束。这意味着当你定义一个工具时,可以直接在函数签名中声明复杂参数结构,PicoAgents 会自动处理类型转换和验证。
PicoAgents 实现了三种多 Agent 协作模式,这部分是全书最具价值的部分:
这三种模式覆盖了当前主流多 Agent 系统的核心设计范式,而代码实现只有几十行,非常易于理解。
框架还包含了一个类型安全的 DAG 工作流引擎,支持顺序执行、并行分支和条件判断。工作流步骤可以嵌入 Agent 调用,也可以是纯函数或 HTTP 请求。这使得 PicoAgents 不仅仅是一个 Agent 框架,还能作为轻量级的 Agentic Pipeline 编排工具。
PicoAgents 自带一个基于 FastAPI + React 的 Web 界面,通过 picoagents ui 命令即可启动。这个 UI 不是简单的聊天界面,它的设计目标是运行时调试与可视化:
前端使用 React + TypeScript + Vite 构建,后端通过 Uvicorn 托管 FastAPI 服务。Web UI 的代码也完全开源,为读者展示了如何为 Agent 系统构建调试工具链。
Agent 系统的输出质量评估一直是业界难题。PicoAgents 提供了三种评估策略:
评估结果支持导出为 CSV 和可视化图表,帮助开发者追踪 Agent 质量随迭代的变化趋势。
PicoAgents 通过 opentelemetry 可选依赖集成了完整的可观测性支持。启用后会自动记录:
当设置 PICOAGENTS_ENABLE_OTEL=true 并配置 OTLP 导出端点时,可以直接将 PicoAgents 接入 Prometheus + Grafana 或 Jaeger 等主流监控平台,实现生产级别的可观测性。
必须指出,PicoAgents 不是一个面向生产的高性能框架,而是一个教学工具。这意味着:
此外,这本书本质上是作者的个人作品,缺乏主流出版社的编辑背书,部分技术细节的表述可能不如经典教材严谨。但对于想要真正理解多 Agent 系统内部原理的开发者来说,这恰恰是最宝贵的——没有任何包装和简化,原汁原味。
2024-2025 年,AI Agent 领域正在经历从"单 Agent 调用"到"多 Agent 协作"的关键转型。AutoGen、CrewAI、LangGraph 等框架虽然降低了多 Agent 系统的开发门槛,但它们都是黑盒——你学会了怎么用,却不理解为什么这样设计。
Victor Dibia 的这本书和 PicoAgents 恰恰填补了这个教育空白。它不教你如何使用某个框架,而是从第一性原理出发,告诉你多 Agent 系统为什么需要这些组件、它们如何协作、以及在什么场景下选择哪种模式。这种知识是框架无关的——无论未来哪个框架成为主流,这些底层原理都不会过时。
总结:这是一个高度教育导向的多智能体系统实战项目。适合想要深入理解 Agent 内部机制、构建自定义 Agent 编排逻辑、或准备开发自有 Agent 框架的开发者。上手门槛低(pip install 即可),但学习曲线陡峭(需要扎实的 Python 异步编程基础)。如果你追求的是生产级的高性能框架,这里不是终点——但它是你理解终点的最佳起点。