大数跨境

转型 AI 开发——LangChain 实战第五课:为什么智能体一定要有记忆,才能成为你的第二大脑?

转型 AI 开发——LangChain 实战第五课:为什么智能体一定要有记忆,才能成为你的第二大脑? 玩AI的方可乐
2025-09-20
2
导读:手把手教学,10 分钟见结果

 

你好,我是方可乐。
一个正在深耕AI编程的30+的AI应用开发工程师。
用AI编程开发过Web应用网站,浏览器插件,

微信小程序,AI智能体,RAG系统。

注公众号&添加微信:ThinkFun666

领取【AI编程资料包】



 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

 

去年6月份,我做了一个连自己都觉得疯狂的决定:裸辞,All in AI。

现在已经换赛道成功,继续在工作中探索。


 

昨天我们聊了 Few-shot,很多同学可能心里在想: 那 AI 能不能记住我说过的话?
答案是:当然能。

记忆,是 AI 应用的 第一步升级

  • • 没有记忆:只能一句话一句话干,像“工具”。
  • • 有了记忆:能追踪上下文,接续任务,像“助理”。

但问题在于 —— 原生 API 想要让 AI “有记忆”,要自己维护一大堆对话历史。

你跟 AI 聊十句话,就得在 messages 里面硬塞十条数据。

越聊越多,messages 越臃肿,光看都头疼。

LangChain给我们封装了 **Memory,**而且还能换不同的记忆策略(比如只记最近的,或者自动生成摘要)。

说实话,这个框架能力我是用得最舒服的,自己手搓记忆管理的真的太麻烦了。


那对于AI来讲,什么是“记忆”?

记忆本质上就是 保存上下文。

因为我们使用API来调用大模型,每次都属于单个对话(压根不知道刚才聊了啥)。

所以我们每次和大模型交互,都需要将刚才聊过的信息,再次发给它,达到唤醒“记忆”的目的。

  • • 没有记忆的 AI:你问“我是谁?”,它一脸懵逼。
  • • 有记忆的 AI:它会回忆起你刚才说过的名字,然后接着回答。

所以记忆是 AI 从“聊天机器人”升级为“智能体”的第一步。

老规矩,我们继续对比两种写法差异。


原生写法,新建文件 05_memory.py


           
           
           
           
            
           
           
           
           import os
from
 openai import OpenAI
from
 dotenv import load_dotenv

load_dotenv()
client = OpenAI(api_key=os.getenv("deepseek_api_key"), base_url="https://api.deepseek.com/v1")

# 初始化对话历史

messages = [
    {"role": "system", "content": "你是一个智能助理,会记住用户的自我介绍"}
]

print
("=== 记忆小实验 ===")
print
("随便跟我聊两句,比如先介绍你自己,再让我复述。输入 quit 退出。")
print
()

while
 True:
    user_input = input("你:")
    if
 user_input.lower() in ["quit", "exit", "退出"]:
        break


    # 把用户输入塞进历史

    messages.append({"role": "user", "content": user_input})

    # 调用大模型

    response = client.chat.completions.create(
        model="deepseek-chat",
        messages=messages
    )

    ai_reply = response.choices[0].message.content
    print
("AI:", ai_reply)

    # 把 AI 的回答也塞进历史

    messages.append({"role": "assistant", "content": ai_reply})

这个写法能跑,但你看出来了 ——
 我们得手动维护 messages,一问一答往里 append。
 聊久了,全靠自己管理上下文,超级麻烦。


LangChain 写法,新建文件 05_memory_langchain.py


           
           
           
           
            
           
           
           
           import os
from
 dotenv import load_dotenv
from
 langchain_openai import ChatOpenAI
from
 langchain.chains import ConversationChain
from
 langchain.memory import ConversationBufferMemory

load_dotenv()

llm = ChatOpenAI(
    model="deepseek-chat",
    base_url="https://api.deepseek.com/v1",
    api_key=os.getenv("deepseek_api_key"),
    temperature=0.7
)

