Agent Memory - Mirix 基础概念

114 阅读4分钟
graph TB
    subgraph "Input Processing"
        A[User Input] --> B[Meta Agent]
    end
    
    subgraph "Memory Managers"
        C[Core Memory Manager]
        D[Episodic Memory Manager]
        E[Semantic Memory Manager]
        F[Procedural Memory Manager]
        G[Resource Memory Manager]
        H[Knowledge Vault Manager]
    end
    
    subgraph "User Interaction"
        I[Chat Agent]
    end
    
    subgraph "Memory Base"
        J[(Shared Memory Database)]
    end
    
    B --> C
    B --> D
    B --> E
    B --> F
    B --> G
    B --> H
    
    C --> J
    D --> J
    E --> J
    F --> J
    G --> J
    H --> J
    
    I --> J
    J --> I

最大特色是可以支持图片生成记忆(后续专门写一篇文章分析如何实现的)。所有记忆都是通过 LLM Agent 生成,核心是 Prompt 工程,实际使用体验并不是很稳定。

记忆类型

1. Core Memory 核心记忆

代理与用户交互时应始终可见的持久性信息,核心记忆被组织在多个 block 中( human 和 persona )

<human 117/500 characters>
User's name is David
User prefers coffee over tea
User works as a software engineer
User enjoys reading sci-fi novels
</human>

<persona 24/5000 characters>
I am a helpful assistant
</persona>

2. Episodic Memory 情景记忆

捕获特定于上下文的事件和时间活动,作为用户行为的摘要或日历。

{
  "event_type": "user_message",
  "summary": "User reviewed quarterly sales report",
  "details": "Detailed analysis of Q3 sales performance, identified key growth areas in mobile segment, discussed strategies with marketing team",
  "actor": "user",
  "timestamp": "2025-03-05 10:15"
}

3. Semantic Memory 语义记忆

维护一般知识,概念和独立于时间的上下文抽象信息。

[
  {
    "name": "PostgreSQL",
    "summary": "Open-source relational database management system",
    "details": "Powerful, enterprise-grade database with advanced features like JSONB support, full-text search, and vector extensions. Preferred by user for its performance and reliability.",
    "source": "user_interaction"
  },
  {
    "name": "MkDocs Material",
    "summary": "Documentation framework based on MkDocs",
    "details": "Static site generator that creates beautiful documentation sites from Markdown files. Features include responsive design, search functionality, and extensive customization options.",
    "source": "documentation_project"
  },
  {
    "name": "Team Standup Meeting",
    "summary": "Daily team synchronization meeting",
    "details": "Occurs every weekday at 9 AM, attended by development team to discuss progress, blockers, and daily goals. Usually lasts 15-20 minutes.",
    "source": "recurring_activity"
  }
]

包含的数据内容类型:

  • 事实知识 :“哈利波特是由 J. K。罗琳”
  • 关于其他人的事实和理解 :“John 是用户的好朋友,喜欢慢跑”
  • 概念 :“机器学习算法及其应用”

4. Procedural Memory 程序性记忆

记录完成特定任务的流程工作流和分步说明。

[
  {
    "entry_type": "workflow",
    "description": "Setting up new development environment",
    "steps": [
      "1. Install Python 3.11 or later",
      "2. Set up virtual environment with 'python -m venv venv'",
      "3. Activate virtual environment",
      "4. Install dependencies with 'pip install -r requirements.txt'",
      "5. Configure environment variables in .env file",
      "6. Initialize database with 'python manage.py migrate'",
      "7. Run development server with 'python manage.py runserver'"
    ]
  },
  {
    "entry_type": "guide",
    "description": "Troubleshooting PostgreSQL connection issues",
    "steps": [
      "1. Check if PostgreSQL service is running",
      "2. Verify database exists with 'psql -l'",
      "3. Test connection with 'psql -U username -d database'",
      "4. Check firewall settings if connecting remotely",
      "5. Verify authentication configuration in pg_hba.conf"
    ]
  }
]

5. Resource Memory 资源存储器

管理与用户交互的活动文档和项目相关文件。

[
  {
    "title": "API Documentation Draft",
    "summary": "Initial draft of REST API documentation for the customer management system, includes endpoint specifications and example requests",
    "resource_type": "markdown",
    "content": "# Customer Management API\n\n## Overview\nThis API provides endpoints for managing customer data...\n\n## Endpoints\n\n### GET /api/customers\nRetrieve list of customers..."
  },
  {
    "title": "Meeting Recording - Sprint Planning",
    "summary": "Voice recording from sprint planning meeting discussing user stories and development priorities for next iteration",
    "resource_type": "voice_transcript",
    "content": "Transcript: 'Let's start with the user authentication story. Based on our previous discussion, we need to implement OAuth 2.0 integration...'"
  }
]

6. Knowledge Vault

存储结构化的个人数据敏感数据,如地址、电话号码、联系人和凭据。

[
  {
    "entry_type": "api_key",
    "source": "openai",
    "sensitivity": "high",
    "secret_value": "sk-proj-xxxxxxxxxxxxxxxxxxxx",
    "caption": "OpenAI API key for ChatGPT integration"
  },
  {
    "entry_type": "bookmark",
    "source": "user_provided",
    "sensitivity": "low",
    "secret_value": "https://docs.mirix.ai/",
    "caption": "MIRIX documentation website"
  },
  {
    "entry_type": "contact_info",
    "source": "user_profile",
    "sensitivity": "medium",
    "secret_value": "john.doe@example.com",
    "caption": "Primary email address"
  }
]

主要参数说明:

Sensitivity Levels 灵敏度水平

  • low: 一般书签和公共信息
  • medium: 联系信息和非关键数据
  • high: 密码、API 密钥和敏感凭据

Security Features 安全功能

  • Encryption: 静态加密敏感数据
  • Access Control: 访问控制:根据敏感度级别限制访问
  • Audit Trail: 审计跟踪:记录对敏感数据的所有访问
  • Automatic Expiration: 自动过期:凭据可以有过期日期

记忆搜索

所有类型的记忆都使用统一的搜索接口

results = search_in_memory(
    query="machine learning project",
    memory_type='episodic', # can be chosen from ['all', 'episodic', 'semantic', 'resource', 'procedural', 'knowledge_vault']
    limit=20
)

3 种搜索实现方式:

MethodDescriptionBest ForPerformance
bm25推荐 - PostgreSQL 原生全文搜索大多数查询,生产使用Excellent
embedding使用嵌入的向量相似性搜索语义相似性,概念查询Good
string_match简单字符串包含搜索精确文本匹配Fast

记忆自动清理策略

  • Core Memory: 接近容量上限时会覆盖旧的记忆
  • Episodic Memory: 根据相关性归档旧条目
  • Semantic Memory: 合并重复的概念
  • Procedural Memory: 根据使用模式更新工作流
  • Resource Memory: 压缩或删除未使用的资源,需要明确具体策略
  • Knowledge Vault: 到期删除