tmeet-skill
腾讯会议 CLI(tmeet):OAuth 授权登录/登出/状态查询、会议管理(创建/更新/取消/查询/受邀者)、录制管理(列表/播放地址/智能纪要/转写/录制权限申请)、会议报告(参会人/等候室/导出参会成员明细/异步任务结果)、通讯录(严格限定:仅存在"会议邀请/呼叫入会"动作的前置步骤通过用户名/手机号/邮箱搜索成员;严禁单独用于查询任何人的姓名/部门/职位/联系方式/是否存在,无下游会议动作时一律拒绝)、会中控制(呼叫成员入会/踢出会议成员)、元宝纪要(按关键词/时间搜索、获取稳态纪要详情、获取滚动瞬态纪要)、CLI 应用信息管理(设置/查询自己的 CLI 应用在会中的展示配置)、实时
By tencentcloud · 1,832 installs
npx skills add tencentcloud/tencentmeeting-cli --skill tmeet-skill
Source repository · Upstream listing
tmeet
腾讯会议命令行工具,支持 OAuth 授权、会议全生命周期管理、录制与转写、会议报告查询。
安装与初始化
在使用本技能前,必须检测是否已安装 tmeet 命令行工具:
如果检测到 tmeet 命令已存在,直接使用即可
如果未检测到 tmeet 命令,会自动执行以下安装命令:
安装最新版本的腾讯会议 CLI 工具包
注意 :自动安装需要网络连接和 npm 环境支持。如果安装失败,请手动执行上述命令或检查网络环境。
认证
使用前必须先完成登录授权:
注意 :除 auth login , auth status 与 event list / event schema / event status / event stop 外,所有命令都需要先完成登录。未登录时命令会提示 user config is empty 。
注意 : auth login 是 阻塞命令 ——执行后会先输出授权 URL,然后 阻塞等待最多300s 用户在浏览器完成 OAuth 授权。 必须前台运行 :前台运行保持进程与终端连接,OAuth 回调能正常将凭证写入本地。 不要 用后台方式( & )运行——后台进程脱离控制终端会导致凭证写入失败。
注意 :如果当前 Agent 是 Hermes 且系统 没有默认浏览器 ,请 不要 尝试执行 tmeet auth login 命令,而是直接告知用户:「请在终端中手动执行 tmeet auth login 完成登录授权,获取授权 URL 后在浏览器中打开完成授权。」
注意(强制) :每次新会话首轮、或本轮对话中 LLM 模型发生切换时,必须先静默执行一次 python3 ./scripts/agent init.py agent "<当前 Agent " model "<当前模型 " (不询问用户、失败即忽略、同一组合不重复调用),再执行任何 tmeet 命令。
命令总览与详情索引
调用前置 :下方「查询命令选择准则」与「安全规则」是调用命令前必读的规则章节。
每个模块行末标注了对应详情文档路径( → [references/xxx.md](references/xxx.md) ),可直接跳转查看。
查询命令选择准则(list vs search)
查询会议或录制时,需根据用户提供的筛选条件, 正确选择 list 类命令还是 search 命令 :
用户提供的筛选条件 应选用的命令
仅时间范围 (仅有起止时间,无任何关键词) list 类命令
包含关键词 (会议主题、会议号、创建人、备注等),无论是否同时带时间范围 search 命令
⚠️ 上表仅适用于「查会议本身」。若用户要的是「纪要 / 总结 / 会议要点 / 待办 / 会上讲过什么」,
先按下表选链路,不要套用上表:
用户要什么 走哪条链路
纪要 / 总结 / 要点 / 待办( AI 加工后的内容 ) 先判录制权限:有权限 → record smart minutes ;无权限 → minutes get / minutes search (详见「元宝纪要查询」)
发言原话 / 逐字稿 / 谁说了哪句 record transcript (录制链路,需权限)
会议本身(时间 / 主题 / 参会人 / 会议号) meeting list / list ended / search
「按时间找纪要」应走 minutes search start/ end ,不是 meeting list ended
—— minutes search 原生支持时间范围检索,一次即可返回多场纪要;
用 meeting list ended 再逐场取纪要会造成 N+1 次调用。
会议查询
仅时间 → 使用 tmeet meeting list (待开始/进行中)或 tmeet meeting list ended (已结束)
含关键词 (主题 / 会议号 / 创建人 / 备注等) → 使用 tmeet meeting search ,并通过对应参数指定关键词;可与时间范围组合
录制查询
CRITICAL — 涉及录制/回放/转写查询前,MUST 先用 Read 工具读取 [ references/tmeet record.md ](references/tmeet record.md) ,其「录制查询路由总则」定义了 meeting get / meeting search / meeting list ended / record list / record search / record transcript search 的分流规则与 permission status 权限判断。录制查询涉及会议级/录制级两套入口、无权限录制、内容级搜索、单文件内定位等多层级,路由复杂, 不读将导致命令选择、录制产物定位、权限边界判断错误,不得仅凭本节直接决策。
⚠️ 本条不含「纪要查询」 :纪要类请求(含跨会议搜纪要内容)的路由 一律按下方「元宝纪要查询」节执行,该节自包含、无需先读本文档 。
本条的「内容级搜索」指 转写原文检索 (用户要发言原话/逐字稿),不含元宝纪要文本检索。
若「元宝纪要查询」节的第 ② 类要求同时搜转写( record search query field transcript content ),可直接执行该一条命令,无需为此先读本文档。
元宝纪要查询
本节自包含 —— 路由决策直接按本节执行,不需要先读 reference。
(仅当需要具体参数/响应字段时再读 [ references/tmeet minutes.md ](references/tmeet minutes.md))
腾讯会议一场会议可能产生两类独立纪要: 元宝纪要 (基于会中 ASR、参会者人人可取无需权限、无逐字稿)、 录制纪要 (基于录制文件、创建者所有、需权限、有逐字稿)。 不得仅凭命令名字面匹配。
第一步:先判请求属于哪一类
类型 特征 路由
① 取某场会的纪要 用户给了会议号/ID/主题/时间, 能定位到具体会议 走下方「① 已知会议」
② 跨会议搜内容 用户只记得「会上讲过 X」, 不知是哪场 走下方「② 跨会议检索」
① 已知会议 —— 权限决定链路
先 meeting get 拿 permission status (顺带返回,零额外调用成本):
can view → 录制纪要 record smart minutes (内容更全,含逐字稿)
can apply / closed / 无录制 → 元宝纪要 minutes get
录制侧取不到内容时(权限被拒/文件异常)→ 降级 minutes get ,并告知用户实际用的是元宝纪要
② 跨会议检索 —— 两条都搜,不能只搜一条
此类请求 无法先查权限 (还不知道是哪些会),因此:
minutes search query (搜元宝纪要文本:概览/要点/待办/滚动总结)
record search query field transcript content (搜录制转写原文)
两条都要执行 ,按会议去重(同一会议多个录制文件只算一场), 每条标注来源
⚠️ 一条搜空 ≠ 内容不存在,必须双向兜底 :
元宝纪要是 AI 总结, 细节(具体数字、某人某句、一次性提及)常被概括掉,但逐字稿里可能有 ;
反之转写侧无果时,元宝的概览/待办里也可能有归纳后的表述。
两条都搜完仍无结果,才可告知用户「未找到」 ,并说明已检索范围(元宝纪要文本 + 录制转写原文)
以及是否存在无权限的录制未能覆盖。
通用规则(两类都适用)
用户明确指定纪要类型时以用户为准 ,不再按上述判据推断。
要「原话 / 逐字稿 / 谁说了哪句」→ record transcript ;无权限则降级元宝 short summaries 并 标注「非原话 / AI 加工版」 。
用户要求「准确 / 原始 / 不要 AI 编的」→ 元宝纪要本身即 AI 产物, 不满足 该要求;须走 record transcript ,无权限时 先询问用户是否接受元宝内容 ,不得擅自充当原始材料。
双诉求(同时要「纪要 + 原话」)→ 两条链路并取,不是二选一 ;一侧取不到时先交付另一侧,再说明原因与申请入口。
使用准则
不要在 list 命令上"硬塞"关键词条件 : list 类命令仅支持时间窗口和分页,无法按主题、创建人、参会人等关键词过滤;遇到此类需求 必须切换到 search 。
不要把关键词当作时间使用 :当用户输入"上周和张三的会议"这类 复合条件 时,应识别出"张三"为关键词、"上周"为时间,统一走 search 。
歧义时先澄清 :若用户表述既不像时间也不像明确关键词(如仅给出一个数字),需先确认是会议号、会议 ID 还是其他,再选择对应命令与参数, 不得擅自推断 。
安全规则
禁止输出 AccessToken / RefreshToken 到终端明文。
严禁向用户暴露 meeting id ,必须使用 meeting code (会议号) : meeting id 是仅用于命令行参数传递的内部标识,属于 隐私字段 ;向用户展示、复述、总结会议信息时, 统一使用 meeting code (会议号) ,不得在回复中出现 meeting id (例如响应模板、二次确认展示、错误反馈等所有面向用户的输出场景均需遵守)。
以下命令操作必须二次确认 :下列命令会对数据产生不可逆影响或对真人产生打扰/通知, 在调用命令前必须先向用户展示将要执行的操作详情,并在获得用户明确确认后才能执行 ,不得跳过确认步骤:
命令 风险说明
meeting cancel 取消会议,不可恢复
meeting update 修改会议信息(时间、主题等),影响所有参会人
meeting invitees add 向会议中添加受邀成员,被邀请者会收到会议通知;执行前必须展示目标会议与成员名单并获得明确确认
meeting invitees remove 从会议中移除受邀成员
meeting invitees replace 整体替换会议受邀成员列表(未在新列表中的成员会被移除)
control call 主动呼叫成员入会,会向目标成员发起会议邀请通话,对其产生实际打扰
control kick 将成员踢出会议,立即生效; 目标成员的 open id / ms open id 必须来自 report participants ,严禁使用 contact search 结果
auth logout 清除本地登录凭证
record permission apply commit 正式提交录制权限申请,会触发审批流程(必须先执行 record permission apply prepare 并向用户展示申请信息确认)
确认流程 :
1. 向用户展示即将执行的操作及关键信息(使用 meeting code 会议号标识会议,不得展示 meeting id );涉及成员时,成员的回显格式遵循「响应处理规则」中的「成员回显格式」;
2. 展示完信息后 必须结束本轮回复 ,等待用户明确回复"确认"、"是"、"yes"等肯定指令;不得在同一回合内继续执行写操作;
3. 收到确认后再执行命令;
4. 若用户未明确确认或表示取消,则终止操作。
"等待"是硬要求 —— 以下三种做法均属违规,等同于跳过确认 :
违规做法 表现
自问自答 在同一次回复里既提出「是否确认?」又自行接上「—— 同意,提交」然后调用命令
虚构用户指令 声称「基于您的明确指令…」而该指令在对话历史中不存在
默认代选 列出候选项后自行「默认选择选项 N」并继续执行
确认必须来自 用户的下一条真实输入 ,不得由模型自行生成、推断或代填。
必填参数缺失时,必须向用户确认补充,禁止自行填充 :若执行命令所需的必填参数未由用户提供, 不得自行推断或填充默认值 ,必须明确告知用户缺少哪些参数并请求补充,待用户提供后再执行命令。
通讯录搜索仅限特定场景使用 : contact search / contact lookup by phone / contact lookup by email 仅可用于“会议邀请”(如 meeting invitees add 、 meeting invitees replace )、“呼叫成员入会”( control call )两类场景 ,用于将用户名解析为对应的 openId 。 严禁在其他场景下调用 contact search (例如:仅为查看某人部门/职位、查询联系方式、好奇某人信息等与会议邀请/呼叫无关的场景),不得将通讯录作为通用人员信息查询接口使用。
会中踢人( control kick )的成员来源硬约束 : control kick 的 users / sip users / pstn users 参数值(即 open id / ms open id ) 必须从 tmeet report participants 返回的会中参会人列表中获取 , 严禁使用 contact search / contact lookup by phone / contact lookup by email 等通讯录查询结果作为踢人来源 。原因:通讯录返回的是组织成员名录,并不代表他们已加入当前会议;且踢人需要区分普通成员 / Sip / Pstn 三类身份,这些信息只有 report participants 能准确提供。正确调用顺序: tmeet report participants → 按姓名等描述筛选出目标参会人 → 向用户确认 → tmeet control kick 。
多结果必须由用户确认,禁止自行猜测 :当任一查询/搜索类命令返回 多条候选结果 (典型如 contact search 命中多名同名/同部门成员)时, 严禁 模型基于职位、部门、入职时间、匹配度等任何维度自行选择某一条继续后续操作(如 meeting invitees add 、 control call 、 control kick 等)。必须将候选项的关键信息以清晰列表形式展示给用户,并明确询问"请确认要选择哪一项",待用户明确指定后再继续执行。即便其中某条结果看起来"明显更匹配",也必须等待用户确认,不得跳过该步骤。
参数规范
以下参数规则为所有命令通用,包括时间参数格式、输出控制参数( format / compact )以及分页参数。
时间格式
所有时间参数均使用 ISO 8601 格式,支持以下两种:
格式 示例
带时区(有秒) 2026 03 12T14:00:00+08:00
带时区(无秒) 2026 03 12T14:00+08:00
注意 :不支持仅日期格式(如 2026 03 12 ),必须包含时间和时区信息。
时间逻辑校验 :若用户提供的结束时间 ≤ 开始时间(如"4点到3点"), 不得自行推断用户意图 ,必须先向用户确认是否跨天或存在笔误,再执行命令。
format :输出 JSON 形态
用于控制输出 JSON 的排版形态, 不改变字段内容 。输出结构统一为 {trace id, message, data} 。
取值 含义 适用场景
json (默认) 单行紧凑 JSON,体积小、便于管道传递 模型解析、脚本处理、 jq 过滤
json pretty 多行缩进 JSON,可读性强 需要将原始结果直接呈现给用户阅读时
例外 : event 子命令族( event list / event schema / event consume / event status / event stop )输出的是 bare JSON , 不带 {trace id, message, data} 信封 ——例如 event consume 每行 NDJSON 形如 {event, trace id, payload} , event list 直接是 [{...}, ...] 。具体形态详见 [references/tmeet event.md](references/tmeet event.md)。
使用示例 :
使用准则 :
模型在解析工具输出时 优先使用默认 json ,无需显式传入 format ;
仅当用户明确要求"以美化/格式化 JSON 展示"或需要把原始 JSON 完整呈现给用户时,才追加 format json pretty ;
即便使用 json pretty ,响应处理规则仍然适用—— 只展示关键信息,不得擅自聚合或排序 。
compact :精简响应字段
布尔开关(默认 false ),用于 裁剪响应体 data 中的字段 ,只保留该命令业务上必要的少量字段,从而显著降低输出 token 量。
启用后,中间件会根据当前命令的 API 注解从远端拉取"精简字段列表"(compact fields),并对响应 data 按该列表进行字段保留; trace id 、 message 等顶层字段不受影响。
若当前命令未声明 API 注解、或远端拉取失败,中间件会 透明放行 ,不会阻塞主流程,此时输出等同于未开启 compact 的结果。
与 format 相互独立: format 决定 JSON 排版, compact 决定返回字段的数量,两者可同时使用。
使用示例 :
使用准则 :
查询类命令优先启用 :模型在调用查询/读取类命令时, 默认追加 compact 以降低上下文占用;
何时不使用 :当用户明确要求"完整结果"、"原始字段"或需要某个非必要字段时, 不要 使用 compact 。
event 子命令族不适用 : event list / event schema / event consume / event status / event stop 的输出 不经过 compact 中间件 ,加 compact 不会有任何精简效果。需要精简事件输出,请改用 event consume jq 做投影。
分页
所有支持分页的查询/列表类命令统一采用 page token + page size 方案。
注意 : record transcript get 命令的 pid (起始段落 ID)和 limit (查询段落数) 不属于 通用分页参数,是该命令用于段落定位的独立参数, 未被弃用,可正常使用 。
<details
<summary 已弃用参数(兼容保留,模型不得主动使用)</summary
原有的 page / pos / size 参数均已标记为 已弃用 ,仅为兼容保留。即便用户对话中使用了"第 X 页"、"偏移 Y 条"等表达,也应以 page token 分页策略实现, 不得 使用已弃用参数。
</details
参数 说明
page token <token 分页游标。 首次查询不传 ;翻页时将上一次响应 data.next page token 的值原样传入
page size <n 每页数量,不同命令默认值与上限不同,详见各子命令文档
使用准则 :
优先使用 page token 翻页 :调用下一页时,必须从上一次响应的 data.next page token 字段取值传入 page token ,不得自行拼接、递增或猜测该值。
到达末页的判定 :当响应中的 next page token 为空字符串或字段缺失时,即为最后一页,不再继续翻页。
数据过多时必须先询问用户是否继续翻页,禁止擅自连续翻页 :若首次查询返回的结果中 next page token 非空(即仍有后续数据),且用户原始诉求未明确要求"全部 / 所有 / 完整"等穷尽式表达, 不得自行连续调用下一页 ,必须先向用户展示当前页关键信息与"还有更多结果"的提示,并询问用户是否需要继续翻页(例如「当前已展示前 N 条结果,还有更多数据,是否继续查看下一页?」),收到用户明确肯定指令(如"继续"、"是"、"下一页"、"全部"等)后,再使用上一页的 next page token 发起下一次查询;若用户表示停止或未明确确认,则终止翻页。当用户已明确要求"全部 / 所有"时,可连续翻页直至 next page token 为空;但 当已连续翻页超过 5 页或累计条数超过 200 条时 ,必须主动提示并征询用户是否继续。
record transcript search 暂不支持分页 ,无需传入分页参数。
典型翻页流程 :
响应处理规则
只展示关键信息 :在用户没有明确要求的前提下,仅展示与用户问题直接相关的核心字段,不得输出冗余字段。
禁止擅自聚合或排序 :未经用户要求,不得对返回结果进行任何聚合统计或排序操作,按原始结果如实呈现。
成员回显格式(涉及成员的输出硬约束) :当输出对象包含"人"时(包括但不限于二次确认展示、查询结果展示、操作成功后的成员列表回显等所有面向用户的成员输出场景),每一名成员 必须 按 姓名(<标识 ) 格式回显:
姓名 按以下优先级取值:① 通讯录 / 参会人列表响应中的显示名字段;② 若响应未返回姓名字段(典型如 contact search 唯一命中仅返回 open id 、 contact lookup by phone/email 仅返回 open id ), 沿用用户本次输入的搜索关键词 (如 username 的值)作为姓名;③ 两者都取不到时标注为 未知成员 。 严禁 用 open id / ms open id / userid / 邮箱前缀 / 花名 替代姓名;
括号内标识 从 部门 、 职位 、 open id 中 任选一项 填入(有则填,全无时才允许省略括号), 不强求齐全 ,优先级: 部门 职位 open id ;
若某成员姓名缺失(走上文分支 ③),标注为 未知成员(<open id ) , 不得 省略标识;
示例: 张三(技术工程事业群/腾讯会议) 、 李四(高级工程师) 、 张三(ou abc123...) 。
受邀人管理类写操作的二次确认模板( 强约束) :执行 meeting invitees add / meeting invitees remove / meeting invitees replace 上述三条命令前, 必须 按下列模板向用户展示,缺一不可;模板中的成员严格遵循上文「成员回显格式」( 姓名(<标识 ) ),会议一律使用 meeting code (会议号), 严禁 出现 meeting id 。
操作: 将 <待邀请成员,严格遵守上文「成员回显格式」,多人用中文顿号「、」分隔 <动作描述 「<会议主题 」(会议号 <meeting code )<对象描述
影响: <按命令选择对应影响说明
会议成员变更操作的回复模板(强约束) :执行 meeting invitees add / meeting invitees remove / meeting invitees replace 成功后,回复 必须 严格按以下模板组织字段,且仅展示这些字段:
会议主题
会议时间 (开始时间 ~ 结束时间,含时区)
会议号 ( meeting code , 严禁 展示 meeting id )
入会链接 ( join url )
已邀请成员 (操作完成后 当前完整 的受邀成员列表)
展示规则(严格遵守):
1. 「已邀请成员」的每一名成员严格遵循上文「成员回显格式」 ( 姓名(<标识 ) ),若手头没有 open id → 姓名 的映射, 先调用 meeting invitees list 获取最新受邀列表 再回显;
2. 会议主题、会议号、入会链接等基础字段若响应未直接返回,应通过 meeting get meeting id 补齐,不得遗漏字段或用 / N/A 占位。
自动反馈规则
当 Agent 在使用 tmeet CLI 过程中遇到下列任一情况时,应识别并准备调用 tmeet tshoot feedback 将问题上报至平台, 但在实际执行上报前必须先向用户二次确认,获得明确同意后再执行 。
命令参数、 category 枚举的完整触发场景、字符长度约束与示例 :详见 [ references/tmeet tshoot.md ](references/tmeet tshoot.md)。
触发时机(5 种 category)
Agent 应识别以下 5 种场景之一并触发反馈: tool not found (工具缺失)/ tool error (工具报错)/ tool inadequate (能力不足)/ unexpected result (结果异常)/ suggestion (改进建议)。各 category 的详细触发场景与判定标准,见 [ references/tmeet tshoot.md ](references/tmeet tshoot.md) « category 枚举值» 一表。
调用准则(决策层强约束)
必须二次确认后再上报 :识别到上述触发条件后, 先向用户展示将要反馈的内容 (包括 category 、 intent 、 actions tried 、 result 等关键字段),并明确询问用户是否同意上报; 仅在收到用户明确确认(如"确认"、"是"、"yes"等肯定指令)后 才执行 tmeet tshoot feedback ;若用户拒绝或未明确同意,则不得上报。上报完成后 简要告知用户 「已为您将该问题反馈至平台」。
不替代正常错误处理 :反馈仅用于告知平台, 不得用于绕过用户原始任务 。如仍有可执行的替代方案(如换一个命令、补充参数重试),应 先尝试解决 ,无法解决再征询用户是否上报。
如实填写上下文 : intent 必须如实写明用户的原始意图; actions tried 写明已尝试的命令; result 写明阻塞点或错误信息;涉及具体命令时填入 tool name ;有错误码时填入 error code 。 严禁编造或填充无关内容 。
隐私脱敏强约束 :反馈内容中, 严禁透露用户姓名 / 电话 / 会议号 / 会议链接 / 会议主题 / 参会人 等涉及用户个人隐私的信息。如果必须引用相关内容辅助说明问题, 必须先