大家好,我是何三,一个喜欢用大白话讲技术的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自动完成「点外卖」任务,需要:
- 查天气(调用天气API)
- 推荐餐厅(分析用户历史订单)
- 比价(爬取外卖平台数据)
- 下单(调用支付接口)
用传统编程得写一堆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能做什么?
- 自动客服系统(记忆对话历史)
- 智能数据分析助手(自动调用Python库)
- 个人知识管家(管理本地文档)
- 自动化运营工具(定时发邮件+生成报表)
实战福利:关注公众号【何三笔记】,回复「LangChain」获取 langchain中文入门资料