LlamaIndex中记忆Memory技术详解

上下文工程:构建AI的实时信息导航系统 上下文工程是一种面向AI系统落地的工程方法论,核心在于为大语言模型在每个决策节点动态供给最相关、最及时、最结构化的信息片段。它超越传统提示工程的文本修饰局限,直面上下文窗口有限、信息成本高昂、噪声干扰严重等物理约束,通过RAG、Agent与Memory三者的深度协同,实现从静态知识检索到动态信息策展的范式升级。其技术价值体现在显著提升响应准确率、降低幻觉风险、支撑复杂业务推理,并已在电商客服、法律合同分析、跨部门智能审批等强上下文依赖场景中验证实效。本文聚焦真实项目中的缺口识别、工具链选型与参数调优,揭示如 阅读详情

记忆Memory是Agent的核心组件。它可以存储和检索历史信息。在 LlamaIndex 中,通常可以使用现有的 BaseMemory 类或创建自定义类来自定义内存。

可调用 memory.put() 来存储信息,并调用 memory.get() 来检索信息。

记忆Memory分为短期记忆和长期记忆,详情如下:

一、短期记忆

默认情况下,Memory 类将存储符合令牌限制的最后 X 条消息。您可以通过将 token_limit 和 chat_history_token_ratio 参数传递给 Memory 类来自定义此属性。

1、token_limit

token_limit (默认值:30000):要存储的短期和长期令牌的最大数量。

作用:确保整个 memory 存储的 token 数不会超过此限制,避免上下文过长导致性能下降或模型无法处理。

2、chat_history_token_ratio

chat_history_token_ratio (默认值: 0.7):短期聊天记录中的令牌与总令牌限制的比率。如果聊天记录超过此比率,则最早的消息将被刷新到长期记忆中(如果启用了长期记忆)。

计算:short_term_limit = token_limit * chat_history_token_ratio。

例如,token_limit=50 且 ratio=0.7 时,短期最多存储 35 个 token,其余用于长期记忆。

作用:控制短期(最近对话)的 token 分配。当短期占比超过设定值后,旧消息会被移出短期并移入长期 memory。

3、token_flush_size

token_flush_size (默认值:3000):当短期消息超过 short_term_limit(= token_limit * ratio) 后,每次从短期 memory 中“刷新”移入长期 memory 的 token 数。

作用:以固定批量迁移旧消息,避免单条消息过大或迁移不规则。若未启用长期 memory,刷新消息会被归档并从短期移除。

示例代码

memory = Memory.from_defaults(
session_id="my_session",
token_limit=40000,
chat_history_token_ratio=0.7,
token_flush_size=3000
)

代码分析

  • 对话过程中:

    新消息加到短期记忆队列(FIFO),计算当前短期 token 数。

    若超过 token_limit * ratio(如 28000 token),触发 flush。

  • 触发 flush 时:

    将最旧的消息(共约 token_flush_size)迁移到长期 memory。

    长期 memory 处理后,短期释放相同 token 空间。

  • Memory.get():

    拉取短期 + 长期内容,合并为最终 context,但整体不超过 token_limit。

    长期 memory 不同模块(如 FactExtraction、Vector 等)将被按优先级管理、必要时 truncate。

参数总结

参数含义作用
token_limitMemory 总 token 上限限制短期 + 长期记忆容量
chat_history_token_ratio短期记忆 token 相对于总限额的比例控制短期 vs 长期 token 分配
token_flush_size每次迁移到长期 memory 的 token 数批量清理短期,迁移旧消息

二、长期记忆

1、定义

在 LlamaIndex 的 Memory 系统里,短期记忆存储最近的对话内容(基于 chat_history_token_ratio 和 token_limit),长期记忆则是将刷新的旧消息存入结构化记忆模块,长期保留有用信息。

长期记忆由多个 Memory Block 组成,每块负责不同类型的信息处理。当检索记忆时,短期和长期记忆会合并在一起。

目前,有三个预定义的内存块:

StaticMemoryBlock、FactExtractionMemoryBlock和VectorMemoryBlock。

2、三种 Memory Block 类型

