| name | media-publish |
| description | 媒体智能体发布闭环:多账号 session 矩阵、反检测档位切换、登录态快速复用、Teach & Repeat 固化发布动作。当媒体智能体需要在多个账号间切换、批量发布、回避限流或复用登录态时使用。 |
| tools | browser |
| metadata | {"category":"operations","emoji":"📣","tree_id":"ui/browser","tree_group":"ui","enabled_when":"BrowserController != nil","intent_keywords":{"zh":["账号切换","多账号","账号矩阵","批量发布","保存登录态","复用 cookie","反检测","stealth","指纹","小红书发布","微信公众号发布","内容矩阵","session 保存","登录态迁移","教学回放","录制操作"],"en":["multi-account","account matrix","batch publish","session save","session load","reuse login","anti-detection","stealth","fingerprint","xhs publish","teach and repeat","record actions","replay workflow"]},"intent_priority":20,"related_tools":["browser","platform_login","send_media"],"scene_hint":"多账号发布 → stealth_profile 档位 → session_list/load 复用登录 → ai_browse 或 action_replay → session_save 固化","summary":"Media publishing loop: session matrix + stealth + teach-and-repeat for content automation","title":"Media Publish Workflow","verb":"Publish","sort_order":42,"policy_groups":["group:ui"],"profiles":["full"],"wizard_group":"web"} |
媒体智能体发布闭环技能
CrabClaw 媒体智能体在"多账号、批量发布、反限流"场景下的标准 SOP。核心是把登录态当一等公民,用 session_* 三件套替代每次重新扫码。
触发信号
| 场景 | 典型请求 |
|---|
| 多账号批量 | "用小红书两个账号都发一下"、"切到另一个号继续" |
| 首次登录 | "登录小红书"、"配置小红书" |
| 登录态迁移 | "把这个账号导出"、"在另一台机器恢复" |
| 反检测 | "被风控了"、"登录后立刻跳验证"、"需要隐身" |
| 固化工作流 | "这个发布流程以后能一键跑吗"、"录制发布动作" |
三层模型
反检测层 stealth_profile (off / basic / standard / aggressive)
登录态层 session_save / load / export / list / delete
业务动作层 ai_browse 或 action_replay(recorded)
四个标准 SOP
SOP-A:首次登录 + 保存
browser(action="stealth_profile", stealth_profile="standard") # 建议默认启
platform_login(action="start", platform="xiaohongshu") # 扫码
platform_login(action="wait") # 等待登录完成
browser(action="session_save", session_id="xhs_user1",
session_name="小红书账号A", session_tags=["xhs","primary"])
要点:
- 登录前必先切 stealth_profile,否则一些平台会在登录瞬间植入风控标记
session_save 之后该账号就进入 registry,后续无需再扫码
SOP-B:账号切换 / 复用登录态
browser(action="session_list") # 查看可用账号
browser(action="session_load", session_id="xhs_user1") # 恢复到当前 tab
browser(action="observe") # 确认已是登录态
# ... 正常发布动作
要点:
session_load 内部是 navigate → setCookies → 注入 localStorage/sessionStorage 的原子序列
- 切换账号前建议
session_save 一下当前状态,避免丢失新产生的 session 数据(如短期 token)
- 跨机器迁移:
session_export → 文件 → 另一机器 session_load 传 bundle_json
SOP-C:固化常用发布流程(Teach & Repeat)
录制一次:
browser(action="action_replay", replay_op="record",
recording_id="xhs_publish", goal="发布一条图文",
start_url="https://creator.xiaohongshu.com/")
browser(action="ai_browse", goal="发布标题为<X>的图文,内容为<Y>") # 期间每步自动追加到录制
browser(action="action_replay", replay_op="stop")
browser(action="action_replay", replay_op="export", recording_id="xhs_publish")
# 把返回的 JSON 保存到 workspace
以后每次:
browser(action="session_load", session_id="xhs_user1")
browser(action="action_replay", replay_op="replay",
recording_id="xhs_publish", speed_factor=1.5)
要点:
- 录制 ID 要有语义(
<platform>_<动作>)
- 导出的 JSON 可跨进程;恢复前
action_replay(replay_op="import", bundle_json=...)
stop_on_error=false(默认)允许跳过失败步;排查阶段可 true
SOP-D:对抗性场景(已被风控 / 高防站点)
browser(action="stealth_profile", stealth_profile="aggressive")
browser(action="action_cache", cache_op="clear") # 清掉可能有风险的选择器缓存
browser(action="session_save", session_id="backup_<timestamp>") # 备份当前状态
# 尝试业务动作 — 失败则降级
要点:
- aggressive = standard + 每次导航再注入一次所有 12 维补丁,抵抗客户端二次检测
- 不要在 aggressive 下做"高频翻页"类动作,容易触发速率检测
- 永远保留
backup_<timestamp> 备份,便于回滚账号状态
Stealth 档位选择指南
| 档位 | 维度 | 建议场景 | 代价 |
|---|
off | 0 | 严格审计场景需要报告干净浏览器行为 | 被机器学习检测器立刻识别 |
basic | 5(webdriver/viewport/sourceURL/domain-minimize/clean) | 内网工具、自家系统 | 过不了 rebrowser-bot-detector v8 |
standard(默认) | 12(basic + chrome.runtime/plugins/languages/WebGL/permissions/iframe/hairline/connection) | 多数社交平台、电商、SaaS | 极少数金融站点会因为 WebGL 伪造拒绝加载 3D 渲染 |
aggressive | 12 + 每次导航重注入 | 已知风控严格的站点、Cloudflare Turnstile、DataDome | 约增 200-500ms 导航开销 |
账号矩阵管理
browser(action="session_list")
# 返回结构:
# [{id, name, url, captured_at_ms, tags}]
命名规范(建议遵守):
<platform>_<role>:xhs_primary、xhs_backup、wemp_official
- Tags:平台 + 用途,如
["xhs","primary"]、["wemp","test"]
TTL 判断:捕获时间超过 7 天的 session 多半已过期,应重新登录而非强上。可从 captured_at_ms 计算。
错误分类与恢复
| 报错 | 解读 | 恢复 |
|---|
session %q not found | registry 里没有该 ID | 先 session_list 确认命名,或重新 SOP-A |
bundle_json 解析失败 | 传入的 JSON 不是 SessionBundle | 检查字段是否齐全 |
| 登录后立刻跳验证 | 风控命中 | 切 aggressive 档位 + 重新登录 |
session_load 后页面仍未登录 | 关键 cookie 是 httpOnly+Session 维度,CDP 捕获有限 | 回退到 SOP-A 重新扫码 |
与其他技能协作
| 场景 | 搭配 |
|---|
| 二维码扫码 | platform_login 技能(tool=platform_login) |
| 发布后群发通知 | send_media 或 send_email |
| 媒体巡逻子系统 | subsystems/media — 自动巡逻链路里可直接调用本技能的 session |
| 凭据管理 | session 不是密钥,仍需用 auth-management 管理提供商 API Key |
安全边界
- session bundle 含 cookies — 导出的 JSON 等同登录凭据,不要贴给外部 LLM、不要写入公共仓库
session_save 不捕获 httpOnly cookie 的值(浏览器不允许 JS 读),但 CDP Network.getCookies 能拿到 — 这就是为什么登录态能完整迁移
action_replay 回放的录制文件包含输入的文本(可能含密码片段),导出前审阅
stealth_profile=aggressive 在严重错配浏览器版本时可能引起页面脚本报错,遇到问题先降到 standard
- 不要把 stealth 当成"绕过授权"的工具 — 它只让我们的自动化看起来像普通用户;平台 ToS 依然适用