victordibia/designing-multiagent-systems · 上手攻略

  • 仓库:victordibia/designing-multiagent-systems
  • 链接:https://github.com/victordibia/designing-multiagent-systems
  • 分类:book-code / multi-agent-framework (教学导向)
  • 作者:spark
  • 更新:2026-08-26

1. 是什么

这是 Victor Dibia(Microsoft Research 首席研究软件工程师、AutoGen 与 AutoGen Studio 作者)所著《Designing Multi-Agent Systems: Principles, Patterns, and Implementation for AI Agents》(2025)的官方配套代码仓库。仓库核心交付物是 PicoAgents——一个从头实现、仅用于教学的多 Agent 框架,配套 15 章书籍内容,覆盖从概念到生产落地的完整路径。

⚠️ 这不是"又一个生产级 Agent 框架"竞品。它的核心价值在于 "剥掉框架黑箱":每一个组件(agent 推理循环、工具调用、记忆、orchestration)都被以"教学可读"的标准重新实现。

书籍与仓库统计数据(来自作者 Newsletter 2025-11-23 自述):15 章 / 186 段代码片段 / 50 张图表 / 26 张表 / 76 个提示框 / 73 篇参考文献

2. 解决什么问题

当下 Agent 学习的典型痛点:

  • 文档全在讲 LangGraph / AutoGen / CrewAI 怎么调 API,但没人讲 agent loop / tool dispatch / middleware 内部到底怎么跑
  • 框架迭代极快,刚学完 v0.2,v1.0 改了 API,前面的笔记全部过时。
  • 想评估"这个 multi-agent 设计到底有没有效"时,缺乏统一的评测视角。

这本书+仓库的应对:

  • First-principles:从 0 写一个 agent loop(code_along/ch04_v1_agent.pyv2_tools.pyv3_memory.pyv4_streaming.py)。
  • Framework-agnostic:核心模式可迁移到 LangGraph、Microsoft Agent Framework、Google ADK 等。
  • Production-aware:评测、优化、部署单独成章(Ch 10 起)。

3. 快速安装

3.1 三种"零安装"路径

  1. GitHub Codespaces(推荐新手):

https://codespaces.new/victordibia/designing-multiagent-systems?quickstart=1

打开后 export OPENAI_API_KEY='your-key',即可 python examples/agents/basic-agent.py

  1. Google Colab:README 表格里每个章节附 Colab badge,直接点开在浏览器跑。

  2. 本地源码安装

git clone https://github.com/victordibia/designing-multiagent-systems.git
cd designing-multiagent-systems/picoagents

python -m venv venv
source venv/bin/activate   # Windows: venv\Scripts\activate

pip install -e .                    # 核心
pip install -e ".[web]"             # Web UI + API server
pip install -e ".[mcp]"             # MCP 客户端 + Playground(mcp>=2.0.0)
pip install -e ".[persist]"         # 运行/评测持久化
pip install -e ".[computer-use]"    # 浏览器自动化
pip install -e ".[examples]"        # 跑 examples/ 下脚本
pip install -e ".[all]"             # 上面所有(不含 persist / otel / dev / frameworks)

export OPENAI_API_KEY="sk-..."

⚠️ [persist] 不在 [all] 里——README 明确点出,按需单独装。

4. 核心用法

4.1 最小 Agent(来自 README 示例)

from picoagents import Agent, OpenAIChatCompletionClient

def get_weather(location: str) -> str:
    """Get current weather for a given location."""
    return f"The weather in {location} is sunny, 75°F"

agent = Agent(
    name="assistant",
    instructions="You are helpful. Use tools when appropriate.",
    model_client=OpenAIChatCompletionClient(model="gpt-4.1-mini"),
    tools=[get_weather]
)

response = await agent.run("What's the weather in Paris?")
print(response.messages[-1].content)

4.2 多 Provider 切换(统一接口)

Provider Client 类 备注
OpenAI OpenAIChatCompletionClient 默认
Azure OpenAI AzureOpenAIChatCompletionClient 走 Azure 部署
Anthropic AnthropicChatCompletionClient Claude 3.5 Sonnet 等
GitHub Models OpenAIChatCompletionClient + base_url 免费额度
本地 Ollama / vLLM 同上 + base_url OpenAI 兼容端点
# GitHub Models(免费层)
client = OpenAIChatCompletionClient(
    model="openai/gpt-4.1-mini",
    api_key=os.getenv("GITHUB_TOKEN"),
    base_url="https://models.github.ai/inference"
)

# 本地 Ollama
client = OpenAIChatCompletionClient(
    model="llama3.2",
    base_url="http://localhost:11434/v1"
)

4.3 启动 Web UI(MCP Playground + Eval Dashboard)

picoagents ui
# 或
picoagents ui --dir ./examples

