Notion 导出
claude-mem 可以将每条新存储的观察复制到 Notion 数据库中,随捕获即时完成。导出默认关闭,在后台运行,并且绝不会拖慢或中断捕获:如果 Notion 宕机或配置错误,会记录错误,捕获继续进行。
设置¶
- 创建集成。 前往 notion.so/profile/integrations,选择 新建集成,选择你的工作区,然后复制 内部集成密钥(以
ntn_或secret_开头)。该集成需要 读取内容、更新内容 和 插入内容 权限。 - 创建数据库。 任何整页或内嵌数据库都可以;其标题列会成为观察标题。
- 与集成共享数据库。 打开数据库,点击 ••• → 连接 → 添加你的集成。如果没有这一步,Notion 会返回 404,导出会自行关闭。
- 复制数据库 ID。 它是数据库 URL(
https://www.notion.so/<workspace>/<id>?v=...)中的 32 字符 ID。你可以直接粘贴整个 URL;claude-mem 会从中提取 ID。 - 配置 claude-mem,在
~/.claude-mem/settings.json中设置,然后重启工作进程:
{
"CLAUDE_MEM_NOTION_ENABLED": "true",
"CLAUDE_MEM_NOTION_TOKEN": "ntn_...",
"CLAUDE_MEM_NOTION_DATABASE_ID": "0123456789abcdef0123456789abcdef"
}
每项设置也可以作为同名的环境变量提供。令牌会被 GET /api/settings 掩码处理,无法通过查看器设置。
| 设置 | 默认值 | 描述 |
|---|---|---|
CLAUDE_MEM_NOTION_ENABLED |
false |
打开导出功能 |
CLAUDE_MEM_NOTION_TOKEN |
— | 集成密钥 |
CLAUDE_MEM_NOTION_DATABASE_ID |
— | 数据库 ID(带连字符或不带均可)或数据库 URL |
CLAUDE_MEM_NOTION_AUTO_CREATE_PROPERTIES |
true |
在首次运行时添加下面任何缺失的属性 |
数据库结构¶
数据库现有的标题属性(无论其名称是什么,例如 Name)保存观察标题。如果标题列与以下某个属性同名,则标题优先,该属性不会被写入。启用自动创建后,导出器会在首次运行时添加其余属性;关闭时,你需要自行创建。名称和类型必须完全匹配;如果某个属性存在但类型不同,则跳过并记录日志。
| 属性 | 类型 | 内容 |
|---|---|---|
| (标题) | 标题 | 观察标题 |
Export Key |
文本 | <source id>:<observation id>,用于去重 |
Observation ID |
数字 | claude-mem 在此计算机上的观察 ID |
Type |
选择 | bugfix、feature、discovery、…… |
Project |
选择 | 项目名称 |
Subtitle |
文本 | 观察副标题 |
Concepts |
多选 | 概念标签 |
Files Read |
文本 | 每行一个路径 |
Files Modified |
文本 | 每行一个路径 |
Created |
日期 | 观察被存储的时间 |
Session ID |
文本 | claude-mem 记忆会话 ID |
页面正文将叙述内容以段落形式保存,然后是 事实 标题,每个事实以项目符号列出。较长的正文会按每次 100 个块发送,因此不会截断。
源 ID 是在导出首次运行时在 ~/.claude-mem/notion-export-source-id 中创建的随机 ID。观察 ID 是每台计算机本地的,因此源 ID 可防止两台导出到同一数据库的计算机覆盖彼此的页面。它不与任何账户绑定。
行为方式¶
- 只写入一次。 在创建页面之前,导出器会查找具有相同
Export Key的页面。如果找到,它会保持该页面不变,因此重试或重放的观察永远不会创建重复页面或重写第一份副本。如果没有Export Key属性,则只能创建。 - 非阻塞。 观察会进入内存队列(最多 1,000 条,按 Notion 的速率限制大约相当于 11 分钟的积压量;超过该数量后,最早的会被丢弃,每次丢弃都会记录为错误),并由一个后台循环按顺序发送。
- 速率受限。 请求之间至少间隔 334 毫秒(约每秒 3 次,即 Notion 文档中的限制)。
- 重试。 速率限制(429)、冲突(409)、服务器错误(5xx)、超时和网络故障会以指数退避(1 秒、2 秒、4 秒……上限 60 秒)重试最多 5 次。429 的
Retry-After标头会被遵循。其他错误(例如 400 验证错误)会跳过该观察。 - 故障关闭。 401、403 或 404 表示令牌错误或数据库未共享;导出器会记录一条错误,列出丢弃的观察,停止调用 Notion,直到设置更改,并在此期间为每个跳过的观察记录一条警告。
- 仅新观察。 从会话中捕获并通过
save_memory保存的观察会被导出。现有历史不会回填,批量记忆文件导入也不会导出。队列驻留在内存中,因此工作进程停止时仍在等待的项目不会被发送。
超过 Notion 单个属性允许长度(200,000 字符)的文本会在那里被截断,并给出警告。错误记录在工作进程日志(~/.claude-mem/logs/)中的 NOTION 组件下。令牌永远不会被记录。
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/claude-mem