在脚本、Agent、Codex 或 CI 中调用八爪鱼 CLI 时,优先使用结构化输出与退出码判断结果。CLI 同时支持人类可读终端输出与机器可读 JSON / JSONL。
JSON 输出(--json)
需要单次、完整的结构化响应时使用:
ok: true 与 data 字段:
ok: false 与 error。各命令的 data 结构不同,编写脚本时请以具体命令输出为准,并容忍新增字段。
验证页提前终止
v0.1.32 的bazhuayu detect 会在任务生成前识别验证码、访问限制和安全验证页面。命中时命令以非零退出码结束,JSON 输出为失败 envelope,不应假定存在可运行的 generatedTask 或任务文件。自动化流程应先处理验证或访问限制,再重试检测。
v0.1.28 新增的 task-group、template、template-task、schedule cloud、data count 和 data preview 均支持 --json。会修改远端状态的命令缺少 --yes 时会返回失败 envelope,脚本应把它当作需要人工确认或补齐确认参数处理。
用户浏览器状态
browser status --json 会返回浏览器安装情况、Profile、扩展状态、readyForUserBrowserRun 和 nextActions。自动化程序应逐步执行 nextActions,并且只在 readyForUserBrowserRun 为 true 后调用 browser use user。
Agent 生成与样品采集
detect --agent --run-sample <n> --json 仍只输出一个 JSON envelope。其数据可能同时包含 generatedTask、preview、agentFiles 和 sampleRun。v0.1.27 起,API 列表任务会在 generatedTask 中带上 mode: "api_list" 和 localOnly: true:
ok 与 sampleRun.exitCode;需要判断数据质量时,再读取 sampleRun.summary。
数据计数、预览与未导出数据
data count 和 data preview 适合在导出前做轻量检查:
--unexported 只读取云端未导出数据,不会把这些数据标记为已导出。自动化程序若需要维护导出状态,应另行调用对应 OpenAPI 或客户端能力。
JSONL 事件流(--jsonl)
长时间运行或管道处理时使用:
event 字段是稳定判别字段。当前事件包括 warning、billing.warning、billing.error、run.started、row、log、captcha、proxy、下载事件以及运行暂停、恢复、停止和失败事件;解析时仍应容忍新增事件和未知字段。
stdout 与 stderr
管道处理时建议只解析 stdout 中的业务数据,单独保留 stderr 便于排错。
退出码
非零退出码表示自动化步骤应视为失败。
自动化建议
- 单次查询、识别上下文、状态检查使用
--json。 - Agent 生成任务并试采时,同时检查顶层
ok与sampleRun.exitCode。 - 长时间本地运行使用
--jsonl跟踪进度。 - 在 CI 中根据退出码判断步骤成败。
- 单独收集 stderr 便于排查。
- 切勿在日志中打印 API Key、Access Token 或完整凭据文件。
