← 返回 Skill 列表
extension
分类: 数据与分析无需 API Key

舆情分析专家

舆情分析专家 — 提供三大核心功能:(1) 全网舆情数据采集:输入公司、人物、事件等关键词,自动检索新闻、社交媒体、视频、论坛等公开信息,支持常规采集和竞品采集双模式;(2) 深度分析:对采集数据进行传播路径挖掘、情感倾向分析、关键意见领袖识别,生成带传播路径图、TOP传播人图谱的完整Word/HTML报告;(3) 竞品多维分析:对主品牌与多个竞品进行产品功能、服务能力、广告投放、营销活动、用户口碑、盈利能力等多维度对比分析,输出竞品对比报告。支持自定义时间范围和地区,按次调用付费,每次调用 ¥10.00,x402 协议触发微信支付后返回结果。

person作者: u_93cee939hubenterprise

舆情挖掘分析专家

⚠️ 付费技能说明

本技能是一个付费技能(Pay Skill),每次调用需支付 ¥10.00。

  • 本技能基于 X402 协议 实现支付,采用微信支付 AI 专属卡完成支付
  • 支付流程由后端支付接口服务自动发起,用户需在微信端确认支付(点击确认并输入密码)
  • 支付成功后,根据用户输入的触发词执行对应功能:
    • 采集/监测意图 → 功能一:全网舆情数据采集
    • 分析/报告意图 → 功能二:深度分析与报告生成
    • 竞品分析意图 → 功能三:竞品多维分析
  • 支付成功后,接口服务端返回 X-Out-Trade-No,用于后续接口调用的鉴权和审计
  • 若支付失败,技能将提示用户检查 AI 专属卡余额或支付状态
  • 按次付费,未成功调用的请求自动退款

📁 技能文件结构

本技能包含以下文件,执行过程中按需引用:

| 文件 | 说明 | | :--- | :--- | | SKILL.md | 本文件,技能主入口和流程控制 | | references/platforms.md | 平台清单:技能覆盖的公开平台列表 | | references/fields.md | 字段定义:采集数据的字段结构 | | references/compliance.md | 合规文件:合规承诺书、责任边界、数据安全要求(审核必查) | | references/output_template.md | 输出模板:Excel 结构和采集完成标志示例 | | references/rule_sample.json | 数据示例:数据字段格式参考示例 |

🔧 环境变量配置

本技能依赖以下环境变量,用于定位后端服务和身份认证:

| 变量名 | 说明 | 示例值 | | :--- | :--- | :--- | | SENTIMENT_BACKEND_BASE | 后端支付和数据服务的基础 URL | https://www.hcytrade.top/api/sentiment | | SENTIMENT_AUTH_KEY | (可选) 企业预授权 Key,配置后技能将进入企业批量授权模式,跳过个人支付流程,所有费用由企业统一结算 | <YOUR_ENTERPRISE_AUTH_KEY> |

配置方式:

方式一:通过 WorkBuddy 对话配置(推荐)

在 WorkBuddy 对话框中输入:

“帮我配置WorkBuddy 的环境变量 SENTIMENT_BACKEND_BASE,值为 https://www.hcytrade.top/api/sentiment”

或

“帮我配置WorkBuddy 的环境变量 SENTIMENT_AUTH_KEY,值为 <您获得的企业授权 Key>”

WorkBuddy 会自动完成配置,无需手动操作。

方式二:手动修改 settings.json

  1. 打开 WorkBuddy 的 settings.json 配置文件(可在.WorkBuddy目录中找到)
  2. 在 env 字段中添加:
{
  "env": {
    "SENTIMENT_BACKEND_BASE": "https://www.hcytrade.top/api/sentiment",
    "SENTIMENT_AUTH_KEY": "<YOUR_ENTERPRISE_AUTH_KEY>"
  }
}

保存文件并重启 WorkBuddy 使配置生效。

注意:

  • SENTIMENT_AUTH_KEY 为可选变量,若不配置,技能将按正常个人支付流程执行。
  • 该 Key 由技能提供方向企业客户批量颁发,用于企业内部自动化或团队协作场景,个人用户无法自行获取。若您是企业用户,请联系技能提供方获取专属 Key。

用户身份标识获取说明(审计与企业授权必需)

为什么需要 X-User-ID

本技能的所有后端接口调用均需携带 X-User-ID Header,用于以下唯一目的:

  1. 审计日志记录:确保每次数据获取、功能调用可追溯到具体用户,满足企业合规审计要求。
  2. 企业授权校验:当企业配置了 SENTIMENT_AUTH_KEY 时,后端会校验 X-User-ID 是否在企业授权用户清单内。

该标识不会用于广告推送、用户画像、第三方共享或其他任何用途。

获取流程(必须获得用户明确同意)

步骤 1:向用户明示用途并请求授权

在首次需要携带 X-User-ID 的请求前,AI 必须向用户展示以下内容并等待回复:

“本技能执行时需要获取您的 WorkBuddy 用户标识(userId),并随请求发送至后端服务(地址由环境变量 SENTIMENT_BACKEND_BASE 配置,您可在 settings.json 中查看实际域名),用于:

  • 审计日志:记录操作人与调用时间,满足合规审计要求
  • 企业授权校验:如您所在企业配置了授权 Key,用于校验您是否在授权清单内

获取方式:从 WorkBuddy 应用数据文件 sessions.json 中读取当前登录用户的 userId。

发送字段:X-User-ID(您的用户标识)、X-Request-ID(请求追踪 ID)、function(执行功能)、query(您的查询内容)。

您可以选择:

  • A. 同意:读取并发送 X-User-ID,继续执行
  • B. 拒绝:不读取、不发送 X-User-ID,使用 ANONYMOUS 作为替代值,企业授权模式将不可用。

请回复 A 或 B。在您做出选择前,我不会读取任何本地用户标识文件。”

步骤 2:根据用户选择执行

| 用户选择 | 行为 | |:---:|------| | A(同意) | 从 sessions.json 读取 userId,作为 X-User-ID 发送;本次会话内后续请求均复用该值 | | B(拒绝) | 不读取任何本地文件,发送 X-User-ID: ANONYMOUS;企业授权模式将无法使用(因后端无法校验身份) |

步骤 3:随时可撤销

