Skill: hexiuqian/recall-tao (version 1.0.1)

--- name: douyin-auto-reply description: 抖音自动回复技能。通过浏览器自动化连接抖音创作者中心，监控评论，智能分析后自动生成积极、大方、热情、合法的回复。支持关键词匹配、敏感词过滤、评论分类、多账号管理。触发场景：用户提到"抖音自动回复"、"抖音评论回复"、"抖音客服"、"抖音智能回复"、"抖音机器人"等关键词，或明确要求在抖音平台进行自动回复操作。 version: 2.0 updated: 2026-04-02 --- # 抖音自动回复技能 v2.0 商用化增强版 - 支持关键词匹配、敏感词过滤、评论分类、多账号管理 ## 🆕 v2.0 新增功能 ### 功能增强类 | 功能 | 说明 | 状态 | |------|------|------| | 关键词自动回复 | 配置关键词→回复模板，命中时使用固定回复 | ✅ 已实现 | | 敏感词过滤 | 检测敏感词，自动标记或跳过 | ✅ 已实现 | | 评论分类 | 自动识别咨询/夸奖/吐槽/互动等类型 | ✅ 已实现 | | 多账号支持 | 管理多个抖音账号 | ✅ 已实现 | | AI模型选择 | 可配置不同AI服务 | ✅ 已实现 | ### 运营效率类 | 功能 | 说明 | 状态 | |------|------|------| | 定时开关 | 按时间段自动开启/关闭自动回复 | ✅ 已实现 | | 回复频率限制 | 分钟/小时/日级别限频，防止风控 | ✅ 已实现 | | 突发保护 | 连续快速回复冷却机制 | ✅ 已实现 | | 随机延迟 | 模拟真人行为的回复延迟 | ✅ 已实现 | | 状态持久化 | 记录已处理评论，断点续传 | ✅ 已实现 | | 日志系统 | 完整操作日志，支持审计 | ✅ 已实现 | ### 稳定性保障类 | 功能 | 说明 | 状态 | |------|------|------| | 登录状态守护 | 自动检测登录状态，异常时尝试恢复 | ✅ 已实现 | | 会话保活 | 定期保活操作，防止会话过期 | ✅ 已实现 | | 异常分类处理 | 自动分类错误类型，智能恢复策略 | ✅ 已实现 | | 自动重试 | 指数退避重试机制 | ✅ 已实现 | | 浏览器崩溃恢复 | 自动检测崩溃并重启恢复 | ✅ 已实现 | | 登录状态持久化 | 保存登录状态，减少重复登录 | ✅ 已实现 | ### 批量监控类（新增） | 功能 | 说明 | 状态 | |------|------|------| | 视频列表获取 | 自动从创作者中心获取发布的视频列表 | ✅ 已实现 | | 多视频批量监控 | 同时监控多个视频的评论 | ✅ 已实现 | | 自动添加监控 | 自动添加有评论的视频到监控列表 | ✅ 已实现 | | 增量评论检查 | 只处理新评论，避免重复 | ✅ 已实现 | --- ## 核心能力 1. **连接抖音创作者中心** - 自动打开并登录 creator.douyin.com 2. **多视频监控** - 同时监控多个视频/帖子的评论 3. **智能分析** - 关键词匹配 + AI分析，双引擎驱动 4. **敏感词过滤** - 自动检测敏感内容，保护账号安全 5. **自动回复** - 生成积极、大方、热情、合法的回复 --- ## 快速开始 ### 步骤1：安装技能 ``` skillhub install douyin-auto-reply ``` ### 步骤2：连接抖音账号 ``` 帮我连接抖音账号 ``` ### 步骤3：配置关键词规则（可选） ``` 添加关键词规则：当评论包含"多少钱"时，回复"欢迎咨询价格~" ``` ### 步骤4：开始监控 ``` 开始监控我的视频评论 ``` --- ## 配置文件说明 ### config/accounts.json - 账号管理 ```json { "accounts": [ { "id": "acc_001", "name": "账号名称", "status": "active", "lastLogin": "2026-04-02T10:00:00+08:00" } ], "activeAccountId": "acc_001" } ``` ### config/keyword_rules.json - 关键词规则 ```json { "keywordRules": [ { "id": "kr_001", "enabled": true, "keywords": ["多少钱", "价格"], "matchType": "any", "reply": "欢迎咨询价格~", "priority": 1 } ], "defaultAction": "ai_generate" } ``` **匹配类型 (matchType)：** - `any` - 任一关键词匹配即可 - `all` - 所有关键词都必须匹配 - `exact` - 精确匹配 ### config/sensitive_words.json - 敏感词库 ```json { "sensitiveWords": { "severe": ["违禁词"], "warning": ["加微信", "加V"], "notice": ["竞品名"] }, "actionRules": { "severe": { "action": "auto_delete", "notify": true }, "warning": { "action": "mark_pending", "notify": true }, "notice": { "action": "log_only", "notify": false } } } ``` **敏感级别：** - `severe` - 严重：自动跳过/删除 - `warning` - 警告：标记待人工审核 - `notice` - 提示：记录日志 ### config/ai_config.json - AI模型配置 ```json { "defaultModel": "default", "models": { "deepseek": { "provider": "deepseek", "model": "deepseek-chat", "enabled": false, "apiKey": null } }, "generationConfig": { "temperature": 0.7, "maxTokens": 150 } } ``` ### config/monitor_state.json - 监控状态 ```json { "status": "running", "lastCheck": "2026-04-02T10:00:00+08:00", "processedComments": ["comment_id_1", "comment_id_2"], "stats": { "totalProcessed": 100, "totalReplied": 95 } } ``` ### config/schedule_config.json - 定时开关 ```json { "enabled": true, "schedules": [ { "name": "工作时间", "days": [1, 2, 3, 4, 5], // 1=周一, 0=周日 "timeSlots": [ { "start": "09:00", "end": "12:00", "action": "auto_reply" }, { "start": "14:00", "end": "18:00", "action": "auto_reply" } ] }, { "name": "夜间静默", "days": [0, 1, 2, 3, 4, 5, 6], "timeSlots": [ { "start": "23:00", "end": "08:00", "action": "log_only" } ] } ], "defaultAction": "log_only" } ``` **动作类型：** - `auto_reply` - 自动回复 - `log_only` - 仅记录不回复 - `pause` - 完全暂停监控 ### config/rate_limit_config.json - 频率限制 ```json { "enabled": true, "limits": { "perMinute": { "max": 5 }, "perHour": { "max": 50 }, "perDay": { "max": 500 } }, "randomDelay": { "enabled": true, "minMs": 3000, "maxMs": 10000 }, "burstProtection": { "enabled": true, "maxConsecutive": 3, "cooldownMs": 30000 } } ``` ### config/log_config.json - 日志配置 ```json { "enabled": true, "level": "info", "transports": { "file": { "enabled": true }, "console": { "enabled": true } }, "auditLog": { "enabled": true, "events": ["reply_sent", "reply_failed", "sensitive_detected", "rate_limit_triggered"] } } ``` --- ## 评论处理流程 ``` ┌─────────────────────────────────────────────────────────────────┐ │ 评论处理流程 v2.0 │ ├─────────────────────────────────────────────────────────────────┤ │ │ │ 1. 时间段检查 │ │ └─→ 当前时段允许自动回复？ │ │ │ │ 2. 频率限制检查 │ │ ├─→ 分钟/小时/日限制检查 │ │ ├─→ 突发保护检查 │ │ └─→ 通过: 继续处理 │ │ │ │ 3. 获取新评论 │ │ └─→ 解析评论内容、作者、时间 │ │ │ │ 4. 已处理检查 │ │ └─→ 跳过已回复的评论 │ │ │ │ 5. 敏感词检测 │ │ ├─→ severe: 跳过，记录日志 │ │ ├─→ warning: 标记待人工审核 │ │ └─→ 通过: 继续下一步 │ │ │ │ 6. 关键词匹配 │ │ ├─→ 命中: 使用模板回复 │ │ └─→ 未命中: 继续 AI 生成 │ │ │ │ 7. 评论分类 │ │ ├─→ 咨询类: 专业解答 │ │ ├─→ 夸奖类: 感谢互动 │ │ ├─→ 吐槽类: 安抚+人工介入 │ │ └─→ 其他: AI 自由生成 │ │ │ │ 8. 生成回复 │ │ ├─→ 模板回复: 直接使用预配置内容 │ │ └─→ AI回复: 根据分类生成 │ │ │ │ 9. 随机延迟 │ │ └─→ 3-10秒随机延迟，模拟真人 │ │ │ │ 10. 发送回复 │ │ └─→ 使用嵌套输入框发送 │ │ │ │ 11. 记录状态 │ │ ├─→ 标记评论已处理 │ │ ├─→ 更新频率计数器 │ │ └─→ 写入操作日志 │ │ │ └─────────────────────────────────────────────────────────────────┘ ``` --- ## 回复原则 对所有用户评论，智能分析后生成回复，遵循以下原则： | 原则 | 说明 | 示例 | |------|------|------| | 积极 | 正面回应，传递正能量 | "感谢支持，会继续加油！" | | 大方 | 不卑不亢，得体有度 | "感谢关注，欢迎常来互动~" | | 热情 | 亲切友好，拉近距离 | "哈哈谢谢宝子，爱你哟❤️" | | 合法 | 遵守法律法规和平台规范 | 不涉及敏感词、广告法违禁词 | --- ## 浏览器启动配置 使用 openclaw 独立浏览器配置： ``` browser action=start profile=openclaw ``` 关键参数： - `profile`: 使用 "openclaw" 独立浏览器 - 不使用 "user" 或 "chrome-relay"，避免与用户日常浏览器冲突 --- ## 页面导航路径 登录后导航路径： ``` 首页 → 互动管理 → 评论管理 ``` 评论管理URL：`https://creator.douyin.com/creator-micro/interactive/comment` --- ## 脚本说明 ### scripts/check_comments_v2.js 增强版评论检查脚本，支持： - 敏感词检测 - 关键词匹配 - 评论分类 - 处理建议生成 ```javascript // 执行方式 browser act evaluate fn: "/* 脚本内容 */" // 返回格式 { "success": true, "comments": [ { "id": "comment_0_123", "content": "这个多少钱", "sensitiveCheck": { "hasSensitive": false }, "classification": { "category": "inquiry" }, "keywordMatch": { "matched": true, "reply": "欢迎咨询~" }, "recommendation": { "action": "use_template", "reply": "欢迎咨询~" } } ] } ``` ### scripts/intent_helper_v2.js 意图识别和回复生成辅助模块，可在 Node.js 环境中使用： ```javascript const { analyzeComment, matchKeywords, detectSensitiveWords } = require('./intent_helper_v2'); // 分析评论 const result = analyzeComment('这个多少钱？', { keywordRules: [...], sensitiveWords: {...} }); // result.recommendation.action: 'use_template' | 'ai_generate' | 'manual_review' ``` ### scripts/send_comment_reply.js 向评论发送回复（无变化）。 --- ## 多账号管理 ### 添加账号 ``` 添加抖音账号，名称为"我的主号" ``` ### 切换账号 ``` 切换到账号"我的主号" ``` ### 查看账号列表 ``` 显示所有抖音账号 ``` --- ## 关键词规则管理 ### 添加规则 ``` 添加关键词规则： - 关键词：多少钱、价格、怎么卖 - 回复：欢迎咨询价格，请点击商品链接查看~ ``` ### 启用/禁用规则 ``` 启用关键词规则 kr_001 ``` ``` 禁用关键词规则 kr_001 ``` ### 查看所有规则 ``` 显示所有关键词规则 ``` --- ## 敏感词管理 ### 添加敏感词 ``` 添加警告级敏感词：加微信、加V ``` ### 查看敏感词库 ``` 显示所有敏感词 ``` --- ## ⚠️ 平台限制 1. **每条评论只能回复一次** - 抖音平台限制每条评论只能有一条作者回复 2. **回复要"一次到位"** - 由于只能回复一次，内容要完整有效 --- ## 注意事项 1. **频率控制** - 避免过于频繁的刷新和回复，可能触发风控 2. **回复延迟** - 建议在收到消息后等待几秒再回复，模拟真人行为 3. **内容审核** - 回复内容需符合平台规范，避免敏感词 4. **登录状态** - 长时间运行可能需要重新登录 5. **一次回复原则** - 每条评论只有一次回复机会，内容要完整有效 6. **必须使用嵌套输入框** - 点击"回复"按钮后展开的输入框才是正确的 --- ## 错误处理 | 错误 | 处理方式 | |------|----------| | 浏览器连接失败 | 检查浏览器进程，重启浏览器 | | 登录过期 | 提示用户重新扫码登录 | | 身份验证弹窗 | 等待用户完成验证 | | 回复发送失败 | 检查网络，重试或提示用户 | | 元素找不到 | 刷新页面后重试 | | 敏感词触发 | 根据级别自动处理或人工审核 | --- ## 常见问题 ### Q: 如何添加自定义关键词规则？ A: 对 Agent 说：`添加关键词规则：当评论包含"XXX"时，回复"YYY"` ### Q: 如何开启敏感词检测？ A: 默认已开启，可通过 `显示敏感词配置` 查看当前设置。 ### Q: 评论被标记为待人工审核怎么办？ A: 在监控状态中查看 `pendingManualReview` 列表，手动处理这些评论。 ### Q: 如何切换 AI 模型？ A: 编辑 `config/ai_config.json`，设置 `defaultModel` 和对应模型的 `enabled: true`。 --- ## 更新日志 ### v2.0 (2026-04-02) **功能增强类：** - ✅ 新增关键词自动回复功能 - ✅ 新增敏感词过滤功能 - ✅ 新增评论分类功能 - ✅ 新增多账号支持 - ✅ 新增 AI 模型配置 **运营效率类：** - ✅ 新增定时开关功能（按时间段控制） - ✅ 新增回复频率限制（分钟/小时/日） - ✅ 新增突发保护机制 - ✅ 新增随机延迟模拟真人行为 - ✅ 新增状态持久化与断点续传 - ✅ 新增完整日志系统 **稳定性保障类：** - ✅ 新增登录状态守护（自动检测与恢复） - ✅ 新增会话保活机制 - ✅ 新增异常分类处理器 - ✅ 新增自动重试（指数退避） - ✅ 新增浏览器崩溃自动恢复 - ✅ 新增登录状态持久化 **批量监控类：** - ✅ 新增视频列表自动获取 - ✅ 新增多视频批量监控 - ✅ 新增自动添加监控目标 - ✅ 新增增量评论检查 ### v1.0 - 基础评论监控和自动回复功能


Security scan verdicts — ClawScan: suspicious | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (CRITICAL)