2025-12-11 15:18:09 +08:00
|
|
|
|
import { Agent } from "@mastra/core/agent";
|
|
|
|
|
|
import {
|
2025-12-12 10:48:12 +08:00
|
|
|
|
goodsTool,
|
2026-01-07 16:02:30 +08:00
|
|
|
|
cabinetTool,
|
|
|
|
|
|
shopTool,
|
|
|
|
|
|
dynamicInfoTool,
|
2025-12-11 15:18:09 +08:00
|
|
|
|
} from "../tools";
|
|
|
|
|
|
import { createDeepSeek } from '@ai-sdk/deepseek';
|
2025-12-21 23:16:00 +08:00
|
|
|
|
import { createOpenAI } from '@ai-sdk/openai';
|
2025-12-16 11:10:08 +08:00
|
|
|
|
import { Memory } from "@mastra/memory";
|
|
|
|
|
|
import { LibSQLStore } from "@mastra/libsql";
|
2025-12-11 15:18:09 +08:00
|
|
|
|
|
|
|
|
|
|
|
2025-12-21 23:16:00 +08:00
|
|
|
|
// const deepseek = createDeepSeek({
|
|
|
|
|
|
// apiKey: 'sk-8603b08e1125422ca6238c8b4a1a40d8',
|
|
|
|
|
|
// });
|
2025-12-11 15:18:09 +08:00
|
|
|
|
const deepseek = createDeepSeek({
|
2025-12-21 23:16:00 +08:00
|
|
|
|
baseURL: 'https://api.xiaomimimo.com/v1',
|
|
|
|
|
|
apiKey: 'sk-cr54p8d2k20nppdzzwyfir4b4znxoh1py6ccxpkc8qt1ahij'
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
const openai = createOpenAI({
|
|
|
|
|
|
baseURL: 'https://api.xiaomimimo.com/v1',
|
|
|
|
|
|
apiKey: 'sk-cr54p8d2k20nppdzzwyfir4b4znxoh1py6ccxpkc8qt1ahij'
|
2025-12-11 15:18:09 +08:00
|
|
|
|
});
|
|
|
|
|
|
|
2025-12-16 11:10:08 +08:00
|
|
|
|
// 创建一个基本内存实例
|
|
|
|
|
|
const memory = new Memory({
|
|
|
|
|
|
storage: new LibSQLStore({
|
|
|
|
|
|
url: "file:./memory.db", // 相对于 `.mastra/output` 目录的相对路径
|
|
|
|
|
|
}),
|
|
|
|
|
|
options: {
|
|
|
|
|
|
lastMessages: 20,
|
|
|
|
|
|
},
|
|
|
|
|
|
});
|
2025-12-11 15:18:09 +08:00
|
|
|
|
|
|
|
|
|
|
export const multiFunctionAgent = new Agent({
|
|
|
|
|
|
name: "Multi-Function Agent",
|
2025-12-21 23:16:00 +08:00
|
|
|
|
instructions: {
|
|
|
|
|
|
role: 'system',
|
|
|
|
|
|
content: `
|
2025-12-16 11:10:08 +08:00
|
|
|
|
你是一个具有内存功能的多功能助手,具备以下能力:
|
2025-12-11 15:18:09 +08:00
|
|
|
|
|
2026-01-07 11:06:11 +08:00
|
|
|
|
1. **商品查询**:使用商品工具查询商品信息,支持分页查询商品列表或根据商品ID获取单个商品详情。
|
2026-01-07 16:02:30 +08:00
|
|
|
|
2. **柜机查询**:使用柜机工具查询智能柜信息,支持查询柜机详情。
|
|
|
|
|
|
3. **门店查询**:使用门店工具查询门店相关信息,支持查询门店列表、模式列表。
|
|
|
|
|
|
4. **借还动态查询**:使用借还动态工具查询商品借还记录,支持按商品ID、格口ID、状态、动态类型筛选,可查询借出和归还记录。
|
|
|
|
|
|
|
|
|
|
|
|
各个概念层级关系如下:
|
|
|
|
|
|
- 模式(mode):表示门店和智能柜的运行模式,(0-支付模式 1-审批模式 2-借还模式 3-会员模式 4-耗材模式 5-暂存模式)。
|
|
|
|
|
|
- 归属类型(belongType 0-借还柜 1-固资通),表示智能柜的归属类型,固资通只能运行耗材模式,借还柜可以运行其他模式。
|
|
|
|
|
|
- 门店(shop):表示具体的门店实体,每个门店都有唯一的ID和名称、一个或多个智能柜、一种运行模式。
|
|
|
|
|
|
- 智能柜(cabinet):表示具体的智能柜实体,每个智能柜都有唯一的ID和名称,属于某个门店。
|
|
|
|
|
|
- 格口(cell):表示智能柜中的一个具体位置,每个格口都有唯一的ID和名称,属于某个智能柜,格口中可以存放商品,也可以用于租赁或暂存个人物品。
|
|
|
|
|
|
- 商品(goods):表示具体的商品实体,每个商品都有唯一的ID和名称、价格、库存数量等信息。
|
2025-12-11 15:18:09 +08:00
|
|
|
|
|
2025-12-11 17:43:08 +08:00
|
|
|
|
请始终礼貌、乐于助人。如果用户询问超出你能力范围的事情,请礼貌解释你能做什么。
|
2025-12-16 11:10:08 +08:00
|
|
|
|
你可以记住之前的对话和用户偏好。
|
|
|
|
|
|
当用户分享关于他们自己的信息时,请确认并记住它以供将来参考。
|
|
|
|
|
|
如果被问及对话中 earlier 提到的事情,请准确地回忆它。
|
2025-12-11 17:43:08 +08:00
|
|
|
|
根据用户请求使用适当的工具。如果不确定,请询问澄清。
|
|
|
|
|
|
|
|
|
|
|
|
请使用中文回答用户的问题。
|
2025-12-21 23:16:00 +08:00
|
|
|
|
`},
|
|
|
|
|
|
// model: deepseek('deepseek-chat'),
|
2026-01-07 18:01:51 +08:00
|
|
|
|
// model: deepseek('deepseek-reasoner'),
|
2025-12-21 23:16:00 +08:00
|
|
|
|
// model: openai.chat('mimo-v2-flash'),
|
|
|
|
|
|
model: deepseek.chat('mimo-v2-flash'),
|
2025-12-16 11:10:08 +08:00
|
|
|
|
memory: memory,
|
2025-12-11 15:18:09 +08:00
|
|
|
|
tools: {
|
2025-12-12 10:48:12 +08:00
|
|
|
|
goodsTool,
|
2026-01-07 16:02:30 +08:00
|
|
|
|
cabinetTool,
|
|
|
|
|
|
shopTool,
|
|
|
|
|
|
dynamicInfoTool,
|
2025-12-11 15:18:09 +08:00
|
|
|
|
},
|
|
|
|
|
|
});
|