在脚本、Agent、Codex 或 CI 中调用八爪鱼 CLI 时,优先使用结构化输出与退出码判断结果。CLI 同时支持人类可读终端输出与机器可读 JSON / JSONL。
JSON 输出(--json)
需要单次、完整的结构化响应时使用:
ok: true 与 data 字段:
ok: false 与 error。各命令的 data 结构不同,编写脚本时请以具体命令输出为准,并容忍新增字段。
Agent 生成与样品采集
detect --agent --run-sample <n> --json 仍只输出一个 JSON envelope。其数据可能同时包含 generatedTask、preview、agentFiles 和 sampleRun:
ok 与 sampleRun.exitCode;需要判断数据质量时,再读取 sampleRun.summary。
JSONL 事件流(--jsonl)
长时间运行或管道处理时使用:
stdout 与 stderr
| 模式 | stdout | stderr |
|---|---|---|
| 人类可读模式 | 命令结果 | 诊断、警告、错误 |
--json / --jsonl | 结构化数据 | 仍可能输出诊断信息 |
退出码
| 退出码 | 含义 | 常见原因 |
|---|---|---|
0 | 成功 | 命令按预期完成 |
1 | 操作失败 | 认证失败、任务不存在、导出错误等 |
2 | 运行环境失败 | Node 版本不符、Chrome 不可用、引擎初始化失败 |
3 | 任务定义不支持 | 使用内核浏览器或 Legacy 工作流(CLI v1 不支持) |
自动化建议
- 单次查询、识别上下文、状态检查使用
--json。 - Agent 生成任务并试采时,同时检查顶层
ok与sampleRun.exitCode。 - 长时间本地运行使用
--jsonl跟踪进度。 - 在 CI 中根据退出码判断步骤成败。
- 单独收集 stderr 便于排查。
- 切勿在日志中打印 API Key、Access Token 或完整凭据文件。
