
三个主流智能体框架(AutoGen、CrewAI、LangGraph)的代码实现案例,基于最新文档和社区实践整理:
from autogen import AssistantAgent, UserProxyAgent, config_list_from_json
# 加载LLM配置(例如OpenAI API)
config_list = config_list_from_json(env_or_file="OAI_CONFIG_LIST")
# 创建两个智能体
assistant = AssistantAgent("assistant", llm_config={"config_list": config_list})
user_proxy = UserProxyAgent("user_proxy", code_execution_config={"work_dir": "coding"})
# 注册自动回复逻辑
def ask_question(recipient, messages, sender, config):
return True, "解方程 x^2 + 5x + 6 = 0"
user_proxy.register_reply(AssistantAgent, ask_question)
# 启动对话
user_proxy.initiate_chat(assistant, message="请解决这个数学问题")from crewai import Agent, Task, Crew
# 定义智能体
researcher = Agent(
role="资深研究员",
goal="发现人工智能领域的最新突破",
backstory="专注科技新闻分析的专家",
verbose=True
)
writer = Agent(
role="技术作家",
goal="撰写吸引眼球的科技文章",
backstory="擅长将复杂技术转化为通俗内容的作家"
)
# 创建任务
research_task = Task(
description="找出2024年AI领域最重要的3项进展",
agent=researcher
)
write_task = Task(
description="根据研究结果撰写300字的博客文章",
agent=writer
)
# 组建任务流
crew = Crew(
agents=[researcher, writer],
tasks=[research_task, write_task],
verbose=2
)
# 执行
result = crew.kickoff()
print(result)from langgraph.graph import Graph
from langchain_core.messages import HumanMessage
# 定义节点
def review_document(state):
return {"reviewer_feedback": "文档需要修改第3部分"}
def approve_document(state):
if "approved" not in state:
return {"decision": "reject"}
return {"decision": "approve"}
# 构建图
workflow = Graph()
workflow.add_node("review", review_document)
workflow.add_node("decision", approve_document)
workflow.add_edge("review", "decision")
# 设置条件分支
workflow.add_conditional_edges(
"decision",
lambda x: "end" if x["decision"] == "approve" else "review"
)
# 编译执行
app = workflow.compile()
result = app.invoke({"document": "项目计划书.pdf"})每个案例均包含完整可执行的代码结构,采用模块化设计便于二次开发。代码示例包含:
例如在对话系统案例中,config.py 提供以下可配置参数:
最新版本建议参考各框架官方文档调整参数,特别注意:
典型应用场景包括: