用途:作为工作流中的抖音搜索编排接口,执行关键词搜索并输出结构化证据。仅使用宿主已安装且已登录的 OpenCLI,不自带爬虫、浏览器、cookie 复制、独立 profile 或 Python runtime。
输入:query 必填;limit 可选,1—30,默认 10;episode 可选,指定本期 episodes/<slug> 路径,只允许写 00-抖音搜索证据.json 与 .md,不得写 candidates、source-health 或 00-选题.*。
执行:先预检 opencli doctor 与 opencli douyin whoami -f json,Browser Bridge 可连接且 logged_in=true 时搜索。Episode 模式用确定性包装器一次执行 1—3 个查询并原子写 JSON/Markdown:node ~/Documents/laohan-skills/laohan-douyinsousuo/scripts/search-evidence.mjs --episode episodes/<slug> --query "关键词一" --query "关键词二" --limit 10。独立单查询可执行 opencli douyin search "$QUERY" --limit "$LIMIT" -f json。结果须为 JSON 数组,逐条保留 rank、desc、author、url、aweme_id、发布时间及可用互动字段;稳定 id 优先 aweme_id 或 URL 中 /video/<id>,否则用 sha256(url + desc)[:12],排名不参与 id,不按缺失字段重排。
失败降级:同一命令加 --trace retain-on-failure 用 autofix 修复,总尝试最多 3 次;仍失败且 doctor 正常时可用 opencli browser douyin-search bind 绑定当前已登录标签页,仅读取取证;再失败则记录失败层级与原始错误,episode 模式标记 UNAVAILABLE 并返回证据文件,独立请求如实报告未取得结果。不得临时安装 DrissionPage、Playwright、浏览器或自制爬虫。
输出与限制:先展示搜索健康状态和实际返回条数,再展示结果表(#、作者、点赞、标题、链接)。互动字段缺失写 null 并标记 field_availability false,实际 0 保留 0 并标记 true。空数组写 EMPTY_OR_FIELD_UNAVAILABLE,不能据此断言抖音上没有相关内容。当前 OpenCLI 1.8.6 的 douyin search 只提供搜索结果样本,卡片通常只有点赞字段;搜索量、供给总量、增长速度、官方内容缺口默认 UNAVAILABLE,不从结果条数或点赞反推。事实性结论须回到原视频或权威来源核验。指定 episode 时必须用 runtime-locked 包装器,先写 JSON 真源再生成 .md,Markdown 不得新增 JSON 没有的结论。下载视频、博主作品列表用 /laohan-xiazai;评论、发布、账号运营用 /laohan-yunying 或对应 adapter。