关于 harbor-exec
harbor-exec 是用于操作 Harbor `harbor exec` 命令行工具的 Agent 技能,指导用户配置并运行任务。内容涵盖 map-reduce 作业、产物管理和 CLI 版本检查。
主要功能
- 01检查 Harbor CLI 版本与命令
- 02配置输入和产物要求
- 03运行 map 与 reduce 阶段
- 04管理任务及作业输出设置
适用场景
- 01根据输入文件准备 Harbor 作业
- 02指定生成结果的产物
- 03配置可重复运行的 map-reduce 流程
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ harbor-framework/ harbor --skill harbor-exec安装后在 Claude Code 中输入/harbor-exec确认已加载。
附带文件references/examples.md
详细介绍
Harbor Exec
概述
使用此技能来操作 Harbor 的 harbor exec 命令。将 harbor exec 视为 Agent 式 map-reduce:它会将宽泛的输入转换为 Harbor 任务,在这些任务上运行 Harbor 作业,并可选择汇总结果。
首要检查
假设用户已安装 Harbor CLI。在作出判断前,先检查已安装命令的功能:
harbor --version
harbor exec --help
使用 harbor exec 需要 Harbor >=0.17.1。如果 harbor --version 报告的版本较旧,请先让用户升级,再继续。
调试配置解析、推断出的产物、任务/作业目录或默认值时,使用 --print-config。不要将其视为展示最终启动命令的替代方式。
如果系统中找不到已安装的 harbor 命令,请先询问用户如何安装 Harbor,不要猜测命令路径。
运行参数问题
运行 Harbor Exec 作业前,询问用户确认所有未指定的运行参数:
- 输入:确切的路径/通配符,以及是否使用
--scan或--no-scan。 - 产物约定:Agent 必须写入的输出文件路径。
- 产物架构:每个产物所需的 JSON 或结构化架构。
- 环境提供方:建议使用云沙箱,而非本地
docker;可建议modal、daytona或e2b。 - map 步骤使用的 Agent 和模型。
- 并发数。
- 是否包含 reduce 步骤;如果包含,使用哪个 reduce Agent 和模型。
- 最终命令:运行前展示确切的启动命令。
使用工作流
一次性运行优先使用标志;对于可重复运行或 map-reduce 工作流,使用 --config。
如果正确性取决于生成的文件,请明确指定产物:
harbor exec -p ./input -i "Write /app/answer.json" -f /app/answer.json
优先使用显式产物,而非自动推断的产物。自动推断只会读取内联指令,不会读取指令文件。
默认不要持久化已编译的任务。除非用户希望检查或复用已编译的任务,否则省略 --tasks-dir;省略时,已编译的任务会是临时文件,并在执行后清理。
默认不设置作业输出位置。只有当用户需要指定输出路径时才使用 --jobs-dir;默认值为 jobs。
当任务数量重要时,指定 --scan 或 --no-scan。当前标志模式默认会扫描单个目录或通配符,但多个路径会合并处理,除非显式指定 --scan。
不要将 --config 与标志模式选项混用。应在文件中构建完整的 ExecConfig。
Map 和 Reduce
Map 阶段:
map.compile定义任务合成:指令、复制的路径、Docker 镜像/工作目录、产物、模板以及编译时验证器生成。map.job定义执行:Agent、模型、环境提供方、重试、尝试次数、并发数、指标和作业目录。
Reduce 阶段:
- 需要
map.compile.artifacts;reducer 会读取暂存于environment/artifacts下的先前 map 试验产物。 - 只编译一个 reducer 任务。
- 继承 map 作业设置,除非在标志模式下通过 reducer 专用标志/配置进行覆盖。
- 通常应显式定义 reducer 产物,然后验证这些产物。
示例
编写具体命令、配置文件或 map-reduce 示例时,请阅读 references/examples.md。