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