返回顶部
b

batchjob-async-job批量异步任务

Use BatchJob HTTP APIs for strict upload validation, precheck, submit, polling, and cancellation. Full-auto file source resolution (file_id/local path/public URL/channel attachment path) with fallback interaction only when source is not readable.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 0.0.1
安全检测
已通过
284
下载量
免费
免费
0
收藏
概述
安装方式
版本历史

batchjob-async-job

BatchJob 异步任务技能

当用户希望通过 BatchJob 服务运行或管理批处理任务时,使用此技能。

所需环境

  • - BATCHJOBBASEURL
  • BATCHJOBBEARERTOKEN

所有 HTTP 请求必须包含:

bash
-H Authorization: Bearer ${BATCHJOBBEARERTOKEN}
-H Content-Type: application/json

API 端点

  • - POST /v1/batch/files:upload
  • POST /v1/batch/jobs:precheck
  • POST /v1/batch/jobs
  • GET /v1/batch/jobs/{jobid}
  • GET /v1/batch/jobs?page=1&pagesize=10&status=...
  • POST /v1/batch/jobs/{job_id}:cancel

自动化策略(默认)

  • - 始终以全自动模式运行。
  • 不要先询问用户 file_id。
  • 从当前消息/上下文中解析文件来源,需要时自动上传。
  • 仅在无法获取可读文件来源时询问后续问题。
  • 接受的上传输入文件格式:jsonl、csv、xlsx、xls(BatchJob 会标准化为内部 JSONL)。
  • 对于 jsonl,每行必须是以下之一:
- 标准 Vertex 格式(contents + 可选的 generationConfig) - 简单提示格式(prompt + 可选的 aspectratio / imageurls,其中 image_urls 必须是可公开访问的 URL)
  • - 如果用户在文件消息后只给出 model mode,则视为确认并自动继续。

防护措施(必须遵守)

  • - 除非用户明确要求,否则不要通过创建第二个任务来自动重试。
  • 除非用户明确要求,否则不要在终端失败后自动重写数据集格式。
  • 上传前,仅允许对已知的安全映射进行一次自动标准化(例如简单提示 JSONL -> Vertex JSONL)。
  • 上传失败对此运行是终端性的:上传失败时不要继续执行预检查/提交。
  • 当 rowcount <= 0 时绝不提交。
  • 不要自动获取或解析 outputsummaryurl;仅在用户询问详细失败原因时执行。
  • 达到终端状态(completed、failed、partiallyfailed)后,停止执行并立即返回摘要。

JSONL 兼容性规则(重要)

BatchJob 内部执行期望每个 JSONL 行是 VertexGeminiImageRequest 形状。

  • - 标准行格式:
- contents[0].parts[0].text 包含提示文本 - generationConfig.imageConfig.aspectRatio 是可选的 - generationConfig.responseModalities 应包含 IMAGE 和 TEXT
  • - 非标准的简单 JSONL 如 {prompt:...,aspect_ratio:1:1} 是可接受的;服务器会将其标准化为 Vertex 格式。
  • 如果 JSONL 既没有 contents 也没有 prompt,则停止并要求用户提供有效数据。
  • 明确不支持(提交前必须拒绝):
- 包含 method + url + body 的 OpenAI Batch 风格行(例如 /v1/chat/completions 负载)。 - 此模式将导致 Vertex 错误:至少需要一个 contents 字段。

数据集输出规则(重要)

当用户要求你为 BatchJob 图像任务生成模板/示例文件时:

  • - 优先使用 CSV 表头:prompt,aspectratio,imageurls
  • 或使用带 prompt / aspectratio / imageurls 的 JSONL 行格式
  • 如果提供了 imageurls,它必须是可公开访问的(http/https)。
  • 不要生成 OpenAI 批处理信封(customid + method + url + body)作为最终上传文件

用户模板响应(重要)

当用户询问格式/模板时,返回:

  1. 1. 简短说明(prompt 为必填,aspectratio/imageurls 为可选,且 image_urls 必须是公开 URL)。
  2. 一个可复制的 CSV 片段(默认)。
  3. 可选的一个 JSONL 片段(简单提示模式)。
  4. 本地模板文件路径(如果可用):
