89 lines
3.3 KiB
Markdown
89 lines
3.3 KiB
Markdown
# 模糊时间 / 无时间信息分支:suggestion + 批量查询
|
||
|
||
> 本文档处理**时间模糊**(如"明天下午""下周找个时间")或**完全无时间信息**的场景。核心动作是调用 `+suggestion` 产出候选时间块,再根据是否需要会议室决定后续步骤。
|
||
|
||
## 前置条件
|
||
|
||
进入此分支前,调度器([schedule-meeting.md](./lark-calendar-schedule-meeting.md))已完成:
|
||
- 任务类型判定(新建 / 编辑)
|
||
- 编辑流:目标 event_id 已定位
|
||
- 新建流:默认值已补全
|
||
- 时间已判定为**模糊**或**无时间信息**
|
||
|
||
## 流程
|
||
|
||
### 1. 调用 suggestion
|
||
|
||
详见 [`lark-calendar-suggestion.md`](./lark-calendar-suggestion.md)。
|
||
|
||
```bash
|
||
lark-cli calendar +suggestion \
|
||
--start "<range_start>" \
|
||
--end "<range_end>" \
|
||
--attendee-ids "<ids>" \
|
||
--duration-minutes <n> \
|
||
--event-rrule "<rrule>"
|
||
```
|
||
|
||
规则:
|
||
- 用户完全没有提供时间信息时,先默认一个合理区间(如"今天剩余时间"或"近两天")再调用
|
||
- 编辑流中,若用户说"改到明天下午""下周找个时间再约",基于用户期望的**新时间范围**调用,不要沿用旧时间
|
||
- **不要在用户完全没给时间时反问"你想约什么时候"** — 先补合理区间再进入 suggestion
|
||
|
||
### 2. 分支处理
|
||
|
||
#### 不需要会议室
|
||
|
||
获取多个推荐时间块后,直接向用户展示候选时间,用户确认后进入落地操作。
|
||
|
||
#### 需要会议室
|
||
|
||
获取候选时间块后,**不要急于让用户只选时间**。先将这些时间块一次性交给 `+room-find` 批量查询可用会议室,然后将【候选时间】与【对应的可用会议室列表】结构化展示,让用户一次性完成选择。
|
||
|
||
> **注意**:即使用户最初只说"查会议室"且未带时间,也必须强制走 suggestion → room-find 路径。
|
||
|
||
详见 [`lark-calendar-room-find.md`](./lark-calendar-room-find.md)。
|
||
|
||
### 3. 用户确认后
|
||
|
||
- 用户选中 `+suggestion` 返回的时间块后,**无需再次调用 `+freebusy`**,直接进入落地操作
|
||
- **BLOCKING REQUIREMENT**:必须先向用户展示选项并等待确认,禁止在未获用户确认时直接创建/更新日程
|
||
|
||
## 模糊语义消解与长期记忆
|
||
|
||
针对存在歧义的时间场景,严禁主观臆断。典型例子:
|
||
- "上班后" / "下班前"
|
||
- 未明确上下午的 12 小时制时间
|
||
|
||
处理规则:
|
||
- 主动澄清真实意图,不自行猜测
|
||
- 用户澄清后,将个性化定义沉淀为长期偏好
|
||
|
||
## 用户展示格式
|
||
|
||
向用户展示多个时间块及对应会议室时,**必须结构化分行排版**,严禁将时间与会议室放在同一行:
|
||
|
||
```text
|
||
## 2026-03-27 周五
|
||
|
||
[选项 1] 14:00 - 15:00(参会人均空闲)
|
||
可用会议室:
|
||
1. 学清嘉创大厦B座-F2-02🎦(7人)
|
||
2. 学清嘉创大厦B座-F2-05🎦(10人)
|
||
|
||
[选项 2] 16:00 - 17:00(参会人均空闲)
|
||
可用会议室:
|
||
1. 学清嘉创大厦B座-F3-01🎦(6人)
|
||
2. 学清嘉创大厦B座-F3-06🎦(8人)
|
||
|
||
💡 请回复您倾向的选项编号以及对应的会议室序号,我来为您完成预定。
|
||
```
|
||
|
||
## 落地
|
||
|
||
根据任务类型:
|
||
- 新建 → [`+create`](./lark-calendar-create.md)
|
||
- 编辑 → [`+update`](./lark-calendar-update.md)
|
||
|
||
落地规则详见 [schedule-meeting.md § 落地日程变更](./lark-calendar-schedule-meeting.md#落地日程变更)。
|