translation/translated/documents/course/03-agent-memory/21-configuring-working-memo...

2.0 KiB

配置工作记忆

让我们为智能体添加工作记忆功能:

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({
    id: "learning-memory-vector",
    connectionUrl: "file:../../vector.db", // 相对于 `.mastra/output` 目录的相对路径
  }), // 用于语义搜索的向量数据库
  embedder: openai.embedding("text-embedding-3-small"), // 用于消息嵌入的嵌入器
  options: {
    semanticRecall: {
      topK: 3,
      messageRange: {
        before: 2,
        after: 1,
      },
    },
    workingMemory: {
      enabled: true,
    },
  },
});

// 创建具有配置内存的智能体
export const memoryAgent = new Agent({
  name: "MemoryAgent",
  instructions: `
    您是一个具有高级记忆能力的助手。
    您可以记住之前的对话和用户偏好。

    重要提示:您有权访问工作记忆来存储关于用户的持久信息。
    当您了解用户的任何重要信息时,请更新您的工作记忆。
    这包括:
    - 他们的姓名
    - 他们的位置
    - 他们的偏好
    - 他们的兴趣
    - 任何其他有助于个性化对话的相关信息

    在询问用户已提供的信息之前,请始终参考您的工作记忆。
    使用工作记忆中的信息提供个性化响应。
  `,
  model: openai("gpt-4o"),
  memory: memory,
});

workingMemory 配置有几个重要选项:

  • enabled:是否启用工作记忆
  • template:工作记忆内容的模板

智能体的指令也很重要。它们指导智能体在工作记忆中存储什么信息,以及如何在响应用户时使用这些信息。