单个 AI 能做的事有限,三个 AI 分工协作能做的事远超你想象。本文用纯 Python 从零实现一个多智能体系统,完整代码可直接运行。
一、什么是多智能体系统(Multi-Agent System)?
简单说:多个 AI Agent 各司其职,协作完成一个复杂任务。
类比现实团队:
- 产品经理负责分析需求
- 程序员负责写代码
- 测试工程师负责检查质量
每个 Agent 有自己的职责、工具和思考方式,它们之间通过消息传递来协作。
角色分工示意:
- 🎯 协调者 Agent:任务拆分与调度
- 🔍 研究 Agent:信息搜集与分析
- 💻 编码 Agent:代码生成
- 🧪 审查 Agent:质量检查
最终交付的是经过多方验证的完整成果。
二、为什么不用现成框架?
LangGraph、CrewAI、AutoGen 都很好,但先理解原理再选框架,才是正确的学习路径。
虽然市面上已有成熟的工具链,但直接上手框架容易让人忽略底层的交互逻辑。本文先用纯 Python 实现核心逻辑,让你看清数据流和状态机是如何运转的,之后再对比框架选型会更清晰。
三、系统架构设计
我们要构建的系统是一个 AI 研发小队。
用户输入需求 → 协调者拆分任务 → 三位 Agent 各司其职 → 汇总交付
| 角色 | 职责 | 工具 |
|---|---|---|
| Coordinator(协调者) | 分析需求、分配任务、汇总结果 | 任务拆解、结果整合 |
| Researcher(研究员) | 搜集技术方案、查找最佳实践 | 知识检索、方案分析 |
| Coder(程序员) | 编写代码实现 | 代码生成、文件操作 |
| Reviewer(审查员) | 检查代码质量和安全性 | 代码审查、漏洞扫描 |
四、代码实现
4.1 基础类:定义 Agent
首先我们需要一个通用的 Agent 基类,它负责处理消息格式和调用模型。
# agent.py
import json
import ollama
from dataclasses import dataclass, field
from typing import Optional
@dataclass
class Message:
role: str # "user" | "agent" | "system"
sender: str
content:
:
name:
role:
system_prompt:
model: =
history: = field(default_factory=)
() -> :
full_messages = [{: , : .system_prompt}]
msg messages:
full_messages.append({
: msg.sender != .name ,
:
})
response = ollama.chat(
model=.model,
messages=full_messages
)
response[][]