StaticMemoryBlock

存储静态不变的信息,比如用户基础简介、系统设定等。这些信息始终保留,优先级最高(priority=0) 。

FactExtractionMemoryBlock

使用 LLM 自动从刷新的对话中提取关键事实(如“用户 29 岁”、“用户喜欢猫”),并以结构化列表保存,最多可保存 max_facts 条信息,超过上限会被自动压缩 。

VectorMemoryBlock

将刷新的消息批次存储到向量数据库(如 Qdrant/Chroma),后续可基于嵌入检索与当前对话相关的历史信息,提供上下文连续性。

3、长期记忆的工作机制

  • 当短期记忆的 token 数超出阈值(token_limit × chat_history_token_ratio),会触发自动 flush,将最旧约 token_flush_size tokens 的消息推送到所有 Memory Block 中处理。
  • Memory Blocks 根据各自逻辑(提取事实、存储向量、静态写入)处理这些消息。
  • 调用 memory.get() 时,系统将短期消息与各 Block 中的长期记忆结合,并按 Block 的 priority 顺序,如果整体超过 token limit,再进行 truncate。
  • 自动触发flush,会自动向FactExtractionMemoryBlock和VectorMemoryBlock里推送数据,我们不需要关注内部细节。
  • StaticMemoryBlock需要手动设置数据,不会自动flush数据。
  • 长期记忆在Memory中不是必填项,三这个block也可以根据需要设置或不设置。
  1. 为什么用长期记忆?
  • 多轮对话持久化:保留用户信息和上下文,让机器人“不忘之前说的”。
  • 结构化信息呈现:FactBlock 可输出清晰可用的事实,便于推理调用。
  • 高效召回历史内容:VectorBlock 支持语义级检索,而非纯线性扫描。
  • 适用于客服机器人、个性化对话、或多轮复杂推理场景。

5、示例代码

from llama_index.core.memory import (
StaticMemoryBlock,
FactExtractionMemoryBlock,
VectorMemoryBlock,
)
from llama_index.llms.openai import OpenAI
from llama_index.embeddings.openai import OpenAIEmbedding
from llama_index.vector_stores.chroma import ChromaVectorStore
import chromadb
llm = OpenAI(model="gpt-4.1-mini")
embed_model = OpenAIEmbedding(model="text-embedding-3-small")
client = chromadb.EphemeralClient()
vector_store = ChromaVectorStore(
chroma_collection=client.get_or_create_collection("test_collection")
)
from llama_index.core.memory import (
StaticMemoryBlock,
FactExtractionMemoryBlock,
VectorMemoryBlock,
)
blocks = [
StaticMemoryBlock(
name="core_info",
static_content="My name is Logan, and I live in Saskatoon. I work at LlamaIndex.",
priority=0,
),
FactExtractionMemoryBlock(
name="extracted_info",
llm=llm,
max_facts=50,
priority=1,
),
VectorMemoryBlock(
name="vector_memory",
# required: pass in a vector store like qdrant, chroma, weaviate, milvus, etc.
vector_store=vector_store,
priority=2,
embed_model=embed_model,
# The top-k message batches to retrieve
# similarity_top_k=2,
# optional: How many previous messages to include in the retrieval query
# retrieval_context_window=5
# optional: pass optional node-postprocessors for things like similarity threshold, etc.
# node_postprocessors=[...],
),
]
async def main():
memory = Memory.from_defaults(
session_id="my_session",
token_limit=500,
memory_blocks=blocks,
insert_method=InsertMethod.SYSTEM,
)
await memory.aput_messages([ChatMessage(role="system", content="你是一位技术专家")])
# Simulate a long conversation
for i in range(100):
await memory.aput_messages(
[
ChatMessage(role="user", content="Hello, world!"),
ChatMessage(role="assistant", content="Hello, world to you too!"),
ChatMessage(role="user", content="What is the capital of France?"),
ChatMessage(role="assistant", content="The capital of France is the Paris. It is known for its art, fashion, and culture."),
]
)
current_chat_history = await memory.aget()
for msg in current_chat_history:
print(msg)
print(f"memory.aget().len={len(current_chat_history)}")
print("="*40)
all_messages = await memory.aget_all()
print(f"memory.aget_all().len={len(all_messages)}")
if __name__ == "__main__":
asyncio.run(main())

