44 lines
1.7 KiB
Markdown
44 lines
1.7 KiB
Markdown
# 配置语义回忆
|
|
|
|
让我们使用自定义语义回忆设置更新我们的智能体:
|
|
|
|
```typescript
|
|
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` 模型。
|