Type something to search...
构建动态多代理工作流:利用 LangChain 和 LangGraph 实现人工智能协作

构建动态多代理工作流:利用 LangChain 和 LangGraph 实现人工智能协作

本文利用 LangChain 和 LangGraph 创建一个简单的多智能体系统。智能体协同工作以完成任务。第一个智能体生成一系列随机数字,第二个智能体将这些数字乘以 10。每个智能体使用 OpenAI 的 GPT-4o API 来执行这些任务。

本文遵循基于工作流的架构,智能体根据分配的任务进行交互。在这篇文章中,我们将逐步分析脚本的每个部分以及它如何为整体流程做出贡献。

前提条件

在开始代码之前,请确保您已安装以下内容:

  • Python 3.7+
  • OpenAI API 访问(您需要一个 API 密钥)
  • 已安装 LangChain 和 LangGraph 库。您可以通过 pip 安装它们:
pip install langchain langgraph

设置环境

在脚本中,您必须将您的 OpenAI API 密钥设置为环境变量。这确保了代理可以与 GPT-4 模型进行交互。您可以在终端中设置 API 密钥:

import os
os.environ["OPENAI_API_KEY"] = "your_openai_api_key"

创建 AI 代理

函数 create_agent 负责使用 LangChain 的 ChatPromptTemplate 设置代理。每个代理都通过系统消息进行初始化,该消息指定了它将执行的任务。其工作原理如下:

def create_agent(llm, system_message: str):
    """Create an agent."""
    prompt = ChatPromptTemplate.from_messages(
        [
            (
                "system",
                "You are a helpful AI assistant, collaborating with other assistants. "
                "Work on the assigned task and provide useful outputs. "
                "Prefix your response with FINAL ANSWER if you have completed your task."
                " Here is the task: {system_message}",
            ),
            MessagesPlaceholder(variable_name="messages"),
        ]
    )
    prompt = prompt.partial(system_message=system_message)
    return prompt | llm

系统消息解释了代理的角色及其应如何行为。例如,一个代理被指示生成随机数字,另一个则被要求对其进行乘法运算。

代理状态

为了跟踪代理之间交换的消息,脚本使用 TypedDict 定义了代理状态的结构。这有助于管理消息并识别哪个代理发送了最后一条消息:

class AgentState(TypedDict):
    messages: Sequence[BaseMessage]
    sender: str

每个代理发送和接收消息,状态跟踪当前负责下一步操作的代理。

定义工作流程

工作流程是使用 LangGraph 的 StateGraph 实现的。在这里,代理作为工作流程中的节点添加,并且它们之间的转换是基于路由逻辑定义的。

路由函数帮助控制代理之间消息的流动:

def router(state):
    messages = state["messages"]
    last_message = messages[-1]
    if "FINAL ANSWER" in last_message.content:
        if state["sender"] == "Agent_1":
            return "Agent_2"
        return END
    return "continue"

工作流程定义了代理之间的交互方式以及控制从一个代理移动到另一个代理的条件。

将代理添加到工作流

代理作为工作流中的节点添加,使用 workflow.add_node。例如,Agent_1 负责生成随机数:

workflow.add_node("Agent_1", agent_1_node)
workflow.add_node("Agent_2", agent_2_node)

根据路由逻辑添加条件边,以便在一个代理与另一个代理之间移动流程。

主要执行

脚本的主要部分负责初始化工作流并根据用户的初始输入执行它。输入消息指示系统生成随机数并将其乘以 10:

if __name__ == "__main__":
    initial_state = {
        "messages": [
            HumanMessage(content="Generate 10 random numbers and multiply each by 10.")
        ],
        "sender": "Agent_1",
    }

    events = graph.stream(initial_state, {"recursion_limit": 150})
    for event in events:
        print(event)
        print("----")

在这里,工作流通过初始消息执行,系统通过每个代理流式传输事件。递归限制确保工作流不会无限运行。

输出

结论

这个 Python 脚本演示了如何使用 LangChain 和 LangGraph 构建一个简单的多代理工作流。该过程涉及定义代理、设置其状态,并在它们之间路由消息以实现特定任务。该架构可以扩展到更复杂的工作流,多个代理可以协作处理各种任务。

感谢您访问这个博客。敬请期待更多内容!

Related Posts

结合chatgpt-o3-mini与perplexity Deep Research的3步提示:提升论文写作质量的终极指南

结合chatgpt-o3-mini与perplexity Deep Research的3步提示:提升论文写作质量的终极指南

AI 研究报告和论文写作 合并两个系统指令以获得两个模型的最佳效果 Perplexity AI 的 Deep Research 工具提供专家级的研究报告,而 OpenAI 的 ChatGPT-o3-mini-high 擅长推理。我发现你可以将它们结合起来生成令人难以置信的论文,这些论文比任何一个模型单独撰写的都要好。你只需要将这个一次性提示复制到 **

阅读更多
让 Excel 过时的 10 种 Ai 工具:实现数据分析自动化,节省手工作业时间

让 Excel 过时的 10 种 Ai 工具:实现数据分析自动化,节省手工作业时间

Non members click here作为一名软件开发人员,多年来的一个发现总是让我感到惊讶,那就是人们还在 Excel

阅读更多
使用 ChatGPT 搜索网络功能的 10 种创意方法

使用 ChatGPT 搜索网络功能的 10 种创意方法

例如,提示和输出 你知道可以使用 ChatGPT 的“搜索网络”功能来完成许多任务,而不仅仅是基本的网络搜索吗? 对于那些不知道的人,ChatGPT 新的“搜索网络”功能提供实时信息。 截至撰写此帖时,该功能仅对使用 ChatGPT 4o 和 4o-mini 的付费会员开放。 ![](https://images.weserv.nl/?url=https://cdn-im

阅读更多
掌握Ai代理:解密Google革命性白皮书的10个关键问题解答

掌握Ai代理:解密Google革命性白皮书的10个关键问题解答

10 个常见问题解答 本文是我推出的一个名为“10 个常见问题解答”的新系列的一部分。在本系列中,我旨在通过回答关于该主题的十个最常见问题来分解复杂的概念。我的目标是使用简单的语言和相关的类比,使这些想法易于理解。 图片来自 [Solen Feyissa](https://unsplash.com/@solenfeyissa?utm_source=medium&utm_medi

阅读更多
在人工智能和技术领域保持领先地位的 10 项必学技能 📚

在人工智能和技术领域保持领先地位的 10 项必学技能 📚

在人工智能和科技这样一个动态的行业中,保持领先意味着不断提升你的技能。无论你是希望深入了解人工智能模型性能、掌握数据分析,还是希望通过人工智能转变传统领域如法律,这些课程都是你成功的捷径。以下是一个精心策划的高价值课程列表,可以助力你的职业发展,并让你始终处于创新的前沿。 1. 生成性人工智能简介课程: [生成性人工智能简介](https://genai.works

阅读更多
揭开真相!深度探悉DeepSeek AI的十大误区,您被误导了吗?

揭开真相!深度探悉DeepSeek AI的十大误区,您被误导了吗?

在AI军备竞赛中分辨事实与虚构 DeepSeek AI真的是它所宣传的游戏规则改变者,还是仅仅聪明的营销和战略炒作?👀 虽然一些人将其视为AI效率的革命性飞跃,但另一些人则认为它的成功建立在借用(甚至窃取的)创新和可疑的做法之上。传言称,DeepSeek的首席执行官在疫情期间像囤积卫生纸一样囤积Nvidia芯片——这只是冰山一角。 从其声称的550万美元培训预算到使用Open

阅读更多
Type something to search...