Files
MediaCrawler/mac-agent-os-main/05_tools/07_matrix/docs/MC_COMMAND_REFERENCE.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

5.8 KiB
Raw Blame History

mc 命令参考手册 — Matrix v5.2

统一 CLI 入口,替代旧版 matrix.py。 智能体通过 mc 命令调用 Matrix,不需要直接操作 Python 脚本。


安装

cd ~/workbuddy-agent-os/agent-sync/05_tools/07_matrix
chmod +x mc
# 可选:ln -s $(pwd)/mc /usr/local/bin/mc

Python 路径自动检测(AGENTOS_PYTHON > agent-os venv > 系统 python3),换机无需修改。


命令一览

录制系统(v5.1 新增)

# 开始录制
mc record start --account douyin_test
# → 启动 Camoufox,你在浏览器操作,关键节点按数字键 1-8 标记
#   按 0 结束录制

# 查看录制包
mc record list

# 分析录制包
mc record analyze <录制包路径>

# 导出为蓝图+代码
mc record export <录制包路径>

# 删除录制包
mc record delete <录制包路径>

定向评论(v5.1 新增)

# 创建一个仅包含 "打开视频→评论" 的蓝图,然后执行:
mc run --accounts douyin_test --blueprints douyin_comment_test --rounds 1 --keep

# 或手动创建自定义蓝图:
# 1. 在 blueprints/ 下创建 JSON 文件
# 2. 包含 goto_url → wait_watch → open_comments → post_comment
# 3. 用 mc run 执行

养号执行

# 批量养号(推荐)
mc run --accounts douyin_01,douyin_02 --blueprints nurture_v1 --rounds 3 --mix --interval 45-90

# 指定语料库
mc run --accounts douyin_01 --blueprints nurture_v1 --rounds 3 --corpus daily_hot

# 查看帮助
mc run --help
参数 说明 默认值
--accounts 逗号分隔的账号列表 必填
--blueprints 逗号分隔的蓝图列表 必填
--rounds 每账号执行轮数 10
--mix 混合随机模式(每轮随机选蓝图) 顺序模式
--interval 轮间间隔(秒),支持范围 45-90 30-60
--corpus 逗号分隔的语料库分类 无
--daemon 后台运行模式 否
--engine 引擎(auto/camoufox) auto
--keep 执行完后保留浏览器(需手动关) 否
--json 输出 JSON 格式结果 否

账号管理

mc account list              # 列出所有账号及状态
mc account login <name>      # 首次手动登录(打开浏览器等用户操作)
mc account status [name]     # 查看账号登录状态
mc account export            # 导出账号配置
mc account import <path>     # 导入账号配置

注册新账号(Dashboard 推荐)

在 Dashboard 上完成:

  1. 启动 Dashboard → 左侧「矩阵」→「短信与管理」
  2. 底部「注册新账号」表单
  3. 选平台、填手机号、填备注名 → 点确认
  4. 浏览器自动打开 → 扫码登录 → 后续可采集昵称
  5. 登录后点「采集昵称」获取昵称/粉丝数

也可以通过 CLI:

python scripts/matrix.py account create --platform douyin --phone 138xxxx

短信 API(Dashboard 推荐)

Dashboard 短信页面:

  1. 左侧「矩阵」→「短信与管理」
  2. 下拉选账号 → 点「查短信」
  3. 系统自动解析抖音/小红书验证码

API:

# 查短信
GET /api/matrix/sms/test/{phone_or_account}

# 查看所有账号手机号
GET /api/matrix/sms/accounts

Dashboard 启动

cd ~/workbuddy-agent-os/agent-sync/05_tools/10_dashboard
nohup ~/.workbuddy/binaries/python/envs/agent-os/bin/uvicorn app:app --host 0.0.0.0 --port 9988 &
# 浏览器打开 http://localhost:9988
# 左侧「矩阵」:短信 / 录制 / 账号管理

新机部署说明

新机部署后同步账号:

bash ~/workbuddy-agent-os/agent-sync/00_bootstrap/init.sh
# 自动拉取仓库 → 安装依赖 → 同步本机账号

accounts_registry.yaml 中 assigned_machine 标记为当前机器 UID 的账号会自动同步到本机。

蓝图管理

mc blueprint list            # 列出所有蓝图
mc blueprint show <name>     # 查看蓝图详情

语料库

mc corpus list               # 查看语料分类
mc corpus add <平台> "语料"   # 添加语料

状态查询

mc status all                # 全局状态(浏览器+账号)
mc status accounts           # 账号登录状态
mc status browsers           # 浏览器运行状态

代理管理

mc proxy list                # 代理列表
mc proxy test <name>         # 测试代理

自动化任务

每日养号(定时执行)

# 完整执行
bash ~/workbuddy-agent-os/agent-sync/05_tools/07_matrix/scripts/nurture_daily.sh

# 仅查看命令(不执行)
bash ~/workbuddy-agent-os/agent-sync/05_tools/07_matrix/scripts/nurture_daily.sh --dry

# 仅跑第1组
bash ~/workbuddy-agent-os/agent-sync/05_tools/07_matrix/scripts/nurture_daily.sh --group 1

日志:/tmp/nurture_daily_YYYYMMDD.log

结构化日志

每次 mc run 执行后自动写入:

agent-local/tools/matrix/logs/run_{date}_{account}.jsonl

查询:

from mc.runlog import get_today_summary
print(get_today_summary())
# → {"date": "20260609", "accounts": {"douyin_01": {"runs": 3, "last_success": 8, ...}}}

与旧版 matrix.py 对照

旧命令 新命令
python matrix.py account list mc account list
python matrix.py account login X mc account login X
python matrix.py nurture run -a X -r 10 mc run --accounts X --rounds 10 ...
python matrix.py status all mc status all
python matrix.py config blueprint list mc blueprint list

智能体调用约定

智能体通过 WorkBuddy 技能 matrix 触发。SKILL.md 定义了触发词和对应的 mc 命令。

当用户说"养号"、"执行蓝图"、"账号状态"时,智能体:

  1. 加载 02_skills/matrix/SKILL.md
  2. 根据触发词匹配对应的 mc 命令
  3. 执行命令并汇报结果

不需要读源码。不需要知道 engine.py 内部细节。