6、如何确保短期记忆不丢失?

默认情况下,Memory 类使用内存中的 SQLite 数据库。您可以通过更改数据库 URI 来插入任何远程数据库。还可以自定义表名,也可以选择直接传入异步引擎。这对于管理连接池非常有用。下面的代码,实现将使用pgsql作为内存,这样短期记忆不会丢失了。

from llama_index.core.memory import Memory
memory = Memory.from_defaults(
session_id="my_session",
token_limit=40000,
async_database_uri="postgresql+asyncpg://postgres:mark90@localhost:5432/postgres",
# Optional: specify a table name
# table_name="memory_table",
# Optional: pass in an async engine directly
# this is useful for managing your own connection pool
# async_engine=engine,
)

相关网址

1、memory介绍

https://docs.llamaindex.ai/en/stable/module_guides/deploying/agents/memory/#memory

2、memory使用的示例

https://docs.llamaindex.ai/en/stable/examples/memory/custom_multi_turn_memory/

https://docs.llamaindex.ai/en/stable/examples/memory/memory/

想入门 AI 大模型却找不到清晰方向?备考大厂 AI 岗还在四处搜集零散资料?别再浪费时间啦!2025 年 AI 大模型全套学习资料已整理完毕,从学习路线到面试真题,从工具教程到行业报告,一站式覆盖你的所有需求,现在全部免费分享!

👇👇扫码免费领取全部内容👇👇

​

一、学习必备:100+本大模型电子书+26 份行业报告 + 600+ 套技术PPT,帮你看透 AI 趋势

想了解大模型的行业动态、商业落地案例?大模型电子书?这份资料帮你站在 “行业高度” 学 AI:

1. 100+本大模型方向电子书

在这里插入图片描述

2. 26 份行业研究报告:覆盖多领域实践与趋势

报告包含阿里、DeepSeek 等权威机构发布的核心内容,涵盖:

  • 职业趋势:《AI + 职业趋势报告》《中国 AI 人才粮仓模型解析》;
  • 商业落地:《生成式 AI 商业落地白皮书》《AI Agent 应用落地技术白皮书》;
  • 领域细分:《AGI 在金融领域的应用报告》《AI GC 实践案例集》;
  • 行业监测:《2024 年中国大模型季度监测报告》《2025 年中国技术市场发展趋势》。

3. 600+套技术大会 PPT:听行业大咖讲实战

PPT 整理自 2024-2025 年热门技术大会,包含百度、腾讯、字节等企业的一线实践:

在这里插入图片描述

  • 安全方向:《端侧大模型的安全建设》《大模型驱动安全升级(腾讯代码安全实践)》;
  • 产品与创新:《大模型产品如何创新与创收》《AI 时代的新范式:构建 AI 产品》;
  • 多模态与 Agent:《Step-Video 开源模型(视频生成进展)》《Agentic RAG 的现在与未来》;
  • 工程落地:《从原型到生产:AgentOps 加速字节 AI 应用落地》《智能代码助手 CodeFuse 的架构设计》。

二、求职必看:大厂 AI 岗面试 “弹药库”,300 + 真题 + 107 道面经直接抱走

想冲字节、腾讯、阿里、蔚来等大厂 AI 岗?这份面试资料帮你提前 “押题”,拒绝临场慌!

1. 107 道大厂面经:覆盖 Prompt、RAG、大模型应用工程师等热门岗位

面经整理自 2021-2025 年真实面试场景,包含 TPlink、字节、腾讯、蔚来、虾皮、中兴、科大讯飞、京东等企业的高频考题,每道题都附带思路解析:

2. 102 道 AI 大模型真题:直击大模型核心考点

针对大模型专属考题,从概念到实践全面覆盖,帮你理清底层逻辑:

3. 97 道 LLMs 真题:聚焦大型语言模型高频问题

专门拆解 LLMs 的核心痛点与解决方案,比如让很多人头疼的 “复读机问题”:


