Wecomcli Meeting
企业微信会议管理。本技能负责『在线会议』——即含在线会议链接(含会议号/入会链接、可远程或视频参会)的会议的创建、查询、搜索、获取详情(含会议信息、纪要、待办)、查询会议转写原文(逐字发言记录)、更新、取消等全部操作;若用户要的是不含在线会议链接的『日程』(也涵盖纯线下面对面碰头),改用 wecomcli-calendar 技能。用户仅说'开会/约个会/某会/某会议'等、未明确要创建的是日程还是在线会议时,必须先读取本技能并按其中的消歧流程向用户追问确认后再处理,不可臆断直接创建。
- Skill ID
- wecomteam/wecom-cli/wecomcli-meeting
- Publisher
- wecomteam
- Repository
- wecom-cli
- Installs
- 151
- Files
- 7
- Synced
- Sep 16, 2026
Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.
wecomteam/wecom-cli/wecomcli-meetingInstalls these files- SKILL.md
- references/meeting-cancel.md
- references/meeting-create.md
- references/meeting-list.md
- references/meeting-original-get.md
- references/meeting-search.md
- references/meeting-update.md
What this skill tells the agent
企业微信会议技能
执行任何wecom-cli命令前,必须先读取并完成wecomcli-shared技能的公共前置检查。
本 Skill 负责企业微信会议的全生命周期管理,包括创建、查询、搜索、取消会议,以及会议状态和参会人的管理。
CRITICAL — 操作执行协议(每次操作必须遵循):
- 识别用户意图对应的操作类型(创建/查询/搜索/取消)
- 使用 Read 工具读取该操作的参考文档(见下方"操作参考"表)
- 严格按照参考文档中的工作流和命令格式执行
- 禁止跳过步骤 2 直接执行命令,即使你认为已经知道如何操作 — 原因:每个操作的参数格式、可选字段和边界行为都在参考文档中精确定义,凭记忆操作极易因参数错误导致调用失败
适用范围
适用
- 创建 / 新建在线会议(含会议号 / 入会链接,可远程 / 视频参会;含"线下开 + 外地同事远程接入"的会)
- 查看 / 浏览会议列表(最近有什么会、查某时间段的会议)
- 搜索会议(按关键词、会议名找某个会议)
- 查看会议详情(主题、时间、参会人等)
- 更新 / 修改会议(改时间、加减人;不支持更新周期会议)
- 取消会议(不支持取消周期会议)
不适用
- 创建、更新、取消周期 / 重复会议(每周 / 每月 / 每天重复)→ 均不支持,引导用户在企业微信客户端手动操作
- 回复 / 拒绝会议邀请(接受 / 拒绝 / 待定,含"拒绝这个会""不参加")→ 不支持,引导用户在企业微信客户端操作或私信发起人
易混淆场景路由
- 用户要的是不含在线会议链接的日程 / 纯线下面对面碰头(约日程、看今天有什么安排、安排纯线下会议)→ 改用
wecomcli-calendar - 查忙闲 / 约多人共同空闲 → 改用
wecomcli-calendar - 预订 / 查询公司会议室(订会议室、查会议室空不空、查办公楼)→ 会议室查询能力在
wecomcli-calendar技能;创建/更新会议时若要订/换会议室,读取 wecomcli-calendar 技能的会议室查询参考拿meeting_room_id传入本技能的 create/update - 用户仅说"开会 / 约个会 / 安排个会 / xx 会"等、未明确是日程还是在线会议(创建场景)→ 必须先用文字追问消歧(固定问题"需要创建日程还是会议?",请用户回复"日程 / 会议"),不得臆断直接创建
- 仅给了地点 / 会议室号(如"在 1605 开会""订个会议室开会")→ 不构成"明确是会议",仍需先用文字询问消歧,不能因带地点就跳过追问
- 查询场景的模糊表述("最近有什么会 / 有哪些会")→ 严禁追问,日程和会议都查并合并展示;仅当明确提到"在线会议 / 视频会议 / 入会链接 / 会议号 / 远程参会"时才只查会议
路由规则
| 用户意图 | 参考文档 |
|---|---|
| 新建会议、开个会、安排视频会议 | meeting-create |
| 查会议、我的会议列表、最近有什么会、查某个时间段的会议 | meeting-list |
| 搜索会议、找某个会议、找上周的周会 | meeting-search |
| 查看会议详情、看看参会人 | meeting-list |
| 修改会议、更新会议、改个时间、加人/移除人 | meeting-update |
| 取消会议、不开了 | meeting-cancel |
| 查看会议转写原文、逐字记录、把会上说的原话发我、要转写/转录文字、第几段转写 | meeting-original-get |
| 总结会议 / 要会议纪要 / 这个会讲了啥 / 看会议待办 / 总结待办 | 见下方核心场景「7. 会议总结(纪要/待办)」,编排 meeting-list 的 get 与 meeting-original-get |
| 约日程、日程安排、看看今天有什么安排 | wecomcli-calendar 技能 |
| 查忙闲、看看某人什么时候有空 | wecomcli-calendar 技能 |
| 安排纯线下面对面会议(不含在线会议链接) | wecomcli-calendar 技能 |
技能边界(会议 vs 日程)[CRITICAL]:本技能只创建含在线会议链接的会议(含会议号/入会链接,供远程/视频参会)。只要涉及在线会议链接就归本技能;不含在线会议链接的纯线下面对面会议属于日程,使用读取 wecomcli-calendar 技能。用户仅说"会议/会/开个会/约个会/安排个会/xx会/xx会议"等而未明确是日程还是会议时,必须先用文字追问,禁止默认直接创建会议: 问题与选项固定 [CRITICAL]:消歧确认时,问题与可选项都必须原文照用、严格禁止修改任何内容——问题固定为"需要创建日程还是会议?",可选项固定为日程/会议;不得改写问题措辞、增减或改写选项、翻译,或自行设计其他表述(如"在线会议 / 线上会议 / 视频会议 / 线下会议"等)。 用文字向用户提问:需要创建日程还是会议?(请回复:日程 / 会议)用户答「会议」→ 留在本技能创建会议;答「日程」→ 改用读取 wecomcli-calendar 技能创建日程。 此文字消歧仅用于「创建」;查询场景严格禁止追问——明确指向在线会议时只查会议,明确是日程/安排时只查日程,模糊表述("会 / xx会 / 最近有什么会"等)则日程和会议都查(见下文「查询消歧」)。 "会议""会""开会"等词本身不构成"明确" [CRITICAL]:这些词只表示要碰头议事,并未说明是日程还是会议。禁止仅因 query 里出现"会议"二字就默认归本技能(会议)创建,也禁止反向默认成日程——只要未明确,一律先用文字追问后再路由。只有出现"入会链接 / 会议号 / 视频会议 / 远程参会"等明确信号时才直接归会议。 同时支持线下与远程参会(如"线下开、外地同事远程接入")时,因含在线会议链接,归本技能创建——创建会议会同时生成对应日程,无需再去 wecomcli-calendar 技能另建日程。 仅有地点/会议室号(如"在 1605 开会""到 A 座会议室碰一下""订个会议室开会")不构成"明确是会议"——会议室里同样可能只是纯线下安排,是日程还是会议仍未知,必须先用文字询问消歧,不能因为带了地点就跳过追问。
list vs search 的选择原则:用户明确提到主题/名称关键词时用search(把关键词传入keywords);只按时间范围或泛浏览时用list,禁止把日期当keywords喂给search。两者有时可组合:先search 定位,再 list 确认时间段全貌。
查询消歧(模糊查询时日程 + 会议都查)[REQUIRED]:查询场景严格禁止用文字追问"是日程还是会议"——日程/会议消歧追问仅用于创建,查询时一律按以下规则直接处理、不追问。判定分两个独立维度,不要混为一谈: 维度一:查哪一边(日程 / 会议 / 两边都查) - 明确是在线会议 → 用户明确提到"在线会议 / 视频会议 / 入会链接 / 会议号 / 腾讯会议 / 远程参会"等在线会议专属特征时,留在本技能只查会议。 - 明确是日程 / 安排 → 用户说的明显是日程类内容(如"日程 / 安排 / 我的安排 / 日历",且不带在线会议特征)时,改用读取 wecomcli-calendar 技能只查日程。 - 模糊表述无法判定("会 / xx会 / xx会议 / 开会 / 最近有什么会 / 有哪些会 / 找下 xx会议"等,既可能是日程也可能是会议)→ 日程和会议都要查:既用本技能查会议,又读取 wecomcli-calendar 技能查日程。 维度二:每一边用 `search` 还是 `list`(与维度一独立,逐边各自判断) - 有主题/名称关键词(如"找下 xx会议""搜一下项目评审会议")→ 该边用search(把关键词传入keywords)。 - 只有时间/日期或泛浏览无关键词(如"最近有什么会""查一下明天的会议")→ 该边用list,禁止把日期当keywords喂给search。 - 即使"两边都查",也按本维度对每一边各自选择:带关键词时两边都用search,纯时间/泛浏览时两边都用list。 合并展示:两边都查时,合并结果后统一展示——按是否含在线会议链接分成「(会议)」(来自会议侧、或日程中meeting.meeting_link非空者)和「(日程)」(meeting_link为空的纯日程)两部分,同一场会议在两边都出现时按"主题 + 时间"去重只保留一条,末尾汇总"共 N 场,其中会议 X 场、日程 Y 场"。 - 本消歧仅针对查询;创建仍按下文"日程 vs 会议"用文字追问。
触发表达示例:
- "帮我开个会" / "安排一场会议" / "创建视频会议"
- "看看我的会议" / "查一下明天的会议" / "最近有什么会"
- "搜一下项目评审会议" / "找找上周的周会"
- "取消那个会议" / "这个会不开了"
- "帮我总结下 xx 会议" / "这个会讲了啥" / "把 xx 会议纪要发我" / "看下这个会的待办" / "按决策点整理下这个会"
前置条件
- 需要企业微信账号且已登录
- 取消/更新操作不预先按"是否本人创建"拦截,直接执行命令、由接口返回结果判断能否操作
- 参会人 userid(前缀为
wo)组装为[{"userid": "woxxx"}]对象数组格式传入;用户提供的是姓名时通过读取 wecomcli-contact 技能解析为 userid
核心场景
1. 新建会议
以当前用户为发起人创建一场新会议。
CRITICAL — 执行前必须先读取参考文档:收到创建会议意图后,第一步立即读取 `meeting-create`,按其中的完整工作流(参数补全 → 参会人解析 → 参会人忙闲检查 → 调用创建接口 → 获取详情展示)逐步执行,禁止在未读取参考文档的情况下直接发起任何操作。
参会人忙闲检查 [REQUIRED]:创建 / 更新会议时须在时间敲定前查忙闲,避免约到冲突时间。忙闲接口不在本技能,须读取 wecomcli-calendar 技能的 忙闲查询参考 调free list。创建会议时:查询对象 = 当前用户自己 + 其他内部参会人(wo前缀),只有自己也要查(避免约到自己已占用的时段);外部联系人(wm,忙闲不可查)不纳入查询对象、但不因此跳过整体检查;仅忙闲接口调用失败时降级放行。给已有会议加人、不改时间时:忙闲查询只针对新增参会人、且查会议原时段,禁止把当前用户(自己/创建者)和已有参会人纳入——他们正被本会议占用、必然显示"忙",纳入会误报冲突(详见 meeting-update 工作流)。
会议室预订 [REQUIRED]:用户创建会议时提到"订会议室 / 在 1605 开 / 找个会议室 / 某栋楼的会议室"等意图时,会议室查询能力不在本技能——须读取 wecomcli-calendar 技能的 会议室查询参考(buildings list+rooms search)查到真实会议室,拿meeting_room_id传入meeting create(占用)。禁止把会议室名仅写进location、禁止凭记忆/猜测编造meeting_room_id;先订房后建会,详见 meeting-create 步骤 4。
详见 meeting-create
2. 查询会议列表
CRITICAL — 执行前必须先读取参考文档:收到查询会议列表意图后,第一步立即读取 `meeting-list`,按其中的完整工作流(时间范围确定 → 拉取列表 → 批量获取详情 → 反查参会人姓名 → 合并输出)执行,禁止在未读取参考文档的情况下直接发起任何操作。
模糊查询必须日程 + 会议都查 [CRITICAL]:若本次是"会 / xx会 / xx会议 / 最近有什么会 / 有哪些会 / 找下 xx会议"等模糊查询(见上文「查询消歧」),无论会议列表是否查到结果,都必须同时读取 wecomcli-calendar 技能用相同时间范围拉日程list,把两边结果合并、按是否含在线会议链接分「(会议)」「(日程)」两部分汇总展示(同一场会议按主题 + 时间去重),禁止因会议已查到就跳过日程查询。仅当用户明确指向在线会议(入会链接 / 会议号 / 视频会议 / 远程参会等)时才只查会议;此时若查无,再兜底去日程查一把(命中则说明「这是一条日程」,两边都无再告知)。
详见 meeting-list
3. 搜索会议
根据关键词匹配会议主题或内容。有关键词时不执行特定追问操作补全时间,直接搜索。适合用户知道会议名称或关键词的场景。
模糊搜索必须日程 + 会议都搜 [CRITICAL]:若用户搜的是"会 / xx会 / xx会议"等模糊目标(非明确在线会议),无论会议是否搜到,都必须同时 读取 wecomcli-calendar 技能 用同样关键词搜日程,把两边结果合并分「(会议)」「(日程)」汇总展示;仅当明确指向在线会议时才只搜会议,此时搜不到再兜底去日程搜(命中则说明「这是一条日程」,两边都无再告知)。详见 meeting-search
4. 取消会议
CRITICAL — 执行前必须先读取参考文档:收到取消会议意图后,第一步立即读取 `meeting-cancel`,按其中的完整工作流(定位会议 → 状态检查 → 周期判断 → 执行取消 → 按返回结果判断)执行,禁止在未读取参考文档的情况下直接发起任何操作。
详见 meeting-cancel
5. 更新会议
CRITICAL — 执行前必须先读取参考文档:收到更新/修改会议意图后,第一步立即读取 `meeting-update`,按其中的完整工作流(定位会议 → 周期判断 → 参数收集 → 执行更新 → 按返回结果判断)执行,禁止在未读取参考文档的情况下直接发起任何操作。
详见 meeting-update
6. 查询会议转写原文
CRITICAL — 执行前必须先读取参考文档:收到查询会议转写原文("原话/逐字记录/完整对话/转写/转录/第几段"等)意图后,第一步立即读取 `meeting-original-get`,按其中的完整工作流(定位会议 → 确定段落 → 拉取转写 → 翻页拼接 → 原样输出)执行,禁止在未读取参考文档的情况下直接发起任何操作。
转写原文 ≠ 智能纪要 [CRITICAL]:转写原文(original_data,逐句原始发言)与meeting get里 AI 总结的notes(纪要/待办)是两种不同内容,禁止用纪要替代转写原文。`media_index` 默认不传——不传时接口返回全部段转写,仅当用户明确要"第 N 段"时才传N-1(从 0 开始),不主动追问要哪一段。has_more为 true 时必须翻页到底并按序拼接,输出时原样保留时间戳+说话人的逐行格式,不总结、不裁剪。
详见 meeting-original-get
7. 会议总结(纪要 / 待办)
用户要"总结某场会议"——包括要会议纪要、问"这个会讲了啥"、要会议待办、"总结下待办"等,本质是对已有的 meeting get(现成纪要/待办)与 meeting original get(转写原文)两个接口做编排,没有新接口。纪要与待办同属此逻辑,处理方式一致。
CRITICAL — 执行前必须先读取参考文档:先按 `meeting-list` 定位会议并(无自定义要求时)取 get;需回到原文加工时读取 `meeting-original-get`。
