1. 线下沟通上下文为什么值得做成 Skill线下沟通有个很尴尬的特点信息密度高但沉淀率极低。客户在会议室里说的关键判断、销售当场承诺的交付边界、技术评审里临时改掉的口径往往只存在于几个人的短期记忆里。等一周后要复用只能翻聊天记录、找录音文件、手工拼凑最后拼出来的东西还未必是当时那层意思。腾讯会议 AI 录音笔把这件事往前推了一步线下沟通的录音可以自动转成结构化纪要纪要里带标题、要点、待办和时间戳。这意味着「线下沟通上下文」第一次变成了可以被程序读取的数据而不是只能靠人回忆的模糊印象。但光有纪要还不够。纪要躺在会议系统里团队检索不到每次要用都得手动导出、手动贴进知识库不同人整理的口径还不一致。真正该做的是把「拉取—清洗—摘要—回写」这条链路封装成一个可复用的 WorkBuddy Skill让任何智能体说一句「同步会议纪要」就能跑完整套流程。这篇面向需要把会议录音转成可检索上下文的团队给出 Skill 骨架、CLI/MCP 调用配置以及用 TaoToken 统一 Key 接入模型的示例最后附一次可复现的拉取验证动作。适合已经用上腾讯会议 AI 录音笔、想让纪要自动进知识库或智能表格的团队。2. 前置准备TaoToken 统一 Key 与 Skill 运行环境在写 Skill 之前先把两件事定下来模型通道和运行环境。模型通道我建议用 TaoToken 统一 Key原因是 Skill 里会同时出现摘要、结构化、标签生成等多个模型调用点如果每个点各配一套 Key后面换模型或调额度会非常痛苦。统一 Key 的好处是一个凭证覆盖多个模型Skill 里只读一个环境变量。TaoToken 的接入地址是https://taotoken.net/api兼容常见的 OpenAI 风格调用方式。你需要在控制台创建一个 API Key然后把它写进环境变量而不是写进 Skill 代码。控制台入口在https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentskill_meeting_recaputm_campaignrewrite创建 Key 的页面在https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentskill_meeting_recaputm_campaignrewrite。运行环境这边Skill 需要能调用腾讯会议 CLI所以本机要完成 CLI 安装和登录授权。CLI 的凭证由它自己管理Skill 代码里不出现会议系统的密钥这一点很重要——Skill 只负责编排不负责保管凭证。先把环境变量配好后面所有代码都依赖这几个变量# 模型通道TaoToken 统一 Key export TAOTOKEN_API_KEYsk-你的key export TAOTOKEN_BASE_URLhttps://taotoken.net/api # 知识库写入凭证按你实际的知识库开放接口填 export KB_APIhttps://kb.example.com/api/docs export KB_TOKEN你的知识库token # 腾讯会议 CLI 可执行文件路径如果已在 PATH 里可省略 export TENCENT_MEETING_CLItencent-meeting注意上面知识库域名用example.com占位实际请替换成你自己知识库的开放接口地址。会议系统的凭证交给 CLI 管理不要复制进 Skill。环境确认命令跑通再往下$TENCENT_MEETING_CLI --version echo $TAOTOKEN_API_KEY | head -c 6第一条能打印版本号第二条能打印出 Key 的前 6 位说明 CLI 和模型通道都就绪了。3. Skill 骨架SKILL.md 与目录结构WorkBuddy 的 Skill 本质是「带元数据的指令 可执行的工具调用」。元数据描述它是什么、什么时候触发、需要哪些参数工具调用部分才是真正干活的代码。先把目录结构定下来后面加功能不会乱。meeting-recap-sync/ ├── SKILL.md # 元信息功能、触发词、参数、依赖 ├── skill.py # 主流程拉取 → 摘要 → 回写 ├── meeting_cli.py # 封装腾讯会议 CLI 调用 └── llm_client.py # 封装 TaoToken 模型调用SKILL.md写清楚触发条件和参数智能体才知道什么时候该调用它# meeting-recap-sync ## 功能 拉取指定腾讯会议 AI 录音笔纪要生成结构化摘要并同步到知识库或智能表格。 ## 触发词 同步会议纪要、把录音笔内容写进知识库、整理这次沟通要点 ## 参数 - meeting_id: 会议唯一标识来自腾讯会议 CLI 列表查询 - target: 目标存储可选 knowledge_base / smart_sheet ## 依赖 - 腾讯会议 CLI已登录且授权 - TaoToken 统一 Key环境变量 TAOTOKEN_API_KEY - 知识库或智能表格写入凭证环境变量配置这里有个设计取舍值得说清楚Skill 只负责编排不负责存储。纪要文本是模型输入摘要结果才是回写内容。这样职责清晰后续把知识库换成智能表格只需要换一个写入函数Skill 核心逻辑不动。4. 可复制配置CLI 拉取 MCP 调用 模型摘要4.1 用 CLI 拉取录音笔纪要先封装腾讯会议 CLI 的调用。CLI 已经在本机登录凭证不出现在代码里这是最省心的方式# meeting_cli.py import subprocess import json import os CLI os.getenv(TENCENT_MEETING_CLI, tencent-meeting) def fetch_recording_recap(meeting_id: str) - dict: 调用腾讯会议 CLI 拉取某次 AI 录音笔的纪要文本。 CLI 已在本机登录凭证不出现在代码里。 cmd [ CLI, recap, --meeting-id, meeting_id, --format, json, ] result subprocess.run(cmd, capture_outputTrue, textTrue, checkTrue) 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来自 CLI 的列表查询不要硬编码真实会议。4.2 用 MCP 方式对接会议与知识库如果团队已经在用 MCP 生态可以把会议系统和知识库都注册成 MCP ServerSkill 通过 MCP 调用而不是直接跑 CLI。这样 Skill 在不同机器上迁移时不用重装 CLI。MCP 配置大致长这样{ mcpServers: { tencent-meeting: { command: tencent-meeting-mcp, args: [--scope, recap:read] }, knowledge-base: { command: kb-mcp, env: { KB_API: ${KB_API}, KB_TOKEN: ${KB_TOKEN} } } } }CLI 和 MCP 二选一即可。本地调试用 CLI 更直接团队共享用 MCP 更统一。两者拉到的纪要结构一致后面的摘要逻辑不用改。4.3 用 TaoToken 统一 Key 做摘要拉到的纪要可能很长Skill 的价值在于二次结构化——把口语化沟通转成可检索的要点。这里用 TaoToken 统一 Key 调模型# llm_client.py import os import requests BASE_URL os.getenv(TAOTOKEN_BASE_URL, https://taotoken.net/api) API_KEY os.getenv(TAOTOKEN_API_KEY) def call_llm(prompt: str, model: str gpt-4o-mini) - str: 通过 TaoToken 统一 Key 调用模型返回纯文本。 resp requests.post( f{BASE_URL}/v1/chat/completions, headers{Authorization: fBearer {API_KEY}}, json{ model: model, messages: [{role: user, content: prompt}], temperature: 0.2, }, timeout60, ) resp.raise_for_status() return resp.json()[choices][0][message][content]摘要的 prompt 编排把「团队整理纪要的偏好」固化进 Skilldef summarize_for_kb(recap: dict) - str: prompt f 以下是一次线下沟通的纪要请提炼为 3 条核心结论 并保留可执行的待办项。输出纯文本不要加标题层级。 标题{recap[title]} 要点{recap[bullets]} 待办{recap[action_items]} return call_llm(prompt).strip()摘要质量取决于 prompt而不是代码复杂度。把 prompt 写进 Skill等于把整理口径统一了不同人跑出来的结果一致。4.4 回写知识库最后一步是把结果写进团队可复用的位置凭证走环境变量# skill.py import os import requests from meeting_cli import fetch_recording_recap from llm_client import summarize_for_kb def write_to_knowledge_base(summary: str, meta: dict): endpoint os.getenv(KB_API) token os.getenv(KB_TOKEN) payload { title: f[会议纪要] {meta[title]}, content: summary, tags: [meeting-recap, ai-recorder], } requests.post( endpoint, jsonpayload, headers{Authorization: fBearer {token}}, timeout10, ) def run(meeting_id: str, target: str knowledge_base): recap fetch_recording_recap(meeting_id) summary summarize_for_kb(recap) if target knowledge_base: write_to_knowledge_base(summary, recap) return summary想落到智能表格只需把 payload 改成行列结构endpoint 换成表格 APISkill 核心不变。5. 验证请求一次可复现的拉取动作配置写完跑一次完整链路验证。先查会议列表拿到meeting_id$TENCENT_MEETING_CLI list --limit 5 --format json输出里找到目标会议的 id假设是example-meeting-001然后跑 Skillpython -c from skill import run summary run(example-meeting-001, targetknowledge_base) print(summary[:200]) 成功的话终端会打印出摘要的前 200 字同时知识库里出现一条标题为[会议纪要] xxx的文档标签带meeting-recap。如果摘要为空先检查纪要本身是否有内容再检查模型返回。再验证一次模型通道是否真的走通单独打一发请求curl -s https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer $TAOTOKEN_API_KEY \ -H Content-Type: application/json \ -d {model:gpt-4o-mini,messages:[{role:user,content:回复 ok}]}返回里能看到choices字段说明统一 Key 生效。这一步能快速区分是模型通道问题还是会议拉取问题。6. 本篇常见错排查CLI 报未登录或授权过期CLI 的登录态和网页端是分开的重新执行一次登录命令即可。Skill 代码里不要试图传会议系统密钥交给 CLI 管理。拉到的纪要为空先确认这次会议是否真的开启了 AI 录音笔以及录音是否已经处理完成。刚结束的会议可能还在转写中等几分钟再拉。模型返回 401 或 403检查TAOTOKEN_API_KEY是否带上了Bearer前缀以及环境变量是否在当前 shell 生效。用上面的 curl 单独验证一次最快。知识库写入 404KB_API的路径要指向具体的文档创建接口而不是知识库首页。不同知识库的接口路径差异较大以你自己的开放接口文档为准。摘要结果不稳定把temperature调到 0.2 以下并在 prompt 里明确输出格式。如果团队对要点数量有要求直接写死「3 条」不要留给模型自由发挥。MCP 方式连不上检查 MCP Server 的command是否在 PATH 里以及env里的变量是否被正确展开。本地调试建议先用 CLI 跑通再切 MCP。7. 把 Skill 接进日常协作流链路跑通之后真正的收益不是少写几行代码而是三件事可复用任何人说「同步会议纪要」都走同一套逻辑结果一致可编排在 SkillHub 里它能和「写周报」「同步企业微信」等技能组合成流水线可治理凭证、prompt、存储后端都集中在 Skill 内便于审计和迭代。如果你还想让 Skill 在摘要之外做更多判断比如自动识别客户异议、生成跟进任务可以先用模型对话把 prompt 调顺再固化进 Skill。模型对话入口在https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_contentskill_meeting_recaputm_campaignrewrite。长期跑编码和 Agent 类任务的话Coding Plan 会更省心入口在https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentskill_meeting_recaputm_campaignrewrite。接入细节和参数说明统一看文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentskill_meeting_recaputm_campaignrewrite。最后留一个实用技巧把meeting_id的获取也做成 Skill 的一个子命令比如「同步最近一次会议纪要」让智能体自己查列表取最新一条。这样日常使用就真的只剩一句话了。
