抢订会议室 Skill
适用园区: 黄龙国际中心E座(campusId=202429)。会议时间由用户指令(或定时任务 prompt 顶部)提供。
输入参数
用户指令(或定时任务 prompt)需明确给出:
| 参数 | 必填 | 说明 |
|---|---|---|
DATE |
是 | 会议日期,格式 YYYY-MM-DD,如 2026-07-22 |
START_TIME |
是 | 开始时间,格式 YYYY-MM-DD HH:mm:ss,分钟必须为 :00 或 :30 |
END_TIME |
是 | 结束时间,同上;持续 >2 小时则必须填 applyTopic |
默认参数(可被指令覆盖)
campusId:202429(黄龙国际中心E座)capacityOptions:[12](5-8 人,实际容量 ≥6 人)applyTopic:定期团队会议- 通知工号:
077858
优先房间(优先级从高到低)
5001、5013、4005、4006、6001、6013
匹配规则: roomName 字符串包含对应房间号。
优先楼层(优先房间没抢到时使用)
5层 > 6层 > 4层 > 6层以上 > 其他
MCP 工具映射
直接使用以下 MCP 工具(无需 atc CLI):
| 操作 | MCP 工具名 |
|---|---|
| 查询空闲会议室 | mcp__mcp_ant_rpc_dcanttouch_adminservice__queryIdleMeetingRooms |
| 预订会议室 | mcp__mcp_ant_rpc_dcanttouch_adminservice__reserveMeetingRoom |
| 发钉钉通知 | mcp__skyway-connector-dingtalk__run |
执行策略(必须严格遵守)
第一步: 查询空闲会议室
调用 mcp__mcp_ant_rpc_dcanttouch_adminservice__queryIdleMeetingRooms:
参数:
campusId: 202429
campus: "黄龙国际中心E座"
applyDate: "<DATE>"
startTime: "<START_TIME>"
endTime: "<END_TIME>"
capacityOptions: [12]
返回结果分两类:
- 空闲可预订: 部分会议室立即可预订,进入第二步。
- 不可预订但已开放预订时间: 部分会议室返回了"开放预订时间"字段(如
openTime/releaseTime,字段名以实际返回为准)。记录这些房间与其开放时刻,进入"等待轮询"分支:- 当前时刻距开放时刻 > 60 秒: 每 60 秒轮询一次。
- 当前时刻距开放时刻 ≤ 60 秒: 提高频率至每 5 秒轮询一次,在开放瞬间抢占。
- 先尝试抢空闲的优先房间,同时按上述频率轮询,在开放时刻到时重新执行第一步。
第二步: 匹配优先房间
从空闲可预订结果中,按优先级顺序 5001 → 5013 → 4005 → 4006 → 6001 → 6013 匹配 roomName 包含对应房间号的会议室。收集所有匹配到的房间的 roomId。
第三步: 并发预订(关键!)
必须以最大并发同时发起预订: 在同一条消息中并行调用多个 MCP 工具,每个调用预订一个匹配到的优先房间。严禁串行!
使用工具: mcp__mcp_ant_rpc_dcanttouch_adminservice__reserveMeetingRoom
参数:
roomId: <roomId>
startTime: "<START_TIME>"
endTime: "<END_TIME>"
applyTopic: "定期团队会议"
任一调用返回预订成功,立即停止其他并发调用,该房间预订成功,跳到第六步。
第四步: 优先房间都失败则抢优先楼层
如果所有优先房间都不可用或预订失败,从查询结果中按楼层优先级(5>6>4>6+>其他)选任意 ≥6 人容量的空闲会议室,同样并发预订多个(每层选 1-2 个候选,一并并发调用)。
第五步: 持续重试
预订全部失败时进入重试循环:
- 至少重试 5 轮,每轮重新执行第一步(避免用旧数据)。
- 重试间隔回退: 第 1-2 轮立即重试,第 3-5 轮间 60 秒。
- 重试到
START_TIME仍失败,放弃并跳到第六步报失败。
第六步: 汇报结果
无论成功或失败,通过钉钉向工号 077858 发送卡片通知。
成功通知:
✅ 会议室抢订成功
房间: <roomName> (<floor>F)
时间: <DATE> <START_TIME> ~ <END_TIME>
主题: 定期团队会议
失败通知:
❌ 会议室抢订失败
时间: <DATE> <START_TIME> ~ <END_TIME>
原因: <失败原因摘要>
重试轮数: <N>
发送方式(通过 mcp__skyway-connector-dingtalk__run):
args: ["message","send-card","--user-id","077858"]
cardParam: { "markdown": "<上面的通知文案>" }
硬规则
- 直接调用 MCP 工具: 不再使用
atc tool call CLI,直接用注入的 MCP 工具(如mcp__mcp_ant_rpc_dcanttouch_adminservice__queryIdleMeetingRooms)。 - 必须并行: 优先房间预订、优先楼层预订都要在一条消息中并行发起多个 MCP 工具调用。
- 每次重试前重新查询: 不要用旧数据重复预订同一房间,会被认定重复预订。
- 3 小时以上会议必须填
applyTopic: 默认主题已设为"定期团队会议",一般无需改。