三、路线必明: AI 大模型学习路线图,1 张图理清核心内容

刚接触 AI 大模型,不知道该从哪学起?这份「AI大模型 学习路线图」直接帮你划重点,不用再盲目摸索!

在这里插入图片描述

路线图涵盖 5 大核心板块,从基础到进阶层层递进:一步步带你从入门到进阶,从理论到实战。

img

L1阶段:启航篇丨极速破界AI新时代

L1阶段:了解大模型的基础知识,以及大模型在各个行业的应用和分析,学习理解大模型的核心原理、关键技术以及大模型应用场景。

img

L2阶段:攻坚篇丨RAG开发实战工坊

L2阶段:AI大模型RAG应用开发工程,主要学习RAG检索增强生成:包括Naive RAG、Advanced-RAG以及RAG性能评估,还有GraphRAG在内的多个RAG热门项目的分析。

img

L3阶段:跃迁篇丨Agent智能体架构设计

L3阶段:大模型Agent应用架构进阶实现,主要学习LangChain、 LIamaIndex框架,也会学习到AutoGPT、 MetaGPT等多Agent系统,打造Agent智能体。

img

L4阶段:精进篇丨模型微调与私有化部署

L4阶段:大模型的微调和私有化部署,更加深入的探讨Transformer架构,学习大模型的微调技术,利用DeepSpeed、Lamam Factory等工具快速进行模型微调,并通过Ollama、vLLM等推理部署框架,实现模型的快速部署。

img

L5阶段:专题集丨特训篇 【录播课】

img
四、资料领取:全套内容免费抱走,学 AI 不用再找第二份

不管你是 0 基础想入门 AI 大模型,还是有基础想冲刺大厂、了解行业趋势,这份资料都能满足你!
现在只需按照提示操作,就能免费领取:

👇👇扫码免费领取全部内容👇👇

​

2025 年想抓住 AI 大模型的风口?别犹豫,这份免费资料就是你的 “起跑线”!

企业级Agentic AI落地实战:从概念到架构的完整指南 最近和不少企业技术负责人交流,发现一个高频话题:大家都在讨论“Agentic AI”,但具体落地时,很多人又感到迷茫。企业投入资源搞Agent,到底是在做什么?是跟风炒作,还是真的能带来业务价值?本文将从一个技术实践者的角度,为你完整拆解企业级Agentic AI的落地全景,从核心概念、技术栈选型、实战架构到避坑指南,提供一份可操作的路线图。 1. 什么是Agentic AI?从概念到价值澄清 在深入技术细节之前,我们必须先统一认知: Agentic AI(智能体AI)到底是什么? 简单来说,它不再是传统意 阅读详情

相关推荐

Hermes Agent深度解析:面向工程落地的AI系统认知框架

Agent不是LLM调用封装,而是具备可验证性、可追溯性与可调试性的AI系统范式。其核心在于结构化记忆管理、显式执行溯源与策略前置控制,区别于LangChain等框架的黑盒式流程编排。Hermes通过三层内存架构(状态缓存+溯源图谱+时间切片)、Gateway神经中枢与Memory认知配额机制,将AI行为锚定在真实数据源与业务约束之上。适用于金融风控、电商客服、医疗合规等强确定性要求场景,为构建生产级AI系统提供工程化基础设施支撑。

weixin_29988907的博客 285

LlamaIndex的Memory使用说明

LlamaIndex的Memory系统采用短期和长期记忆机制优化对话管理。短期记忆通过token_limit(默认3万)和chat_history_token_ratio(默认0.7)控制最近对话的存储量,超过阈值时按token_flush_size批量迁移旧消息。长期记忆由多个MemoryBlock组成:StaticMemoryBlock存储静态信息,FactExtractionMemoryBlock提取结构化事实,VectorMemoryBlock实现语义检索。

沐雪架构师 1286

Llamaindex中的聊天记录存储和记忆memory使用教程

聊天存储可以通过键(如用户ID或其他唯一标识字符串)来组织一系列的聊天消息,并处理删除、插入和获取等操作。

