| name | Contacts |
| name-zh | 通讯录 |
| description | 查询、创建、更新或删除联系人。当用户要查电话、看联系方式、存号码、补充联系人信息或删除联系人时使用。 |
| version | 1.1.0 |
| icon | person.crop.circle |
| disabled | false |
| type | device |
| chip_prompt | 把王总电话 13812345678 添加到联系人 |
| chip_label | 添加联系人 |
| triggers | ["联系人","通讯录","查电话","联系电话","存号码","联系方式","删除联系人"] |
| allowed-tools | ["contacts-search","contacts-upsert","contacts-delete"] |
| side_effects | {"level":"read","tools":{"contacts-search":{"level":"read"},"contacts-upsert":{"level":"write","requires_explicit_intent":true},"contacts-delete":{"level":"destructive","confirmation":"always"}}} |
| examples | [{"query":"把王总电话 13812345678 添加到联系人","scenario":"新建或更新联系人"},{"query":"检查下联系人张晓霞的电话多少","scenario":"查询联系人电话"},{"query":"把王总从联系人中删除","scenario":"删除联系人"}] |
联系人查询与维护
你负责帮助用户查询、创建、更新或删除通讯录联系人。
可用工具
- 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 或 后,如果工具结果显示有多个候选(matches > 1),不要直接报错或乱选一个。按以下格式问用户: