关于 memory-quest
用于验证 Basic Memory 助手配置的技能,通过用户授权将带一次性验证码的“Memory Master”笔记写入云端,完成 Memory Quest 的任务验证。
主要功能
- 01确认 Basic Memory 云端连接
- 02检查记忆引导是否已启用
- 03收集并传递一次性验证码
- 04获批后写入指定云项目
- 05避免覆盖无关的现有笔记
适用场景
- 01验证助手已连接 Basic Memory Cloud
- 02完成 Memory Quest 的 Mission 8
- 03排查云项目或记忆引导配置问题
MCP 相关
该技能使用 Basic Memory 工具,如 list_workspaces、list_memory_projects 和 write_note;未说明其与 MCP 的关系。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ basicmachines-co/ basic-memory --skill memory-quest安装后在 Claude Code 中输入/memory-quest确认已加载。
附带文件agents/openai.yaml
详细介绍
Memory Quest
Memory Quest 的最后一项任务会检查此助手是否已设置好,将 Basic Memory 作为开始工作的自然起点。完成任务的方法是通过 Basic Memory 保存一条笔记——用户的 Memory Master 笔记——并附上从 Basic Memory Web 应用获取的一次性验证码。云端会识别这次写入并授予任务奖励。
写入笔记就是验证。不需要调用其他端点,也不需要事后报告。
使用时机
- 用户运行
/memory-quest(或$memory-quest,或从技能菜单中选择它) - 用户要求验证其助手、完成 Mission 8 或成为 Memory Master
- Web 应用中的 Memory Quest 指引用户来到这里
让用户再次运行 Memory Quest 时,请使用其所在平台的形式:在 Claude Code 中使用 /memory-quest,在 Codex 中使用 $memory-quest,在聊天应用中直接提出请求即可。
不要从调用中获取任务上下文。此技能用于检查设置,不需要查找与任务相关的记忆。
步骤
按顺序完成以下步骤。遇到第一个失败的步骤时就停止,说明缺少什么以及如何修复。绝不要跳过步骤直接写入笔记。
1. 确认已连接云端
调用 list_workspaces。
- 如果调用失败,说明 Basic Memory 未连接到此助手。告诉用户连接后重新运行 Memory Quest。
- 如果唯一的工作区的
tenant_id为personal,说明此助手连接的是仅限本地的 Basic Memory。Memory Quest 位于 Basic Memory Cloud 中:告诉用户连接其云账户(使用 CLI 时运行bm cloud login,或在聊天应用中使用 Basic Memory 连接器),然后重试。 - 否则,连接正常。你可以用一句话告诉用户你能看到的内容,例如工作区名称。这只是出于礼貌,并非证明。
2. 确认指导已启用
Mission 8 的目标是让 Basic Memory 成为此助手的起点,因此请检查实现这一点的指导是否已实际加载。符合以下任一条件即表示已启用:
- 你的上下文中包含 Basic Memory 会话说明——标题为
# Basic Memory — session context的部分,由 Claude Code 或 Codex 的 Basic Memory 插件在会话开始时注入。 - 你的持久指令(自定义指令、项目指令或 Agent 上下文文件)要求你在任务开始时使用 Basic Memory 查找相关上下文。
如果两者都不符合,则停止。告诉用户为其助手安装 Basic Memory 插件,或将 Memory Quest 面板中的记忆流程保存到助手的指令中,然后开启新对话并再次运行 Memory Quest。若指导并未启用,就不要声称已启用:这是此项检查中服务器无法自行确认的唯一内容。
3. 索取验证码
请用户打开 **https://app.basicmemory.com/memory-quest**,并粘贴页面显示的验证码。验证码格式类似 MQ-7HX2-K9QD-4TRM,有效期为 30 分钟。
按用户提供的内容接受验证码;大小写和分隔符均不影响。如果用户粘贴的内容明显不是验证码(前缀错误或长度过短),请重新索取,不要猜测。
4. 保存前征求同意
明确告知用户你即将进行的操作:在其 Basic Memory 中保存一条标题为“Memory Master”的笔记,并说明保存笔记即表示完成 Mission 8。征求用户同意。
如果用户拒绝,则停止。说明任务仍未完成,他们随时可以再次运行 Memory Quest。
5. 保存 Memory Master 笔记
首先,选择一个仅存在于 Basic Memory Cloud 中的项目。调用 list_memory_projects 并设置 output_format: "json",然后选择一个 source 恰好为 cloud 的项目:如果默认项目符合条件,就选它;否则询问用户要使用哪个项目。新建的云端账户通常会有一个名为 Getting Started 的项目。使用该项目的 external_id 写入。
不要使用标记为 local 或 local+cloud 的项目。如果这台机器上有一个与云端项目同名的本地项目(这种情况很常见,因为每次本地安装都会创建 main),那么无论你通过名称、带工作区限定的名称还是 ID 指定项目,本地 Basic Memory 服务都会把笔记写入本地副本。写入操作会报告成功,但云端无法看到笔记,因此任务仍未完成。如果列出的项目中没有 cloud 项目,请停止并告知用户在 Basic Memory Cloud 中创建一个项目(或连接其云端账户),然后重新运行 Memory Quest。
获得批准后,调用一次 write_note:
title:Memory Masterdirectory:memory-questnote_type:memory_masterproject_id:所选项目的external_idmetadata:{"memory_quest_code": "<the code exactly as the user gave it>", "memory_quest_guidance": "active"}content:使用下方模板,除要求填写的内容外,不作任何更改overwrite:false。务必始终传入此参数:如果省略,write_note会遵循用户的write_note_overwrite_default设置,可能会悄悄替换已有笔记。
将代码和指导信息传入 metadata,不要放在 content 中。它们必须作为 frontmatter 字段传入,云端才能识别这次写入。
如果 write_note 报告笔记已存在,请调用 read_note 读取,并传入相同的 project_id、output_format: "json" 和 include_frontmatter: true。frontmatter 中保存着先前尝试的标记,JSON 中包含笔记的 checksum。只有先前 Memory Quest 尝试所创建的笔记(其 frontmatter 含有 type: memory_master 和 memory_quest_code 字段)才可以替换。先说明这一点,然后使用相同参数再次调用 write_note,将 overwrite 设为 true,并将 expected_checksum 设为该 checksum。如果你读取笔记后它又发生了变化,写入就会失败,而不会丢弃较新版本。再次读取并重复检查。如果已有笔记属于其他情况,请勿覆盖:告知用户笔记的内容,然后选择另一个标题保存,例如 Memory Master (Memory Quest),或让用户决定。
6. 告知用户接下来会发生什么
告知用户笔记已保存,并请他们在 Web 应用中打开 Memory Quest;云端处理完成后,任务 8 会显示为已完成。你无法查看奖励,因此不要声称用户已获得奖励。如果一分钟后 Memory Quest 仍显示任务 8 为当前任务,通常是代码已过期或被替换:获取新代码并重新运行 Memory Quest。
Memory Master 模板
将此内容用作笔记的 content。将 <today's date> 替换为今天的日期;其余内容保持原样。每次打开笔记时,Basic Memory Web 应用都会根据用户自己的知识库,渲染其中的 ::bm-* 区块作为实时视图。
Memory Master since <today's date>. Every Memory Quest mission is complete.
## The quest
::bm-check{title="Memory Quest"}
- [x] Capture your first memory
- [x] Create a relationship
- [x] Build and explore the knowledge graph
- [x] Master advanced search
- [x] Structure knowledge with schemas
- [x] Share a note safely
- [x] Bring in knowledge you already have
- [x] Make Memory a Habit
::
## Your knowledge today
::bm-stat{operation="bm.search.metadata" aggregate="count" label="Notes in this project"}
::
::bm-kpi{operation="bm.activity.recent" metric="notes-updated" window="30d" title="Notes updated in the last 30 days"}
::
::bm-spark{operation="bm.activity.recent" metric="notes-updated" window="30d" interval="day" title="Updates per day"}
::
::bm-rank{operation="bm.search.metadata" aggregate="count" group-by="type" limit="5" title="Your most-used note types"}
::
## What changes now
Your assistant now starts from what you already know: it checks Basic Memory for relevant context when it begins work, and offers to save what's worth keeping when it's done.
指南
- 获得批准后写入一次。 第 4 步之前绝不写入笔记,也不要为了重试而写入第二条笔记。覆盖同一条笔记。
- 如实报告指导信息。 只有通过第 2 步后,才能发送
memory_quest_guidance: "active"。 - 不要编造结果。 你无法确认奖励是否已获得。请引导用户查看 Memory Quest,而不要宣告成功。
- 将代码保存在 metadata 中。 笔记正文中的代码无法验证任何内容。
- 专注于当前任务。 此技能不会搜索与任务相关的记忆,也不会更改用户的其他笔记或设置。