洛阳泰山的博客 2309

利用LlamaIndex和DocArray InMemory Vector Store进行向量存储与查询

在现代人工智能应用中,高效的向量存储和查询是一项关键技术。本文将介绍如何使用LlamaIndex和DocArray InMemory Vector Store来实现这一功能。我们将涵盖初始化和索引的创建,以及如何进行带有过滤条件的查询。

ppoojjj的博客 511

Llamaindex中的聊天记忆memory持久化到数据库中

之前写了一篇文章《Llamaindex中的聊天记录存储和记忆memory使用教程》 ,文章讲解了如何使用的记忆组件,本次是对上一篇文章进阶教程,本篇文章使用和结合使用,开发一个网页拥有用户聊天记忆的功能,并可以将用户的聊天记忆持久化到数据库中。LlamaIndex官方地址 https://docs.llamaindex.ai/en/stable/ 进入 文件夹下,执行命令创建python 虚拟环境空间(需要提前安装好。 需要。,具体操作,由于文章长度问题就不在叙述,自行百度),命令如下: 这一步是避免

洛阳泰山的博客 2679

从FinFET到GAA:手把手解读2nm芯片制造的关键技术(含BSPDN避坑指南)

本文深入解读了2nm芯片制造从FinFET向全环绕栅极(GAA)晶体管架构演进的核心技术,并重点剖析了背面供电网络(BSPDN)的三种实现路径及其工程挑战。文章旨在帮助工程师理解技术变革的内在逻辑,并为应对2nm节点设计中的关键问题提供实用指南。

weixin_29294975的博客 296

LlamaIndex 组件 - Storing

一、储存概览 1、概念 2、使用模式 3、模块 二、Vector Stores 1、简单向量存储 2、矢量存储选项和功能支持 3、Example Notebooks 三、文件存储 1、简单文档存储 2、MongoDB 文档存储 3、Redis 文档存储 4、Firestore 文档存储 四、索引存储 1、简单索引存储 2、MongoDB 索引存储 3、Redis索引存储 五、Chat Stores 1、简单聊天商店 2、Redis聊天商店 六、键值存储 七、保存和加载数据 1、持久化数据 2、加载数据中 3

AI工程化、开源分享、文档翻译、代码笔记 1895

用STM32F103C8T6和TB6612驱动模块,从零搭建一辆能避障循迹的智能小车(附完整代码)

本文详细介绍了如何使用STM32F103C8T6和TB6612驱动模块从零搭建一辆能避障循迹的智能小车。内容涵盖硬件选型、电路设计、底层驱动配置以及智能行为算法实现,并附有完整代码示例,帮助开发者快速掌握嵌入式开发的核心技术。

weixin_42641741的博客 447

告别AI的“金鱼记忆”:2026年最前沿的9大AI记忆系统解决方案,让你的AI真正“成长”!

AI记忆系统:突破"金鱼记忆"的技术革命 当前AI产品的致命缺陷在于缺乏长期记忆能力,每次对话都从零开始。本文剖析了AI Agent记忆系统的核心挑战与前沿解决方案: 记忆本质:区分短期上下文窗口与长期记忆系统,后者需要结构化存储和跨会话复利学习能力 双层架构: 个性化记忆(用户偏好) 机构知识记忆(业务流程经验) 四大核心: 结构化信息提取 多模态存储(向量/图谱/时间索引) 混合检索策略 跨记忆推理 2026十大框架: Mem0(生态最广) Hindsight(检索最强) Letta

2401_85375151的博客 1099

Win11上从零跑通Carla自动驾驶仿真:保姆级环境配置与避坑指南(Python 3.7+)

本文详细介绍了在Win11系统上从零配置Carla自动驾驶仿真环境的完整流程,包括Python 3.7+环境搭建、依赖安装、常见问题排查及性能优化技巧。通过保姆级教程帮助开发者快速避坑,实现稳定的自动驾驶仿真测试环境部署。

weixin_33488239的博客 421

ACM算法模板 · 一些常用的算法模板-模板合集(打比赛专用)

萌新常用的都在这了,本萌新的模板集。

