Contacts
查询、创建、更新或删除联系人。当用户要查电话、看联系方式、存号码、补充联系人信息或删除联系人时使用。
Install
npx skills add kellyvv/PhoneClaw --skill Contacts -g -a claude-code -y- Repository
- kellyvv/PhoneClaw1.3k
- Category
- Engineering
- Updated
- 3mo ago
- License
- Apache-2.0
- Context cost
- Lightabout 705 tokens
- Runs scripts
- No, instructions only
What it does
查询、创建、更新或删除联系人。当用户要查电话、看联系方式、存号码、补充联系人信息或删除联系人时使用。
联系人查询与维护
你负责帮助用户查询、创建、更新或删除通讯录联系人。
可用工具
- contacts-search: 查询联系人
query: 关键词,可用于模糊搜索name: 联系人姓名phone: 手机号email: 邮箱identifier: 联系人标识
- contacts-upsert: 创建或更新联系人
name: 必填,联系人姓名phone: 可选,手机号;如果提供,会优先按手机号查重company: 可选,公司email: 可选,邮箱notes: 可选,备注
- contacts-delete: 删除联系人
query: 关键词,可用于模糊搜索name: 联系人姓名phone: 手机号email: 邮箱identifier: 联系人标识
执行流程
删除类请求 (关键, 必须两步走):
- 用户说"删除 X"但只给了姓名(没给唯一标识如电话/邮箱)时:
- 第一步必须调用
contacts-search,以name为参数,看有几个匹配 - 不要直接调
contacts-delete, 姓名可能重名,直接删会误伤 - 不要只靠追问, 要先跑 search 看数据再说
- 第一步必须调用
- 用户给了唯一标识(电话 / 邮箱 / 姓名+公司)时,直接调
contacts-delete用精确参数 - search 结果 ≥ 2 时按 "多轮澄清处理" 节问用户选哪个, 拿到答案后再调
contacts-delete - search 结果 = 1 时直接调
contacts-delete用该条的电话精确定位
其他类型:
- 查询电话、邮箱、联系方式: 调用
contacts-search - 保存、添加或更新联系人: 调用
contacts-upsert - 查询时优先提取
name,提取不到再用query - 保存或更新时提取姓名、手机号、公司、邮箱、备注
- 如果缺少保存联系人所需的
name,先简短追问 - 工具成功后,直接用中文给出简洁结果
完成后回复
- 查询: 只说查到的联系人信息, 不要提工具名、JSON 或内部步骤
- 新建/更新: 简短确认 "已保存联系人 X。"
- 删除: 简短确认 "已删除联系人 X。"
- 没找到或需要用户选择时, 用一句自然中文说明下一步
多轮澄清处理
找到多个匹配时
调用 contacts-search 或 contacts-delete 后,如果工具结果显示有多个候选(matches > 1),不要直接报错或乱选一个。按以下格式问用户:
找到多个 [name]: (1) [phone1] · [extra info] (2) [phone2] · [extra info]
要操作哪一个?回复编号、电话号码后几位、邮箱或联系人标识。暂不支持批量删除。
把这些候选信息保留在你的回答里,下一轮用户回应时你需要参考。
用户回答澄清后(关键)
如果上一轮你刚问过用户"要操作哪一个",当前用户消息就是答案。不要再问一次,按答案语义解析后重新调用同一个工具:
| 用户说什么 | 含义 | 怎么调 |
|---|---|---|
完整电话 15212345678 | 精确指定 | 用 phone 参数加完整号码 |
尾号 5678 / "尾号 5678" | 模糊定位 | 用 query 参数加尾号 |
编号 1 / (1) / "第一个" | 选候选列表第 N 个 | 取上一轮列出的第 N 个的电话作为 phone |
| "全部" / "都删" / "两个都" / "一起删" | 用户想批量删除候选 | 当前没有确认门, 不要调用删除工具;请用户提供编号、电话、邮箱或 identifier 精确到单个联系人 |
| 其他信息 (公司 / 备注 / 关系等) | tool 不支持按这些字段精确匹配 | 追问用户提供电话号或编号, 不要把这些信息当 tool 参数传 |
重要, 暂不支持批量删除:
