《智能体教程》——如何构建多智能体系统:开发者实用指南

多智能体系统(MAS)的概念在分布式计算领域已经存在数十年了。然而,大型语言模型(LLMs)和智能体人工智能的出现,使得智能体能够在以前无法实现的规模上进行推理、规划和协作。

多智能体架构

一个多智能体系统就是多个独立实体(智能体)的集合,这些实体通过协作——有时也通过竞争——来解决复杂问题。每个智能体都能够观察周围环境、做出决策并执行行动,且常常会与其他智能体展开协作。

这些系统不再仅存在于研究实验室中。它们出现在生产级应用程序中,例如:

  • • 自动研究助手能够读取、总结和交叉引用数据。
  • • 人工智能驱动的操作副驾驶可以监控基础设施、识别问题并发起变更。
  • • 自主交易系统能同时执行多种策略并交换研究结果。
  • • 多角色客户支持机器人会将咨询分配给专业的人工智能智能体,以实现更快的回复。
为什么智能体人工智能是变革性力量?

传统的多智能体系统设计需要硬编码逻辑、严格的程序和大量的手动设置。而智能体人工智能允许每个智能体利用以下能力:

  • 推理能力:大型语言模型可以容忍不明确的输入,仍然生成有意义的行动。
  • 情境感知:记忆系统使智能体能够从先前的交互中学习。
  • 智能体间通信:能让智能体动态地讨论它们的目标、限制和更新情况。
  • 自我改进循环:使智能体能够检查并根据自身表现进行调整 。
    在这里插入图片描述
智能体人工智能的核心概念

在编写代码之前,你必须了解多智能体系统的基础知识。这些概念将影响你的架构设计、框架选择,以及在整个生产过程中智能体的交互方式。

    1. 智能体、自主性和目标:智能体是一个自包含单元,它能通过API、数据库、传感器数据等感知其环境;处理输入(进行推理、推断、决策);在环境中采取行动(触发工作流程、更新系统、进行通信)。自主性意味着智能体可以在没有人类持续监督的情况下运行。它们不会遵循固定的脚本,而是适应不断变化的输入;根据自身目标做出决策;从反馈循环中学习。
    1. 如何定义智能体?:让我们看看如何使用LangChain在Python中定义一个智能体。
from langchain.agents import initialize_agent, Tool
from langchain.llms import OpenAI

# 智能体的示例工具
def search_tool(query: str) -> str:
    return f"Searching for: {query}..."

tools = [
    Tool(name="Search", func=search_tool, description="Searches the web for information.")
]

llm = OpenAI(temperature=0, api_key = "sk-projxxxxxxxxxxxxxxxxxxxx")

agent = initialize_agent(tools, llm, agent="zero-shot-react-description", verbose=True)
agent.run("Find the latest AI research on multi-agent systems.")

在进入创建这些强大智能体的下一个阶段之前,让我们先了解一下现有的多种智能体类型。
3. 智能体类型:虽然所有智能体都有一个共同的目标,但它们的行动和思考方式有所不同。

类型 描述 适用场景
反应式智能体 直接对输入做出反应,无记忆或规划 诸如响应状态检查之类的简单任务
慎思式智能体 使用推理、规划,通常具有长期记忆 研究助手、决策机器人
混合式智能体 兼具反应式的速度和慎思式的推理能力 需要快速反应和规划的复杂工作流程
我的基本建议是:尝试使用混合式智能体,它完美融合了反应式和慎思式智能体的特点。混合式智能体在速度和灵活性之间取得了平衡,使其成为生产环境的最佳选择。
4. 通信与协调:在实际生产中,智能体很少单独运行。通信策略包括智能体之间的直接API调用;消息队列(如RabbitMQ、Kafka、Pub/Sub)实现解耦和可扩展的协调;用于知识交换的共享内存存储库(例如Redis和向量数据库)。
任务请求

结果
结果
最终输出
User
Supervisor
AgentA
AgentB
    1. 记忆和长期情境管理:记忆将智能体从无状态函数转变为有状态的问题解决者。多智能体系统中的记忆类型包括:短期记忆为当前任务提供情境;长期记忆指的是在不同会话之间持久存在的知识;情景记忆——用于故障排除和学习的先前交互记录。让我们看看如何在智能体架构中初始化记忆。
from langchain.vectorstores import FAISS
from langchain.embeddings.openai import OpenAIEmbeddings

embeddings = OpenAIEmbeddings()
memory_store = FAISS.from_texts(["Hello world", "Agentic AI is powerful"], embeddings)

results = memory_store.similarity_search("Tell me about AI", k=1)
print(results)
设计多智能体系统

