news 2026/6/14 22:45:41

hello_agent第八章总结

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
hello_agent第八章总结

文章目录

  • 第八章 记忆与检索 知识树
    • 一、记忆系统(Memory System)
      • 核心工具:MemoryTool(hello_agents/tools/builtin/memory_tool.py)
        • 核心接口函数
        • 初始化逻辑
      • 核心协调器:MemoryManager(hello_agents/memory/manager.py)
        • 核心函数
        • 核心属性
      • 四大记忆类型(hello_agents/memory/types/)
        • 1. WorkingMemory(working.py)- 工作记忆
        • 2. EpisodicMemory(episodic.py)- 情景记忆
        • 3. SemanticMemory(semantic.py)- 语义记忆
        • 4. PerceptualMemory(perceptual.py)- 感知记忆
      • 存储层(hello_agents/memory/storage/)
        • 1. SQLiteDocumentStore(document_store.py)
        • 2. QdrantVectorStore(qdrant_store.py)
        • 3. Neo4jGraphStore(neo4j_store.py)
      • 嵌入服务层(hello_agents/memory/embedding.py)
    • 二、RAG系统(Retrieval-Augmented Generation)
      • 核心工具:RAGTool(hello_agents/tools/builtin/rag_tool.py)
        • 核心接口函数
        • 初始化逻辑
      • RAG管道(hello_agents/memory/rag/pipeline.py)
        • 核心流程函数
        • 核心属性
      • 文档处理层(hello_agents/memory/rag/document.py)
        • 核心函数
        • 实现方式
      • 高级检索策略(hello_agents/memory/rag/retrieval.py)
        • 1. 多查询扩展(MQE)
        • 2. 假设文档嵌入(HyDE)
        • 3. 扩展检索框架
      • 核心辅助函数

第八章 记忆与检索 知识树

一、记忆系统(Memory System)

核心工具:MemoryTool(hello_agents/tools/builtin/memory_tool.py)

核心接口函数
  • execute:统一入口,分发add/search/summary/stats/update/remove/forget/consolidate/clear_all操作
  • _add_memory:添加记忆,处理会话ID/多模态元数据/上下文补充,调用memory_manager.add_memory
  • _search_memory:搜索记忆,参数标准化,调用memory_manager.retrieve_memories,格式化结果
  • _forget:遗忘记忆,支持importance_based/time_based/capacity_based三种策略
  • _consolidate:整合记忆,短期记忆转长期记忆,按importance_threshold筛选
初始化逻辑
  • 接收user_id/memory_config/memory_types参数,初始化MemoryManager
  • 按需启用working/episodic/semantic/perceptual记忆类型

核心协调器:MemoryManager(hello_agents/memory/manager.py)

核心函数
  • __init__:初始化MemoryStore/MemoryRetriever,按需实例化各记忆类型
  • add_memory:分发记忆添加请求到对应记忆类型模块
  • retrieve_memories:分发记忆检索请求,聚合多类型结果
  • forget_memories:调用对应记忆类型的遗忘方法,统计遗忘数量
  • consolidate_memories:跨记忆类型迁移数据,按阈值筛选
核心属性
  • store:MemoryStore实例,统一存储入口
  • retriever:MemoryRetriever实例,统一检索入口
  • memory_types:字典,存储各启用的记忆类型实例

四大记忆类型(hello_agents/memory/types/)

1. WorkingMemory(working.py)- 工作记忆
  • 核心函数add(添加前过期清理/容量控制)、retrieve(TF-IDF+关键词混合检索)
  • 评分函数_calculate_keyword_score_calculate_time_decay,综合相似度+时间+重要性
  • 实现方式:纯内存存储,TTL自动清理,混合检索策略,容量有限(默认50条)
2. EpisodicMemory(episodic.py)- 情景记忆
  • 核心函数add(创建Episode对象,更新会话索引,持久化到SQLite+Qdrant)、retrieve(结构化过滤+语义向量检索)
  • 评分函数_calculate_episode_score(向量相似度×0.8+时间近因性×0.2)×重要性权重
  • 实现方式:SQLite+Qdrant混合存储,支持时间序列/会话级检索,结构化+向量混合检索
3. SemanticMemory(semantic.py)- 语义记忆
  • 核心函数add(生成嵌入,提取实体/关系,存储到Neo4j+Qdrant)、retrieve(向量+图+语义推理混合检索)
  • 融合函数_combine_and_rank_results(向量相似度×0.7+图相似度×0.3)×重要性权重
  • 实现方式:Neo4j+Qdrant混合架构,实体/关系提取构建知识图谱,多策略混合检索
4. PerceptualMemory(perceptual.py)- 感知记忆
  • 核心函数add(按模态编码,存储到对应Qdrant集合)、retrieve(同/跨模态向量检索)
  • 编码函数_encode_data(文本/图像/音频分别调用对应编码器)
  • 评分函数_calculate_recency_score(指数衰减模型),融合向量+时间+重要性
  • 实现方式:按模态分离的Qdrant向量存储,多模态编码器(CLIP/CLAP),支持跨模态检索

存储层(hello_agents/memory/storage/)

1. SQLiteDocumentStore(document_store.py)
  • 核心函数:saveloadquery,结构化数据持久化,支持复杂条件查询
2. QdrantVectorStore(qdrant_store.py)
  • 核心函数:add_vectorssearch_similar,高性能向量存储/检索,支持命名空间隔离
3. Neo4jGraphStore(neo4j_store.py)
  • 核心函数:_add_entity_to_graph_add_relation_to_graph,知识图谱构建/查询

