Skills contacts
通讯录查询与维护技能。用于查找联系人信息(open_id、chat_id、account_id 等)、记录新联系人、或查询历史沟通偏好。触发时机:(1) 需要 @某人或向某渠道发消息时 (2) 认识新联系人后需要录入通讯录时 (3) 查询某人的联系方式或交流偏好时 (4) 询问"谁知道xxx的飞书ID"或"怎么联系xxx"时。
install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/axelhu/openclaw-contacts" ~/.claude/skills/openclaw-skills-contacts && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/axelhu/openclaw-contacts" ~/.openclaw/skills/openclaw-skills-contacts && rm -rf "$T"
manifest:
skills/axelhu/openclaw-contacts/SKILL.mdsource content
Contacts Skill — 通讯录技能
记录联系人沟通方式与交流规范,让 Agent 每次联系人都能查表办事,不用靠猜。
核心原则
- 每个 Agent 自行维护自己的通讯录,不共享
- 脱敏信息:只记录沟通相关字段,不记录敏感个人信息
- YAML 格式:方便程序读取查询,不用正则匹配 Markdown
- 自动维护:认识新联系人后自然录入,不需要人工干预
- Skill 不含数据:实际联系人数据放在 Agent 的
下,Skill 仅描述格式与规范memory/contacts/
通讯录位置
memory/contacts/ ├── contacts.d/ # 联系人卡片目录 │ └── <contact_id>.yaml # 每个联系人一个 YAML 文件 ├── channels/ # 渠道最佳实践 │ └── feishu.md # 飞书交流规范 └── schema.md # 联系人数据 Schema 说明
联系人卡片格式
每个联系人在
contacts.d/ 下有一个 YAML 文件,文件名即 contact_id(内部唯一标识)。
必需字段
contact_id: "unique_id" # 内部唯一标识(如 mala, zero-producer) name: "通用名称" # 内部通用名字 channels: feishu: open_id: "ou_xxx" # 飞书 open_id(用于 @ 路由) nickname: "群名片" # 飞书群里的显示名 chat_id: "oc_xxx" # 所在群 chat_id account_id: "账号名" # message 工具发送时用的 accountId
可选字段
internal: agent_id: "agent_name" # OpenClaw agent ID(如与 contact_id 不同) role: "职责" # 角色 project: "项目" # 所属项目 preferences: preferred: "feishu" # 首选渠道 language: "中文" formality: "随意" # 沟通风格 context: met_via: "认识途径" collaboration: "合作项目" history: "历史记录" notes: - "踩过的坑"
字段说明
| 字段 | 必须 | 说明 |
|---|---|---|
| ✅ | 内部唯一标识 |
| ✅ | 内部通用名称 |
| ✅ | 飞书 open_id,@ 时用 |
| ✅ | 飞书群里的显示名,@ 时填这个 |
| ✅ | 所在群 chat_id |
| ✅ | message 工具的 accountId 参数 |
| ❌ | 内部身份信息 |
| ❌ | 沟通偏好 |
查询方法
# 查单个联系人 cat memory/contacts/contacts.d/mala.yaml # 按名字搜索 grep -rl "name:" memory/contacts/contacts.d/ | xargs grep -l "小龙虾" # 或使用脚本(需要先将 skills/contacts/scripts/ 加入 PATH) list.sh # 列出所有联系人 search.sh <名字> # 按名字搜索 get.sh <contact_id> # 查看单个联系人详情
新增联系人流程
- 认识新联系人(通过对话、任务协作等)
- 在
下创建memory/contacts/contacts.d/<contact_id>.yaml - 填写沟通相关字段(类型、渠道地址、交流偏好)
- 如果是 Agent,记录其 Agent ID 和职责
维护规则
- 每次成功联系某人后,如发现新的沟通偏好,更新卡片
- 踩过的坑(如"此人不喜欢直接打电话")及时补充到
notes - 至少每月检查一次卡片,过时信息清理
已有联系人(示例)
| contact_id | 名字 | 飞书昵称 | 类型 |
|---|---|---|---|
| mala | 麻辣小龙虾 | 麻辣小龙虾 | Agent |
| main | 小爪子 | 龙虾养殖厂代表 | Agent |
| ... |