agentic_huge_data_base / wiki
页面 Mem0 · 9.3 Voice 与 Multimodal·DeepWiki 中文全文译文

9.3 · Voice 与 Multimodal(Voice and Multimodal)

长期记忆与上下文管理 · 本章是 Mem0 DeepWiki 中文译文的独立章节页,保留原始链接、源码锚点、模块标签和章节层级。

项目Mem0 章节9.3 状态全文译文 模块检索、召回与索引、记忆与上下文、模型调用与提供方适配、文档对象与元数据
源码线索
  • docs/cookbooks/companions/travel-assistant.mdx
  • docs/cookbooks/integrations/aws-bedrock.mdx
  • docs/integrations/agentops.mdx
  • docs/integrations/agno.mdx
  • docs/integrations/autogen.mdx
  • docs/integrations/aws-bedrock.mdx
  • docs/integrations/elevenlabs.mdx
  • docs/integrations/google-ai-adk.mdx
  • docs/integrations/keywords.mdx
  • docs/integrations/langchain.mdx
模块标签
  • 检索、召回与索引
  • 记忆与上下文
  • 模型调用与提供方适配
  • 文档对象与元数据
  • 智能体运行时

中文译文

Voice 与 Multimodal(中文译文)

原始 DeepWiki 页面:https://deepwiki.com/mem0ai/mem0/9.3-voice-and-multimodal
翻译时间:2026-05-27T08:45:04.363Z
翻译模型:deepseek-chat
原文字符数:10177
项目:Mem0 (mem0)

---

语音与多模态

相关源文件

以下文件被用作生成此 Wiki 页面的上下文:

  • docs/cookbooks/companions/travel-assistant.mdx
  • docs/cookbooks/integrations/aws-bedrock.mdx
  • docs/integrations/agentops.mdx
  • docs/integrations/agno.mdx
  • docs/integrations/autogen.mdx
  • docs/integrations/aws-bedrock.mdx
  • docs/integrations/elevenlabs.mdx
  • docs/integrations/google-ai-adk.mdx
  • docs/integrations/keywords.mdx
  • docs/integrations/langchain.mdx
  • docs/integrations/langgraph.mdx
  • docs/integrations/livekit.mdx
  • docs/integrations/llama-index.mdx
  • docs/integrations/openai-agents-sdk.mdx
  • docs/integrations/pipecat.mdx
  • docs/open-source/features/custom-instructions.mdx
  • docs/open-source/features/metadata-filtering.mdx
  • docs/open-source/features/reranker-search.mdx
  • docs/open-source/node-quickstart.mdx

本文档记录了 Mem0 对语音代理集成和多模态记忆能力的支持。内容涵盖如何将 Mem0 与 LiveKit 和 PipeCat 等实时语音平台集成,以及如何存储和检索包含文本与图像的多模态记忆。

---

多模态记忆支持

Mem0 支持在记忆中存储多模态内容,允许你保存和检索包含文本和图像的对话。这对于处理视觉信息与自然语言相结合的 AI 应用尤为有用。

多模态消息格式

消息可以包含纯文本或结构化的多模态内容。与 Agno 等框架的集成使代理能够处理和存储这些丰富的交互。

标题:多模态实体关系

classDiagram
    class Messages {
        +string role
        +string|MultiModalMessages content
    }

    class MultiModalMessages {
        +string type
        +ImageUrl image_url
    }

    class ImageUrl {
        +string url
    }

    Messages --> MultiModalMessages
    MultiModalMessages --> ImageUrl

    note for Messages "role: 'user' | 'assistant'"
    note for MultiModalMessages "type: 'image_url'"

来源:docs/integrations/agno.mdx:104-121, docs/integrations/agno.mdx:173-180

使用 Agno 实现

Agno 集成演示了如何将本地图像转换为 base64 格式,并将其作为 image_url 数据存储在 Mem0 中。

import base64
from mem0 import MemoryClient

client = MemoryClient()

def store_multimodal_interaction(image_path, user_input, user_id):
    with open(image_path, "rb") as image_file:
        base64_image = base64.b64encode(image_file.read()).decode("utf-8")

    messages = [
        {
            "role": "user",
            "content": [
                {"type": "text", "text": user_input},
                {
                    "type": "image_url",
                    "image_url": {"url": f"data:image/jpeg;base64,{base64_image}"}
                }
            ]
        }
    ]
    client.add(messages, user_id=user_id)

来源:docs/integrations/agno.mdx:99-125

---

语音代理集成

Mem0 与实时语音平台集成,为语音代理提供对话记忆能力。这些集成使代理能够在语音交互中记住上下文。

标题:语音集成组件图

graph TB
    subgraph "语音平台层"
        Livekit["Livekit Agents SDK"]
        Pipecat["Pipecat Framework"]
        ElevenLabs["ElevenLabs Conv AI"]
    end

    subgraph "Mem0 集成层"
        AsyncMemoryClient["AsyncMemoryClient<br/>(mem0.AsyncMemoryClient)"]
        Mem0MemoryService["Mem0MemoryService<br/>(pipecat.services.mem0)"]
        MemoryClient["MemoryClient<br/>(mem0.MemoryClient)"]
    end

    subgraph "存储与智能层"
        Mem0Platform["Mem0 Platform API"]
        VectorDB["向量存储"]
    end

    Livekit --> AsyncMemoryClient
    Pipecat --> Mem0MemoryService
    ElevenLabs --> MemoryClient

    AsyncMemoryClient --> Mem0Platform
    Mem0MemoryService --> Mem0Platform
    MemoryClient --> Mem0Platform
    Mem0Platform --> VectorDB