嵌入服务层(hello_agents/memory/embedding.py)

  • 核心函数create_embedding_model_with_fallbackget_text_embedder
  • 实现方式:支持DashScopeEmbedding(云端)、LocalTransformerEmbedding(本地)、TFIDFEmbedding(兜底),统一嵌入接口

二、RAG系统(Retrieval-Augmented Generation)

核心工具:RAGTool(hello_agents/tools/builtin/rag_tool.py)

核心接口函数
  • execute:统一入口,分发add_text/add_document/search/ask/stats操作
  • _add_document:调用RAG管道,处理多格式文档,完成从转换到存储的全流程
  • _search:调用扩展检索框架,支持MQE/HyDE,返回相关知识片段
  • _ask:检索相关片段,构建上下文,调用LLM生成答案
初始化逻辑
  • 接收knowledge_base_path/collection_name/rag_namespace参数
  • 创建RAG管道,初始化LLM实例,按命名空间隔离知识库

RAG管道(hello_agents/memory/rag/pipeline.py)

核心流程函数
  • create_rag_pipeline:创建端到端RAG处理管道,整合文档处理/嵌入/存储/检索
  • index_document:调用文档处理→分块→向量化→存储全流程
  • search:调用扩展检索策略,返回Top-K相关片段
核心属性
  • processor:DocumentProcessor实例,文档处理入口
  • embedder:统一嵌入模型实例,复用记忆系统嵌入服务
  • vector_store:QdrantVectorStore实例,向量存储入口

文档处理层(hello_agents/memory/rag/document.py)

核心函数
  • _convert_to_markdown:统一转换多格式文档为Markdown,PDF增强处理,其他格式调用MarkItDown
  • _split_paragraphs_with_headings:基于Markdown标题层次的语义分割
  • _chunk_paragraphs:基于Token数量的智能分块,支持重叠策略
  • _approx_token_len:中英文混合Token估算,CJK字符按1Token计算
实现方式
  • 多格式统一转换为Markdown,结构化分块(标题层次+Token控制),重叠分块保证信息连续性

高级检索策略(hello_agents/memory/rag/retrieval.py)

1. 多查询扩展(MQE)
  • 核心函数:_prompt_mqe,调用LLM生成语义等价的多样化查询,提升召回率
2. 假设文档嵌入(HyDE)
  • 核心函数:_prompt_hyde,调用LLM生成假设性答案文档,桥接查询与文档语义鸿沟
3. 扩展检索框架
  • 核心函数:search_vectors_expanded,实现「扩展-检索-合并」三步流程
    • 扩展:生成MQE查询+HyDE假设文档
    • 检索:并行执行所有扩展查询的向量检索
    • 合并:去重+分数排序,返回Top-K结果
  • 可配置参数:enable_mqeenable_hydecandidate_pool_multiplier

核心辅助函数

  • embed_query:统一查询向量化接口,复用记忆系统嵌入模型
  • _preprocess_markdown_for_embedding:Markdown文本预处理,提升嵌入质量
  • _create_default_vector_store:快速创建Qdrant向量存储实例,简化初始化
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/12 5:47:01

用户行为热点:登录峰值测试与优化

‌用户行为热点与登录峰值挑战在数字化时代,用户行为热点如促销活动、节假日或突发事件常引发登录峰值——即系统在短时间内承受高并发用户登录请求。对软件测试从业者而言,这不仅关乎系统稳定性,还直接影响用户体验和业务连续性。据统计&…

作者头像 李华
网站建设 2026/6/12 22:32:33

GNSS与单北斗变形监测技术的应用现状分析与未来发展方向

本文旨在分析GNSS变形监测一体机与单北斗变形监测系统的当前应用现状及未来的发展趋势。从技术特点到市场需求,单北斗变形监测已在基础设施管理中扮演重要角色。重点探讨了单北斗的原理,包括它在桥梁、大坝和地质灾害监测中的应用,及其提供的…

作者头像 李华
网站建设 2026/6/12 11:10:21

【swiftUI】实现智能可收缩日历(单行/全月切换)

一、 核心特性 智能显示模式:收起状态--仅显示当前日期所在的整周(7天);展开状态--显示完整月份的日历网格;平滑的动画过渡效果 数据一致性:始终显示当前月份的数据;收起时自动定位到当前周&am…

作者头像 李华
网站建设 2026/5/29 7:44:56

MemOS开源框架实战:构建基于Graph的记忆图谱,让AI具备长期记忆能力

MemOS是一款基于Graph的记忆开源项目,通过TreeTextMemory实现结构化记忆存储与关联。本文详细介绍了如何在LangChain1.x框架中集成MemOS的记忆图谱能力,包括构建带记忆的ChatBot、体验记忆的自动重组功能,以及通过Middleware机制实现无侵入式…

作者头像 李华
网站建设 2026/6/5 5:42:52

windows QT项目

一、1、2、在纯linux环境下用QTCreator这个IDE去编项目;但是如果在windows上编写qt项目,VS这个IDE还是比QTCreator要强大很多,而且VS编写的QT项目,仍然可以移植到Linux等平台上,不影响跨平台特性!&#xff…

作者头像 李华
网站建设 2026/6/10 17:00:17

‌新闻事件分析:社交媒体数据验证测试案例

为什么社交媒体数据正在重塑测试边界‌在2026年,软件测试的战场已不再局限于API响应码、数据库事务一致性或UI布局像素偏差。‌社交媒体数据‌,作为全球最庞大、最动态、最不可控的非结构化输入源,正成为系统鲁棒性验证的“终极压力测试场”。…

作者头像 李华