一、为什么要把"拉会议纪要"做成Skill
最近腾讯会议AI录音笔从二级功能升级到了首页一级入口(详见 meeting.tencent.com)。这个变化背后有一个容易被忽略的事实:线下沟通的上下文,从此可以被结构化地沉淀下来。
过去我们开完会,纪要散落在聊天工具、本地文档、个人笔记里。团队想复用一次客户沟通的要点,往往要翻聊天记录、找录音、手工整理。当智能体开始承担"整理---归纳---回写"这类重复劳动时,真正该做的不是临时写一段脚本,而是把这件事封装成一个可复用的 Skill。
这正是 WorkBuddy SkillHub 的思路:把高频、标准化的操作沉淀为技能,让任何智能体都能一键调用。配合 MCP 生态,Skill 可以对接会议、文档、表格等外部系统,形成"人机双写"的协作闭环(人机双写能力已于2026年8月上线)。
本文的目标很具体:封装一个 Skill,调用腾讯会议 CLI 拉取某次 AI 录音笔的纪要文本,做摘要后写入企业知识库或智能表格。下面先讲清楚数据流,再给可运行示例。
二、先想清楚数据怎么流
在写代码前,先画出一条最小可用的链路:
腾讯会议 AI 录音笔(线下沟通录音)
│ 录音结束自动生成纪要
▼
腾讯会议 CLI / 开放接口(按 meeting_id 拉取纪要文本)
│
▼
WorkBuddy Skill(清洗 + 摘要 + 结构化)
│
▼
企业知识库 / 智能表格(供团队检索复用)
关键点有两个:其一,Skill 只负责"编排",不负责"存储",存储交给知识库或表格;其二,纪要文本是模型输入,摘要结果才是回写内容。这样职责清晰,后续换存储后端也不会动 Skill 核心逻辑。
三、定义 Skill 的元信息
WorkBuddy 的 Skill 本质上是一段带元数据的指令 + 可执行的工具调用。我们用一个 SKILL.md 来描述它:
# meeting-recap-sync
## 功能
拉取指定腾讯会议录音笔纪要,生成结构化摘要并同步到知识库。
## 触发词
"同步会议纪要"、"把录音笔内容写进知识库"、"整理这次沟通要点"
## 参数
- meeting_id: 会议唯一标识(来自腾讯会议 CLI 返回)
- target: 目标存储,可选 knowledge_base / smart_sheet
## 依赖
- 腾讯会议 CLI(已登录且授权)
- 知识库或智能表格写入凭证(环境变量配置)
这段元信息本身是"说明书",真正干活的是下面的调用逻辑。
四、拉取纪要:调用腾讯会议 CLI
腾讯会议给出了官方开放能力入口(cloud.tencent.com 提供相关 API 文档)。在本地环境,我们优先用 CLI 拉取,避免把密钥写进代码。下面是一段 Python 伪代码,注意所有企业相关域名都用 example.com 占位:
import subprocess
import os
import json
def fetch_recording_recap(meeting_id: str) -> dict:
"""
调用腾讯会议 CLI 拉取某次 AI 录音笔的纪要文本。
CLI 已在本机登录,凭证不出现在代码里。
"""
# 真实命令以官方文档为准,这里用占位参数表达意图
cmd = [
"tencent-meeting", "recap",
"--meeting-id", meeting_id,
"--format", "json"
]
result = subprocess.run(cmd, capture_output=True, text=True, check=True)
recap = json.loads(result.stdout)
# 返回结构化字段:标题、要点、待办、时间戳
return {
"title": recap.get("title"),
"bullets": recap.get("summary", []),
"action_items": recap.get("action_items", []),
"created_at": recap.get("created_at")
}
# 示例:拉取一次客户沟通
meeting_id = "example-meeting-001" # 实际来自 CLI 列表查询
data = fetch_recording_recap(meeting_id)
print(data["title"], "要点数:", len(data["bullets"]))
这里 meeting_id 来自腾讯会议 CLI 的列表查询,而不是硬编码真实会议。占位域名 example.com 仅用于示意配置,不对应任何真实企业。
五、做摘要:让模型压缩上下文
拉到的纪要可能很长。Skill 的价值在于"二次结构化"------把口语化沟通转成可检索的要点:
def summarize_for_kb(recap: dict) -> str:
"""
把纪要要点压缩为适合知识库检索的一段摘要。
这里用伪代码表达 prompt 编排思路。
"""
prompt = f"""
以下是一次线下沟通的纪要,请提炼为 3 条核心结论,
并保留可执行的待办项:
标题:{recap['title']}
要点:{recap['bullets']}
待办:{recap['action_items']}
"""
# 调用模型接口,返回纯文本摘要
summary = call_llm(prompt) # 伪函数,实际走 WorkBuddy 模型通道
return summary.strip()
注意:摘要质量取决于 prompt,而不是代码复杂度。把 prompt 写进 Skill,等于把"团队整理纪要的偏好"固化下来。
六、回写:落到知识库或智能表格
最后一步是把结果写进团队可复用的位置。下面用环境变量管理凭证,避免明文:
import os
import requests
def write_to_knowledge_base(summary: str, meta: dict):
"""
把摘要写入企业知识库。域名用 example.com 占位。
"""
endpoint = os.getenv("KB_API") # 形如 https://kb.example.com/api/docs
token = os.getenv("KB_TOKEN") # 凭证走环境变量,不入库
payload = {
"title": f"[会议纪要] {meta['title']}",
"content": summary,
"tags": ["meeting-recap", "ai-recorder"]
}
# 真实请求以知识库开放接口文档为准
requests.post(endpoint, json=payload,
headers={"Authorization": f"Bearer {token}"},
timeout=10)
如果想落到智能表格,只需把 payload 改成行列结构,endpoint 换成表格 API。Skill 核心不变,换存储只是换一个函数。
七、封装成 Skill 的意义
回看整条链路,真正的收益不是"少写几行代码",而是三件事:
- 可复用:任何人说"同步会议纪要",智能体都走同一套逻辑,结果一致。
- 可编排:在 SkillHub 里,它可以和"写周报""同步企业微信"等技能组合,形成自动化流水线。
- 可治理:凭证、prompt、存储后端都集中在 Skill 内,便于审计和迭代。
当这类 Skill 在 MCP 生态里越积越多,团队就逐渐从"人写一切"过渡到"人机双写"------人定方向,智能体做重复劳动。这比单次脚本更可持续。
上海华万,专注为企业提供SaaS产品的一站式选型与集成服务。国内产品线涵盖腾讯会议、企业微信、腾讯电子签等腾讯生态产品,国际产品线包括Microsoft Teams、Zoom、DocuSign等协作与签约工具。从需求诊断、产品选型到系统部署、API集成与长期运维,华万为企业量身定制落地路径,覆盖售前咨询、方案设计、部署实施与售后服务全流程。目前已服务制造、零售、教育、金融等多个行业的中小企业客户。