用户可在任何时刻回复“停止发送用户标识”或“切换匿名模式”,AI 应立即停止发送 X-User-ID,改为 ANONYMOUS。

获取方式(仅在用户同意后执行)

方式一(首选):从 WorkBuddy 应用数据文件 sessions.json 中读取当前登录用户的 userId 字段。

方式二(备选):若方式一失败,提示用户手动提供:

“无法自动获取您的用户标识。请点击 WorkBuddy 左下角登录用户账号 → 点击复制用户ID,将复制的 ID 粘贴至对话中。”

用户提供后,AI 再次确认是否同意发送。

获取失败处理

若用户选择 A 但无法获取 userId,或用户选择 B,AI 使用 ANONYMOUS 替代并继续执行(企业授权模式除外,此时应提示用户“当前处于匿名模式,无法使用企业授权,请重新授权”)。

合规声明

  • 不静默读取:未经用户明确同意,不得读取或发送任何用户标识。
  • 不私自留存:用户标识仅在当前会话内使用,不写入任何本地文件或日志。
  • 可完全关闭:用户可通过选择 B 或主动撤销,彻底禁用 X-User-ID 发送。

🧪 两种运行模式

模式优先级说明:

  1. 企业预授权模式(高优先级):若 SENTIMENT_AUTH_KEY 已配置且有效,进入企业预授权模式。
  2. 个人支付模式(默认):若企业预授权模式不满足,进入个人支付模式。

企业预授权模式(免个人支付)

适用对象:已与企业签订正式服务协议的企业客户,用于内部批量采购、自动化任务或团队协作场景。

触发条件:环境变量 SENTIMENT_AUTH_KEY 已配置且有效。

核心机制:

  • 本模式为企业客户提供预授权通道,企业已通过线下对公转账或预充值方式向服务提供方支付了相应费用,因此终端用户可完全跳过个人微信支付流程,所有调用费用由企业统一结算。
  • 企业需在部署时向服务提供方申请并获取专属的 SENTIMENT_AUTH_KEY,该 Key 与企业的合同信息、信用额度及已授权的用户清单(通过 userId 关联)绑定。
  • 后端接口将验证 Key 的有效性(签名、有效期),并强制校验 X-User-ID 是否在企业的授权用户清单内,确保只有已登记的企业成员才能使用该 Key,避免内部滥用。

合规与审计:

  • 所有调用行为均受企业审计与合规监管,调用日志会记录企业标识、调用时间、操作人(X-User-ID)及消耗的额度,供企业管理员审计。
  • 该模式不涉及任何对微信支付能力的绕过,企业已通过线下支付协议完成了费用结算,符合平台商业规则。

异常处理:

  • 若 Key 无效、过期,或当前用户不在授权清单中,接口将返回明确错误,AI 应提示用户:“您的企业授权 Key 无效或当前用户未被授权,请联系企业管理员检查配置或续约。”

个人支付模式(正式付费使用)

  • 用户输入不含测试关键词时,且环境变量 SENTIMENT_AUTH_KEY 未配置或无效,进入正式支付流程。
  • 必须完成 X402 支付授权后,才能执行后续功能。
  • 每次调用为独立付费调用,只执行单一功能:
    • 采集/监测意图 → 功能一:全网数据采集
    • 分析/报告意图 → 功能二:深度分析与报告生成
    • 竞品分析意图 → 功能三:竞品多维分析

⚠️ 强制执行声明(最高优先级)

