105 lines
3.1 KiB
Markdown
105 lines
3.1 KiB
Markdown
|
|
# 创建实际示例:个人学习助手
|
|||
|
|
|
|||
|
|
让我们创建一个记忆增强型智能体的实际示例:一个帮助用户学习新技能并跟踪其进度的个人学习助手。
|
|||
|
|
|
|||
|
|
```typescript
|
|||
|
|
// src/mastra/agents/learning-assistant.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 learningMemory = 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,
|
|||
|
|
semanticRecall: {
|
|||
|
|
topK: 3,
|
|||
|
|
messageRange: {
|
|||
|
|
before: 2,
|
|||
|
|
after: 1,
|
|||
|
|
},
|
|||
|
|
},
|
|||
|
|
workingMemory: {
|
|||
|
|
enabled: true,
|
|||
|
|
template: `
|
|||
|
|
# 学习者档案
|
|||
|
|
|
|||
|
|
## 个人信息
|
|||
|
|
- 姓名:
|
|||
|
|
- 学习风格:[视觉、听觉、阅读/写作、动觉]
|
|||
|
|
|
|||
|
|
## 学习历程
|
|||
|
|
- 当前主题:
|
|||
|
|
- [主题 1]:
|
|||
|
|
- 技能水平:[初学者、中级、高级]
|
|||
|
|
- 开始日期:[日期]
|
|||
|
|
- 目标:
|
|||
|
|
- 资源:
|
|||
|
|
- 进度笔记:
|
|||
|
|
- [主题 2]:
|
|||
|
|
- 技能水平:[初学者、中级、高级]
|
|||
|
|
- 开始日期:[日期]
|
|||
|
|
- 目标:
|
|||
|
|
- 资源:
|
|||
|
|
- 进度笔记:
|
|||
|
|
|
|||
|
|
## 会话状态
|
|||
|
|
- 当前焦点:
|
|||
|
|
- 需重新访问的问题:
|
|||
|
|
- 推荐的下一步:
|
|||
|
|
`,
|
|||
|
|
},
|
|||
|
|
},
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
// 创建学习助手智能体
|
|||
|
|
export const learningAssistantAgent = new Agent({
|
|||
|
|
name: "Learning Assistant",
|
|||
|
|
instructions: `
|
|||
|
|
您是一个帮助用户学习新技能并跟踪其进度的个人学习助手。
|
|||
|
|
|
|||
|
|
## 您的能力
|
|||
|
|
|
|||
|
|
- 您帮助用户设定学习目标并跟踪其进度
|
|||
|
|
- 您提供根据其技能水平定制的解释和资源
|
|||
|
|
- 您记住他们正在学习的主题以及每个主题的进度
|
|||
|
|
- 您调整教学风格以匹配他们的学习偏好
|
|||
|
|
|
|||
|
|
## 使用记忆的指南
|
|||
|
|
|
|||
|
|
- 当用户分享他们的学习风格或偏好信息时,
|
|||
|
|
更新您的工作记忆。
|
|||
|
|
|
|||
|
|
- 当用户询问他们之前提到的主题时,使用您的语义
|
|||
|
|
回忆来提供教学的连续性。
|
|||
|
|
|
|||
|
|
- 在解释概念时,检查您的工作记忆以了解他们的
|
|||
|
|
当前技能水平并提供适当深度的解释。
|
|||
|
|
|
|||
|
|
始终保持鼓励和支持。专注于建立用户的信心
|
|||
|
|
并庆祝他们的进步。
|
|||
|
|
`,
|
|||
|
|
model: openai("gpt-4o"),
|
|||
|
|
memory: learningMemory,
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
// 不要忘记在您的 src/mastra/index.ts 文件中导出此智能体
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
此示例展示了如何创建具有针对特定用例定制的内存配置的专门智能体。学习助手使用:
|
|||
|
|
|
|||
|
|
1. 专为跟踪学习进度设计的自定义工作记忆模板
|
|||
|
|
2. 指导智能体如何将记忆用于教育目的的专门指令
|
|||
|
|
3. 所有三种记忆功能(对话历史记录、语义回忆和工作记忆)协同工作
|
|||
|
|
|
|||
|
|
与没有记忆功能的通用聊天机器人相比,这种专门的智能体可以提供更加个性化和有效的学习体验。
|