构建一个适用于生产环境的多智能体系统,不仅仅是将大型语言模型的调用串联起来。从一开始,你就必须考虑职责划分、通信方式、容错能力、监控手段和可扩展性。

    1. 设计理念:模块化、可扩展、可互操作:在创建多智能体系统时,每个智能体都应该可以在不干扰系统其余部分的情况下进行替换;系统应该能够在不需要重新设计的情况下管理更多的智能体或任务;智能体应该使用通用的API或协议进行交互,以便于集成。建议做法:避免硬编码智能体依赖项。使用服务注册表或配置文件来指定可用的智能体。
    1. 定义智能体角色和职责:多智能体系统最关键的方面是为每个智能体明确职责,这可以避免职责重叠或冲突。
    角色 职责
    规划智能体 分解任务并分配给其他智能体
    研究智能体 从API、数据库或网络收集数据
    分析智能体 处理和解释收集到的数据
    执行智能体 在实际系统中执行操作(例如部署代码、触发警报)
    监督智能体 监控、验证输出并处理异常
    以下是一个基于角色的智能体配置示例:
agents:
  planner:
    description: Breaks tasks into sub-tasks and delegates.
    tools: ["task_router", "status_tracker"]
  researcher:
    description: Finds and retrieves relevant information.
    tools: ["web_search", "api_fetch"]
  analyzer:
    description: Interprets and summarizes research findings.
    tools: ["nlp_analysis", "data_visualization"]
    1. 选择通信协议:在生产环境中,智能体之间的通信方式对于速度、可靠性和规模至关重要。直接函数调用简单但智能体耦合紧密(适用于本地原型);消息代理(如RabbitMQ、Kafka、Pub/Sub)解耦、异步且可扩展;HTTP/gRPC API适用于在多个平台上运行并使用微服务的智能体;WebSocket提供实时双向通信。以下是通过Pub/Sub进行消息传递的示例:
import json
from google.cloud import pubsub_v1

publisher = pubsub_v1.PublisherClient()
topic_path = "projects/my-project/topics/agent-messages"

message_data = json.dumps({"task": "fetch_data", "params": {"query": "AI news"}}).encode("utf-8")
publisher.publish(topic_path, message_data)
    1. 任务分解与编排:可以通过两种方式安排多智能体系统的编排。分层式——任务由中央控制器分配;去中心化——智能体围绕共同目标自组织。建议做法:分层式编排便于日志记录和调试,而去中心化编排在动态环境中表现更好。

User
Supervisor
Planner
ResearchAgent
AnalysisAgent
ExecutionAgent
工具、框架和技术栈

你所使用的工具将对多智能体系统产生重大影响。在生产环境中,正确的技术栈可确保系统的可扩展性、可维护性和成本管理。

    1. 智能体框架:框架可避免你在编排、消息传递和记忆处理方面重复造轮子。
    框架 语言 优势 理想用例
    LangChain Python/JS 工具集成、提示编排、记忆处理 快速构建复杂工作流程
    AutoGen Python 多智能体聊天、智能体间消息传递便捷 对话式多智能体系统的快速原型开发
    CrewAI Python 角色/任务分配、智能体协作 专注于任务的自治团队
    OpenDevin Python DevOps和智能体编码自动化 人工智能辅助代码部署
    AgentVerse Python 模拟、角色扮演智能体 研究和实验性多智能体系统
    建议不要仅仅依赖于一个框架。你可以混合使用,例如,使用Langchain进行工具和记忆处理,使用AutoGen进行消息传递。
    1. 大型语言模型和基础模型:选择大型语言模型时要基于多种因素,包括成本、速度、可靠性和准确性。以下是一些可供参考的选择:
    模型 优势 劣势 适用场景
    GPT-4o 推理能力强、多模态 成本高、比小型模型慢 复杂规划智能体
    Claude 3.5 Sonnet 总结能力强、输出安全 代码执行推理能力有限 研究和分析智能体
    Mistral 7B 速度快、开源、成本低 深度推理能力较弱 高流量反应式智能体
    LLaMA 3 70B 开源推理能力强 需要GPU基础设施 私有内部多智能体系统
    对于生产需求,我强烈建议采用混合技术,例如可以使用像LLaMa 3.1 7B或Qwen 1B这样的小型模型进行过滤和分类;使用像GPT-5、GPT-4o系列、LLaMa 4系列这样的大型模型来处理复杂挑战。
    1. 记忆、向量存储和嵌入:智能体需要记忆才能在单个任务之外发挥作用。以下是一些常用的选择:FAISS是一个轻量级向量存储,完全在内存中运行;Chroma支持本地和云存储,与LangChain无缝连接;Weaviate可扩展、云原生,支持混合搜索;Pinecone托管式服务、速度快,但大规模使用可能成本较高。让我们看看如何使用Langchain处理记忆:
from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.vectorstores import FAISS

