1. ReAct Agent 核心组件拆解
在LangChain框架中构建一个可用的ReAct Agent需要三个核心组件协同工作:工具集(Tools)、提示模板(Prompt)和执行器(AgentExecutor)。这就像组装一台精密仪器——工具是它的功能模块,提示是指令手册,执行器则是控制系统。下面我用实际开发中的经验带你看清每个部件的构造原理。
1.1 工具集(Tools)设计与规范
工具集决定了Agent的能力边界。在最近的一个电商价格分析项目中,我配置了以下典型工具:
python复制from langchain.tools import Tool
from langchain_community.utilities import GoogleSerperAPIWrapper
search = GoogleSerperAPIWrapper()
tools = [
Tool(
name="ProductSearch",
description="获取商品最新市场价格,输入应为商品名称",
func=search.run,
),
Tool(
name="PriceAnalyzer",
description="分析历史价格趋势,输入应为商品ID",
func=analyze_price_history,
)
]
关键配置项解析:
name:必须使用驼峰命名且全局唯一,Agent会根据名称调用工具description:需要明确说明三要素:功能、输入格式、输出内容。我习惯用"动词+对象+输入输出说明"的结构func:实际执行的函数,建议先用普通Python函数测试通过再接入
踩坑提醒:description的质量直接影响工具调用准确率。曾有个项目因为把"输入应为JSON字符串"写成"输入需要结构化数据",导致LLM频繁传参错误。
1.2 提示模板(Prompt)工程实践
ReAct的提示模板需要包含四个关键部分(以Flower Pricing Agent为例):
python复制from langchain import hub
promp
