【LangGraph】Deploy CrewAI, AutoGen, and other frameworks:如何使用 LangGraph 平台部署 CrewAI、AutoGen 和其他框架 示例
指南展示了如何通过将 CrewAI、AutoGen 等框架的代理包装在一个单一 LangGraph 节点中,使用 LangGraph 平台进行部署,获得水平可扩展性、任务队列、短期和长期记忆支持等优势。核心步骤:定义 AutoGen 代理:使用 AutoGen 的 AssistantAgent 和 UserProxyAgent 创建代理,配置模型参数(如 gpt-4o、超时、温度)以及代码执行设置
·
如何使用 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 平台进行部署,获得水平可扩展性、任务队列、短期和长期记忆支持等优势。
- 核心步骤:
- 设置:
- 安装必要的依赖(
autogen和langgraph)。 - 配置
OPENAI_API_KEY环境变量以支持 OpenAI 的gpt-4o模型。
- 安装必要的依赖(
- 定义 AutoGen 代理:
- 使用 AutoGen 的
AssistantAgent和UserProxyAgent创建代理,配置模型参数(如gpt-4o、超时、温度)以及代码执行设置。 - 设置自动终止条件(当响应以 “TERMINATE” 结尾时停止)。
- 使用 AutoGen 的
- 包装到 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 代理逻辑。
- 依赖
参考资料:
更多推荐
所有评论(0)