
mem0 pi-agent-plugin Tour 技能详解按类别浏览记忆库的完整流程与源码实现【免费下载链接】embedchainThe Memory Layer for AI Agents - Drop-in memory infrastructure for AI agents and apps. Context that persists. Built for production.项目地址: https://gitcode.com/GitHub_Trending/em/embedchain本文围绕 tour/SKILL.md 展开讲解 mem0 pi-agent-plugin 中 Memory Tour 技能如何把 Mem0 中存储的全部记忆按类别分组、逐条完整呈现给用户包括单项目全量 Tour、--all-projects跨项目 Tour、带查询词的 Search 模式三种运行方式的执行步骤与输出格式并结合 工具注册实现、范围隔离实现 和 格式化实现 的源码说明这些步骤在插件内部的真实调用链与边界保护机制。读完本文你可以复现 Tour 技能的完整流程、理解其背后mem0_memory工具get_all/search等 action的参数与过滤逻辑并知道如何把 Tour 与搜索、置顶、整合等技能组合成一套记忆管理工作流。什么是 Memory Tourtour 技能的 frontmatter 将其定位为Browses all stored memories grouped by category with full content display. Use when reviewing all memories, exploring stored knowledge, onboarding to a new session, or getting an overview of what the agent remembers.即它不是快速检索而是一次记忆库导览向用户展示 Mem0 里到底存了什么并按类别category分组、展示完整内容。技能文档给出了三个典型触发场景审查全部记忆reviewing all memories——检查记忆质量、发现过期或重复条目为/mem0-dream整合做铺垫探索已存知识exploring stored knowledge——了解 agent 记住了哪些偏好、目标、决策新会话上手onboarding to a new session——在一个新的 agent 会话中快速获得agent 记得什么的全景概览。tour 是 pi-agent-plugin README 所列 8 个技能之一与context-loader、remember、search、forget、dream、pin、status配套分别对应会话预取、存、查、删、整合、保护、诊断。其中 tour 的定位是完整导览明确比search技能更重search 输出紧凑单行结果tour 则展示完整记忆文本。三种运行模式一条命令的三条分支tour 技能的核心是一条/mem0-tour命令在不同参数形态下进入三种模式文档用两段If ... NOT present的兜底规则把分支顺序界定得很清楚参数形态模式底层动作输出特征/mem0-tour querySearch 模式mem0_memory的actionsearch、queryquery紧凑单行结果同 search 技能/mem0-tour --all-projectsCross-project 模式mem0_memory的actionget_all、scopeglobal不加项目过滤先按项目分组、再按类别分组/mem0-tour单项目全量 Tourmem0_memory的actionget_all按类别分组、完整文本分支优先级先看是否有查询词再看是否有--all-projects标志两者都没有才走单项目全量 Tour。下面逐条展开文档中的原始规则。单项目全量 Tour默认流程文档给出 5 个步骤此处完整继承并逐条讲解。Step 1: Fetch ALL memories—— 使用mem0_memory工具actionget_all。不带query也不限制条数把当前范围内的全部记忆拉回来。Step 2: Group by category—— 用每条记忆的categories字段分组并映射为展示名。文档给出的映射表如下未命中任何已知类别时一律显示为 OtherCategoryDisplay nameidentityIdentity BackgroundpreferencesPreferencesgoalsGoals AspirationsprojectsProjects InitiativesdecisionsDecisionstechnicalTechnical KnowledgerelationshipsPeople RelationshipsroutinesRoutines WorkflowslessonsLessons LearnedworkWork Professionalanything elseOther这 10 个类别并非技能层的临时约定而是插件在写入记忆时通过customCategories固化下来的分类体系。从源码看types.ts 定义了DEFAULT_CUSTOM_CATEGORIESidentity/preferences/goals/projects/decisions/technical/relationships/routines/lessons/work 各带一句描述工具注册处 在addaction 里把它作为customCategories传给mem0.add(...)因此 Mem0 服务端分类时就按这套体系打标tour 技能的分组表与之天然对齐。Step 3: Display results—— 分组按记忆数量降序排列每个分组按如下格式输出## display_name (count memories) - full_memory_content (date) - ...文档对展示深度有两条硬性要求每条记忆展示完整文本不得截断单个分组超过 10 条时只展示按时间倒序的前 10 条并标注... and N more。Step 4: Print totals—— 结尾输出总量统计N memories across M categoriesStep 5: Empty state—— 若一条记忆都没有输出固定文案No memories stored yet. Start a conversation — Mem0 captures learnings automatically, or use /mem0-remember to store something manually.空态文案同时点出了两条写入路径自动捕获对话中自动学习和手动/mem0-remember这与插件 README 中 Automatic memory capture — learns from every conversation 的特性一致。Cross-project 模式--all-projects文档对跨项目模式的规定如下共 4 条使用mem0_memory工具actionget_all、scopeglobal—— 不加项目过滤结果先按项目分组再在每个项目内按类别分组输出格式## project_1 (N memories) - current **Goals** — memory content ... ## project_2 (N memories) ... N memories across M projects当前项目的项目名标题后标注- current。这里的scopeglobal有明确的底层语义。从 scoping.ts 看三种 scope 对应的过滤条件为project默认{ user_id, app_id }—— 当前项目池session{ user_id, app_id, run_id }—— 仅当前会话global{ user_id, app_id: * }—— 该用户下所有项目的记忆app_id用通配符匹配。所以跨项目 Tour 之所以能按项目分组正是 global 过滤把用户所有app_id下的记忆都取回来再由 agent 依据每条记忆的归属项目做二次分组。而app_id的来源同样在源码中detectAppId()通过git rev-parse --show-toplevel取仓库根目录名失败时退回当前目录名这使 monorepo 内所有子目录共享同一记忆池——这也是项目这一分组维度的定义依据。Search 模式带查询词当/mem0-tour收到查询参数例如/mem0-tour cooking recipes时进入 Search 模式使用mem0_memory工具actionsearch、queryquery输出紧凑单行结果same format as the search skill——即 search/SKILL.md 定义的单行格式number. [category] content (date) [mem0:short_id]带mem0:id短引用无结果时输出No memories matching query.也就是说tour 带查询词时退化为一次检索而不是导览这让/mem0-tour一条命令覆盖了查一条到看全部的谱系。检索侧在插件里还有相关性阈值保护README 说明searchThreshold默认0.3可在配置文件中调整是/mem0-search、/mem0-forget、/mem0-pin的最低相似度分0–1相似度不够的记忆不算命中避免返回无关的最接近条目命令层搜索同时启用了rerank: true与topK: 10见 commands.ts 的searchMemories。底层机制mem0_memory工具与范围隔离tour 技能全部步骤建立在mem0_memory工具之上。该工具在 tools.ts 中注册支持 6 个 action参数为action、query?、content?、memory_id?、scope?action参数要求作用在 tour 相关流程中的位置get_all无 query列出当前 scope 内全部记忆Tour 的 Step 1单项目与跨项目searchquery必填语义检索tour 的 Search 模式addcontent必填存新记忆自动套用 10 个customCategories与 tour 配套的手动写入路径updatememory_idcontent按 ID 替换文本保留原 ID/mem0-pin的实现前置[PINNED]标记deletememory_id必填删除单条与/mem0-forget配套delete_all无清空当前 scope破坏性仅明确请求不在 tour 流程内get_all的返回经formatMemoryList格式化后输出details中附带totalCountsearch则附带matchCount并会记录一条含延迟与结果数的遥测事件captureToolEvent。几个与 tour 直接相关的工程细节输出保护工具输出统一经过truncateOutputtools.ts上限 200 行 / 50 KB超限截断并附[Output truncated: showing X of Y lines]提示。对记忆量大的用户全量 Tour 时 agent 拿到的记忆列表会在此处被限制这正是技能层要求分组超过 10 条只展示 top 10的合理性所在——两边共同防止输出爆炸。scope 缺省即项目级工具描述明确要求正常查询不要传scope省略时自动落到插件配置的defaultScope默认为project只有用户明确要求跨项目时才用global。tour 的跨项目模式则显式传scopeglobal与该约定一致。格式化函数formatting.ts 提供了formatAge1 小时显示Xm ago24 小时显示Xh ago否则Xd ago、formatMemoryCompact[cat] text (age) [mem0:id]单行格式、formatMemoryList编号列表与groupByCategory按categories[0]或uncategorized分组。tour 的(date)与 compact 引用都出自这里且 tests/formatting.test.ts 对分钟/小时/天三档时间格式与单行结构做了单元测试覆盖。实战使用方式tour 技能面向 Pi Agent 会话内的自然交互而命令层/mem0-tour [scope]提供等价的命令行入口commands.ts 中注册支持project/session/global三种 scope 参数。插件安装与配置方式README 原文pi install npm:mem0/pi-agent-pluginexport MEM0_API_KEYm0-your-key-here或写入~/.pi/agent/mem0-config.json环境变量MEM0_API_KEY、MEM0_USER_ID优先于配置文件{ apiKey: m0-your-key-here, userId: your-username, autoCapture: true, defaultScope: project, searchThreshold: 0.2, dream: { enabled: true, auto: true, minHours: 24, minSessions: 5, minMemories: 20 } }基于文档规则与源码事实一套典型工作流是新会话上手会话开始时先跑一次无参 tour确认 agent 的项目记忆全景此时若为空会看到提示你用对话或/mem0-remember开始积累定位细节对某条感兴趣的记忆改用/mem0-tour 关键词或直接按mem0:id引用去 search 技能做精确回看——search 技能支持 UUID 形态的直接 ID 查询跨项目盘点定期用/mem0-tour --all-projects检查同一用户在多个项目间的记忆分布注意标题上的- current标记区分当前项目整理闭环tour 发现的重复/过期条目交给/mem0-dream整合关键条目先/mem0-pin保护其底层即updateaction 加[PINNED]前缀tour 里可直接辨认。小结与延伸阅读tour 技能的价值在于把记忆存在与否的模糊感变成可审查的清单5 步单项目流程、4 条跨项目规则、3 条检索规则共同定义了/mem0-tour的完整行为而其每一步都可追溯到插件源码——get_all/search的 action 实现、project/session/global三级过滤、customCategories固化的 10 类分类体系、200 行/50KB 的输出保护构成了技能文档与实现之间的一致闭环。延伸阅读均为仓库内相对路径技能原文skills/tour/SKILL.md对照阅读 skills/search/SKILL.md插件总览安装、配置、命令表、目录结构integrations/pi-agent-plugin/README.md工具实现src/memory/tools.ts范围与过滤src/memory/scoping.ts命令实现8 个 slash 命令含/mem0-toursrc/commands.ts格式化与分组src/memory/formatting.ts测试tests/formatting.test.ts类别与配置类型定义src/types.ts【免费下载链接】embedchainThe Memory Layer for AI Agents - Drop-in memory infrastructure for AI agents and apps. Context that persists. Built for production.项目地址: https://gitcode.com/GitHub_Trending/em/embedchain创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考