魅力程序猿

  • 首页
  • Java
  • Android
  • APP
    • 扑克计分器
    • Video Wallpaper
  • 联系我
  • 关于我
  • 资助
道子
向阳而生
  1. 首页
  2. AI技术
  3. 正文

【Agent Harness】Gliding Horse 记忆系统深度剖析:像 CPU 一样思考的 AI 记忆架构

2026年6月25日 7点热度 0人点赞 0条评论

📰 来源: 博客园


摘要:本文深入剖析 Gliding Horse(流马)AI Agent 操作系统的四层记忆架构(L0-L3),借鉴 CPU 多级缓存与 MESI 一致性协议,实现近乎无限的“虚拟记忆”与极致的 Token 经济性。涵盖持久化存储、会话摘要链、多 Agent 共享黑板、投影引擎及 Hyperspace 向量引擎等核心组件,揭示其如何让 Agent 像操作系统管理内存一样管理记忆。

关键词:AI Agent;记忆系统;Gliding Horse;流马;多级缓存;MESI 协议;向量引擎;图数据库;Token 优化;语义搜索

在构建 AI Agent 操作系统的过程中,记忆管理是最核心的挑战之一。传统的 Agent 框架往往将对话历史简单堆砌在上下文窗口中,一旦超出 Token 限制就直接截断,导致关键信息丢失。而 Gliding Horse(流马)则借鉴了 CPU 多级缓存架构,设计了一套 L0-L3 四层记忆体系,并引入了 MESI 缓存一致性协议、意图驱动的预取引擎 以及 语义增强的淘汰策略,让 Agent 像操作系统管理内存一样管理自己的记忆。

本文将深入拆解这套记忆系统的架构设计、核心模块及运作机制,展示它如何为 AI Agent 提供近乎无限的“虚拟记忆”,同时将上下文 Token 消耗降至最低。

Gliding Horse 的记忆系统模仿了 CPU 的缓存层次:越靠近 LLM 的层级容量越小、速度越快,但保存的是高度压缩的摘要;越远离 LLM 的层级容量越大、速度越慢,但保存的是完整的原始数据。

每一层都有明确的职责边界:

  • L0:基于 sled 的持久化存储,保存所有原始数据,全量可靠。
  • L1:每个 Agent 会话内的高压缩摘要链,严格控制 Token 预算。
  • L2:多 Agent 共享的内存黑板,基于 Oxigraph 图数据库,提供实时协作与态势感知。
  • L3:按需从 L0/L2 提取子图并物化为视图,起到“图虚拟内存”的作用。
  • 此外,还有 一致性引擎 (MESI)、Hyperspace 向量引擎、预取引擎、记忆总线 和 调度器 等关键组件共同编织起整套记忆基础设施。

    二、L0 持久化存储:永不丢失的“磁盘”

    L0 是整个记忆体系的基石。它使用高性能嵌入式数据库 sled 作为存储后端,每个记忆条目都包含完整的 JSON-LD 内容以及丰富的元数据。

    pub struct L0Entry {
        pub iri: String,
        pub content: String,          // 完整 JSON-LD
        pub importance: f32,
        pub access_count: u32,
        pub tags: Vec<String>,
        pub mesi_state: MesiState,
        pub content_hash: String,
        pub named_graph: Option<String>,
        pub qdrant_point_id: Option<String>,
        pub jsonld_context: Option<String>,
        pub jsonld_types: Vec<String>,
    }
    
  • JSON-LD 节点存储:store_jsonld_node() 和 retrieve_jsonld_node() 提供了直接存取 JSON-LD 文档的能力,并自动合并具有相同 @id 的条目(标签取并集、重要性取平均、内容保留较长者)。
  • 多级索引:标签二级索引(tag:{tag})和命名图索引(graph:{name})让检索不再只是线性扫描,前缀范围扫描还能高效支持 IRI 前缀查询。
  • 与 Hyperspace 引擎联动:写入 L0 时可以同步将嵌入向量存入 Hyperspace 引擎,并在条目中记录向量索引信息,打通语义搜索通道。
  • L0 的定位是“永不丢失的全量记忆”,但并不会直接暴露给 LLM。上层通过 IRI 引用按需拉取细节,这正是 Token 控制的核心。

    三、L1 会话摘要链:像 CPU L1 缓存一样精简

    L1 直接服务于 LLM 的上下文窗口,是记忆系统中对 Token 最敏感的一层。它并不保存完整的对话内容,而是将每一轮 LLM 的 summary 输出串联成一条摘要链。

    pub struct L1Session {
        turns: Vec<L1Turn>,
        token_budget: usize,
    }
    
    pub struct L1Turn {
        pub role: String,
        pub summary: String,
        pub l0_archive_iri: Option<String>,  // 完整内容在 L0 的地址
        pub embedding: Option<Vec<f32>>,
        pub relevance_score: f32,           // 当前任务关联度
        pub is_supplement: bool,            // 是否为补充输入
    }
    

    当摘要链的 Token 总量超出预算时,L1 并非简单截断,而是执行一个两阶段淘汰策略:

  • 硬阈值淘汰:对 relevance_score 低于阈值(默认 0.3)且已超过安全窗口(默认 5 分钟)的条目直接移除,但补充输入(is_supplement=true)受到保护。
  • 评分淘汰:对剩余条目计算得分,综合语义相关度、最近访问时间和Token 成本三个因子,得分最低的条目被淘汰。具体公式为:
    score = β * semantic_relevance + (1-β) * (recency * w_r + token_cost * w_c)
    

    其中 semantic_relevance 是该条目与当前查询的向量余弦相似度,β 默认为 0.6。

  • score = β * semantic_relevance + (1-β) * (recency * w_r + token_cost * w_c)
    

    被淘汰的摘要并不会彻底消失,它的 l0_archive_iri 会被移至一个弱引用列表,Agent 随时可以通过此 IRI 从 L0 调取完整历史。这保证了即使上下文窗口被“清扫”,记忆本身依然是完整的。

    四、L2 共享黑板:多 Agent 协作的“工作内存”

    L2 是整个记忆系统中最高频的读写区域。它是一个基于 Oxigraph 图数据库 的内存黑板,所有 Agent 实例都可以通过 SPARQL 直接查询和更新。

  • 节点缓存与持久化双写:每个写入操作同时更新 DashMap 内存缓存和 Oxigraph 存储,兼顾速度与持久性。
  • 任务树 D

    🔗 原文链接: 点击阅读原文

  • 标签: AI 人工智能 技术博客
    最后更新:2026年6月25日

    daozi

    这个人很懒,什么都没留下

    点赞
    < 上一篇

    文章评论

    您需要 登录 之后才可以评论
    搜索
    联系方式

    QQ群:179730949
    QQ群:114559024
    欢迎您加入Android大家庭
    本人QQ:136049925

    赐我一丝安慰
    给我一点鼓励

    COPYRIGHT © 2023 魅力程序猿. ALL RIGHTS RESERVED.

    Theme Kratos Made By Seaton Jiang

    豫ICP备15000477号