如何使用 LangGraph 平台部署 CrewAI、AutoGen 和其他框架(How to use LangGraph Platform to deploy CrewAI, AutoGen, and other frameworks)

LangGraph 平台为部署代理提供了基础设施。它与 LangGraph 无缝集成,但也适用于其他框架。实现这一点的关键是将代理包装在一个单一的 LangGraph 节点中,并将其作为整个图。

这样做将允许你部署到 LangGraph 平台,并获得诸多优势。你将获得水平可扩展的基础设施、用于处理突发操作的任务队列、支持短期记忆的持久化层以及长期记忆支持。

本指南以 AutoGen 代理为例展示了如何实现这一点,但此方法应适用于其他框架定义的代理,如 CrewAI、LlamaIndex 等。

设置

%pip install autogen langgraph
import getpass
import os

def _set_env(var: str):
    if not os.environ.get(var):
        os.environ[var] = getpass.getpass(f"{var}:")

_set_env("OPENAI_API_KEY")

定义 AutoGen 代理

这里我们定义了 AutoGen 代理。代码来源于 https://github.com/microsoft/autogen/blob/0.2/notebook/agentchat_web_info.ipynb

import autogen
import os

config_list = [{"model": "gpt-4o", "api_key": os.environ["OPENAI_API_KEY"]}]

llm_config = {
    "timeout": 600,
    "cache_seed": 42,
    "config_list": config_list,
    "temperature": 0,
}

autogen_agent = autogen.AssistantAgent(
    name="assistant",
    llm_config=llm_config,
)

user_proxy = autogen.UserProxyAgent(
    name="user_proxy",
    human_input_mode="NEVER",
    max_consecutive_auto_reply=10,
    is_termination_msg=lambda x: x.get("content", "").rstrip().endswith("TERMINATE"),
    code_execution_config={
        "work_dir": "web",
        "use_docker": False,
    },  # 如果 Docker 可用,请设置 use_docker=True 以运行生成的代码。使用 Docker 比直接运行生成的代码更安全。
    llm_config=llm_config,
    system_message="如果任务已完全满意地解决,请回复 TERMINATE。否则,回复 CONTINUE,或说明任务未解决的原因。",
)

包装到 LangGraph 中

我们现在将 AutoGen 代理包装在一个单一的 LangGraph 节点中,并将其作为整个图。这主要涉及为节点定义输入和输出模式,即使手动部署也需要这样做,因此不会增加额外工作。

API 参考StateGraph

from langgraph.graph import StateGraph, MessagesState

def call_autogen_agent(state: MessagesState):
    last_message = state["messages"][-1]
    response = user_proxy.initiate_chat(autogen_agent, message=last_message.content)
    # 获取代理的最终响应
    content = response.chat_history[-1]["content"]
    return {"messages": {"role": "assistant", "content": content}}

graph = StateGraph(MessagesState)
graph.add_node(call_autogen_agent)
graph.set_entry_point("call_autogen_agent")
graph = graph.compile()

使用 LangGraph 平台部署

你现在可以按照常规方式使用 LangGraph 平台部署此图。有关更多详细信息,请参见部署说明


总结

  • 部署机制:本指南展示了如何通过将 CrewAI、AutoGen 等框架的代理包装在一个单一 LangGraph 节点中,使用 LangGraph 平台进行部署,获得水平可扩展性、任务队列、短期和长期记忆支持等优势。
  • 核心步骤
    • 设置
      • 安装必要的依赖(autogenlanggraph)。
      • 配置 OPENAI_API_KEY 环境变量以支持 OpenAI 的 gpt-4o 模型。
    • 定义 AutoGen 代理
      • 使用 AutoGen 的 AssistantAgentUserProxyAgent 创建代理,配置模型参数(如 gpt-4o、超时、温度)以及代码执行设置。
      • 设置自动终止条件(当响应以 “TERMINATE” 结尾时停止)。
    • 包装到 LangGraph
      • 定义一个单一节点(call_autogen_agent),处理 AutoGen 代理的输入和输出,兼容 LangGraph 的 MessagesState
      • 使用 StateGraph 创建图,添加节点并设置入口点,编译为可部署的图。
    • 部署
      • 使用 LangGraph 平台部署编译后的图,遵循标准部署流程。
  • 适用性
    • 虽然以 AutoGen 代理为例,但此方法适用于其他框架(如 CrewAI、LlamaIndex),只需将代理逻辑包装为 LangGraph 节点。
    • 包装过程定义了明确的输入输出模式,与手动部署一致,无额外开销。
  • 使用建议
    • 安全性:优先启用 use_docker=True 以安全运行 AutoGen 生成的代码,避免直接执行潜在风险代码。
    • 可扩展性:利用 LangGraph 平台的任务队列处理突发负载,通过持久化层支持记忆功能(如短期上下文或长期历史)。
    • 调试:结合 LangSmith(需 LANGSMITH_API_KEY)跟踪运行,分析代理行为和性能。
    • 配置:在生产环境中,确保 langgraph.json 正确配置图路径,并验证 API 密钥和部署 URL。
  • 注意事项
    • 依赖 OPENAI_API_KEY 运行 AutoGen 的 gpt-4o 模型,确保环境变量正确设置。
    • 部署需要熟悉 LangGraph 平台的配置(如 langgraph.json 和环境变量),参考官方部署指南。
    • 虽然未明确提供 CrewAI 示例,方法通用,只需替换 call_autogen_agent 为 CrewAI 代理逻辑。

参考资料:

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