- /home/node/.openclaw/workspace/templates/batchjob-input-template.csv - /home/node/.openclaw/workspace/templates/batchjob-input-template.jsonl - /home/node/.openclaw/workspace/templates/batchjob-format-guide.md

不要在模板回复中输出 OpenAI 批处理信封示例。

文件来源解析器(严格顺序)

  1. 1. 现有的 file_id:
- 如果提供了,跳过上传。
  1. 2. 公开的 file_url(http:// 或 https://):
- 下载到临时本地文件,然后上传。
  1. 3. 明确的本地 file_path:
- 如果可读,则上传。
  1. 4. 来自频道/运行时上下文的入站附件本地路径:
- 示例:/tmp/...、MEDIA:、/tmp/openclaw-media/...。 - 如果可读,则上传。
  1. 5. 频道私有文件令牌/对象(无本地路径,无公开 URL):
- 如果运行时具有可下载附件字节的频道适配器,则使用它并上传。 - 如果不可用,则进入回退交互。

解析器输出必须标准化为以下之一:

  • - fileid
  • filepath(可读的本地文件)

执行流程

  1. 1. 确认 model 和 mode;如果缺失,使用安全默认值(model=google/gemini-2.5-flash-image,mode=fast)并告知用户。
  2. 使用上述解析器解析文件来源。
  3. 如果解析器给出 filepath,通过 POST /v1/batch/files:upload 上传以获取 fileid。
- 对于 .jsonl,首先检查几行非空行: - 如果存在 contents,按原样上传。 - 如果仅存在 prompt/aspectratio/imageurls,按原样上传(服务器会标准化)。 - 如果存在 method + url + body,停止并要求用户切换到 BatchJob 模式。 - 如果结构未知,停止并要求用户提供有效模式。 - 向后兼容回退: - 如果上传因 不支持的文件类型 而失败(针对 csv/xlsx/xls),转换一次为 JSONL 并重试上传一次。 - 不要重试超过一次。 - 如果上传返回验证错误(不支持的架构、没有有效的数据行),立即停止并返回修复指南。
  1. 4. 使用 recordcount 运行预检查(优先使用上传文件的 rowcount)。
  2. 使用 fileid 提交任务。
  3. 轮询任务状态直到终端状态(completed、failed、partiallyfailed),带有超时限制:
- 间隔:5 秒 - 最大轮询次数:12(约 60 秒) - 如果最大轮询次数后仍为非终端状态:返回当前状态和 job_id,然后停止。
  1. 7. 返回包含 jobid、状态、进度和 outputsummary_url 的简洁摘要。

当用户只要求估算时,在预检查处停止,不提交。

回退交互(仅在需要时使用)

当解析器无法从当前频道/上下文读取文件字节时使用:

我拿到了“文件引用”,但当前运行环境无法直接读取该附件内容。请任选其一:
1) 直接发一个可公网下载的 URL
2) 提供本机可读路径(如 /tmp/xxx.csv)
3) 先把文件上传到 BatchJob,给我 file_id

如果当前频道支持重新发送为上下文中的直接附件路径,也请用户重新发送一次。

文件来源操作手册

A) 公开 URL -> 本地临时文件

bash
FILE_URL=https://example.com/input.jsonl
EXT=${FILE_URL##*.}
FILE_PATH=$(mktemp /tmp/batchjob-input.XXXXXX.${EXT:-jsonl})
curl -fL --retry 3 --connect-timeout 10 $FILEURL -o $FILEPATH

A2) JSONL 模式健全性检查

在上传前使用此检查以避免提交错误模式。

bash
SRC_JSONL=/tmp/input.jsonl
FIRSTLINE=$(grep -m1 -v ^[[:space:]]*$ $SRCJSONL)
echo $FIRST

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 ssy-batchjob-async-job-1776201912 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 ssy-batchjob-async-job-1776201912 技能

通过命令行安装

skillhub install ssy-batchjob-async-job-1776201912

下载

⬇ 下载 batchjob-async-job v0.0.1(免费)

文件大小: 4.83 KB | 发布时间: 2026-4-15 11:56

v0.0.1 最新 2026-4-15 11:56
Initial publish of the BatchJob async job skill for upload validation, precheck, submit, polling, and cancellation flows.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部