一句话起会 (One-Sentence Meeting)
概述
用户用一句话描述会议需求,Skill 自动完成三件事:
1. 解析 — 从自然语言中提取时间、主题、参与人
2. 建日历 — 生成 .ics 文件,双击导入任意日历应用(优先使用已连接平台 connector)
3. 出模板 — 生成预置「议题+决议+待办」结构的会议文档,省去手敲群公告
能力边界
能做什么 ✓
| 场景 | 说明 |
|---|---|
| 自然语言建会 | 支持中文口语化表达,如"定明天上午10点项目复盘会,拉上产品和研发" |
| 生成日历文件 | 输出标准 .ics 格式,兼容 Google Calendar / Outlook / Apple Calendar |
| 生成会议模板 | 输出 Markdown 格式的会议纪要模板(议题+决议+待办) |
| 时间模糊表达 | 支持"明天"、"后天"、"下周X"、"半小时后"、"傍晚"等常见说法 |
| 多人参与 | 参与人通过"和"、"、"、"、"等分隔,列表形式传入 |
不能做什么 ✗
| 场景 | 说明 | 替代方案 |
|---|---|---|
| 修改已有会议 | 不支持"把刚才那会改到下午2点" | 重新用一句话创建新会议,旧会议手动删除 |
| 周期会议 | 不支持"每周一上午9点站会" | 分解为多次单次创建 |
| 自动邀请参与人 | 不自动发邮件/消息通知参会人 | 生成会议模板后,手动复制内容发群公告或邮件 |
| 会议冲突检测 | 不检查你的日历是否已有冲突事件 | 导入 .ics 后,日历应用本身会提示冲突 |
| 批量创建 | 不支持"这周五场评审会一起定了" | 逐条创建,或提供清晰列表后手动拆分 |
| 多人编辑会议模板 | 生成的是本地文件,不涉及实时协作 | 可将 .md 内容粘贴到腾讯文档/飞书文档实现在线协作 |
多人会议说明
- 参与人提取:从"拉上A、B和C"中解析出的参与人仅写入 .ics 的描述字段和会议模板中,作为信息记录
- 不自动分配待办:生成的待办表格为空模板,负责人由用户会后手动填写
- 不区分必选/可选:所有提到的参与人一视同仁记录,如需区分请在输入中说明
触发条件
当用户输入包含以下模式时触发此技能:
- "定个会" / "约个会" / "起会" / "开个会"
- "安排会议" / "约个时间" / "定会议"
- "帮我定" + 时间描述
- "明天开会" / "下午开会" / "下周开会"
- "约大家" / "拉上XX一起开会"
典型输入示例:
- "定明天上午 10 点项目复盘会,拉上产品和研发"
- "下周三下午 3 点需求评审,叫上前端后端和设计"
- "周五 9 点半站会,全员参加"
- "约个后天下午的迭代回顾,拉上整个技术团队"
工作流程
Phase 1: 解析自然语言输入
从用户的一句话中提取以下结构化字段:
| 字段 | 提取内容 | 默认值 |
|---|---|---|
topic |
会议主题(如"项目复盘会"、"需求评审") | "未命名会议" |
datetime |
日期+时间(如"明天上午10点"→具体日期时间) | 提示用户补充 |
duration |
会议时长(如"半小时"、"1小时") | 60分钟 |
participants |
参与人员/团队(如"产品、研发") | "未指定" |
解析规则:
-
时间解析 — 将中文时间表达转为具体日期时间:
- "明天上午10点" → 当前日期+1天,10:00
- "后天下午3点" → 当前日期+2天,15:00
- "下周三下午2点半" → 计算下一个周三,14:30
- "今天下午5点" → 当天 17:00
- "周五上午9点" → 本周或下周最近的周五,09:00
- "礼拜五下午开会" → 同上(支持"礼拜X"口语)
- 非标准时间词映射:早晨=08:00、上午=10:00、中午=12:00、下午=15:00、傍晚=18:00、晚上=20:00
- 使用当前系统时区(北京时间 UTC+8)
- 歧义规则:如果表达有两种理解(如"周五"),默认取最近的未来日期。在回复中标注"假设为本周五 X月X日",让用户可以纠正
- 无法解析时:暂停流程,明确询问用户,不要用默认值 -
主题提取 — 识别"会"字前的名词短语作为会议主题:
- "项目复盘会" → topic = "项目复盘"
- "需求评审" → topic = "需求评审"
- "站会" → topic = "每日站会"
- "约个会讨论上线方案" → topic = "上线方案讨论"
- 若无法提取,使用"未命名会议" -
参与人提取 — 识别参与关键词后的内容,支持的引导词:
- 标准:拉上、叫上、约上、拉
- 扩展:喊上、叫、带上、加上、需要XX参加、让XX也来、XX一起、把XX也叫上
- 分隔符:和、与、、(中文逗号)、、(顿号)、空格、/、\
- 示例:- "叫上前端后端和设计" → ["前端", "后端", "设计"]
- "喊上产品 运营/美术" → ["产品", "运营", "美术"]
- "需要前端参加" → ["前端"]
- "让产品也来" → ["产品"]
- "全员参加"、"所有人"、"大家" → ["全员"]
-
时长提取 — 识别时长描述:
- "开半小时" → 30 | "1小时" → 60 | "一个半小时" → 90 | "两小时" → 120
- 未指定 → 默认 60 分钟,在呈现时标注"默认时长"
Phase 1.5: 解析反馈与确认(强制性)
> 核心原则:不要猜,要确认。 以下规则为强制执行,不得跳过。
解析完成后、生成文件前,必须执行三件事:
1. 标注每个字段的置信度
| 置信度 | 标记 | 触发条件 | 行为 |
|---|---|---|---|
| ✅ 确定 | 无标记 | 用户明确说了(如"明天上午10点") | 直接使用 |
| ⚠️ 推断 | [推断] |
用了默认值或模糊映射(如"傍晚"→18:00、"站"→"每日站会") | 使用但标注"假设为...",给用户纠正机会 |
| ❓ 缺失 | [待确认] |
完全提取不到(如没提时间、没提参与人) | 暂停流程,明确询问用户 |
2. 呈现解析摘要让用户二次确认
生成文件之前,先以 Markdown 格式呈现所有解析结果,加上置信度标记:
📋 解析结果(请确认):
| 字段 | 解析值 | 置信度 |
|---------|-----------------|--------|
| 日期时间 | 7月22日 10:00 | ✅ |
| 会议主题 | 项目复盘 | ⚠️ 推断 [原输入"复盘会",去掉"会"字] |
| 参与人 | 产品、研发 | ✅ |
| 时长 | 60分钟 | ⚠️ 推断 [未指定,使用默认值] |
结尾加上引导语:"如果以上信息有误,请直接告诉我需要修改的地方,我再生成文件。"
3. 除非全部字段为 ✅,否则等待用户确认
- 全部 ✅ → 直接生成文件并呈现结果
- 存在 ⚠️ 或 ❓ → 先呈现解析摘要,等待用户回复"确认"或"没问题"后再生成文件
- 存在 ❓ → 必须明确提问(如"请问会议定在什么时间?"),不能跳过
歧义处理的「三步追问」模式
当输入有歧义时,不走"猜一个→用户不满意→重来"的循环,而是:
- 列出歧义点 → "周五"有歧义,可能是 7月24日(本周五)或 7月31日(下周五)
- 给出默认选择 + 编号选项 → "默认取7月24日。如果要改,回复 '1' 选7月24日,'2' 选7月31日"
- 短暂等待 → 用户不回复则使用默认值,但在结果中标注"假设为本周五"
禁止行为
- ❌ 不展示解析摘要就直接生成文件
- ❌ 对 ❓ 字段使用默认值蒙混
- ❌ 用户说"不对"时重新猜测——应该直接问"哪个字段需要改?改成什么?"
Phase 2: 生成日历 → 3步走
| 步骤 | 操作 | 输出 |
|---|---|---|
| 2.1 检测平台 | 按飞书 > 腾讯会议 > 企微 > 钉钉优先级检查 connector | 有 → 走 2.2;无 → 走 2.3 |
| 2.2 平台直连 | 调用 connector API 创建日历事件 + 获取入会链接 | .ics 可省略(平台已有) |
| 2.3 降级 .ics | 生成标准 RFC 5545 格式 .ics 文件,含 DTSTART/DTEND/SUMMARY/DESCRIPTION/LOCATION | 会议_{主题}_{日期}.ics,双击导入任意日历 |
Phase 3: 生成模板 → 读取+替换+保存
读取 assets/meeting-template.md,替换 7 个占位符({{会议主题}}、{{会议时间}}、{{会议时长}}、{{参会人员}}、{{入会链接}}、{{生成时间}}、{{议题标题}}),保存为 会议纪要_{主题}_{日期}.md。
其中 {{议题标题}} 根据主题智能生成(如"复盘"→"阶段回顾与问题分析"),完整映射见增值功能章节。
Phase 4: 汇总呈现 → 4 要素
| 要素 | 内容 |
|---|---|
| 会议摘要 | 时间 + 主题 + 参与人 + 时长(卡片式排版) |
| 日历文件 | .ics 路径 + "双击导入"说明 |
| 会议模板 | .md 路径 + "已预填议题/决议/待办"说明 |
| 平台提示 | 无 connector → 提示可连接以获得入会链接 |
故障排查指南
当执行过程出现异常时,按以下「症状 → 原因 → 解决」路径逐步诊断。核心原则:不要猜测,逐层验证。
问题一:时间解析失败或结果不对
| 表现 | 可能原因 | 排查步骤 | 解决方式 |
|---|---|---|---|
| 生成的日期不是用户想要的 | 模糊表达有多种理解(如"周五"未指定本周/下周) | 1. 列出当前日期和星期几 2. 列出"周五"在本周和下周分别是哪一天 3. 计算本周五是否已过 | 默认取最近的未来日期(本周五若已过则取下周)。若仍有歧义,直接在回复中列出两个候选日期请用户确认 |
| "傍晚"、"晚上"、"中午"等无法映射到具体时间 | 非标准时间词没有固定映射 | 1. 检查是否出现非标准时间词 2. 查找内置映射表 | 默认映射:早晨=08:00、上午=10:00、中午=12:00、下午=15:00、傍晚=18:00、晚上=20:00。若无匹配,回退到 10:00 并告知用户假定的时间 |
| 完全没有时间信息 | 用户只说了主题没提时间 | 警告:无法从输入中提取时间 | 暂停流程,明确询问:"请问会议定在什么时间?",不要用默认值蒙混 |
问题二:参与人提取为空
| 表现 | 可能原因 | 排查步骤 | 解决方式 |
|---|---|---|---|
| participants 列表为空或只有"未指定" | 输入中没有"拉上"/"叫上"/"约上"等关键词 | 1. 检查输入中是否包含参与人关键词 2. 检查是否使用非典型表达如"喊上"、"需要XX参加" | 尝试扩展匹配:也检测"喊上"、"需要XX参加"、"XX也来"等模式。若完全无匹配,在模板中填入"待补充"并提示用户 |
| 参与人识别不完整 | 分隔词不标准(如用空格、斜杠分隔) | 检查输入中除"和/与/、/,"外的分隔方式 | 将空格、"/"、"\"也视作人名分隔符。识别结果在呈现时列出给用户二次确认 |
问题三:Connector 连接异常
| 表现 | 可能原因 | 排查步骤 | 解决方式 |
|---|---|---|---|
| Connector 显示已连接但 API 调用失败 | Token 过期、权限不足、API 限流 | 1. 检查调用返回的 HTTP 状态码 2. 401/403 → 权限问题 3. 429 → 限流 4. 5xx → 服务端异常 | 自动降级到 .ics 方案,并在最终呈现时明确告知用户具体是哪个 connector 出了什么问题(如"飞书连接已过期,请重新授权")。不静默降级 |
| 多个 connector 都连了,不知用哪个 | 优先级设定不明 | 按 connectors.md 中定义的优先级顺序依次尝试 | 使用第一个可用的,并在结果中标注"已通过飞书创建" |
| 网络超时 | 平台 API 响应慢或不可达 | 1. 设置 15 秒超时 2. 超时后等待 3 秒重试一次 3. 仍超时则放弃 | 两次重试后仍超时,自动降级到 .ics 方案。告知用户"XX平台当前响应较慢,已改用本地日历文件" |
问题四:文件写入失败
| 表现 | 可能原因 | 排查步骤 | 解决方式 |
|---|---|---|---|
| .ics 或 .md 文件保存失败 | 工作目录无写入权限、磁盘满、路径含非法字符 | 1. 检查当前工作目录是否可写(尝试创建临时文件) 2. 检查磁盘剩余空间 3. 检查主题中是否有文件名非法字符(如 :, *, ?, <, >, \|, ") |
文件名中的非法字符替换为 -。若目录不可写,保存到系统临时目录并告知用户路径。若磁盘满,明确报错 |
| 文件名太长 | 会议主题本身过长 | 检查生成的文件名是否超过 255 字符 | 截断主题到前 20 个字符 + 日期,保证总文件名不超过 100 字符 |
问题五:.ics 文件无法导入日历
| 表现 | 可能原因 | 排查步骤 | 解决方式 |
|---|---|---|---|
| 双击 .ics 报格式错误 | DTSTART/DTEND 格式不符合 RFC 5545 | 1. 检查日期格式是否为 YYYYMMDDTHHmmSS(如 20260722T100000) 2. 检查是否遗漏了时区标识 3. 检查换行符是否为 CRLF(Windows) |
严格按照 RFC 5545 格式生成:DTSTART:20260722T020000Z(UTC 时间)或带时区的 DTSTART;TZID=Asia/Shanghai:20260722T100000 |
| 导入后时间不对 | 时区换算错误 | 检查 .ics 中的时间是否为 UTC+8 转 UTC | 在 DESCRIPTION 中也写入「北京时间 X月X日 HH:MM」,方便用户交叉验证 |
通用排查原则
当遇到上述未覆盖的错误时,遵循以下原则:
- 先定位阶段:出错发生在 Phase 1(解析)、Phase 2(日历)、Phase 3(模板)还是 Phase 4(呈现)?
- 逐层验证中间产物:Phase 1 出问题→打印解析的四个字段;Phase 2 出问题→检查 .ics 内容是否合法;Phase 3 出问题→检查模板文件是否可读
- 不要静默跳过:任何步骤失败都必须在最终回复中告知用户失败原因 + 已完成的部分 + 建议的补救措施
- 主动询问而非猜测:当输入有歧义时(如时间模糊到无法确定),列出候选让用户选,而不是自己猜一个
常见反模式(这些用法会出问题)
以下写法会导致解析失败或不完整,请引导用户避开:
反模式一:缺少时间
❌ "开个会"、"定项目复盘会"
问题:没有时间信息,无法确定会议何时举行
后果:必须以默认时间(当天 10:00)创建,大概率不对
→ 正确写法:加时间——"明天下午 3 点开项目复盘会"
反模式二:时间歧义
❌ "周五上午开会"
问题:本周五还是下周五?当天是周三时,本周五已过,歧义更严重
后果:默认取最近未来日期,用户可能发现日期不对
→ 正确写法:明确——"本周五上午开会" 或 "下周五上午开会"
反模式三:缺少参与人引导词
❌ "明天下午开会,前端后端设计"
问题:没有"拉上"/"叫上"等引导词,参与人提取不到
后果:参与人列为"待补充",用户需手动填写
→ 正确写法:加引导词——"明天下午开会,拉上前端后端和设计"
反模式四:周期会议
❌ "每周一上午 9 点站会"
问题:当前版本不支持周期会议,无法生成重复事件
后果:只会创建一次会议,不是每周重复
→ 替代方案:分次创建——每次说"定下周一上午 9 点站会"
反模式五:尝试修改会议
❌ "把刚才那个会改到下午 3 点"
问题:不支持修改已有的会议(.ics 是静态文件)
后果:命令无法执行,不知道怎么处理
→ 替代方案:重新创建——"定今天下午 3 点 XX 会,拉上 XX"
反模式六:参与人包含特殊字符
❌ "拉上张三(请假中)、李四@北京"
问题:括号、@等特殊字符会干扰人名提取
后果:人名被截断或带上括号内容
→ 正确写法:纯文本——"拉上张三、李四"
反模式七:跨天会议
❌ "明天晚上 10 点开始,开到凌晨"
问题:时长计算只支持"X小时"等明确表达,不支持"开到XX点"
后果:时长默认 60 分钟,明显不对
→ 正确写法:明确时长——"明天晚上 10 点开两小时的会"
FAQ(常见问题速查)
Q1: 生成的 .ics 文件在哪里?怎么导入?
文件保存在当前工作目录,文件名格式为 会议_{主题}_{日期}.ics。双击即可导入 Google Calendar / Outlook / Apple Calendar。也可以在日历应用中手动导入。
Q2: 为什么没有入会链接?
需要连接飞书 (feishu) 或腾讯会议 (tmeet) connector 才能自动生成入会链接。未连接时,会议模板中的链接字段显示"待定"。
Q3: 能不能自动发通知给参与人?
当前版本不支持。生成会议模板后,可手动复制内容到群公告或邮件。连接飞书/企业微信/钉钉 connector 后可解锁部分通知能力。
Q4: 我怎么知道时间被正确解析了?
最终呈现结果会明确显示解析后的日期、时间和星期几,建议每次都扫一眼确认。如果时间表达有歧义,会自动标注"假设为 XX",让你有机会纠正。
Q5: 参与人写错了怎么办?
生成的 .ics 和 .md 都是普通文本文件,直接打开编辑即可。或者在 WorkBuddy 中让我帮你修改。
Q6: 能不能一次创建多个会议?
不可以。每次输入一句话创建一个会议。如果需要批量,建议逐条输入或在 Excel 中整理后逐行处理。
Q7: 支持英文吗?
目前仅支持中文自然语言解析。英文输入(如"Schedule a meeting tomorrow at 10")会回退到默认解析。
Q8: 生成的 .ics 在手机上能用吗?
可以。.ics 是通用日历格式,iOS 和 Android 的日历应用都支持导入。
模板预览(生成出来的长什么样)
以输入 "定明天上午10点项目复盘会,拉上产品和研发" 为例,生成的 会议纪要_项目复盘_0722.md 内容如下:
# 项目复盘
> 📅 **时间:** 2026年07月22日 10:00(周三)
> ⏱️ **时长:** 60分钟
> 👥 **参会人:** 产品、研发
> 🔗 **入会链接:** 待定(可连接飞书/腾讯会议自动生成)
---
## 一、会议议题
### 议题一:阶段回顾与问题分析
- **背景:**
- **讨论要点:**
1.
2.
3.
### 议题二:(待补充)
- **背景:**
- **讨论要点:**
1.
2.
---
## 二、会议决议
| 序号 | 决议内容 | 提出人 | 状态 |
|------|---------|--------|------|
| 1 | | | ✅ 通过 / ⏳ 待确认 |
| 2 | | | |
| 3 | | | |
---
## 三、待办事项
| 序号 | 待办事项 | 负责人 | 截止时间 | 状态 |
|------|---------|--------|---------|------|
| 1 | | | | ⬜ 未开始 |
| 2 | | | | ⬜ 未开始 |
| 3 | | | | ⬜ 未开始 |
---
## 四、会议备忘
> 📝 会前准备:
> - 提前 5 分钟测试设备(麦克风、摄像头、屏幕共享)
> - 如有演示材料,提前打开对应文件
>
> 💡 会议纪律:
> - 准时开始,不等人
> - 议题逐个讨论,避免跑题
> - 每个议题限定时间,超时移入「停车场」后续讨论
> - 会后 24 小时内发出纪要
---
*本模板由「一句话起会」自动生成 · 2026-07-21 15:00*
> 💡 说明:模板中「议题一」标题根据主题智能生成("复盘"→"阶段回顾与问题分析"),待办和决议为空白表格,开会时边讨论边填写。生成的 .ics 日历文件包含相同的时间和参与人信息,双击即可导入日历应用。
增值功能(额外的贴心设计)
在完成基本的会议创建后,可根据上下文主动提供以下增值服务:
智能议题建议
根据会议主题自动生成第一条议题标题:
- "项目复盘" → "阶段回顾与问题分析"
- "需求评审" → "需求背景与范围确认"
- "迭代回顾" → "迭代回顾与改进建议"
- "上线" → "上线清单确认与风险评估"
- "站会" → "昨日进度与今日计划同步"
会议纪律提醒
在会议模板中自动附带会议备忘:
- 提前 5 分钟测试设备(麦克风、摄像头、屏幕共享)
- 准时开始,不等人
- 议题逐个讨论,避免跑题
- 会后 24 小时内发出纪要
智能时间建议
根据会议时间给出贴心提示:
- 傍晚 18:00 → "建议预留晚饭时间"
- 晚间 20:00+ → "晚间会议建议控制在 30 分钟内"
- 周五下午 → "周五会议建议控制在 30 分钟内(大家心已飞)"
- 早 9:00 前 → "早间会议,建议提前提醒参会人确认时间"
- 距离较远(7天+)→ "会议在 N 天后,建议会前 1 天发群提醒"
会后行动建议
完成会议模板后,可主动询问:
- "需要我把这个会议纪要发给参会人吗?"
- "需要在会前 1 天提醒你吗?"
- "要不要基于这个模板创建会后 Action Tracking?"
可运行脚本
scripts/meeting_builder.py
独立的命令行工具,可直接运行。适用于在终端中快速创建会议,或在自动化流程中调用。
用法:
# 基本用法
python meeting_builder.py "定明天上午10点项目复盘会,拉上产品和研发"
# 指定时长
python meeting_builder.py "下周三下午3点需求评审,叫上前端后端和设计" --duration 90
# 指定输出目录
python meeting_builder.py "周五站会" --output ./meetings/
# 查看示例
python meeting_builder.py --examples
# 查看反模式
python meeting_builder.py --badexamples
核心函数签名:
| 函数 | 输入 | 输出 |
|---|---|---|
parse_time(now, text) |
当前时间 + 输入文本 | (datetime, is_confident) |
parse_topic(text) |
输入文本 | 会议主题字符串 |
parse_participants(text) |
输入文本 | 参与人列表 |
parse_duration(text) |
输入文本 | 分钟数 |
generate_ics(topic, dt_start, dt_end, participants) |
会议结构化数据 | .ics 文件内容 |
generate_markdown(topic, dt_start, dt_end, duration, participants) |
会议结构化数据 | .md 文件内容 |
资源文件
scripts/meeting_builder.py
独立的 Python CLI 工具,可脱离 WorkBuddy Skill 直接运行。完成自然语言解析、.ics 生成、会议模板生成全流程。详见上方「可运行脚本」章节。
assets/meeting-template.md
会议纪要模板,包含「议题 → 决议 → 待办」三件套结构,并内置会议纪律备忘。WorkBuddy 模式下读取后替换 {{}} 占位符生成最终文档;CLI 模式下由 meeting_builder.py 直接调用 generate_markdown() 函数生成。
references/connectors.md
日历与会议平台 connector 接入指南,列出支持的平台及其能力、检测优先级和降级策略。当需要判断平台可用性或引导用户连接时参考此文件。