本声明覆盖所有其他描述,违反将导致技能立即终止。

  1. 数据来源:本技能优先使用本地数据(若存在),同时可尝试从云端获取最新数据以保持更新。数据获取支持本地与云端的灵活切换和融合,不会因云端不可用而阻塞核心功能。云端数据附带 RSA-SHA256 签名,验签通过后方可使用;验签失败立即终止,不降级使用任何未验证内容。
  2. 支付或企业授权是获取数据的唯一前提:必须先完成个人支付并获得有效 X-Out-Trade-No,或者已配置有效的 SENTIMENT_AUTH_KEY 且当前用户(X-User-ID)与企业的授权的 user_id 一致,否则禁止调用任何数据接口。企业授权模式仅适用于已与企业签订服务协议的合法企业客户,所有费用已通过线下渠道完成结算,符合平台合规要求。
  3. 连接器必须在支付前确认:支付前必须确认用户已配置腾讯在线文档连接器和 ima 知识库连接器,并安装必要的联网搜索技能。
  4. Fork 机制:执行阶段使用 context: fork 隔离敏感操作,具体边界见本文档"分段执行时的 Fork 规范"章节。
  5. 禁止自行调用联网搜索:任何强制检查完成前,AI 不得执行联网搜索或数据采集。
  6. 严格遵守流程顺序:执行前强制检查 → 支付流程 → 功能执行。
  7. 功能依赖强制执行:功能二和功能三必须在功能一成功完成后方可执行。
  8. 竞品分析限制:仅采集公开可访问信息,禁止爬取竞品私密或付费内容。
  9. 审计 Header 强制携带:调用 /api/sentiment/get_data 接口获取数据内容时,必须携带全部审计 Header(X-Out-Trade-No、X-User-ID、X-Request-ID 及采集透传字段)。其中 X-User-ID 是 WorkBuddy 当前登录用户的账号体系中的唯一用户 ID,必须携带,否则后端将拒绝服务或审计日志不完整,AI 必须在发起请求前逐项确认,缺失则立即终止执行并提示用户。
  10. 域名白名单强制:所有对外请求(/api/sentiment/*)的目标域名必须属于已备案白名单,禁止请求任意第三方域名。
  11. 数据完整性强制验证:每次从 /api/sentiment/get_data 获取数据后,必须校验 integrity 字段(含 content_hash 比对与 RSA-SHA256 签名验证)。校验失败立即终止执行,不得使用未通过验证的数据内容,不得降级使用本地缓存。
  12. 数据内容存储约束(安全约束):通过 /api/sentiment/get_data 接口获取的数据内容,优先在当前会话上下文中直接使用;如因上下文长度限制需要临时暂存,仅允许写入平台分配的技能会话目录(会话结束后自动清理),不得写入用户主目录、技能包目录或系统目录。
  13. 不规避自动化检测(合规约束):本技能严格遵守目标平台的公开规则与频率限制,不采用任何规避自动化检测的手段,包括但不限于:不使用代理池轮换 IP、不模拟真人操作特征、不绕过验证码或滑块验证、不突破平台风控。数据文件中的采集频率参数仅用于避免对目标平台造成访问压力,不用于伪装或规避检测。

⚠️ 触发模式

本技能提供三大独立功能。所有功能优先使用本地数据执行,同时可尝试从后端服务获取最新数据以保持更新。

| 功能 | 触发词示例 | | :--- | :--- | | 功能一(舆情采集) | "全网舆情采集"、"舆情数据采集"、"采集舆情信息" | | 功能二(深度分析) | "舆情分析"、"分析舆情"、"舆情报告"、"生成报告"、"情感分析"、"传播路径" | | 功能三(竞品分析) | "竞品多维分析"、"竞品全方位分析"、"竞品对比分析"、"分析竞品"、"竞品口碑对比"、"竞品功能对比" |

⚠️ 执行前强制检查

在执行任何功能之前,必须按顺序完成以下检查。全部通过后才可进入支付流程或企业预授权模式。

🔧 技能安装提示(建议安装,非强制)

为提升体验,建议用户从 WorkBuddy 技能市场搜索并安装:Media Crawler(官方认证)、Smart-charts、Drawio diagram builder、drawio skill、Excalidraw、Mermaid Diagrams。

检查 1:联网搜索技能检查

  • 检查 WorkBuddy 是否已启用联网搜索能力。若未启用:提示用户启用「WebSearch」,禁止继续。

检查 1.1:Media Crawler 技能检查(按需)

仅当用户选择的平台包含 微博、抖音、小红书、快手 且选择 深度采集 时需要。

  • 若未安装:暂停并引导用户安装。
  • B站、知乎、豆瓣、新闻网站等无需登录的平台,不需要 Media Crawler。

安装指引:Media Crawler 可在 WorkBuddy 技能市场中搜索安装,安装后需配置 Python 环境和 Playwright 驱动。

检查 2:腾讯在线文档连接器检查

  • 若未配置:暂停并引导用户配置。

检查 3:ima 知识库连接器检查

  • 若未配置:暂停并引导用户配置。

检查 4:必要绘图技能检查(分析报告依赖)

  • 进入分析阶段前,检查 Smart-charts 是否已安装。若未安装:暂停并引导用户安装。

检查 5:用户输入参数确认

  • 确认用户已提供完整的查询参数(关键词、关键词类型、时间范围、地区)。
  • 若参数不完整,引导用户补充。

检查 6:功能依赖检查(仅针对分析/竞品分析)

适用场景:用户意图为功能二(深度分析)或功能三(竞品分析)时执行。

检查方法:

  1. 询问用户:

    “请确认您是否已完成数据采集(功能一)?如已完成,请提供采集文件的存储位置(腾讯在线文档链接或 ima 知识库路径)。”

  2. 若用户提供有效路径且 AI 可访问验证 → 通过。
  3. 若未完成或无法提供路径 → 提示用户先执行功能一,终止流程。

注意:此检查在支付前强制执行,企业预授权模式下同样执行。

📋 执行前合规授权

在用户完成支付前,展示以下摘要并引导用户阅读完整文件:

完整合规文件请参阅:[references/compliance.md]

--- 展示文本开始 ---

【舆情分析合规承诺书】

为了保障数据安全与合规,在开启本次服务前,请您确认并同意以下条款:

  1. [ ] 我承诺仅将采集数据用于合法的内部舆情分析,绝不用于非法数据倒卖或侵犯第三方权益。
  2. [ ] 我确认本次分析的数据来源合法,且已了解本技能会自动对敏感个人隐私信息进行脱敏处理。
  3. [ ] 我知悉本技能调用的第三方工具需严格遵守目标平台的服务条款。
  4. [ ] 我同意本技能对采集行为进行合规审计日志记录。

回复“确认同意”即表示已阅读并同意 [references/compliance.md] 中的全部条款。

⚠️ 此为强制暂停点:用户必须回复“确认同意”后方可继续,未回复前不得进入支付流程。

--- 展示文本结束 ---

💳 支付前置检查

在进入支付流程之前,必须先确认当前 Agent 已支持微信支付,并且用户已完成 微信支付 AI 专属卡 的绑定。

1. 检查 AI 专属卡绑定状态(仅当未配置 KEY 时)

  • 检查用户是否已绑定微信支付 AI 专属卡(通常通过 WorkBuddy 的支付能力查询)。
  • 如果未绑定,则必须主动提示用户:

    “检测到您尚未绑定微信支付 AI 专属卡。请发送指令 帮我绑定微信支付 AI 专属卡 完成绑定,或按客户端指引绑定。”

  • 用户绑定后,WorkBuddy 会自动记录该状态。

2. 引导充值(若余额不足)

  • 绑定后,用户需要向 AI 专属卡充值,确保余额充足。
  • 充值路径(供参考,实际以客户端为准):钱包 → AI专属卡 → 转入金额。
  • 如果用户余额不足,支付将失败,请提示用户充值后再试。

3. 支付前确认(仅当未配置 KEY 时)

  • 只有确认用户已绑定 AI 专属卡且余额充足(或可接受实时扣款)后,才可进入支付流程。
  • 若用户拒绝绑定或充值,则终止技能,并提示:

    “支付准备未完成,请先绑定 AI 专属卡并充值,再使用本技能。”

注意:绑定和充值操作最终由 WorkBuddy 客户端和微信支付完成,本技能仅提供指引。若用户已完成上述操作,则可直接进入支付流程。

执行流程总览(必须遵守)

  1. 检查企业预授权模式:检测环境变量 SENTIMENT_AUTH_KEY 是否存在且非空。
    • 若存在,则使用企业预授权模式(跳过个人支付,直接进入数据获取),但必须确保 X-User-ID 可从 WorkBuddy 当前登录用户获取。
    • 若不存在,则进入个人支付流程(详见下文)。
    • 若为个人支付模式,必须先执行支付前置检查,通过后再进入支付
  2. 支付流程(仅当无 KEY 时):首先调用 backendEndpoint 完成支付流程(详见"支付流程"章节)。
  3. 分段获取数据:支付成功后(或企业预授权模式下),按"数据获取接口说明"章节调用接口,分段获取当前功能的数据内容。
  4. 按数据执行:按返回 data 字段中的结构化数据(平台列表、字段定义、分析维度、prompt 模板)和"子模块说明"表格执行所有步骤,不得跳过或修改。

远程数据加载确认(首次调用时执行一次)

本技能执行时将从环境变量 SENTIMENT_BACKEND_BASE 所配置的后端域名加载执行数据。请确认:

  • 接收端点:${SENTIMENT_BACKEND_BASE}(您可在 settings.json 的 env 字段中查看实际域名)
  • 数据用途:定义平台列表、字段结构、分析维度、执行步骤
  • 完整性保障:数据经过 RSA-SHA256 签名验证,验签失败立即终止
  • 发送字段:仅发送 function(功能名)和 module(模块名),不发送您的查询内容或采集结果

你是否同意从上述域名加载执行数据?请回复 Y 或 N。

  • 回复 Y → 继续执行
  • 回复 N → 终止本次调用,不产生费用

支付流程(X402 协议,仅当无 KEY 时)

本流程仅适用于个人支付模式。企业预授权模式无需执行。

支付请求发出后,你将在微信上收到支付确认通知,需要你在手机上点击确认并输入支付密码后,支付才会完成,从 AI 专属卡完成扣款。必须严格按以下步骤执行,不得跳过任何步骤。

  1. 首次请求
    向 backendEndpoint(即 frontmatter 中 skillhub.backendEndpoint 定义的具体值)发起 POST 请求,请求体为:

    {"skill":"sentiment-analysis-expert", "query":"用户输入的查询内容"}	
    
    
  2. 处理 402 响应
    如果收到 HTTP 402 状态码,响应头包含: WeixinPay-Required: 支付凭证码(字符串) X-Out-Trade-No: 商户订单号

响应体为:

{
 "code": "PAYMENT_REQUIRED",
 "message": "需要支付后才能获取内容",
 "WeixinPay": {
   "WeixinPay-Required": "支付凭证码",
   "prompt": "请将 WeixinPay-Required 的值作为 paymentCode 交给 weixinpay_pay"
 },
 "out_trade_no": "商户订单号",
 "amount": "10.00",
 "currency": "CNY",
 "description": "技能付费: sentiment-analysis-expert"
}

  1. Agent 发起支付(由 WorkBuddy 自动处理)
    Agent 识别到 WeixinPay-Required 后,调用内置的微信支付能力。 用户将在手机微信端收到支付确认通知,点击确认后完成付款。

  2. 支付成功后重试 支付成功后,必须立即重新向 backendEndpoint 发起请求,并携带以下 Header:

  • X-Out-Trade-No:第 2 步获得的商户订单号 请求体必须与首次请求完全一致。
  1. 收到 200 OK 如果支付已验证成功,后端返回:
{
  "code": "SUCCESS",
  "message": "支付成功,请继续执行您的技能",
  "out_trade_no": "商户订单号",
  "transaction_id": "微信支付交易号"
}

只有收到此响应后,才可进入下一步的数据获取和执行阶段。

对话输出规范(强制执行):

  1. 保持对话简洁:数据加载、格式转换、数据预处理等技术性操作的内部细节(路径、字节数、耗时)不对用户展示,仅保留动作与结果的简洁提示,避免干扰用户阅读核心进度与结果。

  2. 仅输出用户关心的内容:

    • 任务完成标志(如"✅ 已完成微博平台采集,获取 120 条数据""✅ 情感分析已完成""✅ 舆情分析报告已生成")
    • 生成的 Excel/Word/HTML 文件路径
    • 需要用户确认的交互节点(如采集深度选择、存储方式选择)
    • 错误/异常信息
  3. 数据加载的可见输出:

    • 允许输出:数据加载的动作、模块名、进度状态、完成标志。例如:"⏳ 正在加载 collect_config 规则..."、"✅ 数据加载完成"。
    • 禁止输出:本地文件系统的具体路径(如 /tmp/xxx/collect_config.md、C:\Users\...)、系统级细节。

    数据加载的动作、模块名、进度对用户可见;本地文件系统路径属于平台内部实现细节,与用户决策无关,不对外展示。

说明:本规范旨在提升对话可读性,不意味着隐瞒任何执行行为。用户可随时要求 AI 展示完整的执行日志与技术细节(含模块名、加载时间、字节数等)。

🧭 核心执行流程(企业预授权与个人支付通用)

无论您处于个人支付模式还是企业预授权模式,在进入具体功能(采集/分析/竞品分析)之前,必须先完成支付前置检查(或进入企业预授权模式),然后按本文件定义的数据获取流程执行。

执行顺序:

  1. 完成支付前置检查(个人支付模式)或检测到 SENTIMENT_AUTH_KEY(企业预授权模式);
  2. 获取有效的 X-Out-Trade-No(个人支付模式)或确认已配置有效的 X-Auth-Key(企业预授权模式);
  3. **【强制检查】在调用后端接口前,必须确认以下 Header 均已准备就绪:X-Out-Trade-No 或 X-Auth-Key、X-User-ID(WorkBuddy 账号体系唯一用户 ID)、X-Request-ID(以及采集阶段的透传字段)。若 X-User-ID 或 X-Request-ID 缺失,立即终止并提示用户"审计信息缺失,无法继续";
  4. 按 "数据获取接口说明" 中的要求调用 /api/sentiment/get_data,分段获取对应功能的数据内容(详见"子模块说明"表格),同一功能内所有模块复用同一个凭证(个人支付模式为 X-Out-Trade-No,企业预授权模式为 X-Auth-Key)。个人支付模式下后端仅验证一次支付状态,不会重复扣费;
  5. 【强制】 对每个模块的响应执行 "数据完整性验证"(验签 integrity 字段)。验签失败立即终止,不得继续;
  6. 验签通过后,按"子模块说明"表格的模块内容与顺序执行;
  7. 若数据获取失败(网络错误、订单失效等),提示用户检查网络配置后重试,并终止执行。

重要:本技能的所有详细数据(采集策略、分析维度、竞品对比算法)均由云端数据文件定义,执行前必须先获取。禁止在未获取数据的情况下,使用任何内置工具或自行推测执行步骤。


📡 数据获取接口说明(含审计 Header 透传)

本技能调用 /api/sentiment/get_data 接口时,向环境变量 SENTIMENT_BACKEND_BASE 配置的后端域名发送以下字段:

接口地址:/api/sentiment/get_data

请求方法:POST

请求字段与数据外发披露(按需携带):

| 字段 | 位置 | 来源 | 说明 | 用途 | 是否含用户数据 | | :--- | :---: | :--- | :--- | :--- | :---: | | X-Out-Trade-No | Header | 支付阶段获得 | 商户订单号(个人支付模式) | 鉴权与订单校验 | ❌ | | X-Auth-Key | Header | 环境变量 SENTIMENT_AUTH_KEY | 企业预授权模式下必须携带,值为企业 Key | 授权合法校验 | ❌ | | X-User-ID | Header | WorkBuddy 当前登录用户 | WorkBuddy 体系的唯一用户标识 ID(userId) | 审计日志、企业授权校验 | ✅(用户标识) | | X-Request-ID | Header | 每次请求生成唯一 ID | 请求唯一标识 | 全链路追踪 | ❌ | | X-Collect-Keywords | Header | 采集阶段透传 | 采集阶段的关键词 | 合规审计日志 | ✅(采集关键词) | | X-Collect-Time-Range | Header | 采集阶段透传 | 采集阶段的时间范围 | 合规审计日志 | ❌ | | X-Collect-Data-Count | Header | 采集阶段透传 | 采集阶段的数据条数 | 合规审计日志 | ❌ | | X-Collect-Platforms | Header | 采集阶段透传 | 采集阶段的平台列表 | 合规审计日志 | ❌ | | X-Collect-Duration | Header | 采集阶段透传 | 采集阶段的耗时 | 合规审计日志 | ❌ | | X-Collect-Sanitized-Count | Header | 采集阶段透传 | 采集阶段的脱敏次数 | 合规审计日志 | ❌ | | X-Collect-Status | Header | 采集阶段透传 | 采集阶段的状态 | 合规审计日志 | ❌ | | function | Body | 请求体 | 功能标识(collect/analyze/competitor) | 指定数据模块所属功能 | ❌ | | module | Body | 请求体 | 模块标识(如 config、params) | 指定获取的数据模块 | ❌ | | query | Body | 用户输入 | 用户的查询内容 | 识别功能类型 | ✅(用户查询内容) |

模式与 Header 对应关系:

  • 个人支付模式:X-Out-Trade-No + X-User-ID + X-Request-ID
  • 企业预授权模式:X-Auth-Key + X-User-ID + X-Request-ID

携带条件:X-Out-Trade-No 仅个人支付模式携带;X-Auth-Key 仅企业预授权模式携带;X-Collect-* 仅分析/竞品分析时携带;其余字段每次请求必带。

强制要求:缺少 X-User-ID 或 X-Request-ID,后端将无法记录用户与订单的对应关系,审计日志不完整。

保留期:上述字段的审计日志存储于腾讯云日志,保留期为 30 天,到期自动删除。

用途限制:query 与 X-Collect-* 字段不用于广告推送、用户画像或第三方共享,仅用于功能识别,供企业客户审计和监管核查。

用户控制:用户可在 X-User-ID 授权环节选择拒绝(B 选项),此时 X-User-ID 以 ANONYMOUS 替代。query 与 X-Collect-* 仍会发送,用于功能识别与审计。

请求体:

{
  "function": "collect",   // 必填: collect, analyze, competitor
  "module": "config"       // 必填: 子模块名称(module 值),具体取值见下方表格
}

子模块说明(分段获取):

为避免单次获取数据内容过大导致输出截断,本技能支持分段获取数据。各功能对应的 module 值如下:

| 功能 | 顺序 | module 值 | 内容 | |------|------|------------|------| | 采集 (collect) | 1 | config | 概述、合规声明、技能依赖检查、工具选择规则 | | | 2 | params | 用户输入参数、周期重叠处理、采集深度选择、存储方式选择 | | | 3 | platforms_central | 中央新闻网站(含地方频道代码表) | | | 4 | platforms_social_gov | 社交媒体 + 政务平台 + 投诉举报平台 | | | 5 | platforms_tech_video_music_auto | 科技媒体 + 视频平台 + 音乐平台 + 汽车网站 | | | 6 | platforms_local_1 | 地方新闻网站(北京 → 山东) | | | 7 | platforms_local_2 | 地方新闻网站(河南 → 新疆) | | | 8 | platforms_others | 法律网站 + 论坛社区 + 行业媒体 + 用户评价 + 销售渠道 | | | 9 | execution | 采集执行方式(站内搜索、API、多模态处理) | | | 10 | data_export | 数据字段定义、存储结构、Excel 生成规则 | | | 11 | error_complete | 异常处理、采集完成标志、检查清单 | | | 12 | deep | 深度采集数据处理(全文、评论、用户画像) | | 分析 (analyze) | 1 | config | 分析前强制检查、用户交互入口、存储确认、Fork机制 | | | 2 | steps_1 | Step 1~4(数据预处理、声量趋势、情感分析、热词云图) | | | 3 | steps_2 | Step 5~9(事件时间线、传播路径、传播人识别、生命周期、地域分布) | | | 4 | steps_3 | Step 10~12(风险评估、议题聚类、观点提取、建议措施) | | | 5 | deep | Step 13 深度分析(情感极值、人群画像、评论分析、传播拓扑) | | | 6 | data_save | 分析过程数据保存(Sheet 结构、字段定义、执行时机) | | | 7 | templates | 报告结构(14章)、Word/HTML规范、完成标志、检查清单 | | 竞品 (competitor) | 1 | config | 概述、合规声明、存储确认、分析范围确认、Fork机制 | | | 2 | dimension_1 | 维度一:产品与服务对比 | | | 3 | dimension_2 | 维度二:营销与广告对比 | | | 4 | dimension_3 | 维度二点五:销售渠道对比 | | | 5 | dimension_4 | 维度三:用户口碑与投诉对比 | | | 6 | dimension_5 | 维度四+五:声量情感品牌 + 亮点盈利排名 | | | 7 | templates | 报告结构(11章)、完成标志、审计日志、检查清单 |

调用规范:每次调用必须携带 module 参数,按"子模块说明"表格的顺序逐个获取模块,不可一次请求多个模块,不可跳步或逆序。同一功能内所有模块复用同一个凭证(个人支付模式为 X-Out-Trade-No、企业预授权模式为 X-Auth-Key)。个人支付模式下后端仅验证一次支付状态,不会重复扣费;但跨功能调用(如用采集功能支付的订单号获取分析数据)会被后端拒绝(403),需重新获取对应功能的凭证。

响应:

{
  "code": "SUCCESS",
  "message": "数据获取成功",
  "data": "(接口返回的数据内容,直接在上下文中使用)",
  "hash": "sha256:abcd1234...",
  "integrity": {
    "content_hash": "sha256:abcd1234...",
    "signature": "base64编码的RSA-SHA256签名",
    "key_id": "sentiment-rule-signer-v1",
    "signed_at": "2026-09-12T10:00:00Z",
    "algorithm": "RSA-SHA256",
    "version": "1.1.0"
  }
}

Hash 校验规则(强制执行):

  • 由于后端每次返回的 hash 均基于时间戳动态生成,每次均不同,因此技能每次都必须使用最新获取的数据内容,不得使用任何本地缓存的旧数据。
  • 该机制确保数据始终保持最新状态,任何数据更新均可即时生效。
  • 分段获取同样适用:每个子模块返回的 hash 均不同,AI 无需跨模块比对 hash,但必须使用当前请求返回的 data 内容执行,不得使用之前缓存的同名模块内容。

数据完整性验证(强制执行,验签失败立即终止):

hash 字段仅用于缓存刷新,不代表数据未被篡改。数据的完整性由 integrity 字段保证。每次获取数据后,必须按以下流程验证:

  1. 计算内容哈希:对响应 data 字段的原始数据计算 SHA-256,格式为 sha256:{hex},记为 computed_hash。
  2. 比对内容哈希:校验 computed_hash == integrity.content_hash。不相等则终止,提示:"数据内容哈希不匹配,可能被篡改"。
  3. 比对 KeyID:校验 integrity.key_id == "sentiment-rule-signer-v1"。不匹配则终止。
  4. 验证签名:用内置公钥(见下方)对 payload {integrity.content_hash}|{integrity.version}|{integrity.signed_at} 的 SHA-256 做 RSA-SHA256 验签。
  5. 验签结果处理:
    • 通过 → 使用 data 内容,按"子模块说明"表格顺序执行后续步骤。
    • 失败 → 立即终止本次调用,向用户提示:"数据完整性校验失败,可能存在中间人篡改,已终止本次调用。请检查网络环境或联系技能提供方。"

内置公钥(发布时固化,不接受运行时替换):

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu5TmvBeXTwWyFdsFcuvY
9r90jnB1BIrXNDDl3khxu1DQmlcAy5hZosoTERjyBAyF6UaMwnUofUM4t1+eBb7Z
IFeKkq+h8IUeLuXRv9zuMSwUuH739BdMesrobFRZDtfuOcXvLWN1+vXupyWxq2bL
CBhBdMuX2zLJAegeu7DPWFwCvZ764bREs8RqF9ZzGERLokdSsrZz1M7PaIfFzudd
Lz6ZlcpvdTt1q4L3PW+3dR2FeKZds9UuUQww8x9SdWP8pbyFJcQgyZCvJxvpZ0ds
3EqDQ2juuGRPCQEmfRNX4FRJF3s2uiViota+0Gr6ShPniC4zUCkoBLKfp+K7e+/Y
ewIDAQAB
-----END PUBLIC KEY-----

公钥轮换:如需轮换签名密钥,必须发布新的技能版本,禁止通过任何外部配置替换公钥。

分段执行时的 Fork 规范(强制执行):

无论数据内容如何分段获取,AI 的数据读取和数据处理必须在 Fork 隔离上下文内完成;用户交互和结果展示在主对话内完成。

| 功能 | 适用模块范围 | |------|-------------| | 采集 | 全部 12 个模块 | | 分析 | 全部 7 个模块 | | 竞品 | 全部 7 个模块 |

Fork 边界(按操作类型区分):

| 操作类型 | 是否 Fork | 说明 | |:---|:---:|:---| | 数据内容读取(所有模块) | ✅ Fork | 从接口获取的原始数据在隔离上下文处理 | | 数据处理(平台解析、字段提取、分析计算、竞品对比) | ✅ Fork | 处理过程不进入主对话 | | 用户交互(参数确认、采集深度、存储方式、预算确认、目录确认) | ❌ 不 Fork | 用户必须看到提问并回复 | | 结果展示(平台列表、完成标志、报告路径、错误信息) | ❌ 不 Fork | 用户必须看到结果 | | 文件输出(Excel/Word/HTML 生成) | ❌ 不 Fork | 输出动作需用户可见 |

执行原则:读取全 Fork,执行按类型区分。每个模块内的具体 Fork 操作边界由各功能 xxx_config.md 定义。

可见性边界:

  • 不进入主对话:原始数据内容、中间处理过程、解析细节
  • 进入主对话:用户交互提问、结果展示、错误信息、进度提示
  • Fork 操作的动作与进度对用户可见(可见性规则见"对话输出规范")

调用示例(企业预授权模式):

POST /api/sentiment/get_data
Header: X-Auth-Key: <YOUR_ENTERPRISE_AUTH_KEY>
Header: X-User-ID: <从 WorkBuddy 自动获取的 userId>
Header: X-Request-ID: <生成的唯一请求ID>
Body: {"function": "collect", "module": "config"}

调用示例(个人支付模式):
```https
POST /api/sentiment/get_data
Header: X-Out-Trade-No: SA_C_20260905143025abc123
Header: X-User-ID: <从 WorkBuddy 自动获取的 userId>
Header: X-Request-ID: req_a1b2c3d4
Body: {"function": "collect", "module": "config"}

功能二(分析)和功能三(竞品分析)调用时,只需将 function 值分别改为 analyze 和 competitor,其余 Header 保持一致。

模块总数提示:

  • 采集功能共 12 个模块(config + params + 8 个 platforms + execution + data_export + error_complete + deep)
  • 分析功能共 7 个模块(config + steps_1~3 + deep + data_save + templates)
  • 竞品功能共 7 个模块(config + dimension_1~5 + templates)

AI 应按"子模块说明"表格的顺序依次获取各模块,不可跳步或逆序。

📥 功能一:全网舆情数据采集

前置条件

  • 执行前强制检查全部通过
  • 已完成支付(个人支付模式)或通过企业预授权校验(企业预授权模式)

步骤 1:分段获取采集数据

按 "数据获取接口说明" 章节执行——首次请求 module=config,后续按"子模块说明"表格顺序依次获取,共 12 个模块。

步骤 2:执行强制交互(数据返回后执行)

2.1 周期重叠检测

若与历史采集周期存在重叠,向用户展示重叠区间并提供 A/B/C 选项(无默认值,用户必须回复)。

2.2 采集深度选择

向用户询问:

“请选择本次采集的深度:1. 基础采集 2. 深度采集” (无默认值,用户必须回复)

2.3 存储方式选择

向用户询问:

“请选择采集数据的存储方式: A. 腾讯在线文档 B. ima 知识库 C. 本地(下载到本地) D. 腾讯在线文档 + ima 知识库 E. 全部(腾讯在线文档 + ima 知识库 + 本地)

请回复 A、B、C、D 或 E。” (无默认值,用户必须回复)

说明:采集数据是后续分析的输入源。若选择“本地”或包含“本地”的选项,分析阶段会自动从本地路径读取数据。

2.4 竞品采集分支(当用户意图为竞品分析时触发)

⚠️ 此分支仅在用户输入包含竞品分析意图时触发(如“竞品分析”、“帮我分析一下 XXX 的竞品”、“竞品对比”等关键词)。

触发条件:

  • 用户输入包含竞品分析触发词,或
  • AI 在意图识别中判断用户需要进行竞品分析

竞品采集交互流程:

  1. 确认竞品采集需求:

    “检测到您可能需要进行竞品分析。是否需要启用竞品采集模式? A. 是,我需要采集竞品数据 B. 否,仅常规采集

    请回复 A 或 B。”

  2. 采集竞品信息确认(用户选择 A 后):

    “请提供竞品采集的基本信息:

    1. 主品牌/产品名称(本次采集的核心目标):_____
    2. 竞品列表(需采集的竞争对手,至少1个):_____ 示例:腾讯云,阿里云,华为云
    3. 是否采集产品自身数据:A. 是(采集产品功能、价格、版本等信息)B. 否
    4. 竞品采集深度:A. 基础采集 B. 深度采集

    请按顺序回复,或逐项提供。”

  3. 竞品平台范围选择:

    “请选择竞品数据采集的平台范围(可多选,回复数字或平台名称):

    1. 电商平台(淘宝、京东、拼多多、闲鱼、得物等22个)
    2. 生活服务平台(美团、大众点评、饿了么、飞猪、携程等16个)
    3. 微商/社交电商平台(微店、有赞、快团团、微信小店等15个)
    4. 支付平台(支付宝、微信支付、银联云闪付)
    5. 官方商城/官网/APP
    6. 应用商店(App Store、华为应用市场、小米应用商店等11个)
    7. 短视频与直播平台(抖音、快手、淘宝直播、视频号直播)
    8. 测评/种草社区(小红书、什么值得买)
    9. 全选
    10. 自定义

    示例回复:1,3,5 或 淘宝,京东,美团 或 全选”

执行规则:

  • 此为强制暂停点,用户未回复前不得继续。
  • 竞品采集与常规采集并行执行,互不干扰。
  • 每个竞品独立采集,数据隔离存储。
  • 竞品数据采集完成后,提示用户:

    “竞品数据采集已完成。如需进行竞品全方位分析(功能三),请单独发送包含“竞品分析”触发词的指令”

  • 禁止自动跳转至功能三,功能三必须由用户主动触发并完成新的支付流程。

步骤 3:执行采集

常规采集: 按获取到的采集数据执行常规采集。

竞品采集(如用户已启用竞品采集模式): 按获取到的采集数据中的竞品采集模式执行:

  1. 并行采集:对竞品列表中的每个竞品同时(并行)执行采集,互不等待,互不干扰。
  2. 独立存储:每个竞品的数据单独存储为一个 Excel 文件,文件命名格式为 {竞品名称}_采集数据.xlsx。
  3. 采集完成后提示:

    "竞品数据并行采集已完成,共采集 {N} 个竞品的数据。

    如需进行竞品全方位分析(功能三),请单独发送包含"竞品分析"触发词的指令"

  4. 禁止自动跳转至功能三:功能三必须由用户主动触发并完成新的支付流程。

步骤 4:采集完成

  • 生成四个 Sheet 的 Excel 文件,保存到用户指定位置
  • 保存采集上下文字段,用于分析阶段透传
  • 按 [references/output_template.md] 格式输出采集完成标志
  • 若竞品采集已启用,额外输出竞品采集完成标志

⚠️ 强制暂停点:采集完成后,必须向用户输出以下提示并等待用户明确回复,禁止自动进入分析阶段:

“✅ 数据采集已完成,共采集 {N} 条数据,存储位置:{存储路径}。

如需进行深度分析(功能二),请回复“继续分析”或发送包含“分析”触发词的指令。如需跳过分析,请回复“跳过”。

在您回复之前,我不会执行任何分析操作。”

  • 用户回复“继续分析”或包含“分析”触发词 → 进入功能二
  • 用户回复“跳过” → 结束本次调用
  • 用户未回复 → 重复提示,禁止自动继续

此规则在企业预授权模式下同样强制执行。

📤 功能二:深度分析与报告生成

前置条件

  • 已通过“执行前强制检查”中的 检查 6(功能依赖检查),确认采集数据存在。
  • 若用户在执行过程中被引导至此,而数据实际缺失,则按检查 6 的提示重新引导用户执行功能一。

步骤 1:分析前强制交互(无默认值,用户必须回复)

1.1 分析周期范围选择

“请选择分析数据范围:1. 本次 2. 全周期”

1.2 报告格式选择

“请选择报告格式:A. Word B. HTML”

1.3 存储方式选择(分析前确认)

“请选择分析报告的存储方式: A. 腾讯在线文档 B. ima 知识库 C. 本地(下载到本地) D. 腾讯在线文档 + ima 知识库 E. 全部(腾讯在线文档 + ima 知识库 + 本地)

请回复 A、B、C、D 或 E。”

说明:

  • 若用户本次未回复,默认沿用功能一(数据采集)中选择的存储位置
  • 若功能一未执行,则默认使用 C(本地)。

步骤 2:分段获取分析数据

按 "数据获取接口说明" 章节执行——首次请求 module=config,后续按"子模块说明"表格顺序依次获取,共 7 个模块。

步骤 3:执行分析

按获取到的分析数据执行分析,生成报告。

输出格式参考:[references/output_template.md]

步骤 4:分析完成

输出报告摘要、关键发现、建议措施、存储位置。

📊 功能三:竞品全方位分析

前置条件

  • 已通过“执行前强制检查”中的检查 6,确认主品牌及竞品采集数据均存在。

步骤 1:竞品分析范围确认(无默认值,用户必须回复)

“请确认竞品分析的基本信息:

  1. 主品牌名称(如已采集):_____(或回复“自动”让系统检索)
  2. 竞品列表(如已采集):_____(或回复“自动”让系统检索)
  3. 分析维度(不填则全选): A. 产品与服务对比 B. 营销与广告对比 C. 用户口碑与投诉对比 D. 声量、情感与品牌形象对比 E. 亮点、盈利能力与综合排名
  4. 报告格式:A. Word B. HTML
  5. 报告存储方式: A. 腾讯在线文档 B. ima 知识库 C. 本地(下载到本地) D. 腾讯在线文档 + ima 知识库 E. 全部(腾讯在线文档 + ima 知识库 + 本地)

请逐项回复,或直接回复“确认”使用默认值:自动检索 + 全选维度 + Word 格式 + 存储到 ima 知识库。”

说明:若用户未回复存储方式,默认沿用功能一中选择的存储位置。若功能一未执行,则默认使用 C(本地)。

⚠️ 强制暂停点:用户未回复前不得继续。

步骤 2:分段获取竞品分析数据

按 "数据获取接口说明" 章节执行——首次请求 module=config,后续按"子模块说明"表格顺序依次获取,共 7 个模块。

步骤 3:执行竞品分析

按获取到的竞品数据执行多维度对比分析(产品服务、营销广告、用户口碑、声量情感、亮点盈利等)。

步骤 4:分析完成

输出综合排名、优劣势总结、建议措施、存储位置。

🚫 禁止行为

| ❌ 禁止行为 | 说明 | | :--- | :--- | | 未调用 /api/sentiment/get_data 接口获取数据内容就执行采集/分析/竞品分析 | 数据内容定义了具体执行逻辑,需先获取 | | 跳过数据中的任何强制交互 | 数据要求询问用户的必须询问 | | 使用内置知识补充数据未写的内容 | 数据没写的就不做 | | 违反 [references/compliance.md] 中的任何条款 | 合规文件是最高约束 | | 功能二在功能一未完成时执行 | 必须先完成数据采集 | | 功能三在功能一未完成时执行 | 必须先完成数据采集(主品牌 + 竞品) | | 竞品分析中爬取竞品官网私密内容 | 仅采集公开可访问信息 | | 跳过 integrity 验签直接使用数据内容 | 数据可能被中间人篡改,必须验签 | | 验签失败后降级使用本地缓存数据 | 缓存数据同样不可信,必须终止 |

📋 责任边界、免责声明与数据安全要求

完整的责任边界、免责声明与数据安全要求,请参阅 [references/compliance.md]。

核心要点:

  1. 本技能仅作为技术调度工具,不直接执行数据采集。
  2. 数据采集由第三方工具执行,数据存储由第三方平台提供。
  3. 用户对采集数据的内容、来源合法性及后续使用承担全部法律责任。
  4. 采集结果自动进行隐私信息脱敏处理。
  5. 单次采集时间范围不超过 30 天。
  6. 所有采集操作记录合规审计日志。
  7. 竞品分析合规:竞品分析仅采集公开可访问信息,禁止用于不正当竞争或恶意诋毁。

📌 数据获取说明

本技能通过环境变量 SENTIMENT_BACKEND_BASE 获取云端数据内容,各功能对应的数据文件命名规则如下:

| 功能 | 数据文件命名 | 说明 | | :--- | :--- | :--- | | 功能一(采集) | collect_{module}.md | 按 module 拆分的多段数据(详见"子模块说明"表格),涵盖平台搜索参数、翻页规则、时间窗口策略、采集深度字段定义 | | 功能二(分析) | analyze_{module}.md | 按 module 拆分的多段数据(详见"子模块说明"表格),涵盖情感分析、事件提取、风险判定的 AI 提示词模板、分析维度、图表生成规范 | | 功能三(竞品分析) | competitor_{module}.md | 按 module 拆分的多段数据(详见"子模块说明"表格),涵盖竞品对比分析维度、评分算法、报告结构 |

数据结构示例:references/rule_sample.json 为数据字段格式的脱敏示例,仅用于说明数据文件的数据结构。

⏰ 自动化任务创建(分析完成后可选)

当本技能完成一次完整的舆情分析后(采集 + 分析),必须主动询问用户是否将当前分析流程设定为 WorkBuddy 的自动化定时任务。

触发时机:

  • 仅在本次舆情分析全部步骤(功能二)成功完成,且“分析完成标志”已输出之后,才可触发此询问。
  • 禁止在采集阶段、分析中途或报告未生成完成时触发自动化任务询问。

参数收集(强制交互,无默认值):

任务名称(可选,不填则使用 {keyword}_舆情监测)

工作空间(可选,不填则使用当前)

提示词(自动生成,用户可修改)

技能选择(自动锁定当前技能)

连接器选择(腾讯在线文档 / ima 知识库)

执行频率(周期执行 / 按间隔执行 / 单次执行)

生效日期区间(可选)

通知方式(微信小程序 / 企业微信 Bot)

支付授权:自动化任务使用 AI 专属卡自动扣款,需用户确认授权。

详细交互流程遵循 WorkBuddy 平台自动化任务创建规范。

版本与更新

技能版本:1.1.3

数据文件由后端统一维护,当数据更新后,无需重新发布技能,WorkBuddy 将在下一次执行时自动获取最新数据。 公钥轮换政策:数据签名公钥为技能发布时固化,不接受运行时替换。如需轮换签名密钥,将通过发布新技能版本完成,届时会在版本说明中同步更新公钥指纹。

技术支持

SkillHub 反馈:在技能评论区留言。