Skip to content

Conversation

@Wang-Daoji
Copy link
Contributor

@Wang-Daoji Wang-Daoji commented Jan 27, 2026

Description

Add skill memory.

Related Issue (Required): Fixes @967

Type of change

Please delete options that are not relevant.

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Refactor (does not change functionality, e.g. code style improvements, linting)
  • Documentation update

How Has This Been Tested?

import json
import requests
import time

if __name__ == "__main__":
    user_id = f'test_user_{time.time()}'
    
    # 准备请求数据
    payload = {
        "user_id": user_id,
        "writable_cube_ids": [user_id],
        "messages": [
            {
                "role": "user",
                "content": "帮我制定一份5天4晚的成都旅行计划,预算控制在3000元/人,重点想体验当地美食和小众景点,避开网红打卡点的人潮。"
            },
            {
                "role": "assistant",
                "content": "以下是为你定制的成都5天4晚旅行计划:\n【Day1】:抵达成都→宽窄巷子→锦里→武侯祠\n【Day2】:大熊猫繁育研究基地→春熙路\n【Day3】:都江堰一日游\n【Day4】:青城山一日游\n【Day5】:文殊院→返程\n美食推荐:火锅、串串、担担面\n预算:交通800元,住宿1200元,餐饮1000元,总计3000元。"
            },
            {
                "role": "user",
                "content": "这份计划有几个问题需要修改:1. 宽窄巷子、锦里都是网红打卡点,人很多,我要小众景点;2. 每天的行程太笼统,需要具体的时间安排、交通方式和小众美食店;3. 都江堰和青城山安排在两天太赶,建议合并成一天且调整行程节奏;4. 预算需要拆分到每天,并且明确哪些是必花项、哪些是可选项。"
            },
            {
                "role": "assistant",
                "content": "抱歉没满足你的需求,重新调整后的旅行计划如下:\n【Day1】\n- 时间:9:00抵达成都→10:00-12:00 东郊记忆(小众文创景点)→12:30-14:00 吃明婷小馆(小众川菜)→14:30-17:00 望平街(文艺街区)→18:00-20:00 吃奎星楼街的冒椒火辣串串\n- 交通:地铁2号线(东郊记忆)+步行(望平街)\n- 预算:交通20元,餐饮150元,住宿200元(经济型民宿),总计370元(必花:320元,可选:50元小吃)\n【Day2】\n- 时间:8:00-10:00 大熊猫繁育研究基地(避开高峰)→11:00-13:00 吃陈婆婆珍藏菜→14:00-17:00 浣花溪公园(小众公园)→18:00-20:00 吃饕林餐厅\n- 交通:地铁3号线+打车(总计40元)\n- 预算:交通40元,餐饮180元,住宿200元,总计420元(必花:420元)\n【Day3】\n- 时间:7:30-9:00 高铁到都江堰→9:30-12:00 都江堰景区→12:30-13:30 吃尤兔头→14:00-17:00 青城山(前山)→18:00 返程成都\n- 交通:高铁60元+景区观光车20元+打车30元\n- 预算:交通110元,餐饮100元,门票90元,住宿200元,总计500元(必花:500元)\n【Day4】\n- 时间:9:00-12:00 安仁古镇(小众古镇)→12:30-14:00 吃游血旺→14:30-17:00 刘氏庄园→18:00-20:00 返程+吃老黄记手撕烤兔\n- 交通:大巴30元+打车20元\n- 预算:交通50元,餐饮120元,门票40元,住宿200元,总计410元(必花:390元,可选:20元伴手礼)\n【Day5】\n- 时间:9:00-11:00 梵木创艺区(小众文创园)→11:30-13:00 吃老成都川菜馆→14:00 返程\n- 交通:地铁5号线(10元)\n- 预算:交通10元,餐饮80元,总计90元(必花:90元)\n总预算:370+420+500+410+90=1790元,剩余1210元可灵活支配(如特色体验、伴手礼等)。"
            },
            {
                "role": "user",
                "content": "这次的计划整体不错,还有几个小调整:1. Day3都江堰+青城山一天时间还是太紧,建议删减青城山,增加都江堰周边的小众村落;2. Day4安仁古镇的交通写清楚是从成都哪个车站出发、大巴班次时间;3. 补充每天的注意事项,比如东郊记忆适合拍照的时间段、大熊猫基地避开人流的技巧;4. 预算里补充门票的具体金额(比如大熊猫基地门票、都江堰门票)。"
            },
            {
                "role": "assistant",
                "content": "已按你的要求完成最终版成都5天4晚小众旅行计划:\n### 核心信息\n预算:总计2980元(控制在3000元内),必花项2750元,可选项230元\n核心方向:小众景点+精细化时间安排+本地特色美食\n### 每日行程\n【Day1:文艺小众街区体验】\n- 时间轴:\n  9:00 成都双流机场落地→9:30-10:10 地铁10号线转2号线至东郊记忆站(交通20元)\n  10:20-12:00 东郊记忆(小众文创景点,11:00前光线适合拍照,无门票)\n  12:15-14:00 明婷小馆(曹家巷店,小众川菜,人均60元,推荐脑花豆腐、番茄牛尾)\n  14:20-17:00 望平街(文艺街区,逛方所书店、喝本地咖啡,无门票)\n  18:00-20:00 奎星楼街冒椒火辣串串(人均50元,避开17:30-19:00高峰)\n- 交通:地铁+步行(总计20元)\n- 门票:0元\n- 餐饮:110元(必花)+20元小吃(可选)\n- 住宿:200元(成华区经济型民宿,提前7天预订)\n- 预算小计:350元(必花)+20元(可选)\n- 注意事项:东郊记忆周末人稍多,建议工作日前往;望平街傍晚可看府南河夜景\n\n【Day2:熊猫+老城慢生活】\n- 时间轴:\n  7:30 起床→8:00-8:30 地铁3号线至熊猫大道站(交通5元)\n  8:40-10:30 大熊猫繁育研究基地(门票55元,8:30前入园避开人流,优先去月亮产房)\n  11:00-13:00 陈婆婆珍藏菜(建设巷店,人均45元,推荐婆婆兔、糯香排骨)\n  13:30-16:30 浣花溪公园(小众湿地公园,无门票,适合散步,杜甫草堂旁但人少)\n  17:00-19:00 饕林餐厅(武侯祠店,人均60元,推荐辣子鸡、手撕包菜)\n- 交通:地铁+打车(总计45元)\n- 门票:55元(必花)\n- 餐饮:105元(必花)\n- 住宿:200元\n- 预算小计:405元(必花)\n- 注意事项:熊猫基地早上9点后熊猫会睡觉,建议早到;浣花溪公园可自带零食野餐\n\n【Day3:都江堰小众深度游】\n- 时间轴:\n  7:00 起床→7:30-8:30 成都犀浦站乘高铁至都江堰站(票价15元,班次C6101)\n  8:40-11:30 都江堰景区(门票80元,走秦堰楼入口避开正门人流)\n  11:45-12:45 尤兔头(都江堰店,人均30元,推荐麻辣兔头、凉拌鸡)\n  13:00-15:30 都江堰胥家镇(小众村落,体验农家生活,无门票)\n  16:00-17:30 返程成都(高铁15元,班次C6128)\n- 交通:高铁30元+景区观光车15元+打车20元(总计65元)\n- 门票:80元(必花)\n- 餐饮:30元(必花)+20元农家小吃(可选)\n- 住宿:200元\n- 预算小计:375元(必花)+20元(可选)\n- 注意事项:都江堰景区建议请本地讲解(50元可选),更易理解水利工程原理\n\n【Day4:安仁古镇人文体验】\n- 时间轴:\n  8:00 起床→8:30-10:00 成都茶店子客运站乘大巴至安仁古镇(票价25元,班次8:40)\n  10:10-12:00 安仁古镇老街(无门票,逛老式公馆、文创小店)\n  12:10-13:10 游血旺(安仁店,人均25元,推荐招牌血旺、肥肠)\n  13:20-15:50 刘氏庄园(门票40元,了解川西民居文化)\n  16:00-17:30 建川博物馆(可选,门票60元,小众红色文化展馆)\n  18:00-19:30 返程成都(大巴25元,班次18:10)\n  19:40-21:00 老黄记手撕烤兔(人均40元,可打包当伴手礼)\n- 交通:大巴50元+打车10元(总计60元)\n- 门票:40元(必花)+60元(可选)\n- 餐饮:65元(必花)\n- 住宿:200元\n- 预算小计:365元(必花)+60元(可选)\n- 注意事项:安仁古镇下午人少,适合拍照;建川博物馆较大,若时间紧可删减\n\n【Day5:文创园+返程】\n- 时间轴:\n  9:00-11:00 梵木创艺区(小众文创园,无门票,逛独立设计师店铺、看展)\n  11:15-12:15 老成都川菜馆(人均35元,推荐回锅肉、麻婆豆腐)\n  12:30 前往机场/火车站(根据返程时间调整,交通30元)\n- 交通:地铁5号线+打车(总计30元)\n- 门票:0元\n- 餐饮:35元(必花)\n- 预算小计:65元(必花)\n- 注意事项:梵木创艺区周一部分店铺休息,建议提前确认;返程预留1.5小时以上缓冲时间\n\n### 总预算明细\n必花项:350+405+375+365+65=1560元\n可选项:20+20+60=100元\n住宿总计:200×4=800元\n交通总计:20+45+65+60+30=220元\n餐饮总计:110+105+30+65+35=345元\n门票总计:55+80+40=175元\n剩余预算:3000-1560-100=1340元(可用于特色体验、伴手礼等)"
            }
        ],
        "async_mode": "sync",
        "mode": "fine",
        "info": {"sbbbbb": "asdsdadsad", "bhjjjjjjjjjjj": "uuueueueueueueue"},
        "session_id": "1234567890",
    }
    
    # 设置请求头
    headers = {
        'Accept': 'application/json',
        'Content-Type': 'application/json',
    }
    
    # 发送请求
    # url = "http://0.0.0.0:8001"
    
    try:
        add_url = url + "/product/add"
        response = requests.post(add_url, headers=headers, json=payload, timeout=120)
        print("=== 添加Skill Memory响应 ===")
        print(json.dumps(response.json(), indent=2, ensure_ascii=False))
    except Exception as e:
        print(f"添加请求失败: {str(e)}")

    # 搜索Skill Memory请求
    search_payload = {
        "user_id": user_id,
        "query": "如何制定旅行计划",
        "top_k": 5,
        "memory_type": "SkillMemory",
        "include_skill_memory": True,
    }
    
    try:
        search_url = url + "/product/search"
        search_response = requests.post(search_url, headers=headers, json=search_payload, timeout=60)
        print("=== 搜索Skill Memory响应 ===")
        print(json.dumps(search_response.json(), indent=2, ensure_ascii=False))
    except Exception as e:
        print(f"搜索请求失败: {str(e)}")
  • Unit Test
  • Test Script Or Test Steps (please provide)
  • Pipeline Automated API Test (please provide)

Checklist

  • I have performed a self-review of my own code | 我已自行检查了自己的代码
  • I have commented my code in hard-to-understand areas | 我已在难以理解的地方对代码进行了注释
  • I have added tests that prove my fix is effective or that my feature works | 我已添加测试以证明我的修复有效或功能正常
  • I have created related documentation issue/PR in MemOS-Docs (if applicable) | 我已在 MemOS-Docs 中创建了相关的文档 issue/PR(如果适用)
  • I have linked the issue to this PR (if applicable) | 我已将 issue 链接到此 PR(如果适用)
  • I have mentioned the person who will review this PR | 我已提及将审查此 PR 的人

Reviewer Checklist

@CaralHsi CaralHsi changed the title Feat: skill memory feat: skill memory Jan 28, 2026
@CaralHsi CaralHsi merged commit cd76b04 into MemTensor:dev-20260126-v2.0.4 Jan 28, 2026
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants