Files
MediaCrawler/mac-agent-os-main/docs/GAP-ANALYSIS.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

180 lines
8.1 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 功能差距分析 — 规划 vs 实现
> 版本: v1.0 | 更新: 2026-06-16
> 对照: COMMAND-CENTER-PLAN.md v0.3 / ARCHITECTURE-v2.md / AVE_DASHBOARD_DESIGN.md
---
## 一、矩阵养号
| 导航项 | view | 状态 | 后端 | 说明 |
|:-------|:-----|:----:|:-----|:------|
| **账号管理** | `matrix-sms-proxy` | ✅ 完成 | `routes/matrix.py` | 身份/账号/短信/代理管理,API 完整 |
| **养号执行** | `matrix-nurture` | ✅ 完成 | `routes/matrix.py` | 内联养号面板,调用 `/api/matrix/batch-run` |
| **信息采集** | `matrix-collect` | ⏳ 待集成 | `routes/matrix.py` | **有完整 API** — `/api/matrix/collect-homepage` 等,只需 Dashboard 视图薄封装 |
| **内容发布** | `matrix-publish` | ❌ 无CLI | `publish_video.py` 存在 | `publish_video.py` 在 `07_matrix/scripts/` 目录,需封装为 `agentos matrix publish` CLI + Dashboard API |
| **蓝图管理** | `matrix-blueprints` | ✅ 完成 | `routes/matrix.py` | 13 个蓝图(抖音9+小红书4),编辑器/执行器完整 |
| **定向评论** | `matrix-comment` | ✅ 完成 | `routes/matrix.py` | 内联评论表单,调用 `/api/matrix/task/comment` |
| **定时任务** | `matrix-schedule` | ⏳ 待集成 | `routes/matrix.py` | **有完整 API** — 命令与任务面板已有调度功能,只需独立视图 |
| **语料库** | `matrix-corpus` | ✅ 完成 | `routes/matrix.py` | API 正常 |
### 待集成项(有后端,只需前端封装)
1. **信息采集** — 使用 `/api/matrix/collect-homepage` API 构建独立采集视图
2. **定时任务** — 使用 `/api/matrix/schedule/*` API 构建独立调度视图
3. **内容发布** — 需先封装 `publish_video.py` → `agentos matrix publish` CLI
---
## 二、视频工厂
| 导航项 | view | 状态 | 后端 | 说明 |
|:-------|:-----|:----:|:-----|:------|
| **渲染任务** | `ave-render` | ❌ 无API | 无 | AVE CLI(`09_ave/` 96个脚本)未封装为 `agentos ave` CLI,Dashboard 无从对接 |
| **脚本生成** | `ave-script` | ❌ 无API | 无 | 同上,需先完成 AVE CLI 封装 |
| **素材库** | `ave-materials` | ❌ 无API | 无 | 素材通过 SQLite(`ave.db`) 管理,需封装为 Dashboard API |
| **模板** | `ave-templates` | ❌ 无API | 无 | 模板模块需先封装 AVE CLI |
### 实施建议
- **前置依赖**: 完成 `agentos ave` CLI 封装(render/script/material/template 子命令)
- 然后 Dashboard 创建对应 API 端点,前端展示
- 优先级: 低(AVE 核心功能开发中)
---
## 三、内容采集
| 导航项 | view | 状态 | 后端 | 说明 |
|:-------|:-----|:----:|:-----|:------|
| **采集任务** | `crawl-tasks` | ⏳ 待集成 | `plugin-collector` 有API | **有完整 API** — Dashboard plugin-collector 已实现采集管理功能,只需前端视图对接 |
| **源管理** | `crawl-sources` | ❌ 无CLI | 无 | 采集源管理需要 `agentos crawl source` CLI 完成 |
| **采集历史** | `crawl-history` | ❌ 无API | 无 | 需要新建采集历史的聚合 API |
### 待集成项
1. **采集任务** — plugin-collector 已有采集调度能力,可直接嵌入 Dashboard 视图
---
## 四、联邦管理
| 导航项 | view | 状态 | 后端 | 说明 |
|:-------|:-----|:----:|:-----|:------|
| **机器状态** | `machines` | ✅ 完成 | `plugins/guardd.py` | 联邦心跳 + 机器聚合,数据完整 |
| **一键同步** | `fleet-sync` | ✅ 完成 | `app.py` `/api/fleet/sync` | 调用 `fleet_sync.sh`,Shell 内联 |
| **对账检查** | `fleet-reconcile` | ✅ 完成 | `app.py` `/api/fleet/reconcile` | 调用 `fleet_reconcile.sh`,Shell 内联 |
| **远程Shell** | `fleet-exec` | ✅ 完成 | `services/remote_exec.py` | 调用 `/api/federation/exec`,Shell 内联 |
---
## 五、服务管理
| 导航项 | view | 状态 | 后端 | 说明 |
|:-------|:-----|:----:|:-----|:------|
| **MCP状态** | `serve-mcp` | ❌ 无功能 | 无 | MCP Server 状态监控完全未实现 |
| **Dashboard日志** | `serve-dashboard` | ❌ 无功能 | 无 | Dashboard 运行日志聚合未实现 |
| **全局定时任务** | `serve-schedule` | ❌ 无功能 | 无 | 全局调度器管理未实现 |
### 实施建议
- MCP 状态需要先实现 MCP Server 的健康检测机制
- Dashboard 日志需要 log 聚合方案(如 filebeat 或 journald)
- 调度器需要 `agentos serve schedule` CLI 完成
---
## 六、agentos CLI 插件
| 插件 | 状态 | 子命令 | 说明 |
|:-----|:----:|:-------|:-----|
| `matrix` | ✅ 完成 | run/account/blueprint/sms/proxy etc | 最成熟 |
| `ave` | ⏳ 框架 | render/script/material/template | 子命令框架已创建,功能占位 |
| `crawl` | ⏳ 框架 | web/video/extract/schedule/source | 子命令框架已创建,功能占位 |
| `fleet` | ✅ 完成 | sync/reconcile/exec/status/logs | 基本完成 |
| `serve` | ⏳ 框架 | mcp/dashboard/schedule | 子命令框架已创建,功能占位 |
---
## 七、Dashboard 插件
| 插件 | 状态 | 说明 |
|:-----|:----:|:------|
| `matrix.py` | ✅ 完成 | 账号注册表 + 跨机聚合 |
| `ave.py` | ✅ 完成 | AVE 数据聚合 |
| `guardd.py` | ✅ 完成 | 机器监控 + 联邦心跳 |
| `kb_api.py` | ✅ 完成 | 知识库管理 API |
| `sms_proxy_api.py` | ✅ 完成 | 短信/代理 API |
| `system_plugins.py` | ✅ 完成 | 系统信息 + 自动任务 |
| `federation.py` | 🔴 未创建 | 联邦聚合插件 |
| `scheduler.py` | 🔴 未创建 | 调度器管理插件 |
| `crawl.py` | 🔴 未创建 | 内容采集插件 |
---
## 八、WPRA 架构实施进度
| Phase | 内容 | 进度 |
|:------|:-----|:----:|
| Phase 1 | guardd git 冲突修复、`_registry.json` 删除 | ❌ 未执行 |
| Phase 2 | 账号注册表 WPRA 重构 | ✅ 已完成 |
| Phase 3 | Dashboard 读聚合适配 | ✅ 已完成 |
| Phase 4 | 旧数据清理(等 1 周稳定期) | ⏳ 等待中 |
| Phase 5 | 文档化 + 标准化 | ❌ 未执行 |
---
## 九、API 审计结果(实测 2026-06-16)
| API 路径 | 状态 | 说明 |
|:---------|:----:|:-----|
| `/api/matrix/accounts` | ✅ 200 | 30 accounts |
| `/api/matrix/identities` | ✅ 200 | 4 identities |
| `/api/matrix/blueprints` | ✅ 200 | 14 blueprints |
| `/api/matrix/collect-homepage/*` | ✅ 200 | 3 endpoints |
| `/api/matrix/nurture/*` | ✅ 200 | preview/start/status |
| `/api/matrix/recordings/*` | ✅ 200 | list/stats |
| `/api/matrix/sms/*` | ✅ 200 | config/accounts/test |
| `/api/matrix/schedules` | ✅ 200 | 在 sms_proxy_api.py |
| `/api/matrix/proxies` | ✅ 200 | 在 sms_proxy_api.py |
| `/api/matrix/task/run` | ✅ 200 | 支持 type=comment |
| `/api/matrix/accounts/register` | ✅ 200 | 在 sms_proxy_api.py |
| `/api/federation/accounts` | ✅ 200 | 67联邦账号 |
| `/api/matrix/cross-machines` | ✅ 200 | **刚刚修复** |
| `/matrix-mgmt` | ✅ 200 | **刚刚修复** (返回HTML) |
| `/api/matrix/schedule/list` | ❌ 404 | 前端路径错误,应为 `/api/matrix/schedules` |
| `/api/matrix/proxy/list` | ❌ 404 | 前端路径错误,应为 `/api/matrix/proxies` |
| `/api/matrix/task/comment` | ❌ 404 | 前端路径错误,应用 `/api/matrix/task/run` (type=comment) |
| `/api/matrix/corpus/batch-add` | ❌ 404 | 语料库批量添加API缺失 |
| `/api/matrix/corpus/delete` | ❌ 404 | 语料库删除API缺失 |
### 需前端修正的路径错配
- `proxy/list` → `proxies` (sms_proxy_api.py)
- `schedule/list` → `schedules` (sms_proxy_api.py)
- `task/comment` → `task/run` with `type=comment` (sms_proxy_api.py)
---
## 十、优先级建议(修订版)
```
P0(本周) ─── 矩阵养号核心功能完善
矩阵信息采集(有API) ≈ 0.5h
矩阵定时任务(有API) ≈ 0.5h
采集任务视图(有API) ≈ 0.5h
P1(下周) ─── agentos CLI 封裝 + Dashboard 插件补齐
agentos ave CLI 封装 ≈ 2h
agentos crawl CLI 封装 ≈ 1h
publish_video CLI 封装 ≈ 1h
federation/scheduler/crawl Dashboard 插件 ≈ 3h
P2(后续) ─── 全新功能
服务管理(MCP/日志/调度器) ≈ 3h
视频工厂 Dashboard 视图 ≈ 4h
WPRA Phase 1 guardd 修复 ≈ 2h
WPRA Phase 5 文档化 ≈ 1h
```
---
> 文档生成: 2026-06-16 17:46 | 下次更新: 功能变更后同步