一文带你入门Agent开发

📅 2026/7/21 18:15:21
一文带你入门Agent开发
1. 什么是Agent在人工智能领域Agent智能体通常指能够感知环境、自主决策并执行行动以实现特定目标的软件实体。它不仅仅是执行预设指令的程序而是具备一定程度的自主性、推理能力和学习能力。一个典型的Agent通常包含以下几个核心组件感知模块从环境如用户输入、数据库、API接口获取信息。决策模块基于感知信息和内部知识或模型进行分析、规划和推理决定下一步行动。执行模块将决策转化为具体的动作如调用工具、生成回复、修改数据等。记忆模块可选存储历史交互、任务状态和学到的知识用于支持长期推理。随着大语言模型LLM能力的突破基于LLM的Agent成为当前主流。LLM作为强大的“大脑”负责理解和推理而外部工具如搜索、计算器、代码执行器则扩展了其行动能力。2. 为什么需要Agent传统程序是确定性的而现实世界的问题往往是开放、动态和复杂的。Agent的价值在于处理复杂任务能够将模糊的用户需求如“帮我规划一次旅行”分解为多个子步骤查询天气、查找机票、预订酒店并动态调整计划。利用外部工具突破LLM的固有局限例如获取实时信息、进行精确计算、操作软件系统等。实现自主与协作单个Agent可以独立完成任务多个Agent还可以分工协作形成更强大的系统。适应性与学习优秀的Agent可以从交互中学习优化未来的决策。3. Agent的核心架构与模式一个典型的LLM-Based Agent系统通常遵循“感知-思考-行动”循环ReAct模式。3.1 ReAct模式ReActReasoning Acting是让LLM在思考Reason和行动Act之间交替进行的框架。# 简化的ReAct循环伪代码 def react_agent(goal, tools, max_steps10): memory [] for step in range(max_steps): # 1. 思考基于目标和记忆决定下一步 thought llm(fGoal: {goal}. History: {memory}. What should I think or do next?) memory.append(fThought: {thought}) # 2. 判断是否需要行动 if Action: in thought: # 解析行动指令调用工具 action, action_input parse_action(thought) observation tools[action].run(action_input) memory.append(fObservation: {observation}) else: # 生成最终答案 final_answer llm(fBased on {memory}, what is the final answer?) return final_answer return Failed to achieve goal within steps./code/pre 这个循环让Agent能够“三思而后行”而不是一次性生成所有答案。 3.2 工具调用Tool Use 工具是Agent能力的延伸。常见的工具有 搜索工具获取最新信息。 计算工具进行数学运算。 代码解释器执行代码、处理数据。 API调用与外部服务交互。 LLM需要被引导以正确的格式如JSON描述要调用的工具和参数。 3.3 记忆Memory 记忆帮助Agent保持对话连贯性和任务状态。主要类型包括 短期记忆保存当前对话或任务的历史。 长期记忆通过向量数据库等存储和检索相关知识。 摘要记忆将长历史压缩成摘要节省上下文窗口。 4. 快速上手构建你的第一个Agent 下面我们使用Python和流行的LangChain框架快速构建一个能进行简单数学计算和网络搜索的Agent。 4.1 环境准备 # 安装必要库 pip install langchain langchain-openai langchain-community duckduckgo-search 确保你有一个可用的OpenAI API密钥或其他LLM提供商密钥。 4.2 定义工具 from langchain.tools import Tool from langchain_community.tools import DuckDuckGoSearchRun import math 工具1自定义计算器 def calculator(input_str: str) - str: 执行数学表达式计算。例如3 5 * 2 try: # 警告实际使用中应对输入做严格安全检查这里仅为演示 result eval(input_str) return str(result) except Exception as e: return f计算错误: {e} 工具2网络搜索 search DuckDuckGoSearchRun() 将函数封装为LangChain Tool对象 tools [ Tool( nameCalculator, funccalculator, description用于计算数学表达式。输入应为一个字符串形式的数学表达式如 3 5 * 2。 ), Tool( nameSearch, funcsearch.run, description使用DuckDuckGo在互联网上搜索最新信息。输入是一个搜索查询字符串。 ), ] 4.3 创建Agent并运行 from langchain_openai import ChatOpenAI from langchain.agents import create_react_agent, AgentExecutor from langchain import hub 1. 加载ReAct提示词模板LangChain官方提供 prompt hub.pull(hwchase17/react) 2. 初始化LLM llm ChatOpenAI(modelgpt-3.5-turbo, temperature0, openai_api_keyyour-api-key) 3. 创建Agent agent create_react_agent(llm, tools, prompt) 4. 创建执行器 agent_executor AgentExecutor(agentagent, toolstools, verboseTrue, handle_parsing_errorsTrue) 5. 运行 result agent_executor.invoke({ input: 请先搜索一下今天北京的最高气温是多少摄氏度然后计算这个温度加上10度是多少 }) print(result[output]) 运行上述代码你将看到Agent的思考过程它可能会先调用Search工具查询天气再调用Calculator工具进行加法计算最后给出答案。 5. 进阶方向与学习资源 当你掌握了基础Agent的构建后可以探索以下方向 多Agent系统研究CrewAI、AutoGen等框架构建分工协作的Agent团队。 规划与推理让Agent处理更复杂的多步骤任务学习Chain of Thought、Tree of Thoughts等高级推理技术。 记忆优化集成向量数据库如Chroma、Pinecone实现长期记忆和知识检索。 工具学习让Agent能够自动发现、描述和学习使用新工具。 评估与监控建立评估体系确保Agent的可靠性、安全性和效率。 推荐学习资源 官方文档LangChain、LlamaIndex、CrewAI等项目官网。 开源项目在GitHub上搜索“AI Agent”查看热门项目。 论文阅读《ReAct: Synergizing Reasoning and Acting in Language Models》等经典论文。 6. 总结 Agent开发是当前AI应用最激动人心的领域之一。它不再是简单的问答而是让AI具备了自主完成任务的能力。本文带你了解了Agent的基本概念、核心架构并通过一个实战示例完成了从0到1的搭建。记住一个好的Agent 强大的LLM大脑 合适的工具手脚 清晰的规划思维链。现在你可以基于这个起点开始构建属于你自己的智能体了