AI Agent开发不再难!100行Python代码打造多智能体对话系统,小白也能学会
本文详细介绍了AI Agent的构建方法,从核心概念到多个主流框架(LangChain、AutoGen、LangGraph等)的对比分析,并通过两个实战案例展示了如何用100行Python代码构建多智能体对话系统。文章提供了框架选择指南和最佳实践,帮助开发者根据项目需求选择合适的工具,实现AI从"被动问答"到"主动执行"的转变,构建能自动处理复杂任务的数字员工。
随着 Agent Skills 爆火,Agent 再次引起热议,今天我们暂时不谈 skills ,先来聊一聊常规 Agent 构建。其实它并没有你想象中的那么复杂,我们只要 100 行 Python 代码就能构建的多智能体对话系统。
想象一下这个场景:你只需说“为我规划一份基于本周天气的健身计划并整理成PDF”,AI就能自动查询天气、搜索健身教程、整合信息并生成文件——这已非科幻。这类能自主规划、调用工具、执行复杂任务的系统,就是AI Agent(智能体)。
大语言模型(LLM)本身如同一个“装在罐子里的大脑”,知识渊博却无法与环境互动。AI Agent则为其赋予了“身体”和“手脚”(工具),使其能感知环境、决策规划并执行行动。而AI Agent框架,正是构建这些智能系统的“脚手架”,它们将复杂性封装,让开发者能高效搭建从简单助手到复杂协作系统的各类应用。
今天,我们不谈空泛的概念,直接带你用代码,从零搭建一个真正能干活的多 AI 智能体(Multi-Agent)系统。你将看到:
- 如何用 AutoGen 让多个 AI 智能体通过“对话”协作
- 如何用 LangGraph 像搭乐高一样编排复杂工作流
- 以及面对众多框架,你究竟该怎么选。
一、AI Agent核心概念:从大脑到行动者
1.1 智能体的工作原理
AI Agent的核心是一个自主循环:
- 观察:接收用户输入或工具执行结果。
- 思考:利用LLM分析现状,规划下一步。
- 行动:调用工具执行或生成回答。
- 重复,直至完成任务。
其中工具(Tools) 是Agent能力的延伸,任何具有明确定义的函数都可作为工具(如API调用、数据库查询、代码执行等)。
1.2 为什么需要专用框架?
虽然简单任务可通过直接编码实现,但一旦涉及状态管理、复杂决策(多工具选择)、长流程编排或多智能体协作,代码会迅速变得难以维护。框架提供了:
- 清晰抽象:如状态、节点、工作流。
- 内置集成:主流工具与模型的开箱即用支持。
- 调试支持:可视化执行流程与状态追踪。
- 效率与可靠性:标准化模式减少错误,提升开发速度。
二、最佳 AI Agent框架推荐
以下列表展示了可用于构建AI代理的最佳框架,但排序并非代表对框架整体评价的高低,而是基于复杂度的递增——意味着对工作流程的掌控度和功能丰富度逐步提升。最佳选择取决于前文所述的各项考量因素,本列表旨在帮助您根据自身需求和技能水平做出决策。
RelevanceAI
https://relevanceai.com
- 适用场景:非技术人员的选择。无需编写代码即可创建代理,提供用于代理和工具创建的用户界面。部署快速,商业友好且用户体验佳。
- 注意事项:不适合构建更复杂的系统,开发者社区规模有限。若您关注低延迟或最小化系统开销,此框架可能不适用。其为闭源框架,这可能使得排查框架内部错误更为困难。
- 了解更多:[此处可了解RelevanceAI]。
smolagents
https://smolagents.org
- 简介:由Hugging Face开发的极简AI代理框架。提供典型的工具调用和代码代理功能,代码代理可生成并执行代码,并可能使用所提供的工具。附有非常出色的教程和代理介绍。
- 适用场景:如果您是希望开始构建代理的开发者或开发团队,smolagents无疑是绝佳的起点——您可以深入了解代理的运作方式,验证其是否适合解决您的问题,后续再转向更高级的框架。其代理自主性很强,因此我们通常建议将其用于简单用例或作为学习工具。Hugging Face的背景为其可信度提供了有力背书。
PhiData
https://docs.phidata.com/introduction
- 简介:使您能够构建具备记忆、工具、知识、推理或多代理编排能力的AI助手。其设计旨在简化将大语言模型转化为助手的过程。相比自行编码,它能更轻松地处理记忆、工具和用户界面。
- 特点:社区正在兴起,框架为开源。
LangChain
https://www.langchain.com
- 现状:当前采用最广泛的代理框架。
- 功能:允许开发者链式组合提示、模型、记忆和工具。对主流大语言模型提供商提供原生支持,并拥有丰富的工具生态系统供代理使用。模块化程度高,是中等复杂度任务的良好解决方案。
- 学习曲线:需要理解一些抽象概念,如链、代理、提示设计、记忆、检索器等,但其社区已相当成熟,且有大量教程可用。集成性和可扩展性亦是LangChain的强项。
- 了解更多:[此处可了解LangChain]。
LlamaIndex
https://www.llamaindex.ai
- 侧重点:高度专注于数据摄取、索引、检索、查询引擎和文档处理。
- 适用场景:用它构建RAG应用相当容易,但对于需要众多不同角色代理的编排框架而言,可能不太适合。性能取决于所提供文档的质量和嵌入模型。
- 扩展性:允许通过自定义索引、检索器等进行扩展。社区活跃,但该框架可能并非分支化或高度编排工作流程的最佳解决方案。
- 了解更多:[此处可了解LlamaIndex]。
CrewAI
https://www.crewai.com
- 设计目标:专为具有角色/团队的高层级多代理编排而设计,利用大语言模型来协调代理工作。
- 特点:虽比LangChain新,但同样受欢迎。可用其快速构建多代理AI系统,但对于非常庞大的任务,性能可能仍不理想,因为它不提供流程控制,代理自行组织一切。不支持并行执行。
- 了解更多:[此处可了解CrewAI]。
AutoGen
https://github.com/microsoft/autogen
- 核心概念:由微软开发的开源框架,其核心理念是通过多智能体之间的对话与协作来完成任务。它允许开发者定义具有不同角色(如助手、用户代理、代码执行器等)的代理,并让它们通过自然语言对话自主协商、规划和执行复杂工作流。
- 主要优点
- 强大的多代理协作:专为模拟多角色、动态交互的复杂场景设计,代理间通过对话自主协调。
- 灵活的对话模式:支持自定义对话流程,可实现自动聊天、有条件分支和人类介入。
- 研究友好:因其对话机制,非常适合科研、复杂系统模拟和探索性项目。
LangGraphhttps://www.langchain.com/langgraph
- 定位:LangChain的扩展,也是列表中最先进的AI框架。
- 核心概念:允许您将代理工作流程定义为图,其中每个节点代表一个执行步骤,边则定义可能的转换。LangGraph中的代理是有状态的——除了消息历史,您还可以追踪任何其他所需信息,如图中某个循环已被调用的迭代次数。
- 强大功能:提供条件边、循环、持久状态、易于调试、自定义工具、结构化输出等众多功能。它是我们Software Mansion用于构建自身代理的技术。
- 生态组合:LangGraph以LangChain为基础,辅以LangSmith作为深度观察执行的工具,共同构成了构建高级代理的完整环境。其最高级别的控制能力,使其非常适合对可扩展性和极低延迟有苛刻要求的解决方案。
选择框架时需综合考虑:
- 易用性:从无代码到需图编程基础。
- 任务复杂度:简单链式任务无需重型框架。
- 社区与生态:影响学习成本与问题解决效率。
- 性能与延迟:精细化控制通常意味着更低延迟。
- Token使用:自主性高的Agent可能因重复尝试消耗更多Token。
- 可扩展性:复杂系统需考虑并发、状态管理与错误处理。
- 集成与安全:现有技术栈兼容性与数据隐私要求。
三、深度实战一:AutoGen —— 对话即协作
3.1 AutoGen核心理念
微软推出的AutoGen提出了一种优雅的范式:通过可编程的对话实现多智能体协作。它允许构建由多个专业Agent(如规划者、开发者、执行者、质检员)组成的团队,它们通过自然语言交流协同解决复杂问题,且人类可随时介入。
3.2 实战:用AutoGen构建AI狼人杀游戏
以下示例展示如何用不到100行代码创建多AI角色协作推理场景:
# 安装:pip install pyautogenimport osfrom autogen import ConversableAgent, GroupChat, GroupChatManager# 1. 配置LLM(以阿里云通义千问为例)llm_config = { "config_list": [ { "model": "qwen-max-1201", "api_key": os.getenv("QWEN_API_KEY"), "base_url": "https://dashscope.aliyuncs.com/compatible-mode/v1" } ]}# 2. 创建历史人物AI Agentaristotle = ConversableAgent( name="亚里士多德", system_message="""你是亚里士多德(公元前384-322),古希腊哲学家。思维严谨,注重逻辑与经验观察。在推理时善于层层追问,揭露矛盾。""", llm_config=llm_config, human_input_mode="NEVER")mozart = ConversableAgent( name="莫扎特", system_message="""你是沃尔夫冈·阿马德乌斯·莫扎特(1756-1791),天才作曲家。感性敏锐,注意对话中的韵律与情感线索。""", llm_config=llm_config, human_input_mode="NEVER")# 3. 创建人类玩家Agent(成吉思汗)genghiskhan = ConversableAgent( name="成吉思汗", system_message="""你是成吉思汗(1162-1227),蒙古帝国创立者。你实际上是人类玩家,需要伪装成AI。避免暴露对人类现代知识的陌生。""", llm_config=llm_config, human_input_mode="ALWAYS"# 等待人类输入)# 4. 创建群聊与管理器groupchat = GroupChat( agents=[aristotle, mozart, genghiskhan], # 可添加更多角色 messages=[], max_round=6, speaker_selection_method="round_robin")manager = GroupChatManager(groupchat=groupchat, llm_config=llm_config)# 5. 列车员(主持人)启动游戏guard = ConversableAgent( name="列车员", system_message="你是列车员,正在查票。你发现团体票上有5位历史伟人,但WiFi记录显示只有4个AI连接。", llm_config=llm_config, human_input_mode="ALWAYS")guard.initiate_chat( manager, message="你们这张团体票上有五位历史上的伟人,但WiFi记录显示只有4个AI,也就是说你们中有一个是人类假扮的。请通过对话找出他。")
执行效果:AI角色们将开始多轮对话,依据各自角色背景提问、推理,试图识别出人类玩家。此例展示了AutoGen在动态多角色协作对话中的天然优势。
四、深度实战二:LangGraph —— 图工作流编排
4.1 LangGraph核心优势
作为LangChain的扩展,LangGraph将Agent工作流定义为有状态图(Stateful Graph):
- 节点:代表执行步骤(如调用工具、处理数据)。
- 边:定义步骤间流转逻辑(支持条件分支、循环)。
- 状态:贯穿整个工作流的共享数据容器。
这种模式提供了无与伦比的控制精度,适合需要严格流程、最小延迟与复杂错误处理的生产系统。
4.2 实战:用LangGraph构建天气新闻简报助手
# 安装:pip install langgraph langchain-openai langchain-communityimport osfrom dotenv import load_dotenvfrom typing import TypedDict, Annotated, Sequenceimport operatorfrom langgraph.graph import StateGraph, ENDfrom langchain_openai import ChatOpenAIfrom langchain_community.tools import TavilySearchResultsfrom langchain_community.utilities import OpenWeatherMapAPIWrapperfrom langchain_core.messages import BaseMessage, HumanMessage# 1. 加载环境变量(需配置OPENAI_API_KEY、TAVILY_API_KEY、OPENWEATHER_API_KEY)load_dotenv()# 2. 初始化LLM与工具llm = ChatOpenAI(model="gpt-4o-mini", temperature=0)search_tool = TavilySearchResults(api_key=os.getenv("TAVILY_API_KEY"), max_results=2)weather_tool = OpenWeatherMapAPIWrapper(api_key=os.getenv("OPENWEATHER_API_KEY"))# 3. 定义状态结构(共享白板)classAgentState(TypedDict): messages: Annotated[Sequence[BaseMessage], operator.add] city: str weather_info: str news_info: str final_report: str# 4. 定义节点函数defparse_input(state: AgentState): """解析用户输入,提取城市""" user_input = state["messages"][-1].content # 简化为固定城市,实际可用NLP解析 return {"city": "北京"}defget_weather(state: AgentState): """调用天气工具""" city = state["city"] weather_result = weather_tool.run(city) return {"weather_info": weather_result}defget_news(state: AgentState): """调用新闻搜索工具""" query = f"{state['city']} AI technology news today" news_result = search_tool.run(query) news_summary = "\n".join([f"- {res['title']}: {res['content'][:100]}..."for res in news_result]) return {"news_info": news_summary}defgenerate_report(state: AgentState): """汇总信息生成最终报告""" prompt = f""" 基于以下信息生成一份简洁的Markdown格式简报: 城市:{state['city']} 天气:{state.get('weather_info', '无')} 新闻:{state.get('news_info', '无')} """ response = llm.invoke(prompt) return {"final_report": response.content}# 5. 构建图工作流defcreate_workflow(): workflow = StateGraph(AgentState) workflow.add_node("parse_input", parse_input) workflow.add_node("get_weather", get_weather) workflow.add_node("get_news", get_news) workflow.add_node("generate_report", generate_report) workflow.set_entry_point("parse_input") workflow.add_edge("parse_input", "get_weather") workflow.add_node("parse_input", parse_input) workflow.add_node("get_weather", get_weather) workflow.add_node("get_news", get_news) workflow.add_node("generate_report", generate_report) workflow.set_entry_point("parse_input") workflow.add_edge("parse_input", "get_weather") workflow.add_edge("parse_input", "get_news") # 并行执行天气与新闻查询,两者都完成后进入报告生成 workflow.add_edge("get_weather", "generate_report") workflow.add_edge("get_news", "generate_report") workflow.add_edge("generate_report", END) return workflow.compile()# 6. 运行Agentapp = create_workflow()initial_state = {"messages": [HumanMessage(content="查询北京天气和AI新闻")], "city": "", "weather_info": "", "news_info": "", "final_report": ""}result = app.invoke(initial_state)print(result["final_report"])
LangGraph精妙之处:
- 清晰的状态管理:所有数据在
AgentState中定义与传递,避免全局变量混乱。 - 可视化流程:图结构使工作流一目了然,易于调试与扩展。
- 内置并行与同步:
get_weather与get_news并行执行,自动同步后进入下一步。 - 极强扩展性:新增步骤仅需定义节点并插入图中,架构保持整洁。
五、框架选择终极指南与最佳实践
5.1 决策清单:你的场景匹配哪个框架?
| 你的身份与目标 | 推荐框架 | 关键理由 |
|---|---|---|
| 非技术背景,快速验证想法 | RelevanceAI | 无代码可视化,最快上线 |
| 初学者,希望理解Agent核心概念 | smolagents | 极简API,学习曲线平缓,官方教程优秀 |
| 构建中等复杂度应用,重视生态 | LangChain | 丰富集成、工具与社区,文档案例海量 |
| 核心是文档问答/RAG系统 | LlamaIndex | 专精数据处理与检索,性能优化到位 |
| 设计多角色协作虚拟团队 | CrewAI | 角色、任务、流程抽象直观,适合内容生产等场景 |
| 需要动态对话协作与人类介入 | AutoGen | 对话即协作,适合研究、创意类动态任务 |
| 构建复杂、稳定、可控的生产流程 | LangGraph | 图模型提供最高控制精度,适合金融、运维等严肃场景 |
5.2 避坑与实践建议
- 避免过度设计:简单任务无需复杂框架。例如,仅调用1-2个API的任务,使用LangChain的
AgentExecutor或smolagents即可。 - 优化Token消耗:Agent的“思考-行动”循环会多次调用LLM。利用框架的上下文管理功能(如LangGraph的状态选择)避免不必要的历史消息传入。
- 编写清晰的工具描述:工具的
description字段是LLM决定是否及如何调用工具的关键。模糊描述会导致错误调用。 - 实现错误处理:工具调用可能失败。设计容错机制,例如在LangGraph中通过条件边检查结果并路由到重试或降级节点。
- 从小规模开始:先用简单框架或原型验证需求,观察哪些任务模式重复出现,再使用更高级框架(如LangGraph)将其固化为优化的工作流。
- 重视可观测性:利用框架提供的调试工具(如LangSmith for LangChain)追踪执行流程、检查中间状态,这对复杂系统至关重要。
写在最后
AI Agent技术正从“炫技”走向“实用”,成为开发者延伸能力的重要杠杆。无论是AutoGen通过对话实现的动态协作,还是LangGraph通过图编排提供的精密控制,都在推动AI从“被动问答”走向“主动执行”。
技术的本质是延伸人的能力。Agent延伸的,正是我们规划、协调与执行的综合能力。选择适合的框架,从小处着手,你可以构建出能自动处理邮件、监控日志、生成报告甚至管理项目的数字员工。
你现在最希望哪个重复性任务被AI Agent自动化?是客服邮件处理、系统日志监控,还是个性化信息筛选?欢迎分享你的场景,让我们共同探索实现的可能。
学AI大模型的正确顺序,千万不要搞错了
🤔2026年AI风口已来!各行各业的AI渗透肉眼可见,超多公司要么转型做AI相关产品,要么高薪挖AI技术人才,机遇直接摆在眼前!
有往AI方向发展,或者本身有后端编程基础的朋友,直接冲AI大模型应用开发转岗超合适!
就算暂时不打算转岗,了解大模型、RAG、Prompt、Agent这些热门概念,能上手做简单项目,也绝对是求职加分王🔋

📝给大家整理了超全最新的AI大模型应用开发学习清单和资料,手把手帮你快速入门!👇👇
学习路线:
✅大模型基础认知—大模型核心原理、发展历程、主流模型(GPT、文心一言等)特点解析
✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑
✅开发基础能力—Python进阶、API接口调用、大模型开发框架(LangChain等)实操
✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用
✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代
✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经
以上6大模块,看似清晰好上手,实则每个部分都有扎实的核心内容需要吃透!
我把大模型的学习全流程已经整理📚好了!抓住AI时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

更多推荐

所有评论(0)