mcpField
M
memory-quest

memory-quest

github.com/basicmachines-co生产力4.4k134 次安装今天更新
代码仓库

关于 memory-quest

用于验证 Basic Memory 助手配置的技能,通过用户授权将带一次性验证码的“Memory Master”笔记写入云端,完成 Memory Quest 的任务验证。

主要功能

  1. 01确认 Basic Memory 云端连接
  2. 02检查记忆引导是否已启用
  3. 03收集并传递一次性验证码
  4. 04获批后写入指定云项目
  5. 05避免覆盖无关的现有笔记

适用场景

  1. 01验证助手已连接 Basic Memory Cloud
  2. 02完成 Memory Quest 的 Mission 8
  3. 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 Master
  • directory:memory-quest
  • note_type:memory_master
  • project_id:所选项目的 external_id
  • metadata:{"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 中。 笔记正文中的代码无法验证任何内容。
  • 专注于当前任务。 此技能不会搜索与任务相关的记忆,也不会更改用户的其他笔记或设置。

评论

支持 Markdown