translation/translated/documents/course/03-agent-memory/16-configuring-semantic-rec...

1.7 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: {
    lastMessages: 20, // 在上下文中包含最后 20 条消息
    semanticRecall: true, // 启用具有默认设置的语义回忆
  },
});

// 创建具有配置内存的智能体
export const memoryAgent = new Agent({
  name: "MemoryAgent",
  instructions: `
    您是一个具有高级记忆能力的助手。
    您可以记住之前的对话和用户偏好。
    当用户分享关于自己的信息时,请承认并记住以供将来参考。
    如果被问及对话中较早提到的内容,请准确回忆。
    您还可以在适当时从较早的对话中回忆相关信息。
  `,
  model: openai("gpt-4o"),
  memory: memory,
});

要让语义回忆工作,您需要配置一个向量存储。您还需要配置一个嵌入器。您可以使用任何与此兼容的嵌入模型。在本例中,我们使用的是 OpenAI 的 text-embedding-3-small 模型。