Skip to content

Latest commit

 

History

History
226 lines (169 loc) · 7.28 KB

File metadata and controls

226 lines (169 loc) · 7.28 KB

评论区运营工作流

适用版本: v3 · 最后更新: 2026-07-07 · 维护者: Yht20927

目标

提升互动率、活跃评论区、识别高价值用户。

前置条件(必须全部完成)

□ 已加载 用户配置.md(./用户配置.md)
□ 已加载 全局规则.md(./全局规则.md)(含评论筛选过滤规则)
□ Bridge Server 在线:bash ~/.claude/skills/douyin-cli/scripts/bridge.sh ensure
□ 油猴脚本已连接:node cli.js status
□ REPLIED_CIDS 集合已初始化(使用执行模板.md中的 init_replied_cids 函数)

🔴 核心安全规则

安全规则与执行函数已集中到 全局规则.md §0-§2 + 执行模板.md。 本文件不再重复,仅记录本场景专属内容。执行前请先读 全局规则.md(授权范围 + 硬性禁令)。

要点速查:

  • 命令串行,禁并发;写操作 40-55s / 读操作 30-50s 随机间隔(risk-control 硬强制 + execute_with_delay 补充)
  • 同一 cid 一生一次(SQL replied=1 兜底);同作者 ≥7 天冷却
  • 启动前 node cli.js preflight 自检节奏状态
  • 推广评论发布前 node cli.js repo-info 取真实事实 + node cli.js factcheck "<文本>" 校验

评论分类决策树

读取一条评论 (text, cid, uid):

  if cid in REPLIED_CIDS:                  # ⚠️ §2.1 硬性禁令
      skip "已回复过此评论"
      continue

  if text 是纯表情 / 贴纸 / 单字符:
      → 表情回复路线 (≤2个积极表情,无文字)
      可选: 🌹 / 🤝 / 😊 / 👍 / ❤️ / 🎉
      根据原评论情绪选择: 玫瑰花/握手/笑脸 → 友善; 红心/庆祝 → 兴奋

  elif text 长度 < 4 且无明确语义 ("666" / "哈哈" / "..."):
      skip "无意义水评"

  elif text 命中"优先回复"信号:
      ① 提问求助 (含 怎么/如何/为什么/?)
      ② 高质量反馈 (>15 字,提到视频具体细节)
      ③ 负面情绪 (抱怨/失望/愤怒)
      → 文字回复路线 (按 §3 偏好生成 15-80 字回复)

  else:
      skip "不匹配优先回复条件"

表情回复细则

  • 触发条件:评论文本去除空格后只剩 emoji / 贴纸 unicode / 单字标点。
  • 匹配映射(建议,agent 可灵活选择):
    • 用户发 ❤️ / 🌹 / 😘 → 回 🌹 或 ❤️
    • 用户发 👍 / 💪 / 🔥 → 回 🤝 或 💪
    • 用户发 😂 / 🤣 → 回 😄 或 😂
    • 用户发 🎉 / 🥳 → 回 🎉 或 ❤️
    • 无法判断 → 默认 🌹
  • 不写文字,纯表情即可(成本低、互动率高)。
  • 表情回复同样占用配额,并且同样写入 REPLIED_CIDS。

执行流程

Step 1: 获取我的作品

先获取自己已发布的作品,了解当前内容方向:

# ═══ 获取我的作品列表(使用执行模板)═══
execute_with_delay 'node cli.js my' read

分析要点:

  • 记录作品的主要话题/领域(如 AI、编程、Agent 等)
  • 对于标题信息不足的作品,获取详情补充了解

Step 2: 获取作品评论

获取目标作品的评论:

# ═══ 获取作品评论(使用执行模板,优先使用增量模式)═══
execute_with_delay 'node cli.js get <aweme_id> --new --depth 1' read

⚠️ 重要:增量获取评论优先使用 --new

  • ❌ 错误:每次全量获取所有评论(浪费请求,可能触发风控)
  • ✅ 正确:node cli.js get <aweme_id> --new --depth 1(只获取新评论,安全高效)

