AI Agent开发入门:从核心概念到LangChain实战指南

发布时间:2026/7/25 21:11:18
AI Agent开发入门:从核心概念到LangChain实战指南 1. 先搞清楚 Agentic AI 和 AI Agent 到底在解决什么问题如果你最近在关注 AI 领域大概率会频繁看到Agentic AI和AI Agent这两个词。很多人容易把它们混为一谈或者觉得这只是又一个营销概念。但如果你真的想上手做点东西或者评估一个项目要不要引入这类技术最该先弄明白的是它们到底解决了什么实际问题以及我们该从哪里开始动手。简单来说Agentic AI更像是一个宏观的“系统”或“框架”概念它描述的是一种能够自主决策、执行复杂任务、且需要最少人工监督的 AI 系统能力。你可以把它想象成一个能独立运作的“智能大脑”它知道自己要达成什么目标并且会主动规划、调用工具、与环境交互去实现它。而AI Agent则是这个框架里的具体“执行单元”或“组件”。一个 Agentic AI 系统里可能包含多个分工不同的 AI Agent它们协作完成一个更大的目标。举个例子一个智能的自动化供应链管理系统可以看作一个 Agentic AI 系统。它内部可能有负责预测需求的“预测 Agent”、负责优化物流路线的“调度 Agent”、负责与供应商系统对接的“通信 Agent”。这些 Agent 各司其职在统一的框架下自主运作最终实现“降低库存成本、提升配送效率”这个复杂目标。所以当你看到一个项目标题叫“Agent 基础认知与实操使用”时它大概率不是要你从零搭建一个庞大的 Agentic AI 系统而是教你如何创建、配置和运行一个具体的AI Agent。这是最务实、也最适合开发者入手的起点。2. 动手前先确认你的“工具箱”和环境在开始写第一行代码之前我建议你先花十分钟确认三件事目标、工具和环境。这能避免你跟着教程跑了一半才发现依赖装不上或者硬件跑不动。2.1 明确你的目标你想让 Agent 做什么AI Agent 的核心是“感知-决策-行动”的循环。在实操中这通常意味着感知接收一个用户指令或外部事件如“总结这篇长文档”、“检查服务器状态”。决策一个大语言模型LLM作为“大脑”理解指令并规划出需要执行的步骤如“先调用搜索工具找资料再调用总结工具生成报告”。行动调用预先定义好的“工具”Tool来执行具体操作如调用搜索引擎 API、读写数据库、执行一段代码。因此你的第一个实操目标应该是构建一个能使用至少一种外部工具的 AI Agent。比如一个能联网搜索最新天气并生成简报的 Agent或者一个能查询数据库并回答业务问题的 Agent。2.2 选择合适的开发框架目前社区主流的 AI Agent 开发框架非常多各有侧重。对于新手入门我建议从以下两个方向选一个开始它们生态成熟文档和案例丰富LangChain / LangGraph如果你希望有最大的灵活性和控制力从底层理解 Agent 的工作流LangChain 是首选。它提供了构建 Agent 所需的各种基础模块LLM 集成、记忆、工具链。而 LangGraph 是其上用于构建复杂、有状态的多 Agent 工作流的库。学习曲线稍陡但学通了几乎能实现任何想法。CrewAI如果你更关注多 Agent 协作想快速搭建一个像“市场分析团队”、“客服处理小组”这样的多角色系统CrewAI 非常直观。它用“角色Role”、“任务Task”、“流程Process”这些概念来组织 Agent抽象程度更高上手更快。其他如AutoGen微软推出擅长多 Agent 对话协作、MetaGPT模拟软件公司角色协作开发项目也很有特色但建议在熟悉基础概念后再探索。2.3 准备你的运行环境AI Agent 的运行严重依赖后端的大语言模型LLM。你需要准备一个 LLM 的“接入点”。通常有三种方式使用云服务商的 API如 OpenAI 的 GPT 系列、Anthropic 的 Claude、Google 的 Gemini 等。这是最方便的方式无需本地资源但会产生 API 调用费用。你需要准备好相应的 API Key。本地部署开源模型使用 Ollama、LM Studio 等工具在本地电脑运行如 Llama、Qwen、DeepSeek 等开源模型。这对数据隐私要求高的场景很友好但对本地硬件尤其是 GPU 显存有要求。使用托管平台如 IBM watsonx、Azure AI Studio 等它们提供了集成的 Agent 构建和托管环境。对于学习和初步实践我强烈建议从第一种开始注册一个 OpenAI 或 Anthropic 的账户获取一个 API Key。成本可控初期实验花费极低稳定性好能让你把精力集中在 Agent 逻辑本身而不是折腾模型部署。你的本地开发环境只需要Python 3.8这是所有主流框架的语言基础。pip用于安装包。一个代码编辑器VS Code 是常见选择。稳定的网络连接用于调用 API。3. 从零构建你的第一个 AI Agent以 LangChain 为例下面我们以 LangChain 框架和 OpenAI API 为例一步步构建一个能进行简单数学计算和当前日期查询的 Agent。这个例子虽小但包含了 Agent 最核心的要素。3.1 环境搭建与依赖安装首先创建一个新的 Python 虚拟环境是个好习惯可以避免包版本冲突。# 创建并激活虚拟环境 (以 macOS/Linux 为例) python -m venv venv source venv/bin/activate # 安装必要的包 pip install langchain langchain-openai python-dotenvlangchain是核心框架langchain-openai是 OpenAI 的官方集成包python-dotenv用于安全地管理环境变量如你的 API Key。接下来将你的 OpenAI API Key 保存在一个名为.env的文件中确保该文件被.gitignore忽略不要提交到代码仓库。# .env 文件内容 OPENAI_API_KEY你的-api-key-在这里3.2 定义 Agent 可以使用的“工具”工具是 Agent 的手和脚。我们定义两个简单的工具# agent_demo.py from langchain.agents import tool from datetime import datetime # 工具1一个能进行加法计算的工具 tool def add_numbers(a: int, b: int) - int: 将两个数字相加。输入应为两个整数。 return a b # 工具2一个能返回当前日期的工具 tool def get_current_date() - str: 返回当前日期格式为 YYYY-MM-DD。 return datetime.now().strftime(%Y-%m-%d) # 将工具放入一个列表中供后续的 Agent 使用 tools [add_numbers, get_current_date]3.3 创建 Agent 的“大脑”并组装我们需要一个 LLM 来驱动 Agent 的决策这里使用 OpenAI 的模型。同时使用 LangChain 提供的create_react_agent来快速创建一个基于 ReAct 推理框架的 Agent。# 接上面的代码 from langchain_openai import ChatOpenAI from langchain.agents import create_react_agent, AgentExecutor from langchain import hub import os from dotenv import load_dotenv # 加载 .env 文件中的环境变量 load_dotenv() # 1. 初始化 LLM llm ChatOpenAI(modelgpt-3.5-turbo, temperature0, openai_api_keyos.getenv(OPENAI_API_KEY)) # 2. 获取一个预设的提示词模板。ReAct 框架需要一个结构化的提示词来指导 Agent 思考。 prompt hub.pull(hwchase17/react) # 3. 创建 Agent agent create_react_agent(llm, tools, prompt) # 4. 创建 Agent 执行器它负责运行 Agent 的循环 agent_executor AgentExecutor(agentagent, toolstools, verboseTrue, handle_parsing_errorsTrue)关键参数解释model: 指定使用的模型gpt-3.5-turbo性价比高适合实验。temperature: 设置为 0使输出更确定、更可靠适合执行任务。verboseTrue: 这将打印出 Agent 详细的思考过程对于调试和理解其工作原理至关重要。handle_parsing_errorsTrue: 当 Agent 输出格式不符合预期时尝试修复而不是直接崩溃。3.4 运行你的 Agent 并观察其思考过程现在让我们向 Agent 提问。# 接上面的代码 if __name__ __main__: # 问题1使用计算工具 result1 agent_executor.invoke({input: 123 加上 456 等于多少}) print(f\n最终答案: {result1[output]}) # 问题2使用日期工具 result2 agent_executor.invoke({input: 今天是几号}) print(f\n最终答案: {result2[output]}) # 问题3一个需要组合推理的问题可能涉及多个工具调用或直接回答 result3 agent_executor.invoke({input: 昨天的日期是什么}) print(f\n最终答案: {result3[output]})运行这个脚本 (python agent_demo.py)。当verboseTrue时你会在控制台看到类似下面的输出这就是 Agent 的“思考链” Entering new AgentExecutor chain... 我需要计算 123 加 456。我有一个工具可以处理加法。 Action: add_numbers Action Input: {a: 123, b: 456} Observation: 579 Thought: 我得到了计算结果。 Final Answer: 123 加上 456 等于 579。 最终答案: 123 加上 456 等于 579。你可以清晰地看到 Agent 的“思考Thought”-“行动Action”-“观察Observation”循环。这就是ReAct模式的核心通过显式的推理步骤决定调用哪个工具并根据工具返回的结果决定下一步。4. 从单 Agent 到复杂工作流理解核心概念与进阶跑通第一个 Agent 只是起点。要真正用于实际项目你需要理解以下几个关键概念并知道如何排查问题。4.1 核心组件拆解不止是工具调用一个功能完整的 AI Agent 通常由多个组件构成LangChain 等框架为我们封装了这些组件工具ToolsAgent 的能力扩展。除了自定义函数还可以是搜索引擎 API、数据库连接器、代码执行器、文件读写器等。生态中有大量现成工具。记忆Memory让 Agent 记住之前的对话或交互历史。分为短期记忆通常指当前会话的上下文通过 LLM 的 token 窗口传递。长期记忆需要外部存储如向量数据库用于存储和检索历史信息。提示词Prompt定义 Agent 的角色、目标和行为准则。好的提示词是 Agent 表现良好的关键。我们上面使用了hub.pull拉取了一个社区共享的优质 ReAct 提示词模板。输出解析器Output Parser将 LLM 输出的非结构化文本解析成结构化数据如工具调用指令、最终答案。框架通常内置了处理逻辑。4.2 多 Agent 系统与智能体编排当单个 Agent 无法完成复杂任务时就需要多个 Agent 协作。这就是多 Agent 系统Multi-Agent System。这里涉及到“编排Orchestration”。顺序协作Agent A 完成任务后将结果交给 Agent B 继续处理。例如一个“研究 Agent”搜集资料一个“写作 Agent”生成报告。并行协作多个 Agent 同时处理同一任务的不同部分然后由一个“主管 Agent”汇总。例如多个“分析 Agent”从不同角度分析一份财报。动态路由根据任务内容或中间结果动态决定下一个该由哪个 Agent 接手。LangGraph就是专门用于构建这种有状态、可循环、多分支工作流的库。它用“图Graph”的概念来定义 Agent 之间的协作关系非常适合构建复杂的业务流程自动化。4.3 常见问题与排查思路在实操中你肯定会遇到各种问题。不要急着修改复杂逻辑按以下顺序排查API 连接与鉴权失败现象AuthenticationError或网络超时。排查首先检查OPENAI_API_KEY环境变量是否正确设置可以用print(os.getenv(“OPENAI_API_KEY”))验证。其次检查网络代理设置。Agent 不调用工具直接胡言乱语现象LLM 自己编造答案而不是调用你提供的工具。排查提示词问题检查使用的提示词模板是否适合工具调用。ReAct 模板是标准选择。工具描述不清确保你的tool装饰器里的函数文档字符串将两个数字相加...清晰准确。LLM 主要靠这个描述来决定是否以及如何调用工具。LLM 能力不足如果使用太小的开源模型可能无法理解复杂的工具调用逻辑。可换用能力更强的模型如 GPT-4测试。工具调用参数错误现象ValidationError提示输入参数类型不对。排查检查工具函数的参数类型注解如a: int。LLM 会根据这个生成调用参数。确保你的问题描述能让 LLM 推断出正确的参数类型和数量。处理复杂任务时陷入循环或失败现象Agent 不断重复调用工具无法得出最终答案。排查设置max_iterations或max_execution_time参数来限制 Agent 的最大执行步数防止无限循环。检查任务是否过于复杂超出了单个 Agent 的能力。考虑将其拆分为子任务用多 Agent 协作完成。开启verboseTrue仔细观察思考链看是在哪一步推理出现了偏差。5. 项目落地考量从 Demo 到生产当你成功运行了 Demo并计划将其用于更严肃的场景时以下几个方面的考量至关重要5.1 稳定性与可靠性错误处理与重试API 调用可能失败网络可能不稳定。在生产代码中必须为工具调用和 LLM 调用添加重试机制如使用tenacity库和完善的异常处理。超时控制为每个工具调用和整个 Agent 执行设置合理的超时时间避免任务卡死。验证与护栏对 Agent 的最终输出进行验证。例如如果 Agent 的任务是生成 SQL在执行前应检查 SQL 的语法安全性如果生成的是结构化数据验证其格式是否正确。5.2 成本与性能优化Token 消耗LLM 按 Token 收费。长上下文、复杂的思考链都会增加成本。优化提示词、精简工具描述、使用合适的上下文窗口模型是控制成本的关键。缓存对频繁出现的、结果确定的查询如“今天的日期”可以使用 LLM 调用缓存来节省成本和时间。LangChain 集成了多种缓存后端。模型选择不一定总用最强大的模型。对于简单的工具路由和格式化任务gpt-3.5-turbo可能就足够了对于需要深度推理的复杂规划再使用gpt-4。5.3 可观测性与评估日志记录生产系统必须记录完整的 Agent 执行轨迹包括所有的思考、行动、观察。这不仅是调试的需要也是理解 Agent 行为、评估其性能的基础。评估指标如何判断你的 Agent 工作得好不好除了最终结果的正确性还可以评估工具调用的准确率、完成任务所需的步骤迭代次数、执行耗时、成本等。需要建立一套评估体系。人工审核回路对于关键任务引入“人在环路”机制。当 Agent 置信度不高时将决策提交给人来审核。构建 AI Agent 不是一个一蹴而就的过程而是一个“设计-实现-测试-观察-迭代”的循环。我建议从一个微小但具体的任务开始确保它能稳定运行然后逐步增加其复杂性和自主性。先让一个 Agent 可靠地完成一件事远比设计一个庞大但不可靠的多 Agent 系统更有价值。