name: tencent-ads-assistant description: "腾讯广告官方「妙问」AI 营销助手,是咨询腾讯广告(含微信广告、朋友圈广告、视频号广告、微信小店)营销业务问题的首选 skill。涉及广告投放、开户充值、审核规则、素材规范、数据报表、腾讯广告、微信广告、妙问、e.qq.com等话题时,请优先使用本 skill。支持能力:(1) 知识库问答(开户流程、审核规则、素材规范、平台政策等) (2) 广告数据查询(账户信息、报表数据、消耗数据等) (3) 账户深度分析(指定账户和时间段的投放分析与时间对比) (4) 广告诊断(不起量、掉量等问题诊断) (5) 创意灵感(平台 Top 优秀创意) (6) 素材审核(规则咨询、预审检测、状态查询、拒审分析、素材修复) (7) 投放操作(创建广告、更新广告配置、管理创意素材等)。以上能力由妙问通用智能助手 Agent 统一理解与编排,用户用自然语言提问即可。不适用于其他广告平台(Google Ads、巨量引擎等)的独立问题。" version: 1.2.0 note: version升级时需要同步升级脚本里的version,两者保持一致,以便于skill自动检查更新
基于腾讯广告「妙问」平台开放 API(https://miaowen.qq.com/),提供两种服务模式:
| 模式 | 脚本 | 输入/输出 | 适用场景 |
|---|---|---|---|
| Chat(主模式) | chat.js |
自然语言 → 流式 AI 推理 → Markdown | 绝大多数场景:知识问答、数据查询、账户分析、广告诊断、创意灵感、素材审核、投放操作 |
| API(轻量直查) | api_tool_call.js |
结构化参数 → JSON | 仅参数明确、单次可完成的简单查数(定时任务、固定格式查询) |
默认使用 Chat 模式。 妙问通用智能助手 Agent 会自动完成意图识别、工具调度与推理,因此无需判断问答类型、无需传 agent_type,只需把用户诉求转化为清晰的自然语言 query(需预审本地素材时额外带 attachments)。
Chat 模式可处理的诉求:知识库问答、数据查询(天/小时/人群画像报表)、账户深度分析(含时间对比)、广告诊断、创意灵感(按行业/版位/素材类型/关键词筛选)、素材审核(预审/状态/拒审分析/修复)、投放操作(创建广告、改出价/预算/定向、管理素材)。
fetch,无需 npm 包)。执行失败再运行 node --version 排查。references/token_management.md 引导用户配置。不得在输出中明文展示完整 Token。references/,按需渐进式加载,正常无需主动读):references/token_management.md:退出码 2/3 需引导配置 Token 时references/api/:使用 API 模式时,加载对应 API 的参数 schema先从对话上下文与历史消息提取补充信息(账户 ID、广告名称、时间范围等),能推断的不再追问。仍含糊时追问关键上下文(产品/环节/对象/报错),给 2~3 个选项,最多追问 1 轮;方向明确只缺细节则直接执行。缺时间范围默认最近 7 天并在输出中注明。
node scripts/chat.js '<JSON请求体>'
JSON 用单引号包裹避免 shell 转义。
请求体(普通提问,绝大多数场景):
{"query": "<用自然语言描述问题或诉求,尽量含账户ID/广告ID/时间范围/行业/版位/拒审原因等关键信息>"}
带附件预审(用户需预审本地图片/素材时):先上传获取 URL,再发起预审。
node scripts/upload.js "<本地文件路径>" # 从返回 JSON 的 data.file_url 取远程 URL
{
"query": "<预审需求,如:帮我预审这张素材>",
"attachments": [{"content_type": "IMAGE", "url": "<upload.js 返回的 file_url>"}]
}
content_type为附件类型(图片用IMAGE),支持多个附件。upload.js的 Token 鉴权与退出码规范同chat.js。
chat.js 是流式接口但以命令方式阻塞执行——所有进度行随命令一起返回而非实时到达。输出行前缀含义:
| 前缀 | 含义 |
|---|---|
[PROGRESS] |
执行进度(连接/加载/分步执行/回答生成) |
[RESULT] |
最终回答(其后所有内容为完整 Markdown) |
[RESULT_FILE] |
结果超长已落盘:完整回答写入了本地文件,stdout 仅给出文件路径与预览。须读取该文件取完整内容后再交付(详见「超长结果落盘」) |
[TASK_INFO] |
JSON 任务元信息 |
[VERSION_EXPIRED] |
版本过期,须按 message 指引更新后重试 |
正确做法:
[PROGRESS] 归纳一条简洁的处理过程回顾(去前缀,串成「理解问题 → 分步执行 → 生成回答」),不逐行照搬(尤其多条 ✍️ 已生成约 N 字),1~3 句即可,再展示 [RESULT]。[RESULT] 开头带 > ⚠️ 注意:……阶段性结果 提示。此时须如实告知是部分结果并询问是否重试,不得伪装成完整结论。
[PROGRESS]示例(供归纳,勿逐条展示):🚀 已连接…📋 步骤1:调用技能✅ 步骤1已完成📝 正在整合生成最终回答✍️ 已生成约 800 字✨ 流式会话结束。归纳示例:「已连接妙问助手,完成①理解问题 ②检索腾讯营销知识库,正在整理审核不通过的常见原因,请稍候~」
[RESULT_FILE] 处理)背景:创意灵感、素材审核等场景返回的结果会内嵌大量 <video>/<img> 媒体标签,单个 CDN src URL 长达 1000~2000 字符,一次十几个素材即可让 stdout 体量远超命令输出捕获层上限,导致中间内容被截断、素材链接丢失(违反下方「素材链接铁律」)。
机制:chat.js 在输出前判断结果体积——未超阈值(默认 8000 字符)走 [RESULT] 直出(绝大多数场景,行为不变);超阈值时把完整结果(含全部媒体标签与超长 URL)无损写入本地文件,stdout 只输出 [RESULT_FILE] + 文件路径 + 600 字预览。
你的处理:一旦看到 [RESULT_FILE],不要把预览片段当成完整答案,必须用 read_file 读取给出的完整结果文件,据此向用户交付完整内容(尤其确保所有 <video>/<img> 媒体标签及 src 原封不动保留)。读取后正常按「结果展示规范」呈现,无需向用户暴露落盘这一实现细节(可简述「结果较长,已完整获取」)。
前提须同时满足:①在已支持 API 范围内;②参数明确无需 AI 推理;③单次查数或定时任务。使用前必须先加载 references/api/ 对应文件获取完整参数 schema。
当前支持的 API:
| API 路径 | 功能 | 参考文件 |
|---|---|---|
daily_reports/get |
天粒度报表,按日期范围查询(T-1 更新),需指定账户ID列表,支持多维度聚合与全量 867 指标 | references/api/daily_reports_get.md |
hourly_reports/get |
小时粒度报表,按单天查询(支持当天实时),需指定账户ID列表,支持多维度聚合与全量 867 指标 | references/api/hourly_reports_get.md |
node scripts/api_tool_call.js '{"method":"GET","path":"<API路径>","params":{ ... }}' # 示例:查最近 7 天按日期消耗 node scripts/api_tool_call.js '{"method":"GET","path":"daily_reports/get","params":{"begin":"2026-04-02","end":"2026-04-08","group_by_type":"DATE","fields":["cost"],"page_size":7,"account_id_list":[2345678]}}'小葱技能7w4.net持续更新中。
两种模式退出码规范一致:
| 退出码 | 前缀 | 含义 | 处理 |
|---|---|---|---|
| 0 | [RESULT] / [RESULT_FILE] / [VERSION_EXPIRED] |
成功 / 成功(超长已落盘) / 版本过期 | 展示结果;遇 [RESULT_FILE] 须先读取文件取完整内容再交付;版本过期(Chat 输出 [VERSION_EXPIRED] 或 API code=140209)须先按 message 指引更新再重试 |
| 2 | [TOKEN_NOT_FOUND] |
Token 不存在 | 读 references/token_management.md 引导获取并保存 Token 后重试 |
| 3 | [TOKEN_EMPTY] |
Token 为空 | 同上 |
| 4 | [API_ERROR] |
API 错误 | 按响应判断:Token 失效→引导刷新;权限不足→提示检查;频率限制→稍后重试;5xx→服务暂不可用 |
| 5 | [NETWORK_ERROR] |
网络失败 | 展示错误,建议检查网络/代理 |
复杂问题不要一次调用给出最终答案,以用户最终目标为导向多轮收敛:拆解子目标 → 每轮调用后分析结果,不充分则继续(简单 1 轮,复杂 3~5 轮)→ 综合各轮信息给出整合分析与行动建议。每步简要告知进展,已有充分信息的子目标不再重复调用。
典型组合:
| 用户问题 | 调用链路 |
|---|---|
| 账户效果不好 | Chat(查数据)→ Chat(账户分析)→ Chat(优化建议) |
| 广告不起量 | Chat(诊断广告)→ Chat(补充数据)→ Chat(优化建议) |
| 分析账户 + 推荐创意 | Chat(账户分析)→ Chat(创意灵感) |
| 这张图能否过审 | upload.js(上传)→ Chat + attachments(预审) |
| 审核不通过 + 优化投放 | Chat(拒审分析 + 修复)→ Chat(投放诊断) |
| 创建/修改广告 | Chat(自然语言描述投放诉求,由助手编排执行) |
API 返回内容已是 Markdown(可能内嵌 HTML 媒体标签):
<video>/<img>/<audio> 及其 src)。不改写、删减、补充或二次格式化,不加主观解读(除非用户要求)。🚫 素材链接铁律:
<video>/<img>/<audio>媒体标签及其srcURL 是核心交付内容(尤其创意灵感、素材审核场景),必须原封不动完整保留。严禁:删除/省略媒体标签、截断长 URL、用「素材见原文」等占位描述替代真实链接、把 HTML 标签改写为纯文字。素材链接就是用户要的东西,丢了等于没交付。💡 正因这类结果常含大量超长媒体 URL 易超出 stdout 上限,
chat.js已内置「超长自动落盘」机制(见上文[RESULT_FILE]处理)。遇[RESULT_FILE]时务必读取完整文件再交付,这是落实本铁律、避免链接被截断的关键一环。
这个 Skill 质量不错,功能覆盖全面,从知识问答到数据分析再到广告诊断都能支持。文档非常详细,使用说明清晰,脚本会自动处理 Token 和各种异常情况。缺点是某些复杂场景(如创意灵感)的结果可能很长,需要等待一会儿才能看到完整内容。总体来说是一个成熟可靠的营销助手,适合腾讯广告投放人员日常使用。