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

4.0 KiB
Raw Blame History

name, version, description, triggers
name version description triggers
inbox_refine 1.1.0 知识库收件箱提纯——每日将 00_inbox/ 内容分类归档到知识库,更新首页统计和变更日志
提纯
收件箱提纯
归档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 模板

---
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 顶部追加:

## 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)
  • 首页更新失败 → 只记录日志,不阻断归档流程