酒店会议管家(HMS · Hotel Meeting Steward)v1.0.1
> Slogan:让酒店每一场会,从预约到落地全自动。
> 面向酒店行业的会议场景专属 AI 管家,提供自主分析与任务派发两大核心能力。
基于腾讯会议官方 Skill tmeet-skill 二创的会议闭环助手,并打通企业微信连接器(wecom-cli)。面向「要求员工使用 WorkBuddy 并授权连接腾讯会议 / 企业微信 / 腾讯文档」的企业场景,把一场酒店经营会议从头到尾跑通。
> 本 Skill 是二创(derivative):会议底座能力全部来自官方 tmeet 命令,企微侧文档/待办/通讯录来自 wecom-cli;本 Skill 在其上叠加「主动询问 → 预约 → 拉人 → 数据看板 → 纪要文档+待办」的闭环编排与酒店数据分析逻辑,不自造底层能力。
3 分钟判断你能用哪些功能
本 Skill 的能力分两层,安装前先确认:
| 层级 | 能力 | 前提 | 验证 |
|---|---|---|---|
| 零登录即用 | 经营数据看板、会前议程起草、纪要行动项抽取(样本模式) | 装好 Skill,无需任何连接器 | bash demo.sh / bash selftest.sh |
| 完整闭环 | 预约腾讯会议、拉企微人参会、纪要→企微文档+待办 | 需 tmeet-skill + tmeet / wecom / tencent-docs 连接器 |
tmeet auth status && wecom-cli --help |
完整依赖矩阵、连接器配置步骤、常见错误修复指引见 QUICKSTART.md。
安装与前置(他人部署必读)
本 Skill 对他人安装即用性做了最大化处理,但有三层前提需分清:
A. Python 依赖(支线需装,核心零依赖)
- 零依赖(标准库即可跑):步骤④纪要文档、步骤③看板核心(
gen_analysis.py)、议程起草(draft_agenda.py)、责任人映射(resolve_assignee.py)、smart-minutes 适配器(adapt_smart_minutes.py)。装好 Skill 即可直接运行。 - 需
openpyxl的两条支线:综合报表 xlsx 解析(gen_report.py/parse_report.py)、苹果 Numbers 导入(numbers_to_csv.py)。包内已带requirements.txt。 - Agent 调度这两条支线前,先执行
python -m pip install -r requirements.txt(仅首次);若仍报ModuleNotFoundError,提示用户按requirements.txt安装。 - 严禁在脚本里硬编码本机绝对路径(如
wecom-cli路径已改为「环境变量 → PATH → 兜底」动态探测,跨用户可用)。
B. 经营数据格式(看板 / 议程输入)
- 看板与议程吃 CSV,字段定义见
references/data-schema.md(第一节)。 - 列名支持中英文模糊匹配:
出租率/入住率、客房收入/房费收入、目标出租率、环比RevPAR、同比RevPAR等中文列名均可被自动识别,无需严格英文列名。规则与测试样本examples/sample_cn.csv见 data-schema 第八节。 - 数据严格取自源文件;缺失指标图表跳过并提示,严禁编造数字。
C. 外部连接器 / 技能 / 企业 OAuth(步骤①②④ 必需,部署前提)
- 需安装官方
tmeet-skill并连接tmeet/wecom/tencent-docs三个连接器(Skillrequires已声明,平台会提示补齐)。 - AI 智能纪要需企业开通腾讯会议
minutes:readOAuth(未开通走无纪要模板兜底)。 - 这些是企业部署环境前提,ZIP 安装包无法代装;详见下方「平台能力边界」。
核心闭环:4 步
① 预约会议 → ② 拉企微人入会 → ③ 经营数据看板 → ④ 纪要→企微文档+待办
(主动询问确认) (自动添加参会) (收入对比/预测/图) (自动分发+跟进)
> 写操作(建会 / 邀约 / 文档 / 待办)均遵循二次确认规则(见安全章)。
步骤 ① 主动询问并预约会议
逻辑:Agent 不被动等指令,而是主动收集开会三要素,展示给用户确认后再建会。
- 主动询问(自然语言):
- 会议内容/主题(如「金陵店 7 月经营分析会」)
- 会议时长(如 2 小时)→ 推算起止时间(默认下一个工作时段,可改)
- 参会人(姓名/角色,如「店总张总 + 收益经理李经理」) - 确认后建会:
bash export TMEET_AGENT=WorkBuddy # 首次/换模型必设 tmeet meeting create \ --subject "<会议主题>" \ --start "<ISO8601>" --end "<ISO8601>" \ --meeting-type 0 \ --auto-record-type cloud - 返回
meeting_code(会议号)+join_url(入会链接)给用户,不暴露meeting_id。 - 会前自动起草议程(自主分析反哺会议):若用户提供经营数据,调用
scripts/draft_agenda.py做异常检测(突变/预算缺口)并按会议类型套用 5 类议程模板,自动产出 Markdown 议程(数据看点 + 待决策议题 + 常规议程 + 上期未闭环项),可写入企微文档会前分发(见步骤③)。
> 企业若锁定自动录制,--auto-record-type cloud 可能不生效,需主持人入会手动开云录(不影响建会链路)。
步骤 ② 自动添加企微人员参会
逻辑:把用户给的企微参会人自动解析并加入腾讯会议受邀者。
- 识别人员(二选一,结果一致):
- 优先tmeet contact search --username "<姓名>"(腾讯会议通讯录已同步企微),取open_id;
- 交叉确认用wecom-cli contact get_userlist在企微通讯录按姓名/别名匹配userid(可见范围 ≤10 人)。 - 多命中必须让用户确认,严禁猜测。
- 加入会议:
bash tmeet meeting invitees-add --meeting-id "<meeting_id>" --invitees "<open_id1>,<open_id2>" - 返回「已邀请成员」名单(仅展示姓名,不展示 open_id)。
步骤 ③ 经营数据 HTML 看板
逻辑:用户上传经营数据文件 → 自动生成自包含 HTML 看板(内联 ECharts,断网可显示)。
支持数据源(均零登录可解析):
- 多店日度 Numbers / CSV → scripts/gen_analysis.py(四图 + 趋势预测 + 各店收入占比饼图)
- 单店月度综合报表 xlsx → scripts/parse_report.py → scripts/gen_report.py(核心指标柱状图对比 + 收支/渠道占比饼图 + 自由指令路由)
看板内容:
- 柱状图:各店出租率 / RevPAR / 收入对比;目标 vs 实际缺口
- 饼图:各店收入占比、渠道结构占比、收支结构占比
- 趋势预测:基于历史日度收入做线性外推,预测未来 7~14 天收入走势(折线 + 虚线预测段)
- 自由指令:用户可指定维度(如「只看渠道」「做会员占比」),无指令则默认全量 + 自动生成文字结论
# 例:日度多店看板(含趋势预测+饼图)
python scripts/gen_analysis.py --input data.csv --output report.html --title "致城经营看板"
# 例:综合报表看板(含饼图+柱状图,自由指令)
python scripts/gen_report.py --reports rep.json --instruction "渠道 收支" --output rep.html
看板可写入腾讯文档共享(tencent-docs / wecom-cli doc)供会前分发,亦可直接本地打开。
步骤 ④ 会后纪要 → 企微文档 + 待办任务
逻辑:会议结束后自动拉取纪要,拆成行动项,生成企微文档并派发企微待办(含 DDL 提醒)。
- 拉纪要(需企业开通
minutes:readOAuth 且录音够长),直接按会议号查:
bash tmeet record list --meeting-code "<会议号>" # 取 record_file_id tmeet record smart-minutes --record-file-id "<file_id>" --lang zh --format json-pretty > minutes_raw.json
> 真实返回形如{data:{meeting_minute:{minute:"<纯文本>",todo:""}}}:腾讯官方并不直接给结构化行动项(todo常为""),行动项 / 责任人 / DDL 全埋在minute纯文本里。本步骤已无需人工整理纪要 JSON。 - 格式适配 + 抽行动项(全自动,免手工):
bash # 方式一(推荐):适配器转标准 JSON,再生成文档 python scripts/adapt_smart_minutes.py minutes_raw.json -o minutes.json # 方式二:gen_minutes_doc.py 已内置解析,可直接吃原始 minutes_raw.json python scripts/gen_minutes_doc.py --minutes minutes_raw.json \ --meeting-code "<会议号>" --subject "<主题>" --participants "<姓名:角色,>" \ --out minutes.html
适配器把minute纯文本归一化为{data:{summary, action_items}},并用启发式("由X负责"、动作词)自动抽取行动项与责任人(无纪要时仍出可套用模板)。 - 责任人映射(部门/角色 → 企微人):纪要里的 owner 常是部门/角色(如"运营部""店总"),用
scripts/resolve_assignee.py --roster assets/roster.json加载花名册,把其解析成候选userid,供下方create_todo的follower_id;无法识别标注「待确认」需用户补全。花名册复制assets/roster.sample.json为assets/roster.json填入真实 userid(userid 取自wecom-cli contact get_userlist)。
bash python scripts/resolve_assignee.py --from-minutes minutes.json --roster assets/roster.json --out minutes_resolved.json python scripts/gen_minutes_doc.py --minutes minutes_resolved.json --roster assets/roster.json ... # 责任人列显示 姓名+userid - 生成企业微信文档:
bash wecom-cli doc create_doc '{"doc_type":3,"doc_name":"<会议主题>纪要"}' # 返回 docid+url wecom-cli doc edit_doc_content '{"docid":"<docid>","content":"<Markdown>","content_type":1}' - 派发企微待办(自动提醒):对每条行动项
bash wecom-cli todo create_todo '{"content":"<行动项>","follower_list":{"followers":[{"follower_id":"<userid>","follower_status":1}]},"end_time":"2026-08-01 18:00:00","remind_type_list":[7,3]}'
-follower_id来自步骤③解析出的userid,或wecom-cli todo search_todo_userid --keyword "<姓名>"、wecom-cli contact get_userlist
-remind_type_list:7=提前1天、3=提前15分钟(企微自动推送提醒) - 派发闭环(下次会议前回读 + 催办):本步骤只是"派",闭环靠
scripts/todo_followup.py:
bash # 仅只读,回读当前授权人企微待办,聚合逾期/未闭环项 python scripts/todo_followup.py --from-wecom --brief brief.md --nudge nudge.md # 或零登录用已落库列表: python scripts/todo_followup.py --sample todos.json ...
-brief.md(未闭环项)作为下次会议draft_agenda.py --carryover brief.md的第四节,实现"上次派的这次复盘"。
-nudge.md为逾期项催办草稿(实际发送为写操作,需用户确认,本脚本只产出草稿)。 - 向用户汇报:企微文档链接 + 各待办 ID + 提醒设置 + 未闭环带入下期说明。
> 此步骤全部基于 wecom-cli,在「员工均使用 WorkBuddy 且已连接企微」的企业部署下可端到端跑通。
安全与合规
- 写操作(建会 / 邀约增删 / 文档创建 / 待办创建)必须向用户展示详情并获明确确认后执行。
- 通讯录查询仅限邀约 / 待办指派场景,严禁通用人员窥探。
- 面向用户一律用
meeting_code+join_url,不暴露meeting_id/open_id/userid。 - 时间格式 ISO 8601 含时区:
2026-07-22T14:00:00+08:00。 - 数据看板数字严格取自源文件,趋势预测以外推标注「预测」字样,不伪造历史数据。
错误处理与引导策略
为提升可靠性(尤其针对未配置连接器的新手),Agent 执行外部命令前必须做前置检测与友好降级:
- 调用
tmeet/wecom-cli前:先检测命令是否可执行 / 连接器是否已授权。不可用时禁止直接抛出 traceback,应输出:
- 当前缺什么(如"未检测到 tmeet 连接器")
- 影响范围(如"步骤①②④无法执行,但步骤③看板仍可用")
- 下一步操作(如"请按 QUICKSTART.md 第 3 节连好连接器后重试") smart-minutes返回9042/500261/ 空纪要:自动走"无纪要模板"兜底,并明确告知用户原因与替代方案(口述行动项)。contact search多命中:列出候选让用户选,不猜测。- 看板数据缺失/列名不匹配:跳过该指标图表并提示用户核对
data-schema.md,不编造数字。 - 所有用户可见错误信息使用中文自然语言,避免原始代码堆栈;技术细节仅进入日志或
--verbose模式。
酒店场景案例(已跑通验证)
- 经营分析会(旗舰闭环):主动问清「周四14:00/2h/店总+收益经理」→ 建会 → 拉企微人 → 上传综合报表出看板 → 会后 smart-minutes → 企微文档 + 待办派给责任人。
- 周例会查缺补漏:主动索要上周数据对比预算 → 出缺口看板 → 会后行动项转企微待办。
- 业主沟通会:会后纪要拆「要点+决策+待办」→ 企微文档直达业主(转发链接)+ 责任人待办。
平台能力边界(实测 2026-07-19~21)
| 能力 | 状态 | 说明 |
|---|---|---|
| 预约腾讯会议 | ✅ | tmeet meeting create |
| 自动加企微人入会 | ✅ | tmeet contact search + invitees-add(open_id 来自同步企微的通讯录) |
| 经营数据看板 | ✅ | gen_analysis.py / gen_report.py(零登录) |
| 生成企业微信文档 | ✅ | wecom-cli doc create_doc + edit_doc_content |
| 派发企微待办+DDL提醒 | ✅ | wecom-cli todo create_todo(自动提醒) |
| AI 智能纪要 | ✅ | 企业开通 minutes:read OAuth 后 tmeet record smart-minutes 可正常返回(会议 553377305 实测通过);未开通时 9042/录音过短 500261 走无纪要模板兜底 |
| 会前自动起草议程 | ✅ | scripts/draft_agenda.py:异常检测(突变/预算缺口)+5类场景议程模板,零登录可跑 |
| 责任人/部门→企微人映射 | ✅ | scripts/resolve_assignee.py + 花名册:把"运营部/店总"解析为 userid(样例已测) |
| 派发闭环(未闭环回读+催办) | ✅ | scripts/todo_followup.py 只读回读企微待办,聚合逾期/未闭环→带入下期议程;催办仅出草稿待确认 |
| 会前文档上传至会议 | ⚠️ | tmeet CLI 未暴露,由客户端原生上传 |
> 发布演示:上述 ✅ 项均为已实测可用能力,可真实演示;⚠️ 项标注平台前置条件,不夸大。
常见问题与修复指引(用户版)
| 现象 | 最可能原因 | 下一步操作 |
|---|---|---|
AI 不会建会 / tmeet auth status 失败 |
未连 tmeet 或未装 tmeet-skill |
按 QUICKSTART.md 第 3 节连 tmeet → 装 tmeet-skill → 重试 |
| 建会后无法拉人参会 | 未连 wecom 或通讯录不在可见范围 |
连 wecom → 确认参会人在企微可见范围 |
| 会后无法生成企微文档/待办 | 未连 wecom 或 tencent-docs |
连这两个连接器 → 重试 |
smart-minutes 报 9042 |
企业未开通 minutes:read OAuth |
联系管理员开通;技能自动走无纪要模板兜底 |
smart-minutes 报 500261 |
录音过短(< 1 分钟) | 重新录制 ≥1 分钟会议;或走无纪要模板 |
smart-minutes 返回 todo 为空 |
腾讯官方默认格式(不直接给结构化行动项) | 直接用 gen_minutes_doc.py 吃原始 JSON,自动抽取行动项 |
contact search 多命中 |
同名多人 | AI 列出候选,用户选择,不猜测 |
wecom-cli 报权限错 / 找不到命令 |
连接器未授权、未信任或环境未刷新 | 重启 WorkBuddy/终端,确认连接器状态为“已信任” |
ModuleNotFoundError: openpyxl |
支线依赖未装 | python -m pip install -r requirements.txt |
| 看板数字为 0 或图表空白 | CSV 列名不匹配 | 参考 data-schema.md;中英文列名已兼容 |
> 若 AI 输出代码报错,把错误最后一行复制给 AI,它会按上表引导修复。
参考
- tmeet 底座 SKILL
- hotel-templates — 酒店会议议程模板
- data-schema — 经营数据规范 + 可视化路由
- role-roster — 角色花名册
- scripts/gen_analysis.py — 多门店日度看板(柱状/饼/趋势预测)
- scripts/gen_report.py — 综合报表看板(柱状/饼+自由指令)
- scripts/gen_minutes_doc.py — 纪要→行动项文档(集成责任人映射)
- scripts/draft_agenda.py — 会前自动起草议程(异常检测+5类场景模板)
- scripts/resolve_assignee.py — 责任人/部门→企微人映射(花名册)
- scripts/todo_followup.py — 派发闭环(未闭环回读+催办草稿)
- scripts/numbers_to_csv.py — Numbers 适配器
- scripts/parse_report.py — 综合报表解析
- assets/roster.sample.json — 责任人映射花名册样例(复制为 roster.json 填真实 userid)
- selftest.sh — 一键自检(看板零登录跑通)