大家好,我是何三,一个喜欢用大白话讲技术的Python程序员。今天咱们来聊聊最近爆火的LangChain Agents技术,它能让你用100行代码就造出会自主思考的AI助手!文末还准备了【保姆级实战教程】,记得看到最后哦~

一、AI智能体的"思考模式":ReAct范式

想象你家有个智能扫地机器人,它工作时是不是这样的? 1. 眼睛(传感器)扫描地面 2. 大脑判断哪里有垃圾 3. 手脚(轮子+吸尘器)过去清扫 4. 重复直到干净

这就是典型的ReAct模式(思考-行动循环),用代码实现起来其实超简单:

class 智能管家:
    def __init__(self, 房间):
        self.房间 = 房间  # 绑定要打扫的房间

    def 查看情况(self):
        return self.房间.当前状态  # 比如发现客厅有垃圾

    def 做决策(self, 当前状态):
        if 当前状态 == "已清洁":
            return "收工"  # 活干完了就休息
        else:
            return "继续打扫"  # 否则接着干

    def 执行动作(self, 决策):
        if 决策 == "继续打扫":
            self.房间.清理垃圾()  # 调用扫地功能
        else:
            self.房间.关机()  # 任务完成

# 实际使用
我家 = 房间(初始状态="有垃圾")
机器人 = 智能管家(我家)

while 我家.是否干净 == False:
    当前状况 = 机器人.查看情况()
    下一步动作 = 机器人.做决策(当前状况)
    机器人.执行动作(下一步动作)

关键点解释:这个管家会循环执行"观察环境->思考决策->执行动作"的完整流程,就像人类处理问题一样。这种模式是LangChain智能体的底层逻辑基础。

二、LangChain智能体实战:让AI自己订外卖

现在咱们升级难度!假设要让AI自动完成「点外卖」任务,需要:

  1. 查天气(调用天气API)
  2. 推荐餐厅(分析用户历史订单)
  3. 比价(爬取外卖平台数据)
  4. 下单(调用支付接口)

用传统编程得写一堆if-else,而用LangChain只需要:

from langchain import LangChainAgent, LLM
import 天气工具
import 支付工具

class 外卖管家(LangChainAgent):
    def __init__(self):
        self.大脑 = LLM()  # 加载大语言模型
        self.工具库 = {
            "查天气": 天气工具,
            "查订单": 用户数据库,
            "比价爬虫": 爬虫工具,
            "支付": 支付工具
        }

    def 思考流程(self, 用户需求):
        # 第一步:拆解任务
        任务步骤 = self.大脑.generate(f"分解任务:{用户需求}")

        # 第二步:动态调用工具
        for 步骤 in 任务步骤:
            if 需要工具 := self.判断是否需要工具(步骤):
                结果 = self.工具库[需要工具].execute()
                self.记忆库.store(结果)  # 记住中间结果

        # 最后生成决策
        return self.生成最终决策()

# 使用示例
管家 = 外卖管家()
用户说 = "今天中午想吃人均50以内的川菜"
订单结果 = 管家.思考流程(用户说)
print(f"已为您下单:{订单结果}")

代码彩蛋:这里用到了LangChain的动态工具调用能力,AI会根据当前情况自主选择工具,就像人类在不同场景下选择不同APP一样。

三、核心黑科技:AI的"记忆系统"

要让AI真正像人一样工作,必须解决记忆问题。LangChain提供了两大记忆系统:

记忆类型 相当于人脑 存储方式 示例
短期记忆 工作记忆 内存缓存 记住用户当前对话上下文
长期记忆 长期记忆 向量数据库 记录用户历史偏好

实现代码长这样:

class 记忆系统:
    def __init__(self):
        self.短期 = {}  # 临时记事本
        self.长期 = 向量数据库()  # 永久档案库

    def 记录对话(self, 对话内容):
        self.短期["最近对话"] = 对话内容  # 暂存最新信息
        if "重要信息" in 对话内容:
            self.长期.save(对话内容)  # 关键信息永久保存

    def 回忆往事(self, 关键词):
        return self.长期.search(关键词)  # 从数据库查找历史记录

# 使用示例
我的记忆 = 记忆系统()
我的记忆.记录对话("用户说最爱吃辣子鸡")
print(我的记忆.回忆往事("用户口味"))  # 返回辣子鸡相关记录

四、新手常见问题Q&A

Q:LangChain和直接调用ChatGPT有什么区别?

A:就像单兵作战和集团军的区别!直接调用API是让AI单打独斗,而LangChain是给AI配了: - 工具箱(调用各种API) - 记忆库(记录工作过程) - 调度系统(分解复杂任务)

Q:学会LangChain能做什么?

  1. 自动客服系统(记忆对话历史)
  2. 智能数据分析助手(自动调用Python库)
  3. 个人知识管家(管理本地文档)
  4. 自动化运营工具(定时发邮件+生成报表)

实战福利:关注公众号【何三笔记】,回复「LangChain」获取 langchain中文入门资料

公众号二维码