维护、记忆、提醒你的社交关系。用于:(1) 记录和累积人物肖像(性别、出生年/日、家庭地址、手机、一起做过的事等), (2) 记录未来的约会、纪念日、生日并设置分级提醒,(3) 归档过去共同经历(约会、吃饭、游玩等), 以便后续查询某人时能回溯。
数据来源:ClawHub。 在 ClawSkills 查看
选择你使用的 Agent
方法一:命令行安装(推荐)
推荐(无需提前安装 clawhub)
npx clawhub@latest --dir ~/.claude/skills install relation-keeper或使用 clawhub CLI(需提前安装)
clawhub --dir ~/.claude/skills install relation-keeper⚠️ 需要 Node.js 18+,没有 Node?请使用下方方法二直接下载 ZIP。 安装 Node.js →
方法二:手动下载安装(无需 Node)
下载 ZIP,解压后将文件夹放到以下路径,重启 Agent 即可:
安装路径
~/.claude/skills/relation-keeper/💡解压后将文件夹放到上方路径,重启 Agent 即可生效
--- name: relation-keeper description: | 维护、记忆、提醒你的社交关系。用于:(1) 记录和累积人物肖像(性别、出生年/日、家庭地址、手机、一起做过的事等), (2) 记录未来的约会、纪念日、生日并设置分级提醒,(3) 归档过去共同经历(约会、吃饭、游玩等), 以便后续查询某人时能回溯。 metadata: openclaw: slug: relation-keeper emoji: "👥" requires: {} install: - id: "setup-cron" kind: "run" label: "配置提醒扫描定时任务" command: "node scripts/install.js" ---
维护你的社交关系网络:肖像维护、未来提醒、过去归档。
---
数据存储在 $RELATION_KEEPER_DATA 指向的目录;未设置时使用当前 skill 目录下的 data/ 文件夹。
portraits.json{
"people": {
"张三": {
"name": "张三",
"aliases": ["老张"],
"gender": "男",
"birthday": "03-15",
"birthYear": 1990,
"birthDate": "1990-03-15",
"address": "北京市朝阳区xx路xx号",
"phone": "+86 138****1234",
"notes": "大学同学,做金融",
"updatedAt": "2026-02-05T10:00:00Z",
"facts": [
{ "key": "喜好", "value": "喜欢钓鱼", "source": "2026-01-20 聊天", "at": "2026-01-20" },
{ "key": "职位", "value": "某银行经理", "source": "2026-01-20", "at": "2026-01-20" }
]
}
}
}
MM-DD 格式,用于周年提醒。"1990"、"1990-03"、"1990-03-15"。facts 为键值对列表,可按 key 去重或追加(同一 key 保留最新一条)。past_events.json{
"events": [
{
"id": "evt-001",
"personIds": ["张三", "李四"],
"type": "吃饭",
"date": "2026-01-18",
"summary": "和张三、李四在海底捞聚餐",
"details": "讨论创业想法",
"createdAt": "2026-02-05T10:00:00Z"
}
]
}
type:吃饭、约会、游玩、聚会、会议等。personIds 过滤并返回相关 past_events。future_events.json{
"events": [
{
"id": "fevt-001",
"personIds": ["张三"],
"type": "生日",
"date": "2026-03-15",
"time": null,
"summary": "张三生日",
"reminderRule": "birthday",
"createdAt": "2026-02-05T10:00:00Z"
},
{
"id": "fevt-002",
"personIds": ["李四"],
"type": "约会",
"date": "2026-02-10",
"time": "18:30",
"summary": "和李四晚餐",
"reminderRule": "appointment",
"createdAt": "2026-02-05T10:00:00Z"
}
]
}
reminderRule: - birthday:生日/纪念日规则 - appointment:约会规则
---
不创建一次性提醒,使用一个每 15 分钟运行的 Cron 调用 scan.js 扫描,如有需要提醒的内容则输出。
| 事件类型 | 提醒时机 | |----------|----------| | 生日 / 纪念日 | 7 天前、3 天前、当天(每年按 MM-DD 匹配) | | 约会 | 事件前 2 小时、事件当刻 |
安装本 skill 时,执行 npm install 会自动运行 postinstall 脚本,调用 node scripts/install.js 配置定时任务。用户无需手动执行 openclaw cron add。
若自动配置失败,可手动运行:
cd <skill 目录> && npm run install:cron
portraits.json(生日 MM-DD)与 future_events.jsonreminders_sent.json,避免重复仅需写入 future_events.json,无需创建任何 Cron。扫描任务会自动发现并提醒。
---
portraits.json:新建或合并到已有 portrait,追加 facts。past_events.json。reminderRule:生日/纪念日用 birthday,具体时间约会用 appointment。future_events.json 即可,扫描任务每 15 分钟会自动发现并提醒。past_events.json。personIds,便于按人查询。portraits.json 中 张三,并可选汇总 past_events 中与之相关的事件。past_events 中 personIds 包含张三的事件。future_events.json 未来 N 天内事件。---
在 shell 或 ~/.openclaw/.env 中:
# 数据目录(可选,未设置时使用 skill/data/)
export RELATION_KEEPER_DATA="$HOME/.openclaw/relation-keeper"
# 时区(用于计算提醒时间)
export RELATION_KEEPER_TZ="Asia/Shanghai"
# 提醒发送渠道(可选)
# 配置则直接推送到该渠道,如: export RELATION_KEEPER_CHANNEL="telegram:YOUR_CHAT_ID"
# 未配置则推送到当前聊天(main session)
export RELATION_KEEPER_CHANNEL=""
---
| 用户说 | 技能动作 | |--------|----------| | 张三生日 3 月 15 号,记一下 | 更新 portrait 生日,创建 future_event + birthday 提醒 | | 下周五晚 6 点半和李四吃饭 | 创建 appointment,设置 2h 前 + 当刻提醒 | | 上周和张三在海底捞吃过饭 | 写入 past_event,更新 portrait | | 张三喜欢钓鱼 | 更新 portrait.facts | | 张三的电话是 138xxxx1234 | 更新 portrait.phone | | 张三是男的 / 张三性别 | 更新 portrait.gender | | 张三 1990 年出生 | 更新 portrait.birthYear / birthDate | | 张三住朝阳区xx路 | 更新 portrait.address | | 我和张三做过什么 | 查 past_events,汇总输出 | | 张三是谁 / 张三的信息 | 输出 portrait + 相关 past_events 摘要 | | 近期有什么约会 / 生日 | 查 future_events 未来 7–14 天 |
---
从 skill 根目录(relation-keeper/)运行,需 Node.js 16+:
# 人物肖像
node scripts/portrait.js get 张三
node scripts/portrait.js upsert 张三 --birthday 03-15 --gender 男 --birthYear 1990 --address "北京市朝阳区xx路" --fact-key 喜好 --fact-value 钓鱼
# 事件
node scripts/events.js future-add --persons 张三 --type 生日 --date 2026-03-15 --summary "张三生日" --rule birthday
node scripts/events.js past-add --persons "张三,李四" --type 吃饭 --date 2026-01-18 --summary "海底捞聚餐"
# 扫描提醒(通常由 Cron 每 15 分钟调用,也可手动执行测试)
node scripts/scan.js
# 配置定时任务(安装时自动执行,也可手动运行)
npm run install:cron安装 relation-keeper 后,可以对 AI 说这些话来触发它
Help me get started with relation-keeper
Explains what relation-keeper does, walks through the setup, and runs a quick demo based on your current project
Use relation-keeper to maintain, remember, and remind you of your social relationships
Invokes relation-keeper with the right parameters and returns the result directly in the conversation
What can I do with relation-keeper in my general tools workflow?
Lists the top use cases for relation-keeper, with example commands for each scenario
将技能文件夹放到 ~/.claude/skills/relation-keeper/ 目录(个人级,所有项目可用),或 .claude/skills/relation-keeper/(项目级)。重启 AI 客户端后,用 /relation-keeper 主动调用,或让 AI 根据上下文自动发现并使用。
relation-keeper 支持 Claude、Cursor、OpenClaw,可与这些 AI 平台无缝集成,扩展其能力。
relation-keeper 可免费安装使用。请查阅仓库了解许可证信息。
维护、记忆、提醒你的社交关系。用于:(1) 记录和累积人物肖像(性别、出生年/日、家庭地址、手机、一起做过的事等), (2) 记录未来的约会、纪念日、生日并设置分级提醒,(3) 归档过去共同经历(约会、吃饭、游玩等), 以便后续查询某人时能回溯。
relation-keeper 属于「General Tools」分类,该分类的技能帮助 AI 智能体在此领域执行专业任务。
Automate my general tools tasks using relation-keeper
Identifies repetitive steps in your workflow and sets up relation-keeper to handle them automatically