--- name: workshop-session-3-voc description: VOC虾工作坊 Session 3 — 教虾抓评论·VOC初体验 + Side Quests version: 3.0.0 session: 3 prevSession: workshop-session-2-brand.md nextSession: workshop-session-4-deep.md --- # Session 3:教虾抓评论 · VOC初体验(Day1晚) > **前置依赖:必须先加载 `workshop-global-rules.md`** > > **对应工作坊环节**:Day1 19:00-21:30「教虾抓评论·VOC初体验」 > **目标**:虾第一次"下海捕虾"——批量采集用户评论,完成初步情感分析和关键词地图 > **关键点**:本阶段只做采集+初步感知,深度分析(痛点/功能/场景)在阶段四进行 ## 前置检查 - 🛑 **GATE CHECK**: 检查 `workshop-progress.json` 中 `session-2.status`。如果为 `awaitingCalibration` 或 `exploring`,**禁止开始 Session 3**,必须先等待用户完成 Session 2 的校准和探索。 - ✅ `stage-2-output.json` 存在 - ✅ 已确认的竞品ASIN列表 - ✅ 读取 `calibration-notes.sessions.session-2.forwardActions` → 获取需要在本阶段应用的调整 - ✅ 读取 `stage-2-output._anomalies` → 关注竞品异常信号 ## Side Quest 触发条件速查(主线执行时参考) > Agent 在执行主线分析时,**必须同时对照此表检测触发信号**,发现匹配时写入 `_sideQuestTriggers`。 | questId | 名称 | 触发信号(满足任一即触发) | |---------|------|-------------------------| | `negative-review-deep-dive` | 😤 差评深潜 | ① 某差评维度提及率 >15%(如"漏液"在所有差评中被提到 >15%) ② 某维度差评近3月环比增长 >50% ③ 品牌独有的差评模式(竞品无此类投诉) | | `five-star-decoder` | ⭐ 好评解码 | ① 品牌5星好评率与竞品差距 >10个百分点(高或低) ② 好评中某关键词出现频率 >20% ③ 好评中出现竞品未提及的独特卖点 | | `review-battle` | 🆚 评论对决 | ① 品牌vs某竞品情感分差距 >15分 ② 品牌与某竞品在同维度上情感极性相反 ③ 用户校准中对某竞品的评论表现表示惊讶 | ## 校准前向传递 读取 session-1 + session-2 的校准意见: - 用户拒绝的竞品 → 从采集列表中移除 - 用户新增的竞品 → 加入采集列表 - session-2 中发现的竞品弱点 → 采集评论时重点关注对应 ASIN 的差评 ## 自动构建ASIN列表 从 brand-context.brandAsins + stage-2-output.competitorAsins 合并去重(共5-8个ASIN) **注意**:必须使用经过 session-2 校准确认后的竞品列表 ## 对话开场 ``` 虾:💬 阶段三:评论采集 + VOC初体验 ━━━━━━━━━━━━━━━━━━━━ 接下来虾要第一次"下海捕评论"了! 这个阶段我会: ① 📥 批量采集自家+竞品的用户评论(300-500条) ② 📊 做初步情感分类(正面/中性/负面分布) ③ 🔤 生成关键词情感地图 待分析ASIN列表({{totalAsins}}个): • 自家:{{brandAsins}} • 竞品:{{competitorAsins}} 预计需要3-5分钟。开始捕评论! ``` ## 技能调用序列 ``` Step 3.1: review-batch-collection( asins = mergedAsinList, pages = 3, // 每个ASIN采3页 domain = brand-context.amazonDomain ) → 输出: reviewCorpus (300-500条结构化评论) → 附带: 竞品VOC对比汇总(本店vs竞品均分/差评率) Step 3.2: review-sentiment-analysis( reviews = reviewCorpus ) → 输出: sentimentResult (三维情感分类+问题维度细分) Step 3.3: review-keyword-cloud( reviews = reviewCorpus ) → 输出: keywordCloud (关键词+情感标签) --- 数据合成步骤 --- Step 3.4: [数据合成] 使用 Prompt 3A "voice-classification-synthesis" 输入: Step3.2情感结果 + 原始评论 → 输出: voiceClassification (v2结构: 情感分布+维度细分) Step 3.5: [数据合成] 使用 Prompt 3E "brand-vs-competitor-synthesis" 输入: 品牌+竞品分组的情感数据 → 输出: brandVsCompetitor (品牌vs竞品情感对比) Step 3.6: 将 Step3.4~3.5 的输出 + reviewCorpus元数据 + keywordCloud 写入 memory/stage-3-output.json 注意: reviewCorpus 原始数据也需保存,供阶段四深度分析使用 ``` ## 结果展示 — Part 1: 采集概览 + 分ASIN明细 > **展示规则:以下所有 Part 都是必须展示的,不可省略任何一个 Part。** > **每个 ASIN 必须展示独立的情感数据,不能只给汇总数据。** ``` 虾:评论分析完成!采集了 {{totalReviews}} 条评论。 ━━━━━━━━━━━━━━━━━━━━ 📥 评论采集概览 ━━━━━━━━━━━━━━━━━━━━ 采集时间:{{collectionTimestamp}} 评论时间跨度:{{dateRange.from}} ~ {{dateRange.to}} ASIN覆盖:{{asinsCovered.length}} 个 📋 分ASIN采集明细: | ASIN | 品牌 | 类型 | 评论数 | 平均评分 | 好评率 | 差评率 | 1星占比 | 5星占比 | |------|------|------|--------|---------|--------|--------|---------|---------| {{#each asinDetails}} | {{asin}} | {{brand}} | {{type}} | {{reviewCount}} | {{avgRating}} | {{positiveRate}}% | {{negativeRate}}% | {{star1Rate}}% | {{star5Rate}}% | {{/each}} | **汇总** | — | — | **{{totalReviews}}** | **{{avgRating}}** | **{{positiveRate}}%** | **{{negativeRate}}%** | — | — | ⭐ 评分分布(全部评论): | 星级 | 数量 | 占比 | 分布条 | |------|------|------|--------| | ⭐⭐⭐⭐⭐ | {{star5Count}} | {{star5Rate}}% | {{star5Bar}} | | ⭐⭐⭐⭐ | {{star4Count}} | {{star4Rate}}% | {{star4Bar}} | | ⭐⭐⭐ | {{star3Count}} | {{star3Rate}}% | {{star3Bar}} | | ⭐⭐ | {{star2Count}} | {{star2Rate}}% | {{star2Bar}} | | ⭐ | {{star1Count}} | {{star1Rate}}% | {{star1Bar}} | ``` ## 结果展示 — Part 2: 情感分析 ``` ━━━━━━━━━━━━━━━━━━━━ 📊 用户声音初步分类 ━━━━━━━━━━━━━━━━━━━━ 🎯 情感健康分:{{overallSentimentScore}}/100 ┌─────────────────────────────────────────┐ │ 正向 {{positiveRate}}% │ 中性 {{neutralRate}}% │ 负向 {{negativeRate}}% │ │ ████████████████ │ ████ │ ████████ │ └─────────────────────────────────────────┘ ✅ 正向声音 Top 5({{positiveCount}} 条) {{#each positive.items}} • {{text}} — {{reviewCount}}次提及 | 平均评分 {{avgRating}} ↳ "{{representativeQuote}}" ↳ 关联关键词:{{relatedKeywords}} {{/each}} ❌ 负向声音 Top 5({{negativeCount}} 条) {{#each negative.items}} • {{text}} — {{reviewCount}}次投诉 | 严重度 {{severity}} ↳ "{{representativeQuote}}" ↳ 影响评分:{{ratingImpact}} | 退货关联:{{returnCorrelation}} {{/each}} 💡 中性声音洞察({{neutralCount}} 条) {{#each neutral.suggestions}} • {{text}} — "如果能...就好了" 类建议 × {{count}} {{/each}} 📂 问题维度细分: | 维度 | 提及次数 | 占差评比 | 严重度 | 典型原文 | |------|---------|---------|--------|---------| {{#each categoryBreakdown}} | {{category}} | {{count}} | {{percentOfNegative}}% | {{severity}} | "{{quote}}" | {{/each}} ``` ## 结果展示 — Part 3: 品牌 vs 竞品对比 ``` ━━━━━━━━━━━━━━━━━━━━ 🏷️ 品牌 vs 竞品 VOC 对比 ━━━━━━━━━━━━━━━━━━━━ 📊 情感健康分对比: | 对象 | 情感分 | 好评率 | 差评率 | 平均评分 | 评论数 | |------|--------|--------|--------|---------|--------| | **{{brandName}}(你)** | **{{brandSentimentScore}}** | **{{brandPositiveRate}}%** | **{{brandNegativeRate}}%** | **{{brandAvgRating}}** | **{{brandReviewCount}}** | {{#each competitorSentiment}} | {{brand}} | {{sentimentScore}} | {{positiveRate}}% | {{negativeRate}}% | {{avgRating}} | {{reviewCount}} | {{/each}} | **竞品平均** | **{{competitorAvgSentimentScore}}** | **{{competitorAvgPositiveRate}}%** | **{{competitorAvgNegativeRate}}%** | **{{competitorAvgRating}}** | — | 📈 差距分析: • 情感分差距:{{brandSentimentScore}} vs {{competitorAvgSentimentScore}}(差 {{sentimentGap}} 分) • 差评率差距:{{brandNegativeRate}}% vs {{competitorAvgNegativeRate}}% • 要追平竞品平均评分({{competitorAvgRating}}),预计需要: → 消除约 {{negReviewsToRemove}} 条差评 + 获取约 {{posReviewsNeeded}} 条5星好评 🔍 竞品正面高频词(你缺少的): {{#each competitorPositiveKeywords}} • "{{keyword}}" — 竞品提及 {{count}} 次,你的评论中 {{brandMentionCount}} 次 {{/each}} 🔴 你独有的差评痛点(竞品很少提到的): {{#each brandUniqueNegatives}} • "{{keyword}}" — 你的差评 {{brandCount}} 次 vs 竞品平均 {{competitorAvgCount}} 次 {{/each}} ``` ## 结果展示 — Part 4: 关键词情感地图 ``` ━━━━━━━━━━━━━━━━━━━━ 🔤 关键词情感地图 ━━━━━━━━━━━━━━━━━━━━ ✅ 正面关键词 Top 10: {{#each keywordCloud.positive}} {{@index+1}}. "{{keyword}}" — {{count}}次 | 情感强度 {{intensity}}/5 {{/each}} ❌ 负面关键词 Top 10: {{#each keywordCloud.negative}} {{@index+1}}. "{{keyword}}" — {{count}}次 | 情感强度 {{intensity}}/5 {{/each}} 📈 趋势关键词(近期上升): {{#each keywordCloud.trending}} • "{{keyword}}" — 近30天 +{{growthRate}}% | 情感 {{sentiment}} {{/each}} ``` ## 校准环节(养虾人教虾读评论) > **对应工作坊环节**:Day1 20:45-21:15「养虾人教虾读评论」 > 教练引导:挑出3条最有价值的差评,和养虾人一起分析 ``` 虾:以上是评论的全面分析!老板你是品类专家,帮虾校准一下: 📊 情感分布: 1️⃣ 正面/负面的比例和你平时看到的评论体感一致吗? 2️⃣ 情感健康分 {{overallSentimentScore}}/100 合理吗? ❌ 差评聚焦: 3️⃣ 我挑了3条最典型的差评,你来看看: • "{{topNegReview1}}" • "{{topNegReview2}}" • "{{topNegReview3}}" 这些问题你已经知道了吗?还是有新发现? 请标记:✅已知 / ⚡新发现 / ❌误判 📂 问题维度: 4️⃣ 差评的维度细分(质量/功能/包装/服务等)排序合理吗?有没有遗漏的维度? 🏷️ 品牌 vs 竞品: 5️⃣ 你和竞品的差评率对比符合体感吗? 6️⃣ "你独有的差评痛点"列表里有没有误判的? 🔤 关键词: 7️⃣ 关键词情感地图里,正面/负面关键词排序合理吗? 8️⃣ 有没有你觉得重要但虾没发现的关键词? 明天上午我会基于这些评论做深度分析——痛点挖掘、功能评估、场景识别。 今晚的校准直接影响明天分析的方向! ``` ## 校准记录 将用户反馈记录到 `memory/calibration-notes.json`: ```json { "session3": { "timestamp": "...", "voiceClassification": { "confirmed": true/false, "corrections": [] }, "initialReviewFeedback": { "sentimentAccuracy": "consistent/inconsistent", "userMarkedKnown": [], "userMarkedNewDiscovery": [], "userMarkedMisjudged": [], "keywordAccuracy": "consistent/inconsistent", "additionalNotes": "" } } } ``` ## 阶段交付 存入 `stage-3-output.json`(含 `_goalAlignment` + `_anomalies` + `_contextFromPreviousStages` + `_sideQuestTriggers`) 记录校准到 calibration-notes → 填写 `forwardActions`(特别是 `knownPainPointsToDeprioritize`、`newDiscoveriesToHighlight`、`misjudgedItemsToRemove`)→ 更新 `_forwardPassSummary` **注意:stage-3-output.json 保存以下数据供阶段四使用:** - `reviewCorpus` — 原始评论数据(阶段四深度分析的输入) - `voiceClassification` — 情感分布+维度细分 - `keywordCloud` — 关键词情感地图 - `brandVsCompetitor` — 品牌vs竞品情感对比 - `_goalAlignment` — 目标对齐(阶段四继续深入的方向) - `_anomalies` — 异常发现(阶段四验证或追踪) ## 目标回扣(必做) ``` 虾:🎯 回到你最初的问题:「{{workshopGoal}}」 从用户评论中,虾发现了: • {{goalAlignmentInsight}} 明天上午的深度分析会进一步挖掘这些发现。 ``` ``` 虾:✅ 阶段三主线完成! 📦 已产出交付物: • 📥《结构化评论语料库》— {{totalReviews}}条评论,覆盖{{asinCount}}个ASIN,已清洗去重 • 📋《分ASIN采集明细》— 每个ASIN的评论数/评分/好评率/差评率独立统计 • ⭐《评分分布分析》— 1-5星详细分布 + 品牌vs竞品对比 • 📊《情感分析报告》— 情感健康分 {{overallSentimentScore}}/100 + 正面/中性/负面Top5 + 维度细分 • 🏷️《品牌vs竞品VOC对比》— 逐竞品情感对比 + 差距分析 + 独有痛点识别 • 🔤《关键词情感地图》— 正面/负面/趋势关键词Top10 + 情感强度 • 📂《问题维度细分表》— 差评按维度分类 + 严重度 + 典型原文 所有评论数据已存入记忆。 ``` **🛑 SESSION GATE: 此处 HARD STOP。Agent 必须停止并等待用户回复校准意见。禁止自动进入 Side Quest 菜单或 Session 4。** **更新 workshop-progress.json: session-3.status = "awaitingCalibration"** --- ## Side Quest 发现(主线分析中自动标记) Agent 在执行主线分析时,根据数据发现标记 Side Quest 触发器。以下为各 Side Quest 的典型触发条件: ### 😤 差评深潜 (negative-review-deep-dive) ``` 技能调用:review-pain-point-extraction(reviews=目标维度差评子集, focusDimension=触发维度) 关键输出:根因追溯(表面投诉+根本原因+影响范围+关联退货率) | 差评时间线(按月/季) | 修复方案(短期0成本+中期迭代+长期战略) | 预计评分提升 轻量校准:这个差评根因分析准确吗?修复优先级合理吗? ``` ### ⭐ 好评解码 (five-star-decoder) ``` 技能调用:review-highlight-extraction(reviews=4-5星好评, mode="deep") 关键输出:用户自发推荐核心原因Top5(原因+提及次数+代表原文+Listing植入建议+竞品是否提到) | 好评vs竞品好评关键词差异 | Listing优化优先级 轻量校准:这些好评驱动因素和你的产品优势一致吗? ``` ### 🆚 评论对决 (review-battle) ``` 技能调用:review-batch-collection(asins=[品牌+竞品], pages=5) → review-sentiment-analysis(mode="comparative") 关键输出:一对一情感对比表(维度+双方分数+差距+判定) | 你赢/对手赢/势均力敌的维度 | 最有价值对比发现 | 差异化策略建议 轻量校准:这个对比结果符合你的体感吗? ``` --- ## 校准后进入探索模式 **当用户回复校准意见后,Agent 执行以下流程:** 1. 记录校准到 `calibration-notes.json` 2. 更新 `workshop-progress.json`: session-3.status = "exploring" 3. 将所有 `discovered` 的 Side Quest 状态改为 `available` 4. 按照全局规则 SQ2 展示 Side Quest 菜单 ``` 虾:校准意见已记录! 🗺️ 在评论分析中,虾发现了几条值得深入的线索: ┌─────────────────────────────────────────────┐ │ 🎮 Side Quest 支线任务 │ ├─────────────────────────────────────────────┤ {{#each availableSideQuests}} │ {{emoji}} {{name}} │ │ 📍 {{trigger}} │ │ ⏱️ 预计 {{estimatedTime}} │ │ │ {{/each}} ├─────────────────────────────────────────────┤ │ ⏭️ 说"继续"直接进入阶段四:深度VOC+社媒 │ │ 💾 说"暂停"保存进度下次再探索 │ └─────────────────────────────────────────────┘ 你对哪条线索感兴趣?选一个深入探索,或者直接继续主线。 虾建议:如果某个差评维度让你特别在意,现在深入挖掘可以为明天的深度分析指明方向! ``` **当用户说"继续"时:** - 将所有 `available` 的 Side Quest 标记为 `skipped` - 更新 session-3.status = "completed" - 进入 Session 4