张天枭の博客 5万+

Agent Memory:从上下文管理到持续学习的完整闭环

很多 Agent Demo 在第一轮对话里表现很好,到了第二天却像换了一个人:用户偏好没了,项目约定没了,上次失败的路径又被重新走一遍。

m0_59164520的博客 264

华为HCIE之TS部分整理

TroubleShooting 整体拓扑 1. MSTP 题目需求:site1 中,CLIENT1 属于 VLAN12,CLIENT3 属于 VLAN34;MSTP 中的 VLAN12 属于 instance1,vlan34 属于 instance2;两个 instance 的主备根桥分别在 SW1 和 SW2 上,并且要求 CLIENT1访问 R1 时经过的路径是 SW3-SW1-R1;同时要求 CLIENT3 访问 R1 时经过的路径是SW3-SW2-R1; 排错思路: ①查看SW3 SW1 SW

ledrsnet的博客 5759

DeepTutor 部署到实战:10 分钟跑通你的 AI 学习助手(知识库·记忆·互动书完整教程)

把 DeepTutor 部署起来不难,难的是部署完不知道往哪走。它是一个智能体原生的学习工作区——能挂知识库做检索、维护三层可审计的记忆,还能把笔记编译成带测验的互动教材。我把从安装到这几项核心功能的完整链路亲手跑了一遍,这篇按"能直接照做"的顺序讲,不绕弯。 ## 最短路径:装完到打开主界面 先确认两个运行时在不在。缺哪个补哪个: ```bash python --version node

gitblog_00842的博客 242

MIC:最大信息系数

目录 1. 概念 1.1 MIC 1.2 互信息 2.MIC的优点 3. 算法原理 3.1 MIC公式原理 3.2MIC计算步骤 (1)计算最大互信息值 (2)对最大的互信息值进行归一化 (3)选择不同尺度下互信息的最大值作为MIC值 4. 代码实现 6. 其他方法 1. 概念 1.1 MIC MIC,即(Maximal Information...

满腹的小不甘 5万+

BMS控制板硬件设计核心要点与工程避坑指南

电池管理系统(BMS)硬件设计是保障锂电安全与寿命的关键环节,其本质是模拟前端精度、数字控制可靠性、电源完整性及电磁兼容性四大要素的系统协同。理解AFE芯片(如BQ76920)的物理层约束、MCU与专用监控IC的异构分工逻辑,是构建高鲁棒BMS的基础;而晶振布局、I²C总线匹配、MOSFET体二极管方向、开尔文采样等细节,直接决定量产良率与EMC合规性。在电动工具、储能系统、两轮电动车等中低功耗BMS应用中,成本敏感型方案常采用STM32F0+AFE架构,此时电源滤波电容选型、复位电路ESR控制、TVS/齐

weixin_30591519的博客 262

DeepTutor 本地部署教程:5 分钟装好一个记得你学习进度的 AI 学习助手

> 我问:"我上次学到哪了?" > 它答:"你停在第 3 章的注意力机制,上次圈了两个没看懂的细节,要接着讲吗?" 就这么一句,普通聊天机器人做不到——它记不住你上次停在哪。DeepTutor 是一个基于 Agent 架构的开源学习平台,**它把"记得住你的学习进度、调得动你自己的资料库"做成了默认能力,而不是一次性问答**。下面这套教程帮你在自己电脑上把它跑起来,并真正用起来。 [![Dee

gitblog_01429的博客 417

【模型之美】3、文本聚类与智能摘要,让AI帮你做个总结

在信息过载时代,文本聚类与摘要技术成为关键工具。本文提出了一种结合OpenAI Embedding与传统机器学习的方法,实现从文本预处理到智能分析的完整流程。技术方案分为三阶段:1)通过Embedding将文本转化为语义向量;2)采用K-Means等算法进行无监督聚类;3)利用大模型生成可解释的标签和摘要。实验证明,该方法能有效提升信息处理效率,如在新闻聚合系统中自动分类10,000篇文章,准确率较传统方法提高15%。方案包含实用代码示例,涵盖文本清洗、向量化、聚类优化等关键技术细节,可应用于对话记忆、舆情

