LangChain Agent Tool 实战指南:从零搭建可用智能代理
RAG检索增强。RAG模式有一个明显局限执行流程是固定写死的。 用户提问 → 强制检索知识库 → 拼接上下文 → 生成答案。 不管问题需不需要查资料检索动作都会执行模型没有自主选择权。如果我们想要大模型拥有自主能力自主判断要不要查询文档、自主调用计算器、调用接口、读取文件。这时就需要Agent智能代理 Tool工具。简单一句话区分Tool一个个封装好的功能、函数能干什么事Agent调度中心由大模型自主判断什么时候、用哪个工具、传入什么参数一、核心概念1. Tool工具Tool就是给大模型开放调用的能力单元可以理解为供AI调用的函数。 常见工具案例数学计算器本地文件读取工具联网搜索工具RAG知识库检索工具和上篇知识联动每一个工具必须具备3个核心信息name工具名称Agent用来识别工具description工具功能描述重中之重大模型靠这段文字判断什么时候调用它入参工具接收的参数规范LangChain提供两种开发工具的方式装饰器tool快速将普通Python函数转为工具适合简单功能继承BaseTool类适合复杂业务、异步逻辑、参数校验场景2. Agent智能代理Agent本质是一套运行框架接收用户问题 可用工具列表依靠大模型自主决策执行流程。 完整简易执行流程先看懂流程暂不讲ReAct用户发送问题给AgentAgent把【用户问题 所有工具信息】交给大模型大模型思考能否直接回答是否需要调用工具调用哪一个工具参数是什么Agent捕获模型想要调用工具的指令自动执行对应Tool拿到工具返回结果后再次交给大模型信息充足后模型整合全部信息输出最终答案二、从零搭建Agent完整步骤搭建Agent遵循固定5步流水线所有项目通用步骤1开发/收集全部Tool工具先明确你的AI需要具备哪些额外能力逐个封装成Tool。实战建议优先实现自定义工具不要一开始堆砌大量内置工具工具越多模型越容易选错。示例工具规划企业内部助手场景tool1知识库检索工具封装上篇RAG的Retrievertool2日期查询工具tool3简易计算器工具步骤2准备底层大模型LLMAgent依靠LLM做决策优先选用支持结构化输出、函数调用的模型。注意轻量小模型很容易出现调用格式错乱调试阶段优先使用效果更好的模型。步骤3初始化Agent执行器核心组装环节在LangChain中我们使用官方推荐的create_react_agent创建可运行的Agent实例。 输入只需要三样东西LLM大模型对象工具列表 tools系统提示词约束Agent行为规则步骤4调用Agent接收并解析结果Agent支持单次对话、多轮连续对话。 执行后会返回完整运行日志包含模型思考过程、是否调用工具、工具入参、工具返回内容、最终回答。开发最佳实践调试阶段务必打印完整中间日志方便定位调用异常。步骤5功能测试与行为调优测试两大类场景无需调用工具常识类问题模型直接给出答案需要调用工具问题超出模型原生知识验证Agent能否正确选中工具、参数无误三、最简实战Demo架构可直接落地整体项目文件结构agent_demo/ ├── main.py # Agent主程序入口 ├── tools/ │ ├── calc_tool.py # 计算器工具 │ ├── rag_tool.py # RAG知识库检索工具 │ └── time_tool.py # 时间查询工具 └── config.py # LLM配置、密钥管理开发顺序单独编写每个Tool先独立运行测试工具代码保证工具本身无Bug导入全部工具组装工具列表初始化Agent执行器编写交互入口终端交互 / FastAPI接口端到端测试持续优化工具描述与提示词四、重点实战Agent RAG 组合搭建单纯RAG强制检索知识库无论问题是否需要查询资料。 Agent RAG把向量检索器封装成一个Tool带来巨大优势普通常识问题模型直接回答跳过检索节省token开销仅当问题涉及企业内部私有文档时Agent主动调用知识库检索工具复杂问题支持多次检索分段查询不同文档搭建要点 将Retriever封装为自定义Tool清晰填写工具描述描述示例用于查询企业内部规章制度、业务文档当用户询问公司内部相关规定时请调用该工具。五、搭建过程高频问题与解决方案问题1该调用工具但模型直接回答不肯使用Tool最常见问题优先排查顺序检查工具description描述是否清晰准确首要原因系统提示词是否明确告知模型信息不足时优先使用工具工具数量不要一次性放太多减少模型选择负担尝试更换能力更强的LLM问题2模型想要调用工具但是参数提取错误现象调用工具传参为空、参数格式错乱 优化规范工具入参定义明确参数含义优化提示词要求严格按照格式输出调用指令问题3出现无限循环重复调用同一个工具对策创建Agent时配置最大执行轮次防止死循环在系统提示词增加约束获取有效信息后停止调用工具问题4工具返回正确结果模型依旧忽略信息、产生幻觉解决方案 在系统Prompt强制约束最终回答必须优先采信工具返回的内容禁止随意编造信息六、Agent标准化调试顺序搭建排错清单搭建过程出现异常按由下至上顺序排查不要上来怀疑大模型单独运行每一个Tool确认工具本身代码正常、返回结果正确核对工具名称、工具描述文本执行Agent打印完整中间运行日志查看模型思考内容检查系统提示词约束是否合理最后考虑更换底层LLM七、两种架构对比RAG VS AgentTool方案执行流程核心特点适用场景原生RAG固定流水线强制检索文档流程可控、简单稳定知识库问答、文档咨询AgentTool模型自主决策执行路径动态流程、具备自主能力多步骤任务、需要调用外部能力、混合常识私有文档问答⚠️ 二者不是替代关系生产环境经常组合使用。八、后续学习路线贴合你的进度当前阶段熟练掌握「工具开发 → Agent组装 → 调试排错」整套搭建流程下一阶段熟练上手后再深入学习ReAct框架底层原理理解Agent内部思考循环进阶拓展Agent记忆Memory、多轮对话、多智能体协作、Function Calling原生工具调用总结搭建Agent的核心思路非常清晰先造工具再组装调度框架。 Tool是能力载体Agent负责自主调度。开发时不要急于运行整套链路遵循「工具单独测试 → 组装Agent → 端到端调试」的步骤。 绝大多数Agent运行异常根源都在于工具描述模糊、缺少清晰的行为约束而非框架本身问题。当你能稳定搭建Agent并接入RAG检索工具后就可以实现企业场景下更智能的私有知识库助手。