文章目录AI Agent:开创新质生产力新篇章「AI Agent开创新质生产力新篇章」实战指南从零构建智能代理系统AI Agent:开创新质生产力新篇章「AI Agent开创新质生产力新篇章」实战指南从零构建智能代理系统背景与痛点核心概念速览环境准备或 venv\activate # WindowsStep-by-step 实现1. 初始化Agent基础框架初始化LLM初始化记忆2. 定义工具集创建搜索工具创建计算工具定义工具列表3. 初始化Agent初始化Agent4. 测试Agent功能测试简单任务测试复杂任务5. 实现任务规划功能创建规划器创建执行器创建规划-执行Agent6. 实现记忆增强功能初始化向量数据库使用增强记忆更新Agent的记忆常见错误与解决方案错误1: Agent陷入循环添加最大迭代次数限制使用带限制的执行器错误2: 工具调用失败应用错误处理器错误3: 记忆过载使用滑动窗口记忆进阶优化/扩展方向1. 多Agent协作定义专业Agent创建多Agent执行器2. 自定义决策逻辑完整代码仓库核心知识点总结参考资料本文手把手教你构建AI Agent系统涵盖核心概念、环境配置、代码实现和常见问题解决助你快速掌握这一开创新质生产力的关键技术。AI Agent:开创新质生产力新篇章「AI Agent开创新质生产力新篇章」实战指南从零构建智能代理系统本文手把手教你构建AI Agent系统涵盖核心概念、环境配置、代码实现和常见问题解决助你快速掌握这一开创新质生产力的关键技术。AI Agent:开创新质生产力新篇章「AI Agent开创新质生产力新篇章」实战指南从零构建智能代理系统TL;DR本文带你从零开始构建一个完整的AI Agent系统通过大语言模型工具调用记忆模块的组合实现自主决策和任务执行。适用场景智能客服、自动化工作流、个人助理、数据分析助手等需要自主决策的场景。前置条件Python 3.8OpenAI API密钥LangChain 0.1.0ChromaDB 0.4.0背景与痛点传统编程方式需要预先定义所有可能的条件和处理逻辑面对复杂多变的需求时往往力不从心。AI Agent的出现解决了这一难题它能够理解目标、自主规划、调用工具、反思决策形成完整的闭环。不过市面上大多数教程要么过于理论化要么只展示部分功能缺乏完整的可复现实现。核心概念速览概念定义作用Agent具备自主决策能力的AI系统根据目标自主规划和执行任务LLM大语言模型提供自然语言理解和生成能力Tool外部功能接口扩展Agent的能力边界Memory记忆系统保存和检索上下文信息Planning任务规划将复杂目标分解为可执行步骤环境准备首先创建项目环境并安装必要依赖mkdir ai-agent-tutorial cd ai-agent-tutorialpython -m venv venvsource venv/bin/activate # Linux/Mac或 venv\activate # Windowspip install langchain0.1.0 openai chromadb python-dotenv创建.env文件存储API密钥OPENAI_API_KEYyour_api_key_hereStep-by-step 实现1. 初始化Agent基础框架fromlangchain.agentsimportinitialize_agent,AgentTypefromlangchain.chat_modelsimportChatOpenAIfromlangchain.toolsimportToolfromlangchain.memoryimportConversationBufferMemory初始化LLMllm ChatOpenAI(temperature0, model_name“gpt-4”)初始化记忆memory ConversationBufferMemory(memory_key“chat_history”)2. 定义工具集python创建搜索工具def search(query: str) - str:“”“模拟搜索功能”“”# 实际应用中这里可以接入真实搜索引擎APIreturn f搜索结果: {query} 的相关信息创建计算工具def calculate(expression: str) - str:“”“执行数学计算”“”try:result eval(expression)return f计算结果: {expression} {result}except Exception as e:return f计算错误: {str(e)}定义工具列表tools [Tool(name“Search”,funcsearch,description“用于搜索信息”),Tool(name“Calculator”,funccalculate,description“用于执行数学计算”)]3. 初始化Agentpython初始化Agentagent initialize_agent(tools,llm,agentAgentType.STRUCTURED_CHAT_ZERO_SHOT_REACT_DESCRIPTION,memorymemory,verboseTrue)4. 测试Agent功能python测试简单任务response agent.run(“帮我计算 15 * 23 7 的结果”)print(response)测试复杂任务response agent.run(“搜索Python的最新版本然后计算这个版本号乘以100的结果”)print(response)5. 实现任务规划功能fromlangchain.agentsimportPlannerAgent,ToolExecutorfromlangchain.schemaimportAgentAction,AgentFinishclassCustomPlannerAgent(PlannerAgent):defplan(self,intermediate_steps:list,**kwargs)-Union[AgentAction,AgentFinish]:# 自定义规划逻辑iflen(intermediate_steps)0:# 第一步分析任务returnAgentAction(toolTaskAnalyzer,tool_input分析任务需求,log分析任务需求)eliflen(intermediate_steps)1:# 第二步制定计划returnAgentAction(toolPlanGenerator,tool_input制定执行计划,log制定执行计划)else:# 任务完成returnAgentFinish(return_values{output:任务完成},log任务完成)创建规划器planner CustomPlannerAgent.from_llm_and_tools(llm, tools)创建执行器executor ToolExecutor(tools)创建规划-执行Agentplan_agent PlannerAgent(llm, tools, planner, executor)6. 实现记忆增强功能fromlangchain.embeddingsimportOpenAIEmbeddingsfromlangchain.vectorstoresimportChroma初始化向量数据库embeddings OpenAIEmbeddings()vectorstore Chroma(“agent_memory”, embeddings)class EnhancedMemory:definit(self, vectorstore, max_tokens2000):self.vectorstore vectorstoreself.max_tokens max_tokensself.buffer []def add(self, text): self.buffer.append(text) # 向向量数据库添加 self.vectorstore.add_texts([text]) # 控制记忆长度 if len(self.buffer) 10: self.buffer self.buffer[-10:] def get_relevant(self, query, k3):# 从向量数据库检索相关记忆docs self.vectorstore.similarity_search(query, kk)return [doc.page_content for doc in docs]使用增强记忆enhanced_memory EnhancedMemory(vectorstore)更新Agent的记忆agent.memory enhanced_memory常见错误与解决方案错误1: Agent陷入循环现象Agent重复执行相同操作无法终止解决方案fromlangchain.agentsimportAgentExecutor添加最大迭代次数限制agent_executor AgentExecutor(agentagent,toolstools,max_iterations5,verboseTrue)使用带限制的执行器response agent_executor.run(“帮我计算 15 * 23 7 的结果”)错误2: 工具调用失败现象Agent尝试调用工具但失败解决方案fromlangchain.agentsimportToolfromfunctoolsimportwrapsdeftool_error_handler(func):wraps(func)defwrapper(*args,**kwargs):try:returnfunc(*args,**kwargs)exceptExceptionase:returnf工具调用失败:{str(e)}returnwrapper应用错误处理器search tool_error_handler(search)calculate tool_error_handler(calculate)错误3: 记忆过载现象Agent上下文过长导致性能下降解决方案classSlidingWindowMemory:def__init__(self,window_size5):self.window_sizewindow_size self.buffer[]defadd(self,text):self.buffer.append(text)iflen(self.buffer)self.window_size:self.bufferself.buffer[-self.window_size:]defget_recent(self):return\n.join(self.buffer)使用滑动窗口记忆sliding_memory SlidingWindowMemory()agent.memory sliding_memory进阶优化/扩展方向1. 多Agent协作fromlangchain.agentsimportMultiAgentExecutor定义专业Agentresearch_agent initialize_agent([search],llm,agentAgentType.STRUCTURED_CHAT_ZERO_SHOT_REACT_DESCRIPTION,verboseTrue)analysis_agent initialize_agent([calculate],llm,agentAgentType.STRUCTURED_CHAT_ZERO_SHOT_REACT_DESCRIPTION,verboseTrue)创建多Agent执行器multi_agent_executor MultiAgentExecutor(agents[research_agent, analysis_agent],verboseTrue)2. 自定义决策逻辑classCustomDecisionAgent:defdecide(self,observations,goals):# 自定义决策逻辑ifsearchinobservations:returnsearchelifcalculateinobservations:returncalculateelse:returnthinkdefact(self,action,input_data):ifactionsearch:returnsearch(input_data)elifactioncalculate:returncalculate(input_data)else:return思考中...完整代码仓库完整代码示例可在GitHub获取https://github.com/example/ai-agent-tutorial核心知识点总结AI Agent通过大语言模型工具调用记忆模块的组合实现自主决策结构化Agent类型(STRUCTURED_CHAT_ZERO_SHOT_REACT_DESCRIPTION)提供了更好的任务规划能力记忆系统是Agent持续学习的关键向量存储有助于相关记忆检索错误处理和迭代限制是保证Agent稳定运行的重要机制参考资料LangChain Agent文档: https://python.langchain.com/docs/modules/agents/OpenAI API文档: https://platform.openai.com/docs/api-referenceChromaDB文档: https://docs.trychroma.com/