跳转至

Memory Service - 记忆编排服务

Memory Service 是 SAGE Middleware 的编排服务,协调 KV、VDB 和 Graph 等基础服务,为应用提供智能的记忆存储、检索和管理能力。

服务依赖关系

flowchart LR
  MS[Memory Service]
  KV[KV Service]
  VDB[VDB Service]
  Graph[Graph Service]

  MS --> KV
  MS --> VDB
  MS --> Graph

数据流程

sequenceDiagram
  participant U as 用户/调用方
  participant MS as Memory Service
  participant KV as KV Service
  participant VDB as VDB Service
  participant G as Graph Service

  U->>MS: store_memory(content, vector, session_id, ...)
  MS->>KV: put(metadata)
  MS->>VDB: add(vector, id, metadata)
  MS->>G: add_node/edge(session关系)
  MS-->>U: memory_id

  U->>MS: retrieve/search(query or vector, filters)
  MS->>VDB: 向量搜索
  MS->>KV: 批量获取元数据
  MS->>G: 可选关系扩展
  MS-->>U: 合并/排序后的结果

在 Function 中调用(与仓库接口一致)

from sage.core.api.function.base_function import BaseFunction

class ConversationMemory(BaseFunction):
    def execute(self, data):
        session_id = data["session_id"]
        content = data["content"]
        vector = data["vector"]

        # 存储记忆(同步)
        memory_id = self.call_service["memory_service"].store_memory(
            content=content,
            vector=vector,
            session_id=session_id,
            memory_type="conversation",
            metadata={"source": "user_input"}
        )

        # 检索相关记忆(同步)
        related = self.call_service["memory_service"].retrieve_memories(
            query_vector=vector,
            session_id=session_id,
            top_k=5
        )
        return {"memory_id": memory_id, "related": related}

备注: - 以上调用方式基于 BaseFunction 的 call_service 语法糖,符合当前仓库实现。 - 如果需要异步:使用 self.call_service_async["memory_service"].method(...).result()