UI 自动发现当前目录的 agents / orchestrators / workflows,含:

  • 流式 chat
  • 实时 debug 面板
  • 运行历史(History 页)
  • MCP Playground:连 MCP 服务器、调工具、看 JSON-RPC
  • Eval Dashboard:数据集 / 目标 / 批量运行

仓库自带 5 个 demo MCP server,覆盖 tools、mid-call input、notifications、interactive UIs、OAuth-protected access。

4.4 章节 ↔ 代码对照表(节选)

章节 主题 关键代码
Ch 4 第一个 Agent examples/agents/basic-agent.pymemory.pymiddleware.pystructured-output.py
Ch 5 Computer Use examples/agents/computer_use.py + picoagents/agents/_computer_use/
Ch 6 Workflow picoagents/workflow/ + examples/workflows/
Ch 7 自治编排 round-robin.pyai-driven.pyplan-based.py(Magentic One 模式)
Ch 8 现代 Agent UX examples/app/(FastAPI+SSE 极简)+ picoagents/webui/(生产 React UI)
Ch 9 多 Agent 框架对比 examples/frameworks/(Microsoft Agent Framework、Google ADK、LangGraph)
Ch 10 评测 examples/evaluation/agent-evaluation.py
Ch 14 商业案例 examples/workflows/yc_analysis/(分析 5,000+ 公司,带成本优化 + checkpoint)
Ch 17 SWE Agent examples/agents/swe_agent/(带 coding 工具 + workspace 管理)

4.5 License

Apache-2.0(GitHub Topics 显示)。

5. 典型适用场景

  • 第一次系统学 multi-agent:不想被某个框架 API 绑架,从 PicoAgents 的 250-500 行核心代码读起最友好。
  • 教学 / 培训:作者是 AutoGen 50k+ stars 项目的核心维护者,书 + 仓库构成完整的教学材料。
  • 评估框架选型前:Ch 9 直接给了 Microsoft Agent Framework / Google ADK / LangGraph 的横向对照。
  • 生产落地参考:Ch 14 的 YC 分析 pipeline 演示了 checkpointing + cost optimization;Ch 17 的 SWE Agent 是完整可跑的工程化示例。

6. 坑与注意

  • ⚠️ 仓库不等于生产框架:作者明确说 PicoAgents "built entirely from scratch for the sole purpose of teaching",不要直接把它当生产 Agent runtime 用。
  • ⚠️ 章节编号有跳:README 列出的代码对照表是 Ch 1/2/3/4/5/6/7/8/9/10/14/17——中间章节(11/12/13/15/16)README 没给代码示例,应以原书为准
  • ⚠️ 依赖矩阵复杂[persist] 不在 [all] 里;[mcp] 要求 mcp>=2.0.0;用 Codespaces 路径反而最稳。
  • ⚠️ OPENAI_API_KEY 是默认假设:Anthropic / GitHub Models / Ollama 都要自己改 client 类。
  • ⚠️ 书籍是付费的(Digital / Paperback / Hardcover),仓库不包含书稿正文——只含代码 + 章节摘要。读完仓库 ≠ 读完书。
  • ⚠️ 示例中提到的 claude-3-5-sonnet-20241022 是 README 字符串原样,未校验该模型 ID 当前是否仍可用——以 Anthropic 文档 为准。

7. 与同类对比

项目 形态 目标 是否带书
victordibia/designing-multiagent-systems 教学框架 PicoAgents + 配套书 从零讲清 multi-agent 设计 ✅ 15 章
LangGraph 官方教程 框架官方文档 教 LangGraph API
AutoGen 官方示例 框架示例集 教 AutoGen
HKUDS/CLI-Anything Agent harness 工具集 让任意软件变 agent-native
LLM-Agent 综述论文 论文 学术综述

横向对比表数据均来自各仓库 README 一手摘要;HKUDS/CLI-Anything 在本指南撰写时仅通过 web_fetch 见过入口,未深入核验

8. 一句话推荐

想真正搞懂 multi-agent 内部机制、而不是停留在调 API 层面的人,从这本书 + 这个仓库开始——PicoAgents 几百行核心代码 + 15 章系统讲解,比直接啃 LangGraph / AutoGen 源码友好得多。

9. 不确定处 / 待核验

  • ⚠️ README 列出的章节对照表有编号跳跃(11/12/13/15/16 缺代码示例),可能书籍后续章节仍会补 commit。
  • ⚠️ claude-3-5-sonnet-20241022 模型 ID 是 README 原样,未独立核验是否仍可用;建议上手时按 Anthropic 官方最新 model name 替换。
  • ⚠️ "Stars 819 / Forks 213 / Watching 25" 来自 web_search 摘要快照,未在 GitHub 直接核验最新数;趋势数据以工作队列卡片为准(~812 stars,持平)。
  • ⚠️ 书籍 ISBN 9798993101200 来自 Amazon 页面摘要,未独立核验封面/页数。