embeddings = OpenAIEmbeddings()
db = FAISS.from_texts(["Agentic AI is awesome", "Multi-agent systems scale work"], embeddings)
print(db.similarity_search("Tell me about AI agents", k=1))
    1. 通信中间件:通信层对于多智能体编排至关重要。以下是一些常见的选择:Pub/Sub(谷歌、Kafka)——异步且适用于大规模场景;Redis Streams——轻量级且速度快;WebSocket:实时双向通信;HTTP/gRPC与微服务可互操作。对于多云或混合系统,建议使用gRPC,它提供了可靠且高效的通信方式。
    1. 部署栈:在生产环境中,后端可使用FastAPI、Flask或Node.js作为API端点;使用Docker进行容器化以实现可移植性;使用Kubernetes进行智能体的扩展编排;使用Prometheus + Grafana或OpenTelemetry进行监控;使用GitHub Actions、Jenkins或GitLab CI进行持续集成/持续交付(CI/CD)。生产架构可能如下所示:

UI
API
MessageBroker
Agents
MemoryDB
LLM
构建你的第一个多智能体系统

让我们看看如何开发一个包含三个智能体的系统。规划智能体负责将任务分解为子任务;研究智能体负责收集和整理信息;总结智能体负责为最终用户提炼研究结果。我们还将集成Pub/Sub消息传递进行通信;使用FAISS向量存储进行记忆处理;使用OpenAI GPT-4o进行推理。

    1. 步骤1——定义用例:我们将构建一个“研究与总结”多智能体系统:用户请求一个主题→规划智能体确定子主题→研究智能体收集信息→总结智能体将其浓缩为最终输出。
    1. 步骤2——选择智能体角色和提示:我们将角色和基本提示保存在YAML配置中,这样无需修改代码即可进行更新。
agents:
  planner:
    role: Break tasks into subtasks
    prompt: "Given a user query, list 3–5 research subtopics."
  researcher:
    role: Gather info for each subtopic
    prompt: "Search and retrieve concise, factual info on: {subtopic}"
  summarizer:
    role: Summarize all research
    prompt: "Summarize the following research into an easy-to-read format."
    1. 步骤3——建立通信:这里我们使用谷歌的Sub/Pub进行异步消息传递。以下是使用发布者(向智能体发送任务)的示例:
import json
from google.cloud import pubsub_v1

publisher = pubsub_v1.PublisherClient()
topic_path = "projects/my-project/topics/agent-tasks"

def send_task(agent, payload):
    data = json.dumps({"agent": agent, "payload": payload}).encode("utf-8")
    publisher.publish(topic_path, data)

以下是订阅者接收信息(智能体接收任务)的方式:

from google.cloud import pubsub_v1

subscriber = pubsub_v1.SubscriberClient()
subscription_path = "projects/my-project/subscriptions/planner-sub"

def callback(message):
    print(f"Received task: {message.data}")
    message.ack()

subscriber.subscribe(subscription_path, callback=callback)
    1. 步骤4——实现任务路由和反馈:规划智能体将子任务发送给研究智能体,研究智能体将结果返回给总结智能体。智能体逻辑如下:
from langchain.llms import OpenAI

llm = OpenAI(model="gpt-4o", temperature=0)

def plan_research(query):
    prompt = f"Break this down into 3-5 subtopics: {query}"
    subtopics = llm.predict(prompt).split("\n")
    for topic in subtopics:
        send_task("researcher", {"subtopic": topic})
    1. 步骤5——集成记忆:我们将使用FAISS为总结智能体存储检索到的研究内容。
from langchain.vectorstores import FAISS
from langchain.embeddings.openai import OpenAIEmbeddings

embeddings = OpenAIEmbeddings()
db = FAISS.from_texts([], embeddings)

def save_research(subtopic, text):
    db.add_texts([f"{subtopic}: {text}"])

def retrieve_all():
    return "\n".join([doc.page_content for doc in db.similarity_search("", k=50)])
    1. 步骤6——部署和测试:将每个智能体进行容器化,使其能够独立运行;使用Kubernetes根据负载扩展研究智能体;设置日志记录(例如Stackdriver、ELK Stack)以跟踪消息流;监控Pub/Sub延迟和FAISS搜索性能。Dockerfile内容如下:
FROM python:3.11
WORKDIR /app
COPY . /app
RUN pip install -r requirements.txt
CMD ["python", "agent.py"]
结论:从蓝图到生产

多智能体系统不再仅仅是学术概念——它们正在成为下一代人工智能应用的支柱。通过结合大型语言模型进行推理、明确的智能体角色分工、强大的通信渠道和可扩展的部署栈,开发者可以构建出真正能够实时协作和自适应的生产级系统。