评论筛选(遵循 全局规则.md 第 7 节):

  • 跳过:纯表情/贴纸、简短感叹、无意义水评
  • 优先:提问求助、高质量反馈、负面情绪

Step 3: 生成评论内容

  1. 加载 评论风格指南.md(./评论风格指南.md)
  2. 根据评论内容选择合适的风格(每轮至少用 3 种)
  3. 生成回复内容(确保不违反 全局规则.md 的内容禁令)

生成要点:

  • 有实质内容,能引发讨论
  • 体现专业度或提供价值
  • 符合抖音社区调性

Step 4: 执行评论或回复

发表评论(对作品本身):

# ═══ 对作品发表评论(使用执行模板)═══
execute_with_delay 'node cli.js post <aweme_id> "评论内容"'

回复评论(对其他用户的评论):

# ═══ 回复特定评论(使用执行模板 + REPLIED_CIDS 检查)═══
if is_replied "target_cid"; then
  echo "⏭ 跳过:已回复过该评论"
else
  execute_with_delay 'node cli.js post <aweme_id> "回复内容" --reply-to target_cid'
  echo "target_cid" >> /tmp/replied_cids.txt  # 记录已回复
fi

执行要点:

  • 写操作每条命令间隔 40-55 秒随机值(使用执行模板自动处理)
  • 执行前检查 cid 是否在 REPLIED_CIDS 中
  • 发布后将 cid 加入 REPLIED_CIDS

Step 5: 记录执行结果

# ═══ 查看操作日志(使用执行模板)═══
execute_with_delay 'node cli.js log --tail 20' read

输出执行报告:

## 执行报告

**执行时间**:2026-06-22 21:50

**作品情况**:
- 作品 ID:aweme_id
- 评论总数:N
  ├─ 文字评论: A
  └─ 表情评论: B

**执行情况**:
- 成功评论数:K
- 跳过评论数:M
  - 跳过原因:
    - 已回复过 (cid 命中): R
    - 无意义水评: W
    - 不匹配优先条件: X

**风格使用**:
- 风格 A(热情分享型):3 次
- 风格 B(专业解读型):2 次
- 风格 C(共鸣互动型):2 次
- 风格 D(轻松调侃型):1 次

**风控情况**:
- 无风控触发

**间隔执行情况**:
- 所有命令均串行执行 ✓
- 写操作每条命令间隔 40-55 秒 ✓
- 读操作每条命令间隔 30-50 秒 ✓
- 使用随机间隔(非固定值) ✓

专属限制

  • 每作品每轮最多回复 30 条。
  • 同一 uid 每轮最多回复 1 条(不同评论也算)。
  • 连续 5 条评论均不匹配回复条件 → 停止本轮。
  • ⚠️ §2.1 全局禁令同时生效(每条 cid 一生一次)。

增量执行

后续执行时使用增量模式:

# ═══ 只获取新评论(使用执行模板,优先使用增量模式)═══
execute_with_delay 'node cli.js get <aweme_id> --new --depth 1' read

增量策略:

  • 评论去重依赖 REPLIED_CIDS
  • 优先处理新评论

注意事项

  1. 频率控制:宁可少做,不可触发风控(使用执行模板自动处理)
  2. 内容质量:每条评论都要有实质内容
  3. 风格变化:每轮至少用 3 种不同风格
  4. 去重检查:严格执行 REPLIED_CIDS 检查
  5. 评论筛选:遵循 全局规则.md 第 7 节的筛选规则
  6. 间隔执行:所有命令必须使用 execute_with_delay 模板
  7. 增量获取:优先使用 --new 模式获取评论

执行检查清单

每执行 5 条命令后,必须检查:

□ 是否所有命令都是串行执行的?
□ 写操作每条命令之间是否等待了 40-55 秒?
□ 读操作每条命令之间是否等待了 30-50 秒?
□ 是否检查了 REPLIED_CIDS?
□ 是否使用了 ≥ 3 种不同风格?
□ 是否违反了内容禁令?
□ 增量获取评论是否使用了 --new 模式?

如果发现违规:立即停止本轮,记录原因到执行报告。