Skip to main content

tmeet-skill

何时用:用户明确要通过命令行操作腾讯会议(tmeet),或 Agent 遇到工具缺失/调用失败/能力不足想反馈平台时。OAuth 登录/登出/状态、会议管理(创建/更新/取消/查询/搜索/受邀者)、录制管理(列表/播放地址/智能纪要/转写/权限申请)、元宝纪要(按关键词/时间搜索、稳态/瞬态详情)、会议报告(参会人/等候室/导出明细/异步任务)、通讯录(仅限会议邀请/呼叫入会前置解析,严禁单独查人)、会中控制(呼叫/踢出/等候室)、CLI 应用配置、实时事件订阅、问题排查。泛指需求默认走本地工具。

설치로 이동

소스 정보

저장소
Pinvou/pinvou-agent
최근 소스 활동
2026년 9월 16일 06:06
감지된 SKILL.md 언어
중국어
스타
1,977
포크
280

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

파일 탐색기
12 개 파일

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
tmeet-skill
version
1.0.18
description
何时用:用户明确要通过命令行操作腾讯会议(tmeet),或 Agent 遇到工具缺失/调用失败/能力不足想反馈平台时。OAuth 登录/登出/状态、会议管理(创建/更新/取消/查询/搜索/受邀者)、录制管理(列表/播放地址/智能纪要/转写/权限申请)、元宝纪要(按关键词/时间搜索、稳态/瞬态详情)、会议报告(参会人/等候室/导出明细/异步任务)、通讯录(仅限会议邀请/呼叫入会前置解析,严禁单独查人)、会中控制(呼叫/踢出/等候室)、CLI 应用配置、实时事件订阅、问题排查。泛指需求默认走本地工具。
metadata
{"requires":{"bins":["tmeet"]},"cliHelp":"tmeet --help"}
# tmeet 腾讯会议命令行工具,支持 OAuth 授权、会议全生命周期管理、录制与转写、会议报告查询。 ## 安装与初始化 在品悟中,`tmeet` CLI 由应用代为安装与管理(首次使用时自动执行 npm 安装并校验版本),模型**不需要也不要自行执行安装命令**。仅当用户在品悟之外的环境使用本技能时,才参考上游 README 的安装方式;品悟内不要安装或升级它,版本随品悟应用更新自动就位。 ## 认证 使用前必须先完成登录授权: ```bash # 登录 tmeet auth login # 登出(清除本地凭证) tmeet auth logout # 查看当前登录状态及 Token 有效期(无需登录即可执行) tmeet auth status ``` > **注意**:除 `auth login`、`auth status`、`tshoot log`(不带 `--upload`)与 `event list` / `event schema` / `event status` / `event stop` 外,所有命令都需要先完成登录。未登录时命令会提示 `user config is empty`。 > **注意**:`auth login` 是**阻塞命令**——执行后会先输出授权 URL,然后**阻塞等待最多300s**用户在浏览器完成 OAuth 授权。**必须前台运行**:前台运行保持进程与终端连接,OAuth 回调能正常将凭证写入本地。**不要**用后台方式(`&`)运行——后台进程脱离控制终端会导致凭证写入失败。 > **注意**:品悟运行环境始终可访问系统默认浏览器(`auth login` 走 `--no-browser` 输出授权 URL 后由用户在浏览器完成授权)。若本技能被用于其他无默认浏览器的 Agent 环境(如 Hermes),请**不要**尝试执行 `tmeet auth login` 命令,而是直接告知用户:「请在终端中手动执行 `tmeet auth login` 完成登录授权,获取授权 URL 后在浏览器中打开完成授权。」 > **注意**:`TMEET_AGENT` 和 `TMEET_MODEL` 遥测环境变量由品悟宿主统一注入(值固定为 `Pinvou`),模型**不需要也不要自行设置或修改**。仅当本技能被用于品悟之外的 Agent 环境且宿主未注入时,才将当前使用的 agent 类型和模型名称分别写入这两个环境变量。 > **注意(强制)**:每次新会话首轮、或本轮对话中 LLM 模型发生切换时,必须先静默执行一次 `python3 ./scripts/agent_init.py --agent "<当前 Agent>" --model "<当前模型>"`(不询问用户、失败即忽略、同一组合不重复调用),再执行任何 `tmeet` 命令。 ## 命令总览与详情索引 > **调用前置**:下方「查询命令选择准则」与「安全规则」是调用命令前必读的规则章节。 每个模块行末标注了对应详情文档路径(`→ references/xxx.md`),可直接跳转查看。 ``` tmeet ├── auth # OAuth 认证 → [references/tmeet-auth.md](references/tmeet-auth.md) │ ├── login # OAuth 授权登录 │ ├── logout # 登出并清除凭证 │ └── status # 查看当前登录状态及 Token 有效期 ├── meeting # 会议管理 → [references/tmeet-meeting.md](references/tmeet-meeting.md) │ ├── create # 创建会议(支持普通/周期性) │ ├── update # 更新会议信息 │ ├── cancel # 取消会议 │ ├── get # 获取会议详情 │ ├── list # 获取会议列表(进行中/未开始) │ ├── list-ended # 获取已结束会议列表 │ ├── search # 按关键词/会议码/时间范围搜索会议 │ ├── invitees-list # 获取会议受邀者列表 │ ├── invitees-add # 添加会议受邀者 │ ├── invitees-remove # 移除会议受邀者 │ └── invitees-replace # 替换会议受邀者列表 ├── contact # 通讯录(仅会议邀请/呼叫入会场景) → [references/tmeet-contact.md](references/tmeet-contact.md) │ ├── search # [仅用于会议邀请和呼叫入会场景] 搜索企业通讯录成员(按用户名/职位/部门);严禁单独用于查人 │ ├── lookup-by-phone # [仅用于会议邀请和呼叫入会场景] 按手机号查找用户;严禁单独用于查人 │ └── lookup-by-email # [仅用于会议邀请和呼叫入会场景] 按邮箱查找用户;严禁单独用于查人 ├── record # 录制与转写 → [references/tmeet-record.md](references/tmeet-record.md) │ ├── list # 查询录制列表 │ ├── address # 获取录制文件播放地址 │ ├── search # 按关键词/会议码/会议ID/时间范围/文件类型搜索录制 │ ├── smart-minutes # 获取智能纪要 │ ├── transcript-get # 获取转写详情 │ ├── transcript-paragraphs # 获取转写段落列表 │ ├── transcript-search # 搜索转写内容 │ ├── permission-apply-prepare # 预览录制权限申请信息(申请前确认) │ └── permission-apply-commit # 提交录制权限申请(用户确认后执行) ├── report # 会议报告 → [references/tmeet-report.md](references/tmeet-report.md) │ ├── participants # 获取参会人列表 │ ├── participants-export # 导出参会成员明细 │ ├── job-result # 获取异步任务结果 │ └── waiting-room-log # 获取等候室成员列表 ├── control # 会中控制 → [references/tmeet-control.md](references/tmeet-control.md) │ ├── call # 呼叫成员入会(会中邀请呼叫) │ ├── kick # 踢出会议成员(会中踢人) │ └── waiting-room # 等候室管理(移入会议/移回等候室/移出踢出) ├── minutes # 元宝纪要 → [references/tmeet-minutes.md](references/tmeet-minutes.md) │ ├── search # 按关键词/时间搜索元宝纪要 │ └── get # 查询元宝纪要详情(稳态纪要/滚动瞬态纪要) ├── tshoot # 问题排查与反馈 → [references/tmeet-tshoot.md](references/tmeet-tshoot.md) │ ├── log # 导出本地日志(支持按时间范围过滤,可选 --upload 上传至服务器) │ └── feedback # 反馈工具缺失/失败/能力不足等问题至平台(Agent 自助上报) ├── app # 当前用户自己的 CLI 应用信息管理 → [references/tmeet-app.md](references/tmeet-app.md) │ ├── get # 查询当前 CLI 应用配置(应用名称/主页/打开方式) │ └── set # 设置 CLI 应用配置:--homepage 控制会中是否下发(空值 = 不下发),--sdk-name 修改应用名称,--layout-style 修改会中打开方式 └── event # 事件订阅 → [references/tmeet-event.md](references/tmeet-event.md) ├── list # 列出可订阅的 EventKey(不依赖登录) ├── schema # 查看 EventKey 的 params/payload schema 及 jq_root_path(不依赖登录) ├── consume # 订阅事件并按 NDJSON 流式输出(需登录;批处理/常驻两种模式) ├── status # 查看本机 bus 守护进程状态(不依赖登录) └── stop # 停止本机 bus 守护进程(不依赖登录;--force 为写操作,需二次确认) ``` ## 查询命令选择准则 查询会议或录制时,需根据用户提供的筛选条件,**正确选择 `list` 类命令、`meeting get` 还是 `search` 命令**: | 用户提供的筛选条件 | 应选用的命令 | |------|------| | **仅时间范围**(仅有起止时间,无任何关键词) | `list` 类命令 | | **已知会议号 / 会议 ID** | `meeting get` | | **包含关键词**(会议主题、创建人、备注等),无论是否同时带时间范围 | `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`(已结束) - **已知会议号 / 会议 ID** → 使用 `tmeet meeting get`(获取会议详情;录制/回放查询亦先按会议号 / 会议 ID 分流,见[「录制查询路由总则」](references/tmeet-record.md#录制查询路由总则)) - **含关键词**(主题 / 创建人 / 备注等) → 使用 `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 create`(携带 `--invitees` 时) | 最多 100 人,受邀者会收到会议通知;执行前必须展示会议主题、时间与完整受邀成员名单(成员回显遵循「成员回显格式」)并获得明确确认 | | `meeting invitees-add` | 向会议中添加受邀成员,被邀请者会收到会议通知;执行前必须展示目标会议与成员名单并获得明确确认 | | `meeting invitees-remove` | 从会议中移除受邀成员 | | `meeting invitees-replace` | 整体替换会议受邀成员列表(未在新列表中的成员会被移除) | | `control call` | 主动呼叫成员入会,会向目标成员发起会议邀请通话,对其产生实际打扰 | | `control kick` | 将成员踢出会议,立即生效;**目标成员的 `open_id` / `ms_open_id` 必须来自 `report participants`,严禁使用 `contact search` 结果** | | `control waiting-room` | 等候室管理(移入会议/移回等候室/移出踢出);`expel` 等同踢人,执行前必须列明目标成员 | | `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`、携带 `--invitees` 的 `meeting create`)、“呼叫成员入会”(`control call`)两类场景**,用于将用户名解析为对应的 `openId`。**严禁在其他场景下调用 `contact search`**(例如:仅为查看某人部门/职位、查询联系方式、好奇某人信息等与会议邀请/呼叫无关的场景),不得将通讯录作为通用人员信息查询接口使用。 - **会中踢人(`control kick`)与等候室管理(`control waiting-room`)的成员来源硬约束**:`control kick` 的 `--users` / `--sip-users` / `--pstn-users` 参数值(即 `open_id` / `ms_open_id`)**必须从 `tmeet report participants` 返回的会中参会人列表中获取**;`control waiting-room` 的同类参数值**必须按操作类型获取**——`back-to-waiting` 的目标为会中成员,取自 `tmeet report participants`;`enter-meeting` / `expel` 的目标为等候室成员,取自 `tmeet report waiting-room-log`——**严禁使用 `contact search` / `contact lookup-by-phone` / `contact lookup-by-email` 等通讯录查询结果作为成员来源**。原因:通讯录返回的是组织成员名录,并不代表他们已加入当前会议或在等候室中;且操作需要区分普通成员 / Sip / Pstn 三类身份,这些信息只有 `report participants` / `report waiting-room-log` 能准确提供。正确调用顺序:按操作类型先执行 `tmeet report participants` 或 `tmeet report waiting-room-log` → 按姓名等描述筛选出目标成员 → 向用户确认 → `tmeet control kick` / `tmeet control waiting-room`。 - **多结果必须由用户确认,禁止自行猜测**:当任一查询/搜索类命令返回 **多条候选结果**(典型如 `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)。 **使用示例**: ```bash # 默认紧凑格式(模型解析场景推荐,省略 --format 即可) tmeet meeting get --meeting-id 123456789 # 美化缩进格式(需要直接展示给用户阅读时使用) tmeet meeting list --start 2026-03-12T00:00:00+08:00 --end 2026-03-12T23:59:59+08:00 --format json-pretty ``` > **使用准则**: > - 模型在解析工具输出时**优先使用默认 `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` 决定返回字段的数量,两者可同时使用。 **使用示例**: ```bash # 仅返回必要字段(推荐模型解析场景使用,节省 token) tmeet meeting list --start 2026-03-12T00:00:00+08:00 --end 2026-03-12T23:59:59+08:00 --compact # 同时启用精简字段 + 美化排版(便于用户直接阅读关键信息) tmeet record list --meeting-id 123456789 --compact --format json-pretty ``` > **使用准则**: > - **查询类命令优先启用**:模型在调用查询/读取类命令时,**默认追加 `--compact`** 以降低上下文占用; > - **何时不使用**:当用户明确要求"完整结果"、"原始字段"或需要某个非必要字段时,**不要**使用 `--compact`。
GitHub에서 보기
이 SKILL.md는 매우 커서 SkillsMP가 여기에는 첫 섹션만 미리 보여줍니다. GitHub에서 보기