使用说明
救生员
一个间隔重复的个人知识系统,主要通过MCP与克劳德一起使用。
这是什么?
Lifelogger通过两个核心概念帮助您捕获和保留知识:
- 条目原始知识——事实、笔记、概念,任何你想记住的东西
- 卡片:用于间隔重复的抽认卡,可选择链接到条目
这个想法是使用Claude作为你的界面。聊天时,你可以让克劳德保存有趣的事实,制作抽认卡,并就你所学到的知识对你进行测验。Claude决定如何表达卡片以及何时创建卡片——MCP工具只处理数据库操作和调度。
与克劳德的对话示例
你我刚刚了解到,在地球历史上,大灭绝事件已经发生了5次,而我们现在可能是人类造成的第6次大灭绝。
克劳德:这是一个重要的事实。要我保存这个并创建一些抽认卡吗?
你是的,把它存起来做张卡
克劳德: [调用log_entry,然后调用create_card] 完成!我保存了标记为“科学”和“生态学”的条目,并创建了一张卡片:
- Q: “地球历史上发生过多少次大灭绝事件?”
- A: “5,目前可能由人类引起的第6起”
稍后:
你:问我一些问题
克劳德: [调用get_due_card] 这里有一个: 地球历史上发生过多少次大灭绝事件?
你5,我们在6号
克劳德:正确!那是什么感觉——容易、好、难,还是你忘了?
你:很好
克劳德: [通话记录_查看评分=2] 明白了。4天后你会再看到这张卡的。
MCP工具
| 工具 | 目的 |
|---|---|
log_entry |
保存知识(内容、标签) |
search_entries |
按文本/标签查找条目 |
create_card |
制作一张抽认卡(基本/可逆/完形填空) |
browse_cards |
列出/过滤现有卡片 |
get_due_cards |
获取到期待审核的卡片 |
record_review |
记录评级(0-3),更新时间表 |
卡片类型
- 基本的:单向Q→A
- 可逆的:创建两张卡(A→民宿→A)
- 完形填空:填写空白样式
评论评分
| 评级 | 含义 | 效果 |
|---|---|---|
| 0(再次) | 完全忘记 | 重置为1天 |
| 1(硬) | 几乎不记得 | 间隔×1.2 |
| 2(良好) | 努力记住 | 间隔×轻松系数 |
| 3(容易) | 完美回忆 | 间隔×容易系数×1.3 |
调度使用SM-2算法,与Anki基于的算法相同。
设置
1.安装
pip install -e .
2.数据库
设置PostgreSQL并配置连接:
cp .env.example .env
# Edit .env with your DATABASE_URL
运行迁移:
alembic upgrade head
3.配置Claude
添加到您的Claude桌面 claude_desktop_config.json:
{
"mcpServers": {
"lifelogger": {
"command": "python",
"args": ["-m", "lifelogger.mcp.server"],
"env": {
"DATABASE_URL": "postgresql://user:password@localhost:5432/lifelogger"
}
}
}
}
Web界面(可选)
还有一个React前端,用于在Claude之外浏览条目/卡片和进行评论。
# Terminal 1 - Backend
export DATABASE_URL="postgresql://..."
uvicorn lifelogger.api.main:app --port 8000
# Terminal 2 - Frontend
cd frontend && npm install && npm run dev
打开http://localhost:5173
技术栈
- Python 3.11+、FastAPI、SQLAlchemy、Alembic
- PostgreSQL
- MCP Python SDK
- React+Vite(前端)
项目结构
lifelogger/
├── alembic/ # Database migrations
├── frontend/ # React web UI
├── lifelogger/
│ ├── api/ # FastAPI REST API
│ ├── core/sm2.py # Spaced repetition algorithm
│ ├── db/ # SQLAlchemy models
│ └── mcp/server.py # MCP server
└── pyproject.toml