Install
Terminal · npx$
npx skills add https://github.com/inferen-sh/skills --skill infsh-cliWorks with Paperclip
How Wecomcli Contact fits into a Paperclip company.
Wecomcli Contact drops into any Paperclip agent that handles this kind of work. Assign it to a specialist inside a pre-configured PaperclipOrg company and the skill becomes available on every heartbeat — no prompt engineering, no tool wiring.
S
SaaS FactoryPaired
Pre-configured AI company — 18 agents, 18 skills, one-time purchase.
$27$59
Explore packSource file
SKILL.md178 linesExpandCollapse
---name: wecomcli-contactdescription: 通讯录成员查询技能,获取当前用户可见范围内的通讯录成员,支持按姓名/别名本地筛选匹配。返回 userid、姓名和别名。⚠️ 仅返回当前用户有权限查看的成员,非全量成员。metadata: requires: bins: ["wecom-cli"] cliHelp: "wecom-cli contact --help"--- # 通讯录成员查询技能 > `wecom-cli` 是企业微信提供的命令行程序,所有操作通过执行 `wecom-cli` 命令完成。 获取当前用户可见范围内的通讯录成员,并在本地按姓名/别名进行筛选匹配。 ## 操作 ### 1. 获取全量通讯录成员 获取当前用户可见范围内的所有企业成员信息: **调用示例:** ```bashwecom-cli contact get_userlist '{}'``` **返回格式:** ```json{ "errcode": 0, "errmsg": "ok", "userlist": [ { "userid": "zhangsan", "name": "张三", "alias": "Sam" }, { "userid": "lisi", "name": "李四", "alias": "" } ]}``` **返回字段说明:** | 字段 | 类型 | 说明 ||------|------|------|| `errcode` | integer | 返回码,`0` 表示成功 || `errmsg` | string | 错误信息 || `userlist` | array | 用户列表 || `userlist[].userid` | string | 用户唯一 ID || `userlist[].name` | string | 用户姓名 || `userlist[].alias` | string | 用户别名,可能为空 | --- ### 2. 按姓名/别名搜索人员 `get_userlist` 返回全量成员后,在本地对结果进行筛选匹配: - **精确匹配**:`name` 或 `alias` 与关键词完全一致,直接使用- **模糊匹配**:`name` 或 `alias` 包含关键词,返回所有匹配结果- **无结果**:告知用户未找到对应人员 **搜索示例:** 用户问:"帮我找一下张三是谁?" 1. 调用 `get_userlist` 获取全量成员2. 在 `userlist` 中筛选 `name` 或 `alias` 包含"张三"的成员3. 返回匹配结果 --- ## 注意事项 - `get_userlist` 返回的是当前用户**可见范围内**的成员,需经过可见性规则过滤,不一定是全公司所有人员;返回字段仅包含 `userid`、`name`(姓名)和 `alias`(别名)- ⚠️ **超过 10 人时接口将报错**:若 `userlist` 返回成员数量超过 10 人,视为异常,应立即停止处理并向用户说明: > 当前通讯录可见成员数量超过了本技能支持的上限(10 人)。 > 本技能仅适用于可见范围较小的场景,无法在大范围通讯录中使用。 > 建议缩小可见范围后重试,或通过其他方式查询目标人员。 - `userid` 是用户的唯一标识,在需要传递用户 ID 给其他接口时使用此字段- `alias` 字段可能为空字符串,搜索时需做空值判断- 若搜索结果有多个同名人员,需将所有候选人展示给用户选择,不得自行决定- 若 `errcode` 不为 `0`,说明接口调用失败,需告知用户错误信息(`errmsg`) --- ## 典型工作流 ### 工作流 1:查询人员信息 用户问:"帮我查一下 Sam 是谁?" 1. ```bashwecom-cli contact get_userlist '{}'``` 获取全量成员列表 2. 在结果中筛选 `alias` 为 `Sam` 或 `name` 包含 `Sam` 的成员3. 若找到唯一匹配,直接展示结果: ```📇 找到成员:- 姓名:张三- 别名:Sam- 用户ID:zhangsan``` 4. 若找到多个匹配,展示候选列表请用户确认: ```🔍 找到多个匹配成员,请确认您要查询的是哪位: 1. 张三(别名:Sam,ID:zhangsan)2. 张三丰(别名:Sam2,ID:zhangsan2) 请问您要查询的是哪一位?``` --- ### 工作流 2:为其他功能提供 userid 转换 用户问:"帮我发消息给张三" 1. ```bashwecom-cli contact get_userlist '{}'``` 获取全量成员 2. 筛选 `name` 为"张三"的成员,确认 `userid`3. 将 `userid` 传递给消息发送接口 --- ### 工作流 3:批量查询多个人员 用户问:"帮我查一下张三和李四分别是谁?" 1. ```bashwecom-cli contact get_userlist '{}'``` 获取全量成员列表 2. 分别筛选"张三"和"李四"的匹配结果3. 汇总后一并展示 > 注意:只需调用一次 `get_userlist`,在本地对结果进行多次筛选,避免重复调用接口。 --- ## 快速参考 ### 接口说明 | 接口 | 用途 | 输入 | 返回 ||------|------|------|------|| `get_userlist` | 获取可见范围内全量通讯录成员 | 无 | 用户列表(userid、name、alias) | ### 本地筛选策略 | 场景 | 策略 ||------|------|| 精确匹配(name 或 alias 完全一致) | 直接使用,无需用户确认 || 模糊匹配(name 或 alias 包含关键词),唯一结果 | 直接使用,向用户展示结果 || 模糊匹配,多个结果 | 展示候选列表,请用户选择 || 无匹配结果 | 告知用户未找到对应人员 |