news 2026/7/25 3:46:03

memos 写入记忆读取记忆的skill

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
memos 写入记忆读取记忆的skill
--- name: memos-memory-assistant description: >- 简单的记忆存储与检索助手,提供便捷的记忆功能。 适合需要存储和检索用户偏好的场景。 常见触发场景:记住用户喜好、检索用户信息 trigger_keywords: - 记住 - 记忆 - 想起 - 搜索记忆 - 用户信息 - 偏好记忆 --- ## 详细功能 - **记住信息** - **工具**: remember - **CLI调用**: `python -m skills.memos remember --content "我喜欢苹果"` - **参数**: - content (要记住的内容) - **操作**: 将信息存储到记忆库中 - **检索记忆** - **工具**: recall - **CLI调用**: `python -m skills.memos recall --query "苹果"` - **参数**: - query (搜索关键词) - **操作**: 根据关键词检索相关的记忆信息
"""Simple memory skill for storing and retrieving user memories.""" import os from typing import List, Dict, Optional # Try to import the real MemOS client, fall back to local memory if not available try: from memos.api.client import MemOSClient MEMOS_AVAILABLE = True except ImportError: MEMOS_AVAILABLE = False print("警告: MemOS客户端不可用,将使用本地记忆功能") # Import local memory functions using absolute import try: from agent_chator.memory.local_memory import add_message as local_add_message, search_memory as local_search_memory except ImportError: # Fallback if the module is not available def local_add_message(user_id, conversation_id, messages): print("警告: 本地记忆功能不可用") return {"error": "Local memory not available"} def local_search_memory(query, user_id, conversation_id): print("警告: 本地记忆功能不可用") return {"error": "Local memory not available"} class MemosSkill: """A skill for interacting with MemOS API to store and retrieve memories.""" def __init__(self): self.api_key = os.getenv("MEMOS_API_KEY") if not self.api_key or not MEMOS_AVAILABLE: print("信息: 未设置 MEMOS_API_KEY 或 MemOS不可用,将使用本地记忆功能") self.use_local = True else: self.use_local = False # Use remote if available and key is set if not self.use_local: try: self.client = MemOSClient(api_key=self.api_key) except Exception as e: print(f"警告: 无法初始化MemOS客户端 ({e}),将使用本地记忆功能") self.use_local = True else: self.client = None def add_message(self, user_id: str, conversation_id: str, messages: List[Dict[str, str]]) -> Dict: """ Store a conversation in MemOS to create memories. Args: user_id: The ID of the user conversation_id: The ID of the conversation messages: List of messages in the format {"role": "user|assistant", "content": "message content"} Returns: Response from the MemOS API """ if self.use_local: return local_add_message(user_id=user_id, conversation_id=conversation_id, messages=messages) else: return self.client.add_message(messages=messages, user_id=user_id, conversation_id=conversation_id) def search_memory(self, query: str, user_id: str, conversation_id: str) -> Dict: """ Retrieve relevant memories from MemOS based on a query. Args: query: The search query to find relevant memories user_id: The ID of the user conversation_id: The ID of the current conversation Returns: Response from the MemOS API containing relevant memories """ if self.use_local: return local_search_memory(query=query, user_id=user_id, conversation_id=conversation_id) else: return self.client.search_memory(query=query, user_id=user_id, conversation_id=conversation_id) # Global variable to hold the skill instance _memosskill = None def _get_memosskill(): """Lazy initialization of the MemosSkill instance.""" global _memosskill if _memosskill is None: _memosskill = MemosSkill() return _memosskill # Export the functions for direct use def add_message(user_id: str, conversation_id: str, messages: List[Dict[str, str]]) -> Dict: """ Store a conversation in MemOS to create memories. Args: user_id: The ID of the user conversation_id: The ID of the conversation messages: List of messages in the format {"role": "user|assistant", "content": "message content"} Returns: Response from the MemOS API """ skill = _get_memosskill() return skill.add_message(user_id, conversation_id, messages) def search_memory(query: str, user_id: str, conversation_id: str) -> Dict: """ Retrieve relevant memories from MemOS based on a query. Args: query: The search query to find relevant memories user_id: The ID of the user conversation_id: The ID of the current conversation Returns: Response from the MemOS API containing relevant memories """ skill = _get_memosskill() return skill.search_memory(query, user_id, conversation_id) # Simple convenience functions for common use cases DEFAULT_USER_ID = "default_user" def remember(content: str, user_id: str = DEFAULT_USER_ID) -> Dict: """ Remember something for a user. Args: content: The content to remember user_id: The ID of the user (optional, defaults to 'default_user') Returns: Result of the operation """ messages = [{"role": "user", "content": content}] return add_message(user_id, "default_conversation", messages) def recall(query: str, user_id: str = DEFAULT_USER_ID) -> Dict: """ Recall information for a user based on a query. Args: query: The query to search for user_id: The ID of the user (optional, defaults to 'default_user') Returns: Search results """ return search_memory(query, user_id, "default_conversation")
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/23 0:49:43

Thinkphp和Laravel框架的校园点歌系统的设计与实现

目录摘要技术选型对比开发技术源码文档获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!摘要 校园点歌系统是一种基于Web的应用程序,旨在为学生和教职工提供便捷的点歌服务,丰富校园文化生活。系统采用ThinkPHP或Laravel框…

作者头像 李华
网站建设 2026/7/20 20:26:41

沃伦·巴菲特的公司文化评估方法

沃伦巴菲特的公司文化评估方法 关键词:沃伦巴菲特、公司文化评估、投资决策、企业价值观、文化指标 摘要:本文深入探讨沃伦巴菲特的公司文化评估方法。从背景介绍入手,阐述其目的、预期读者等内容。详细剖析公司文化评估的核心概念与联系,给出原理和架构示意图。介绍核心算…

作者头像 李华
网站建设 2026/7/21 23:35:38

当导弹在天上玩漂移:手把手调教气动力控制

基于气动力的导弹姿态控制(含MATLAB仿真),提供基于气动力控制的导弹姿态控制律设计参考文献,同时提供MATLAB仿真源代码,源代码内包含定义导弹、大气、地球、初始位置、速度、弹道、姿态、舵偏角、控制律、飞行力学方程…

作者头像 李华
网站建设 2026/7/20 10:55:25

三相逆变器并网控制这玩意儿,玩的就是个电流环套娃。今儿咱们拆个电网电流外环+电容电流内环的骚操作,直接上硬货

三相并网逆变器双闭环控制,电网电流外环电容电流内环控制算法,matlab/Simulink仿真模型,有源阻尼,单位功率因数,电网电压和电流同相位。 先整个控制结构图镇楼(此处脑补Simulink模型截图)。核心…

作者头像 李华
网站建设 2026/7/21 17:26:34

Chrome现已集成Gemini,仅需4步即可开启。

大家好,我是岳哥。最近Google又将自家的Gemini集成到Chrome上去了,堪称史诗级更新,虽然之前也有不少厂商将AI集成到浏览器,例如微软的copilot。可以一遍刷着网页一边跟Gemini对话,就像这样。这是知乎上的一个帖子图片&…

作者头像 李华