Files
MediaCrawler/mac-agent-os-main/02_skills/inbox_refine/SKILL.md
T
butubb 2112c1a870
Deploy VitePress site to Pages / build (push) Canceled after 0s
Deploy VitePress site to Pages / Deploy (push) Canceled after 0s
feat(monitor): 抖音 Web 接口客户端 —— 绕开爬虫子进程,直接发 HTTP
移植自 mac-agent-os 的 mediacrawler_adapter:不起子进程、不开页面,用浏览器里那份
登录态直接调抖音 Web 接口。产物键名照抄 store/douyin,所以 ingest 那条链路一个字不用改。

**目前能用的(真环境实测,非推断)**:

    profile/other : 200, 7075 字节  —— 博主主页指标(粉丝/获赞/作品数/昵称)
    aweme/detail  : 200, 45425 字节 —— 单条作品详情(含点赞/评论/收藏/分享)

**目前不能用的:作品列表 `aweme/post`。** 两个互相独立的原因:
  1. 这个接口被抖音单独升级成了真校验:不带 x-tt-argus 回 403「Uifid Not Found」,
     带上 dummy 值回 200 + **空 body**。也就是说「头在不在」骗得过,「真校验」过不了。
     同一套头打 profile/other 和 aweme/detail 都是通的 —— 抖音是挑着接口加保护的,
     挑中的恰好是「批量拉作品列表」这个最敏感的动作。
  2. 改走页面截获也不行:CDP 浏览器打开博主主页会落到「验证码中间页」(当天大量探测的
     代价,过几小时要重测)。

  所以现在的边界是:**已知作品的指标刷新能做,自动发现新作品做不了**。

**排查中控住变量后得到的两条事实**(都写进注释了):
  · `Accept` / `Accept-Language` / `Referer` 才是主页接口能返回真数据的原因 —— 只有
    UA+client hints+Cookie 时是 200 但仅 121 字节的空壳,补上这三个头变 7074 字节。
    (我先前猜的 sec-ch-ua 不是关键。)
  · 因此 UA 与 client hints 必须**成套地取自同一个浏览器**,所以 BrowserIdentity 一次
    从 CDP 取齐 cookie + UA + hints,而不是各自写死。

「200 + 空 body 必须当场报错」也是刻意写死的:放过去它会在下游变成「这个博主没作品」,
把一次失败伪装成一条正常结果 —— 爬虫那条路正是这么栽的,还被翻译成「账号被封」。

测试 +11:cookie 解析、请求头成套性(含 uifid 缺失/回退)、产物键名与 store 对齐、
以及 _get 的三条失败路径(空 body / 403 带网关原话 / 正常返回)。
2026-10-10 17:12:25 +08:00

141 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: inbox_refine
version: 1.1.0
description: 知识库收件箱提纯——每日将 00_inbox/ 内容分类归档到知识库,更新首页统计和变更日志
triggers:
- 提纯
- 收件箱提纯
- 归档inbox
- inbox refine
- 整理收件箱
- 归档知识
- 提纯收件箱
---
# Inbox Refine 技能
## 概述
将 `00_inbox/` 中的原始内容按知识属性分类,应用模板后归档到对应目录,并更新知识库首页和变更日志。
## 触发条件
- 每日凌晨 3:00 自动执行(WorkBuddy 自动化)
- 手动说"提纯"、"整理收件箱"、"inbox refine"
## 工作流
```
1. 扫描 00_inbox/ 所有 .md 文件
2. 逐个读取 → 分析内容
3. 确定分类:
- nature:fact/method/concept/reference/data/opinion/quote/axiom/regulation
- domain:从 99_system/taxonomies/domains.md 选择 1-3 个
- confidence:根据 source_type 评分
4. 应用对应模板(99_system/templates/)
5. 生成 ID:KB-YYYYMMDD-NNN
6. 写入目标目录
7. 删除 00_inbox/ 原文件
8. 更新 README.md 统计
9. 更新 CHANGELOG.md
```
## 分类决策逻辑
### nature 判定
| 内容特征 | nature | 目标目录 |
|----------|--------|----------|
| 已验证的客观事实 | fact | 30_facts/ |
| 可操作的步骤/教程 | method | 20_methods/ |
| 原子概念/基础原理 | concept | 10_concepts/ |
| 公认基础原理 | axiom | 10_concepts/ |
| 法律法规/制度 | regulation | 30_facts/ |
| 论文/文档/外部资料 | reference | 40_references/ |
| 测试数据/基准结果 | data | 30_facts/ |
| 主观看法/推测 | opinion | 60_opinions/ |
| 他人原话/语录 | quote | 60_opinions/ |
### confidence 评分
| source_type | confidence |
|-------------|-----------|
| official_doc | 0.9 |
| literature | 0.8 |
| experiment | 0.7 |
| personal_exp | 0.5 |
| social_media | 0.3 |
| unknown | 0.4 |
## 去重规则
1. 读取目标目录已有文件,提取 title 和 tags
2. 标题相似度 > 0.8 → 合并(补充细节,不新建)
3. 内容完全一致 → 跳过,记录日志
4. 同一事实新旧矛盾 → 新事实覆盖,旧值写入 previous_version
## Frontmatter 模板
```yaml
---
id: KB-YYYYMMDD-NNN
title: "__标题__"
type: __concept/fact/method/opinion/reference__
status: published
nature: __fact/method/concept/...__
domain: [__领域1__, __领域2__]
subdomain: []
tags: [__标签1__, __标签2__]
confidence: 0.8
source: "__来源URL或出处__"
source_type: __official_doc/literature/personal_exp/...__
date_created: YYYY-MM-DD
date_modified: YYYY-MM-DD
version: 1
previous_version: ""
superseded_by: ""
---
```
## 更新首页统计
读取 `03_knowledge/README.md`,替换 `## 📊 知识统计` 下的表格:
- 扫描各目录下 .md 文件数量
- 找出每个目录最近修改的文件日期
- 更新总计行
## 更新变更日志
在 `03_knowledge/CHANGELOG.md` 顶部追加:
```markdown
## YYYY-MM-DD
### 归档
- [nature] title → 目标目录 (KB-YYYYMMDD-NNN)
- ...
```
## 依赖
| 包/工具 | 用途 | 安装状态 |
|---------|------|----------|
| file_read/file_write | 读写文件 | ✅ 内置 |
| python3 | 脚本执行 | ✅ managed |
| oMLX + Qwen3-8B-MLX-4bit | 本地 LLM 辅助分类(可选) | ✅ 已安装 |
## 路径约定
| 项目 | 路径 |
|------|------|
| 收件箱 | `~/workbuddy-agent-os/agent-sync/03_knowledge/00_inbox/` |
| 知识库根 | `~/workbuddy-agent-os/agent-sync/03_knowledge/` |
| 首页 | `~/workbuddy-agent-os/agent-sync/03_knowledge/README.md` |
| 变更日志 | `~/workbuddy-agent-os/agent-sync/03_knowledge/CHANGELOG.md` |
| 模板 | `~/workbuddy-agent-os/agent-sync/03_knowledge/99_system/templates/` |
| 分类表 | `~/workbuddy-agent-os/agent-sync/03_knowledge/99_system/taxonomies/` |
| 中文映射 | `~/workbuddy-agent-os/agent-sync/03_knowledge/99_system/taxonomies/folder-aliases.json` |
## 错误处理
- 无法分类的内容 → 保留在 00_inbox/,添加标签 `#待分类`,记录日志
- 模板应用失败 → 使用最小 Frontmatter(id/title/nature/date_created)
- 首页更新失败 → 只记录日志,不阻断归档流程