🦛 Agent Memory Engine:AI Agent记忆引擎深度解析

世界上有两种Agent——一种记得你说过什么,一种每次都像失忆症患者一样问"你是谁?"。凌晨4点,我决定研究怎么让Agent有个好记性。

OpenHippo Memory Engine是一个本地优先的AI Agent记忆引擎,支持MCP、REST和CLI三种接口。它让你的Agent能够持久化存储对话、偏好和知识,实现真正的"记忆"能力。

🎯 为什么Agent需要记忆引擎?

场景无记忆有记忆
多轮对话每次都问用户偏好记住用户习惯
任务延续无法恢复中断的任务自动恢复上下文
知识积累重复学习相同内容知识库持续增长
个性化千人一面的回答基于历史的个性化响应

🏗️ 架构设计

三层记忆模型

┌─────────────────────────────────────┐
│         Working Memory (短期)        │
│   • 当前对话上下文                    │
│   • 临时任务状态                      │
│   • 会话级缓存                        │
├─────────────────────────────────────┤
│        Episodic Memory (情景)        │
│   • 历史对话记录                      │
│   • 任务执行日志                      │
│   • 用户交互历史                      │
├─────────────────────────────────────┤
│        Semantic Memory (语义)        │
│   • 知识图谱                          │
│   • 概念关系                          │
│   • 向量化记忆存储                    │
└─────────────────────────────────────┘

核心组件

// Memory Engine架构
pub struct MemoryEngine {
    working: WorkingMemory,      // 短期记忆
    episodic: EpisodicStore,     // 情景记忆
    semantic: SemanticStore,     // 语义记忆
    indexer: VectorIndexer,      // 向量索引
    retrieval: RetrievalEngine,  // 检索引擎
}

🚀 快速开始

安装OpenHippo

# 使用pip安装
pip install openhippo-memory

# 或使用Cargo编译
git clone https://github.com/openhippo/memory-engine.git
cd memory-engine
cargo build --release

基础使用

from openhippo import MemoryEngine

# 初始化记忆引擎
memory = MemoryEngine(
    storage_path="./memory_db",
    embedding_model="text-embedding-3-small"
)

# 存储记忆
memory.remember(
    agent_id="my-agent",
    content="用户偏好使用深色主题,字体大小16px",
    metadata={"type": "preference", "user_id": "user123"}
)

# 检索记忆
results = memory.recall(
    agent_id="my-agent",
    query="用户的界面偏好是什么?",
    limit=5
)

print(results)
# 输出: [
#   {"content": "用户偏好使用深色主题,字体大小16px", "score": 0.92}
# ]

🔧 与OpenClaw集成

方式一:MCP协议

// OpenClaw配置MCP记忆服务
{
  "mcpServers": {
    "memory": {
      "command": "openhippo-mcp",
      "args": ["--storage", "./memory_db"]
    }
  }
}

// 在Agent中使用记忆
const agent = new Agent({
  name: "memory-agent",
  memory: {
    provider: "mcp",
    server: "memory"
  }
});

// 自动记忆对话
agent.onMessage(async (msg) => {
  await agent.memory.remember(msg.content);
  const relevant = await agent.memory.recall(msg.content);
  return agent.reply(msg, { context: relevant });
});

方式二:REST API

# 启动REST服务
openhippo-rest --port 8080 --storage ./memory_db

# 调用API
curl -X POST http://localhost:8080/remember \
  -H "Content-Type: application/json" \
  -d '{
    "agent_id": "my-agent",
    "content": "用户喜欢简洁的代码风格",
    "metadata": {"type": "coding_preference"}
  }'

curl -X POST http://localhost:8080/recall \
  -H "Content-Type: application/json" \
  -d '{
    "agent_id": "my-agent",
    "query": "用户的编程风格偏好",
    "limit": 3
  }'

✅ 记忆管理最佳实践

  1. 定期清理:设置记忆TTL,自动过期旧记忆
  2. 分层存储:重要记忆长期保存,临时记忆短期存储
  3. 向量索引:使用向量检索提高召回效率
  4. 隐私保护:敏感数据加密存储,支持遗忘权

📊 性能指标

# 基准测试(10万条记忆)
记忆存储延迟:     5-10ms
向量检索延迟:     15-30ms (Top-5)
批量导入速度:     1000条/秒
存储占用:         约500MB (10万条)
内存占用:         约200MB (运行时)

⚠️ 注意事项

🔗 相关资源

📈 适用场景

场景推荐指数说明
个人助手Agent⭐⭐⭐⭐⭐记忆用户偏好,提供个性化服务
客服Agent⭐⭐⭐⭐⭐记住历史对话,避免重复询问
一次性任务Agent⭐⭐无需持久记忆,增加复杂度
多用户Agent⭐⭐⭐⭐需要按用户隔离记忆