Files
MediaCrawler/mac-agent-os-main/90_archive/docs/CHANGELOG.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

107 lines
4.8 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.
# AgentOS 项目变更日志
## [2.0.2] - 2026-04-28
### 文档收口
- 新增 `REVIEW-V2.0.md`,正式记录原形、当前实现与后续升级设想之间的差异
- 新增 `V2.0-SUMMARY.md`,作为面向使用者的最新说明汇总
- 重写 `CORE-ARCHITECTURE.md`,将当前仓库冻结为 AgentOS v2.0 基准定义
- 重写 `README.md`,统一项目入口与当前基准说明
- 更新 `QUICKSTART.md`,补充双根目录与软链接边界
- 重写 `SKILLS-CATALOG.md`,收口为 v2.0 技能目录
- 更新 `REQUIREMENTS.md`,移除过期运行状态并对齐 v2.0 口径
- 将 `AgentOS-完整说明文档_副本.md` 正式归档到 `90_archive/docs/`,原路径保留跳转页
### 架构决策
- 明确 `agent-os/` 与 `agent-os-local/` 的双根目录边界
- 明确 `04_memory/` 中共享内容与本机私有内容的分界
- 明确 v2.0 采用“双入口汇聚到 Inbox”的知识流定义
- 明确 `05_tools/` 是工具层,不默认等于技能层
- 明确 `category` / `SKILL_CARD.yaml` / `collect_from_local.py` 等能力延后到后续版本
## [2.0.1] - 2026-04-25
### 修复
- **依赖管理统一**:删除旧的 `04_memory/vector_db/.venv`,统一使用 managed Python 专用 venv
- 旧路径:`~/workbuddy-agent-os/agent-sync/04_memory/vector_db/.venv`(分散,与脚本运行环境不一致)
- 新路径:`~/.workbuddy/binaries/python/envs/agent-os/`(统一,脚本和自动化共用)
- **init.sh 修复**:指向新 venv,用 `requirements.txt` 安装依赖
- **daily_digest.py 重写**:接入三个真实数据源(Claw 工作日志、WorkBuddy 系统画像、上轮摘要)
- **自动化任务修复**:Python 路径更新为新 venv
### 新增
- **bootstrap_from_memory.py**:冷启动脚本,首次运行时将已有 MEMORY.md 灌入 L1/L2
- **requirements.txt**:集中声明 Python 依赖(trafilatura + sqlite-utils)
- **WorkBuddy 自动化**:每日凌晨 2:00 自动执行 `daily_digest.py`(ID: `agentos`)
- **冷启动执行**:L2 写入 36 条初始事实,L1 索引同步建立
### 文档更新
- **REQUIREMENTS.md**:修正 venv 路径、更新实际设备状态、写清固定安装命令、新增自动化配置说明
- **QUICKSTART.md**:新增步骤 4(冷启动记忆体)、修正坚果云路径为 `~/NutstoreCloudBridge/`
- **README.md**:新增记忆数据流说明、固定路径速查表、补全目录说明
## [2.0.0] - 2026-04-25
### 新增
#### 核心框架
- L0→L1→L2→L3 四级记忆模型
- SOUL.md v2.0:完整的三层规则体系(硬约束/软约束/学习规则)
- IDENTITY.md v2.0:Claw 身份档案,含设备信息自动填充
- USER.md v2.0:ghai 用户档案
- mcp.json:MCP 协议基础配置模板
#### 初始化脚本
- init.sh:自动创建目录、安装依赖、填充设备信息
- apply-config.sh:核心配置部署到 ~/.workbuddy/
- import_skills.sh:技能导入
- export_skills.sh:技能打包导出
#### 技能包
- memory_manager:每日对话提炼、去重、冲突检测、版本管理
- daily_digest.py:每日提炼脚本(凌晨 2:00 自动运行)
- bootstrap_from_memory.py:冷启动(首次导入已有记忆)
- memory_cleanup.py:冲突消解与过期清理
- agent_memory_init.py:记忆体初始化
- kb_manager:知识库入库、分类、检索、备份
- kb_ingest.py:知识入库脚本(支持 URL/文件/文本)
- _template:技能模板(SKILL.md + version.json + skill.py)
- web_crawler:网页抓取(占位)
- sync_manager:同步管理(占位,由坚果云替代)
#### 知识库
- 按属性分层目录结构(概念/方法/事实/参考/资源/观点)
- 16 个一级领域子目录
- 知识卡片模板(概念卡/事实卡/方法卡/个人洞见卡)
- 领域分类表(domains.md)
- 知识属性分类表(nature-types.md + 分类决策树)
- 中文映射配置(folder-aliases.json)
- 知识分类提示词模板
#### 迁移脚本
- pack.sh:全量打包
- unpack.sh:解包还原
- backup.sh:手动备份
#### 说明文件
- README.md:项目概览
- QUICKSTART.md:5 分钟快速上手
- REQUIREMENTS.md:环境依赖清单
- CHANGELOG.md:本文件
### 设计决策
| 决策 | 选择 | 原因 |
|---|---|---|
| 知识库物理目录分层 | 按属性(概念/方法/事实/...)为第一层 | 人找知识先想"类型"再想"领域",机器检索空间更小 |
| 记忆读取策略 | L2 置信度不足直接截断,不 fallback 到 L3 | 节省 token,避免无关信息干扰 |
| 跨机同步 | 坚果云,不用 Git | 国内访问 Git 不稳定 |
| 存储策略 | 单条存储线 + 平台自适应 | 避免数据分裂,init.sh 自动检测系统 |
| 目录命名 | 英文文件夹名 + 中文映射 | 机器兼容性 + 人类可读性 |
| Python 环境 | managed Python + 专用 venv | 不污染系统环境,版本可控 |