2025博客之星Top81。专注AI工程化与架构实战。从分布式思维到模型部署,用工程化视角为你厘清AI落地的真实路径。 1443

AI Agent落地秘籍:从Copilot到实战,产品经理必看!

2026年AI竞争将转向Agent(智能体)的实际应用能力。本文为AI产品经理提供从Demo到业务落地的实战指南,强调需明确区分Copilot(辅助工具)与Agent(自主智能体)的定位,建议聚焦"高频、重复、规则明确"的业务卡点。详细拆解6步落地流程:场景选择、流程拆解、技术选型、架构设计、提示词工程和部署监控,并给出成本失控、数据滞后等常见问题的解决方案。指出未来趋势是多Agent协作,呼吁产品经理立足现有业务痛点快速实践,抓住AI黄金十年的发展机遇。

m0_63171455的博客 418

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

【Basic】【memory1】LlamaIndex记忆系统分析

本示例全面介绍了LlamaIndex中的Memory类,展示了如何配置和使用短期和长期记忆系统。通过分层记忆架构,AI应用能够同时保持对近期对话的敏感性和对长期信息的记忆能力。

rengang66的博客 981

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

LlamaIndex智能体Agents开发-记忆管理

在智能体(Agent)的设计中,记忆(Memory) 是不可或缺的组成部分。没有记忆的智能体,就像一条只能看眼前一步的鱼:它能游动,却无法真正理解自己所处的环境,也无法在长时间的交互中保持一致性。

Y525698136的博客 864

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

LlamaIndex 记忆模块基础用法与核心架构

LlamaIndex 记忆模块默认使用tiktoken进行令牌计数,如需自定义计数逻辑可通过参数实现:python运行# 自定义令牌计数函数(示例:简单按空格分割)return len(text.split()) # 简化的令牌计数方式,实际应使用更精确的算法# 创建 Memory 时传入自定义令牌函数适配非 OpenAI 模型的令牌规则实现特定格式文本的优化计数集成第三方令牌统计工具。

佑瞻的博客 1195

LlamaIndex 记忆模块高级定制与工作流集成

通过继承可实现完全定制化的记忆逻辑,以下是一个统计关键词提及次数的示例:python"""统计特定关键词在对话中被提及的次数""""""处理新存入的消息,更新关键词计数""""""获取关键词提及统计结果"""return f"关键词 '{self.keyword}' 共被提及 {self.mention_count} 次""""自定义截断逻辑(此处不执行实际截断)"""return content # 示例中保留完整统计,实际可按需求截断。

佑瞻的博客 1112

LlamaIndex SimpleComposableMemory 详解:主次记忆源组合与检索注入机制

`SimpleComposableMemory` 是 LlamaIndex Core 在 `llama_index.core.memory.simple_composable_memory` 模块中提供的一种**组合式记忆(composable memory)**实现:它把多个记忆源组合在一起,指定其中一个为主记忆源、其余为次记忆源,并在读取历史时只把次记忆源中检索到的相关对话注入系统提示或首条用

gitblog_00226的博客 410

AI Agent 入门指南(四):Memory 记忆机制综述

AI Agent记忆机制综述:从认知科学到工程实现 AI Agent的记忆系统是其实现持续学习和个性化交互的核心。文章从认知科学视角将记忆分为三类:短期记忆(对话上下文)、长期记忆(包括情景记忆、语义记忆和程序记忆),并映射到技术实现(如向量数据库、知识图谱)。2026年主流方案包括纯上下文扩展、向量检索、混合知识图谱等,需权衡成本、精度与更新频率。推荐组合方案如短期记忆缓冲区+自动分层长期记忆(Mem0/LangMem),适用于客服、企业知识等场景。设计需解决多用户隔离、遗忘机制等关键问题。后续将对比Me

m0_57545130的博客 1330
上一篇: 详解:RAGFlow知识库管理和嵌入网站的方法全攻略
下一篇: 为什么大模型应用开发,几乎都绕不开 LangChain
AI_小站
博客等级 码龄3年 6255粉丝 1154原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值