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执行循环

典型流程:

  1. 用户提出任务;
  2. 模型思考是否需要工具;
  3. 如果需要,生成工具名和参数;
  4. 程序执行工具;
  5. 工具结果返回模型;
  6. 模型决定继续调用工具还是输出答案。

适合Agent的任务

  • 需要查资料再回答;
  • 需要计算;
  • 需要访问数据库;
  • 需要多步操作;
  • 用户目标明确但步骤不固定。

如果任务只有一步,普通 Chain 更简单可靠。

安全边界

Agent 能调用工具,所以必须限制权限。删除文件、发邮件、付款、改数据库这类工具必须设置人工确认。

还要记录日志:用户输入、工具调用、参数、结果、错误。没有日志就无法排查事故。

常见问题

  • 工具太多,模型选择混乱;
  • 工具描述不清;
  • 工具失败后没有错误反馈;
  • 没有限制最大调用次数;
  • 高风险操作没有确认。

小结

LangChain Agent 的价值是让模型动态使用工具。初学者应从只读工具开始,例如搜索和计算,等日志、权限和失败处理完善后,再考虑写操作。