来源:docs/integrations/livekit.mdx:51-62, docs/integrations/pipecat.mdx:31-46, docs/integrations/elevenlabs.mdx:106-109

LiveKit 集成

LiveKit 使用异步代理模型。MemoryEnabledAgent 类扩展了标准的 LiveKit Agent,用于拦截用户轮次并将 Mem0 的检索增强生成(RAG)上下文注入其中。

标题:LiveKit 记忆逻辑流程

sequenceDiagram
    participant U as 用户(语音)
    participant LK as Livekit.agents.Agent
    participant M as mem0.AsyncMemoryClient
    participant LLM as livekit.plugins.openai.LLM

    U->>LK: on_user_turn_completed
    LK->>M: add(new_message.text_content, user_id)
    LK->>M: search(query, filters={user_id})
    M-->>LK: search_results
    LK->>LK: turn_ctx.add_message(role="assistant", content=full_context)
    LK->>LLM: generate_reply()
    LLM-->>LK: 上下文感知响应
    LK-->>U: 语音输出

来源:docs/integrations/livekit.mdx:78-140

关键组件:

  • AsyncMemoryClient:用于实时语音流中的非阻塞 I/O 操作 docs/integrations/livekit.mdx:51-51
  • on_user_turn_completed:用于持久化用户消息和检索上下文的钩子 docs/integrations/livekit.mdx:101-139
Pipecat 集成

Pipecat 提供了一个专门的 Mem0MemoryService,作为语音管线中的中间件。它通常位于 UserContextAggregatorLLMService 之间。

管线配置

Mem0MemoryService 管理基于 user_idagent_idrun_id 的自动记忆检索。

from pipecat.services.mem0 import Mem0MemoryService

memory = Mem0MemoryService(
    api_key=os.getenv("MEM0_API_KEY"),
    user_id="unique_user_id",
    params={
        "search_limit": 10,
        "add_as_system_message": True,
        "position": 1
    }
)

来源:docs/integrations/pipecat.mdx:30-46

ElevenLabs 集成

ElevenLabs Conversational AI 允许将 Mem0 函数注册为 ClientTools。这使得语音代理能够通过函数调用自主决定何时存储或检索记忆。

记忆工具注册:

  • add_memories:注册为 addMemories 工具 docs/integrations/elevenlabs.mdx:122-129
  • retrieve_memories:注册为 retrieveMemories 工具 docs/integrations/elevenlabs.mdx:131-151
client_tools = ClientTools()
client_tools.register("addMemories", add_memories, is_async=True)
client_tools.register("retrieveMemories", retrieve_memories, is_async=True)

来源:docs/integrations/elevenlabs.mdx:174-177

---

技术数据流

记忆检索与注入

在多模态和语音场景中,记忆会被检索并格式化到系统提示或对话历史中,以提供上下文。

平台注入方法关键函数/类
Agno手动构建提示MemoryClient.search(...) docs/integrations/agno.mdx:129-130
LiveKitturn_ctx.add_messageAsyncMemoryClient.search(...) docs/integrations/livekit.mdx:116-134
Pipecat管线中间件Mem0MemoryService docs/integrations/pipecat.mdx:53-63
ElevenLabs函数工具输出retrieve_memories docs/integrations/elevenlabs.mdx:131-151
记忆持久化模式

对于语音代理,持久化通常在用户说完话或助手响应后执行,以确保捕获完整的上下文。

  1. 用户轮次持久化:LiveKit 在用户轮次完成时立即通过 mem0_client.add 捕获用户消息 docs/integrations/livekit.mdx:101-112
  2. 交互持久化:Agno 和 Pipecat 存储 userassistant 消息对,以保留提示与响应之间的关系 docs/integrations/agno.mdx:153-155, docs/integrations/pipecat.mdx:165-171

---

语音与多模态最佳实践

1. 延迟管理

在语音环境(LiveKit、ElevenLabs)中使用 AsyncMemoryClient,以防止记忆操作阻塞音频流处理 docs/integrations/livekit.mdx:51-51, docs/integrations/elevenlabs.mdx:47-47

2. 上下文过滤

在搜索时始终应用 filters={"user_id": user_id},以确保语音代理不会在不同用户之间泄漏记忆 docs/integrations/livekit.mdx:118-118, docs/integrations/agno.mdx:129-129

3. 元数据利用

在元数据中存储模态信息(例如 {"category": "movie_recommendations"}{"type": "preference"}),以支持过滤检索或分析 docs/open-source/node-quickstart.mdx:40-40, docs/integrations/agentops.mdx:97-97

4. 语义阈值

在语音交互中,由于转录可能不完美(语音转文字错误),应调整搜索配置,以确保即使存在轻微的口语变化也能找到相关记忆 docs/integrations/pipecat.mdx:40-40

来源:docs/integrations/agno.mdx:1-207, docs/integrations/livekit.mdx:1-184, docs/integrations/pipecat.mdx:1-213, docs/integrations/elevenlabs.mdx:1-215, docs/integrations/agentops.mdx:82-128, docs/open-source/node-quickstart.mdx:31-66