translation/translated/documents/course/03-agent-memory/25-combining-memory-feature...

2.2 KiB
Raw Permalink Blame History

构建完整的记忆增强型智能体

在这一最后步骤中,我们将把我们探讨的所有记忆功能整合在一起,创建一个完整的记忆增强型智能体。我们还将创建一个实际示例,展示这些功能如何协同工作。

整合所有记忆功能

让我们创建一个利用对话历史记录、语义回忆和工作记忆的综合智能体:

// src/mastra/agents/memory-agent.ts
import { Agent } from "@mastra/core/agent";
import { Memory } from "@mastra/memory";
import { openai } from "@ai-sdk/openai";
import { LibSQLStore, LibSQLVector } from "@mastra/libsql";

// 创建全面的内存配置
const memory = new Memory({
  storage: new LibSQLStore({
    id: "learning-memory-storage",
    url: "file:../../memory.db", // 相对于 `.mastra/output` 目录的相对路径
  }),
  vector: new LibSQLVector({
    connectionUrl: "file:../../vector.db", // 相对于 `.mastra/output` 目录的相对路径
  }),
  embedder: openai.embedding("text-embedding-3-small"),
  options: {
    // 对话历史记录配置
    lastMessages: 20, // 在上下文中包含最后 20 条消息

    // 语义回忆配置
    semanticRecall: {
      topK: 3, // 检索 3 条最相似的消息
      messageRange: {
        before: 2, // 包含每次匹配前的 2 条消息
        after: 1, // 包含每次匹配后的 1 条消息
      },
    },

    // 工作记忆配置
    workingMemory: {
      enabled: true,
      template: `
# 用户档案

## 个人信息
- 姓名:
- 位置:
- 时区:
- 职业:

## 偏好
- 沟通风格:
- 感兴趣的话题:
- 学习目标:

## 项目信息
- 当前项目:
  - [项目 1]
    - 截止日期:
    - 状态:
  - [项目 2]
    - 截止日期:
    - 状态:

## 会话状态
- 当前主题:
- 未解决问题:
- 行动项:
`,
    },
  },
});

这个全面的内存配置整合了我们探讨的所有三种记忆功能:

  1. 对话历史记录,使用 lastMessages 选项
  2. 语义回忆,使用 semanticRecall 选项
  3. 工作记忆,使用 workingMemory 选项

每种功能在增强智能体的记忆能力方面都有不同的目的,它们共同创建了一个强大的记忆系统,可以在跨对话中保持上下文并提供个性化响应。