Memory 使用食谱

这篇文档是一组"配方",给你几个我自己在用的 Memory 场景,每个都配一段最小可用代码。如果你还没搞懂 Memory 是什么,先看 Memory Tool 原理

场景 1:记住用户偏好

问题:每次打开新对话都要跟 Claude 重新说一遍"我用 Python 3.12、不用 pip 用 uv、缩进 4 格、喜欢 type hint"。

方案:一次性告诉 Claude 这些偏好,让它主动存进 Memory,下次自动生效。

from anthropic import Anthropic

client = Anthropic(
    base_url="https://api.hyper-ailab.com",
    api_key="sk-relay-xxx",
)

msg = client.messages.create(
    model="claude-opus-4-6",
    max_tokens=1024,
    tools=[{"type": "memory_20250818", "name": "memory"}],
    messages=[{
        "role": "user",
        "content": (
            "记住我的编码偏好,以后每次回答我的 Python 问题都按这些来:\n"
            "- Python 3.12+,用 uv 管依赖\n"
            "- 强制 type hint\n"
            "- 4 空格缩进,行宽 100\n"
            "- 优先用 pathlib 而不是 os.path\n"
        ),
    }],
)

Claude 会在回复里明确说"我已经把这些记到 /memories/preferences/coding.md 了",然后下次你开新对话问 Python 问题,它会先 view /memories/preferences/,自动应用这些偏好。

场景 2:跨会话项目状态

问题:一个长期项目你跟 Claude 搞了 3 个星期,每次新开对话都要从头解释"这个项目是什么、上次卡在哪一步、数据在哪里"。

方案:用 /memories/project-X/ 分组,把项目上下文结构化存起来。

msg = client.messages.create(
    model="claude-opus-4-6",
    max_tokens=2048,
    tools=[{"type": "memory_20250818", "name": "memory"}],
    messages=[{
        "role": "user",
        "content": (
            "项目 'moonshot-dashboard' 的上下文:\n"
            "- 技术栈:Next.js 14 + Supabase + Tailwind\n"
            "- 当前进度:首页 + login 完成,dashboard 页 skeleton 搭好但数据接线没做\n"
            "- 卡点:Supabase RLS policy 设置有问题,user_id 传递不进去\n"
            "- 文件位置:~/code/moonshot-dashboard,主要改 app/dashboard/page.tsx\n"
            "请把这些存到 /memories/projects/moonshot-dashboard/state.md,下次我提到这个项目直接 view 它。"
        ),
    }],
)

下次新开一个对话:

msg = client.messages.create(
    model="claude-opus-4-6",
    max_tokens=2048,
    tools=[{"type": "memory_20250818", "name": "memory"}],
    messages=[{
        "role": "user",
        "content": "继续搞 moonshot-dashboard 项目,今天我想修 Supabase RLS 的问题",
    }],
)

Claude 会先 view /memories/projects/moonshot-dashboard/state.md,然后直接基于完整上下文跟你讨论 RLS,不用重新解释。

这个模式在 Claude Code 里效果最好,因为它自带 tool loop,Memory 读写完全透明。

场景 3:长期学习笔记(second brain)

问题:你在学一个新技术(比如 Rust / 金融量化),希望每次跟 Claude 讨论的知识点都自动归档,形成可查询的笔记库。

方案:用 /memories/learning/<topic>/ 分目录,让 Claude 在每次回答技术问题后主动 append 笔记。

msg = client.messages.create(
    model="claude-opus-4-6",
    max_tokens=2048,
    tools=[{"type": "memory_20250818", "name": "memory"}],
    system=(
        "你在扮演我的学习助手。每当我问一个 Rust 相关的问题,回答完之后,"
        "把核心概念和示例代码用 `create` 或 `str_replace` 存到 "
        "`/memories/learning/rust/` 下,按主题分文件,文件名用 kebab-case。"
    ),
    messages=[{
        "role": "user",
        "content": "解释一下 Rust 的 ownership 和 borrowing 是怎么工作的",
    }],
)

连续使用几周后,你会在 /app/memories 看到一个完整的 learning/rust/ 目录,每个文件都是你真实问过的、被精炼过的知识点。这个库的价值随时间增长,而且永远是你的(可以一键导出 JSON)。

场景 4:多代理共享上下文

问题:你同时在用 Cursor 写代码、Claude Code 跑脚本、Chatbox 聊天,三个客户端之间没法共享"我是谁、我在干什么"。

方案:三个客户端都用同一个 API Key,它们会自动共享同一份 Memory —— 你在 Cursor 里让 Claude 记住的偏好,Chatbox 里立刻能用。

这不需要任何额外代码,只需要:

  1. /app/keys 生成一个 key
  2. Cursor / Claude Code / Chatbox 全都填这个 key
  3. 至少在一个客户端里使用 tools 让 Claude 主动触发 Memory(通常用 Claude Code 最方便,它默认带 tools)
  4. 其他客户端即使不带 tools,也能通过 streaming memory loop 在后台享受 Memory(详见 流式响应)

/try 沙盒是最快的体验路径

如果你只是想先感受一下 Memory 是什么感觉,不用写代码、不用注册:

  1. 访问 https://hyper-ailab.com/try
  2. 跟 Claude 聊几句,告诉它你的项目、技术栈、偏好
  3. 点页面上的 🔄 模拟下次访问 按钮
  4. 再问一个新问题,观察 Claude 如何自动引用之前存的内容
  5. 喜欢的话,点 🎁 一键带走到 API 账户,把 /try 里累积的 Memory 迁移到你的真实 API 账户

这是我测试 Memory 效果的标准 demo,花不了 5 分钟,比读文档直观。

注意事项

存储位置:Memory 存在我们的 PostgreSQL(加密 at rest),不是存在 Anthropic,也不是存在你本地。这是 transparency 声明 —— 你知道数据在哪。

导出格式:导出 JSON 是我们的专属格式,结构干净但不兼容任何第三方(包括 claude.ai)。这是有意的:数据可携带,生态不兼容是自然事实。你可以自己写几十行 Python 把它转成你想要的格式。

quota 上限:标准版 50MB,Pro 版 500MB。一般人用半年以上才撑到 50MB,不用一开始就担心。详见 Memory 面板与配额

下一步