LangChain Agent入门
入门·10 分钟·通过可运行代码讲解「LangChain Agent入门」,覆盖环境准备、核心代码、参数说明、异常处理、工程化改造和练习任务,适合 AI 编程入门。
LangChain Agent入门
LangChain Agent 可以让模型根据任务决定调用哪些工具。它适合需要多步骤推理和外部工具配合的场景,例如搜索、计算、查数据库、读文件。
Agent和Chain的区别
Chain 的流程通常是开发者预先固定的:第一步做什么,第二步做什么。Agent 则更灵活:模型根据当前问题决定下一步调用哪个工具。
灵活意味着更强,也意味着更难控制。
一个简单工具
def calculator(expression: str) -> str:
return str(eval(expression))
真实项目不要直接对用户输入使用 eval,这里只是说明工具概念。生产中应使用安全计算器。
工具描述很重要
Agent 需要知道工具能做什么:
Tool(
name='calculator',
description='用于执行安全的数学计算,输入应是数学表达式',
func=calculator
)
描述越清楚,模型越容易正确选择工具。
Agent执行循环
典型流程:
- 用户提出任务;
- 模型思考是否需要工具;
- 如果需要,生成工具名和参数;
- 程序执行工具;
- 工具结果返回模型;
- 模型决定继续调用工具还是输出答案。
适合Agent的任务
- 需要查资料再回答;
- 需要计算;
- 需要访问数据库;
- 需要多步操作;
- 用户目标明确但步骤不固定。
如果任务只有一步,普通 Chain 更简单可靠。
安全边界
Agent 能调用工具,所以必须限制权限。删除文件、发邮件、付款、改数据库这类工具必须设置人工确认。
还要记录日志:用户输入、工具调用、参数、结果、错误。没有日志就无法排查事故。
常见问题
- 工具太多,模型选择混乱;
- 工具描述不清;
- 工具失败后没有错误反馈;
- 没有限制最大调用次数;
- 高风险操作没有确认。
小结
LangChain Agent 的价值是让模型动态使用工具。初学者应从只读工具开始,例如搜索和计算,等日志、权限和失败处理完善后,再考虑写操作。