【Google ADK 实战】04 session 与 memory:让你的 Agent 拥有记忆

大家好,我是Tony Bai。

欢迎来到我们的专栏 《Google ADK 实战:用 Go 构建可靠的 AI Agent》的第四讲。

上一讲中,我们成功地为 Agent “插上了手臂”,构建了一个能调用 Go 函数查询实时天气的天气助手。它能准确地回答“北京天气怎么样?”。但很快,我们就会发现它的一个“致命缺陷”——它有严重的健忘症

让我们把挑战升级。想象一下,我们希望这个助手不仅仅是一个“查询工具”,更是一个能帮助我们做决策的“旅行规划助理”。

试想一下这段对话:

你: 我在考虑下周去旅行,帮我看看北京的天气怎么样? Agent: (调用工具) 北京下周天气晴朗,温度适宜。 你:听起来不错。再帮我看看上海的天气。 Agent: (调用工具) 上海下周可能会有阵雨。 你: 嗯... 那深圳呢? Agent:(调用工具) 深圳下周天气也很好,阳光明媚。 你: 好了,综合来看,哪个城市最适合我去?

面对最后一个问题,我们上一讲的 Agent 会彻底“卡壳”。为什么?因为它虽然能查询每个城市的天气,但它完全不记得之前的查询结果。每一次查询都是独立的、一次性的操作。当被要求“综合来看”时,它的“记忆”是空白的,根本无从比起。

这个问题,暴露了我们 Agent 的一个“致命缺陷”。它缺乏在一次对话中积累和持有信息的能力。

要解决这个“健忘症”,就必须为 Agent 引入记忆系统。这正是我们这一讲的核心议题。学完这一讲,你将能够:

  1. 区分 session 和 memory,理解 ADK 中短期记忆和长期记忆的设计哲学。

  2. 掌握 tool.Context.State() 和 SearchMemory(),学会通过这两个核心 API 在对话中读写短期和长期记忆。

  3. 升级我们的天气助手,让它能够记录和比较多次查询结果,并能“记住”你跨会话的偏好。

准备好为你的 Agent 安装“海马体”,让它从一个简单的“查询工具”进化成一个真正的“助理”了吗?让我们开始吧。

短期记忆 vs. 长期记忆:session 与 memory

在 ADK 的设计中,记忆被清晰地划分为两个层次,这对于我们理解和构建复杂的 Agent 至关重要。你可以用一个简单的比喻来理解它们:

  • session.Service (短期记忆 - RAM):

    • 作用域: 单次完整的对话(从开始到结束),由 SessionID 标识。

    • 特点: 速度快,易于访问,用于存储当前对话的上下文信息。

    • 用途: 存储用户本轮对话中提到的实体(城市名)、临时的计算结果(天气对比列表)、当前的对话状态等。它保证了 Agent 在一次连续的交互中,是“有记忆”和“连贯”的。

  • memory.Service (长期记忆 - Hard Drive):

    • 作用域: 跨越多次对话,通常与一个 UserID 绑定。

    • 特点: 持久化存储,用于知识的沉淀和积累。它允许 Agent “记住”过去与某个用户的所有交互精华。

    • 用途: 存储用户的偏好(“我最喜欢的城市是北京”)、历史交互的关键信息(用户过去经常查询的城市)、Agent 通过学习获得的知识等。这让 Agent 在下一次与你对话时,能“记起”你是谁,你喜欢什么。

本讲我们将同时实践这两种记忆:用 session 来解决我们开篇提出的“多城市天气比较”问题,再用 memory 来实现一个更酷的功能——让 Agent “记住”你的常用城市。

【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)内容概要:本文介绍了一种基于神经网络的数据驱动迭代学习控制(ILC)算法,用于解决具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车路径跟踪问题,并提供了完整的Matlab代码实现。该方法无需精确系统模型,通过数据驱动方式结合神经网络逼近系统动态,利用迭代学习机制不断提升控制性能,从而实现高精度的路径跟踪控制。文档还列举了大量相关科研方向和技术应用案例,涵盖智能优化算法、机器学习、路径规划、电力系统等多个领域,展示了该技术在科研仿真中的广泛应用前景。; 适合人群:具备一定自动控制理论基础和Matlab编程能力的研究生、科研人员及从事无人车控制、智能算法开发的工程技术人员。; 使用场景及目标:①应用于无人车在重复任务下的高精度路径跟踪控制;②为缺乏精确数学模型的非线性系统提供有效的控制策略设计思路;③作为科研复现算法验证的学习资源,推动数据驱动控制方法的研究应用。; 阅读建议:建议读者结合Matlab代码深入理解算法实现细节,重点关注神经网络ILC的结合机制,并尝试在不同仿真环境中进行参数调优性能对比,以掌握数据驱动控制的核心思想工程应用技巧。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值