琪琪抖音评论监控与自动回复。两阶段解耦架构:Fetch(浏览器拉取→暂存JSON)+ Process(LLM 智能分类+安全审核+逐条回复+重试队列)。
Scanned 9/9/2026
Install to Claude Code
npx -y skills add Lord1Egypt/awesome-skill-forge --skill douyin-comment-reply --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Douyin Comment Reply?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/lord1egypt-douyin-comment-reply)More formats (shields.io, HTML) on the badges page.
---
name: douyin-comment-reply
description: 琪琪抖音评论监控与自动回复。两阶段解耦架构:Fetch(浏览器拉取→暂存JSON)+ Process(LLM 智能分类+安全审核+逐条回复+重试队列)。
---
# 琪琪抖音评论监控与自动回复 v2
> 账号:琪琪故事花园(抖音号:1167327950)
> 人设:5岁小女孩琪琪,讲睡前故事
## 架构总览
```
Phase A: Fetch(浏览器) Phase B: Process(不依赖浏览器)
┌──────────────────────┐ ┌──────────────────────────┐
│ 1. 浏览器拉评论 │ │ 1. 读 staged/*.json │
│ 2. 去重 → 暂存 JSON │ ──────▶ │ 2. LLM 智能分类+安全审核 │
│ 3. 更新 state.json │ │ 3. 逐条回复(重试3次) │
│ 4. 浏览器挂?跳过 │ │ 4. 归档30天旧记录 │
└──────────────────────┘ │ 5. 飞书通知 │
└──────────────────────────┘
```
## 文件结构
```
skills/douyin-comment-reply/
├── SKILL.md # 本文件
├── scripts/
│ ├── comment_state.py # JSON 原子状态管理
│ └── douyin_comment_fetch.py # 浏览器抓取指令生成
```
状态文件位置:
```
Obsidian/琪琪OPC项目/12-评论管理/
├── state.json # 主状态(已回复/已屏蔽 ID 列表)
├── staged/ # 待处理评论(每个评论一个 JSON)
├── archive/ # 30天归档
└── 评论记录.md # 人类可读的 Markdown 日志(保留)
```
## Phase A: Fetch 步骤
### 1. 浏览器导航
```
URL: https://creator.douyin.com/
```
### 2. 检查登录状态
snapshot 确认已登录琪琪故事花园账号
### 3. 进入创作者中心评论页
```
URL: https://creator.douyin.com/creator-micro/content/manage
```
### 4. 逐个视频读取评论
- 获取最近 5 个有评论数的视频
- 对每个视频:进入评论页 → snapshot → 提取评论数据
### 5. 输出原始数据到 JSON
```json
{
"account": {"fans": 27, "likes": 31, "videos": 14, "following": 559},
"videos": [
{"title": "春天的生日会", "comments": [
{"user": "小淘气", "text": "很精彩", "timestamp": "05-20 15:30"}
]}
]
}
```
保存到 `/tmp/douyin_comments_raw.json`
### 6. 调用状态管理脚本去重暂存
```bash
python3 skills/douyin-comment-reply/scripts/douyin_comment_fetch.py \
--mode fetch --raw /tmp/douyin_comments_raw.json
```
### 降级:浏览器不可用
- 输出错误日志
- 飞书通知:「⚠️ 浏览器不可用,跳过 Fetch。已有暂存评论仍会处理」
- **不停止流程** → 继续 Phase B
## Phase B: Process 步骤
### 1. 读取暂存评论
```bash
python3 skills/douyin-comment-reply/scripts/comment_state.py list pending
```
### 2. 逐条处理
对每条评论执行:
**a. 安全审核**(关键词 + LLM 判断)
- 屏蔽词:约吗/加微信/私聊/电话/见面/地址/http/扫码
- 敏感内容:涉及个人信息、不当言论、广告
- 不确定 → 标记为 pending_review,飞书通知 Vincent 手动处理
**b. LLM 生成回复**
- 人设:5岁小女孩琪琪
- 风格:友好、可爱、简短(15-30字)
- 不透露真实个人信息(年龄说5岁,生日说7月10日)
- 根据评论类型智能回复:
- 夸赞 → 感谢+开心
- 催更 → 安抚+期待
- 提问 → 简短回答
- 互动 → 友好回应
- 通用 → 温暖感谢
**c. 浏览器发送回复**
- 导航到对应视频评论页
- 找到评论 → 点击回复 → 输入回复内容 → 提交
- 失败 → 重试(最多3次,间隔5秒)
- 3次全失败 → 标记 failed,下次重试
**d. 更新状态**
```bash
# 成功后更新 state.json
# (由 comment_state.py 的 mark_replied() 处理)
```
### 3. 归档旧记录
```bash
python3 skills/douyin-comment-reply/scripts/comment_state.py archive
```
### 4. 更新 Markdown 日志(人类可读)
- 追加今日检查摘要到 `评论记录.md`
- 包含:新评论数、回复数、屏蔽数、待审核数、失败数
### 5. 飞书通知
```
👧 琪琪评论监控 | YYYY-MM-DD HH:MM
📊 Fetch: ✅/❌(浏览器状态)
📥 新评论: X 条
✅ 已回复: X 条
🚫 已屏蔽: X 条
⏸️ 待审核: X 条
❌ 回复失败: X 条
📦 累计已回复: X 条
📈 账号概况: 粉丝 X | 获赞 X | 作品 X
```
## 安全规则
### 自动屏蔽(不回复)
- 含联系方式:微信/电话/QQ/邮箱
- 约会/见面邀请
- 广告/推广/扫码
- 含 URL
- 不当言论(脏话、人身攻击)
### 需人工审核(暂存不回复,飞书通知)
- 询问真实姓名/学校/地址
- 过于热情的"喜欢你""爱你"类
- 评论者账号异常(新号、无头像)
- LLM 判断不确定的
### 可自动回复
- 夸赞类(可爱/好听/好棒)
- 催更类(什么时候更新/新故事)
- 互动类(明天还有吗/想听)
- 提问类(几岁/叫什么)— 按人设回答
- 感谢类(谢谢/辛苦了)
- 通用友好评论
## 容错机制
| 故障场景 | 处理方式 |
|----------|----------|
| 浏览器超时 | 跳过 Fetch,继续 Process 已有暂存 |
| 回复失败 | 自动重试3次,仍失败标记 failed |
| 状态文件损坏 | 从 staged/ 重建 |
| Markdown 写入失败 | 不影响 JSON 状态,下次重试 |
| 无新评论 | 正常输出"无新评论"通知 |
## 维护
### 手动添加评论(浏览器不可用时)
```bash
python3 skills/douyin-comment-reply/scripts/douyin_comment_fetch.py \
--mode manual --video "视频名" --user "用户名" --text "评论内容"
```
### 查看状态
```bash
python3 skills/douyin-comment-reply/scripts/comment_state.py stats
```
### 查看待处理评论
```bash
python3 skills/douyin-comment-reply/scripts/comment_state.py list pending
```
### 归档
```bash
python3 skills/douyin-comment-reply/scripts/comment_state.py archive
```
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!