# 用 Memory 来管理上下文

memory = ConversationBufferMemory()
conversation = ConversationChain(
    llm=llm,
    memory=memory,
    verbose=True  # 打印提示词,方便观察
)

print
("=== LangChain 记忆小实验 ===")
print
("随便跟我聊两句,比如先介绍你自己,再让我复述。输入 quit 退出。")
print
()

while
 True:
    user_input = input("你:")
    if
 user_input.lower() in ["quit", "exit", "退出"]:
        break


    ai_reply = conversation.predict(input=user_input)
    print
("AI:", ai_reply)

比较了原生和langchain的记忆管理实现方式,有这么些差别,这也是为什么我们要用框架的一个很重要的原因。

在原生 API 里,你会发现写起来很“繁琐”:

  • • 你必须自己维护一个 messages 列表。
  • • 每次用户说话,要手动 append 一条 "role": "user" 的消息。
  • • AI 回复后,你还得再 append 一条 "role": "assistant" 的消息。
  • • 一旦想换策略,比如“只保留最近 N 条”或者“做摘要”,都得自己额外写逻辑。

而在 LangChain 里,这些都被 记忆模块(Memory) 接管了:

  • • ConversationChain 会自动把用户输入和 AI 回复保存进记忆。
  • • ConversationBufferMemory 是最简单的记忆方式,完整保存上下文。
  • • 如果想节省 Token,可以直接换 ConversationSummaryMemory,它会自动帮你做摘要。
  • • 或者用 ConversationBufferWindowMemory,只保留最近几轮对话。

最后,我们来看看拥有了记忆能力的AI效果。

下节课我们讲记忆策略,让我们一起深入探讨记忆管理的实现吧。

 


 

 

 

对AI应用开发感兴趣的同学,欢迎加微信申请入群交流学习。

想要学习AI应用开发的同学,可以参照我的代码跑起来,举一反三,一天一个脚印的进步,我相信,会足够坚实。


接下来100天,我会记录从Java程序员到AI应用开发工程师的完整转型路:每一个困惑、每一次突破、每一个真实瞬间。

当前是23/100。

如果你也想了解AI应用开发到底是什么,如果你也在考虑转型但还在犹豫,
那就跟着我的记录,一起探索。


继续折腾中,有问题随时交流 🤝
微信号:ThinkFun666



我的免费AI编程交流群,欢迎加入讨论AI编程玩法(加我微信,说明需求和来意,申请入群)




 


不懂编程的小白,如何入门AI编程和商业化?

如何系统地掌握这些方法?如何找到有价值的商业化方向?如何在遇到瓶颈时获得启发和帮助?

如果你也对AI编程充满热情,渴望用AI创造出属于自己的应用并探索商业化机会;如果你想提升在AI时代的核心竞争力,让AI成为你事业的加速器。

那么,我非常推荐你加入“AI编程复利商业化星球”!




在这个社群,你将获得:

  • 9次价值千元的AI编程死磕实战训练营

  • 超级大佬的实战经验分享,商业化思路,前沿AI工具和技巧

  • 和一群积极的AI编程同行者共舞


让我们一起,用AI编程,不仅创造工具,更创造价值,实现个人和商业上的持续“进化”与“复利”!

 

 

 



推荐阅读:

我就喜欢干这种傻事!为什么转型AI应用开发,我不建议你直接从看书开始学起?

猛然醒悟:原来 AI 编程这件事情,是有门槛的,90%的新手卡在这些地方

30岁转行 AI 应用开发:多久能学会?答案出乎意料

30岁,我放弃写了7年的Java,成功转型AI应用开发

30岁,转型AI应用开发,需要会什么技术?

30岁,空窗期一年,靠什么成功转型AI应用开发?

30岁,没报课,如何从0自学转型AI应用开发?

【声明】内容源于网络
0
0
玩AI的方可乐
1234
内容 502
粉丝 0
玩AI的方可乐 1234
总阅读204
粉丝0
内容502