在本文中,我们探讨了自主性、智能体类型、记忆和通信的核心概念;确保模块化、可扩展性和互操作性的架构原则;加速开发的实用框架和技术栈;一个从YAML配置到Pub/Sub消息传递、FAISS记忆处理和容器化部署的研究与总结多智能体系统的实践实现。

核心要点很简单:多智能体设计并非过多涉及复杂理论,而更多在于深思熟虑的工程选择。从小处着手(比如我们构建的三智能体系统),衡量性能,然后通过更多专业智能体、通信层和编排策略进行迭代。

接下来你可以做什么:
  • • 尝试不同的框架(如LangChain、AutoGen、CrewAI)并比较权衡。
  • • 为你的多智能体系统引入监控和自我改进循环以增强稳健性。
  • • 通过引入Kubernetes、gRPC和高级内存存储逐步扩展到生产环境。

智能体人工智能的时代才刚刚开始——通过了解如何设计、协调和扩展这些系统,你正在为未来最强大的应用程序奠定基础。

普通人如何抓住AI大模型的风口?

领取方式在文末

为什么要学习大模型?

目前AI大模型的技术岗位与能力培养随着人工智能技术的迅速发展和应用 , 大模型作为其中的重要组成部分 , 正逐渐成为推动人工智能发展的重要引擎 。大模型以其强大的数据处理和模式识别能力, 广泛应用于自然语言处理 、计算机视觉 、 智能推荐等领域 ,为各行各业带来了革命性的改变和机遇 。

目前,开源人工智能大模型已应用于医疗、政务、法律、汽车、娱乐、金融、互联网、教育、制造业、企业服务等多个场景,其中,应用于金融、企业服务、制造业和法律领域的大模型在本次调研中占比超过 30%。
在这里插入图片描述

随着AI大模型技术的迅速发展,相关岗位的需求也日益增加。大模型产业链催生了一批高薪新职业:
在这里插入图片描述

人工智能大潮已来,不加入就可能被淘汰。如果你是技术人,尤其是互联网从业者,现在就开始学习AI大模型技术,真的是给你的人生一个重要建议!

最后

只要你真心想学习AI大模型技术,这份精心整理的学习资料我愿意无偿分享给你,但是想学技术去乱搞的人别来找我!

在当前这个人工智能高速发展的时代,AI大模型正在深刻改变各行各业。我国对高水平AI人才的需求也日益增长,真正懂技术、能落地的人才依旧紧缺。我也希望通过这份资料,能够帮助更多有志于AI领域的朋友入门并深入学习。

真诚无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发

在这里插入图片描述

大模型全套学习资料展示

自我们与MoPaaS魔泊云合作以来,我们不断打磨课程体系与技术内容,在细节上精益求精,同时在技术层面也新增了许多前沿且实用的内容,力求为大家带来更系统、更实战、更落地的大模型学习体验。

图片

希望这份系统、实用的大模型学习路径,能够帮助你从零入门,进阶到实战,真正掌握AI时代的核心技能!

01 教学内容

图片

  • 从零到精通完整闭环:【基础理论 →RAG开发 → Agent设计 → 模型微调与私有化部署调→热门技术】5大模块,内容比传统教材更贴近企业实战!

  • 大量真实项目案例: 带你亲自上手搞数据清洗、模型调优这些硬核操作,把课本知识变成真本事‌!

02适学人群

应届毕业生‌: 无工作经验但想要系统学习AI大模型技术,期待通过实战项目掌握核心技术。

零基础转型‌: 非技术背景但关注AI应用场景,计划通过低代码工具实现“AI+行业”跨界‌。

业务赋能突破瓶颈: 传统开发者(Java/前端等)学习Transformer架构与LangChain框架,向AI全栈工程师转型‌。

image.png

vx扫描下方二维码即可
在这里插入图片描述

本教程比较珍贵,仅限大家自行学习,不要传播!更严禁商用!

03 入门到进阶学习路线图

大模型学习路线图,整体分为5个大的阶段:
图片

04 视频和书籍PDF合集

图片

从0到掌握主流大模型技术视频教程(涵盖模型训练、微调、RAG、LangChain、Agent开发等实战方向)

图片

新手必备的大模型学习PDF书单来了!全是硬核知识,帮你少走弯路(不吹牛,真有用)
图片

05 行业报告+白皮书合集

收集70+报告与白皮书,了解行业最新动态!
图片

06 90+份面试题/经验

AI大模型岗位面试经验总结(谁学技术不是为了赚$呢,找个好的岗位很重要)图片
在这里插入图片描述

07 deepseek部署包+技巧大全

在这里插入图片描述

由于篇幅有限

只展示部分资料

并且还在持续更新中…

真诚无偿分享!!!
vx扫描下方二维码即可
加上后会一个个给大家发

在这里插入图片描述

Logo

更多推荐