| 名称 | i4h-workflow-create |
| 版本 | “0.7.0” |
| 描述 | 通过派生现有env创建新的agentic环境。用于新环境/任务脚手架,而非场景编辑或烘焙。 |
| 开源协议 | Apache-2.0 metadata: |
| 作者 | “Isaac for Healthcare Team isaac-for-healthcare-support@nvidia.com” tags: - isaac-for-healthcare - i4h - agentic-workflow - environment - scaffolding |
i4h 工作流 - 创建环境
目的
通过派生最接近的现有env,创建新的workflows/agentic环境的第一个可运行版本。保持本技能聚焦于环境脚手架:YAML、资产、任务、环境类、运行时和验证。请勿使用本技能来美化现有场景、添加可选道具/相机或烘焙桥接编辑;请使用[[i4h-workflow-scene-edit]]处理此类需求。
基础代码
从i4h-workflows根目录解析并工作:
ROOT="${I4H_WORKFLOWS:-$(git rev-parse --show-toplevel 2>/dev/null)}"
if [ ! -d "$ROOT/workflows/agentic" ]; then
ROOT="${I4H_WORKFLOWS:-$HOME/i4h-workflows}"
[ -d "$ROOT/workflows/agentic" ] || git clone https://github.com/isaac-for-healthcare/i4h-workflows "$ROOT"
fi
export I4H_WORKFLOWS="$ROOT"; cd "$ROOT"
需要加载的内容
在编辑前,仅加载与请求匹配的参考:
- 始终加载
skills/i4h-workflow/references/repo-map.md。 - 始终加载
skills/i4h-workflow-create/references/create-contract.md。 - 加载
skills/i4h-workflow-create/references/env-authoring-patterns.md,以选择源环境、机器人拥有者、策略栈和YAML模式。 - 仅当涉及混合场景+机器人环境、G1足迹/桌子高度工作、目录USD比例或支撑面布局时,加载
skills/i4h-workflow-create/references/hybrid-layout-rules.md。 - 仅当提示与配方文件完全匹配且足以避免重新决定组件时,才加载配方文件。
配方路由:
| 提示形态 | 参考 |
|---|---|
基于 scissor_pick_and_place 使用G1进行手术器械分类 |
skills/i4h-workflow-create/references/g1-surgical-tool-sort.md |
创建契约
首先创建环境外壳。一个正常的创建任务应精确生成以下表面,除非所选现有模式需要明确例外:
| 表面 | 路径 |
|---|---|
| 环境YAML | workflows/agentic/config/environments/<env>.yaml |
| 资产 | workflows/agentic/arena/arena/assets/<env>.py |
| 任务 | workflows/agentic/arena/arena/tasks/<env>.py |
| 环境类 | workflows/agentic/arena/arena/environments/<env>_environment.py |
| 运行时 | workflows/agentic/arena/arena/runtimes/<env>.py |
保持所有路径相对于仓库根目录,并保留workflows/agentic/前缀。除非用户明确要求且策略栈确实需要,否则不要创建新的策略包、README、文档或共享模块编辑。
工作流
- 解析组件:环境id、源环境、场景/资产来源、机器人拥有者、策略栈、模型/检查点、相机、物体/目的地、成功规则。
- 在编写代码之前,检查所选源环境YAML、环境类、资产、任务、运行时和策略栈文件。
- 派生最接近的工作模式。保留内联场景与注册表资产风格;不要发明新架构。
- 保持第一个版本最小化且可运行。可选的可视化润色、额外道具、新相机和布局更改应在环境存在后通过场景编辑进行。
- 运行验证并修复源,直到环境构建并且渲染场景在视觉上合理。
对于精确的配方匹配,在加载配方后不要重新推导架构。只读取配方命名的源文件;当配方说运行时是重新导出时,跳过大型源运行时文件,然后立即编写五个契约文件。除非验证错误要求,否则不要检查第三方框架内部。
计划格式:
环境id:
源环境 / 配方:
场景/资产来源:
机器人拥有者:
策略栈 + 模型/检查点:
物体/目的地:
成功规则:
要创建的文件:
验证:
硬性规则
- Env YAML 是机器人、策略、相机、任务文本、数据集映射和训练默认值的唯一真实来源。
- 从最接近的现有实现派生。对于混合环境,机器人集成来自机器人拥有者,场景构建来自场景源。
- 排序任务至少需要两种物体类型、至少两个目的地以及一个在错误放置时失败的成功规则。
- 静态/动力学目的地道具可能不暴露
.data.root_pos_w;成功检查必须回退到entity.get_world_poses()。 - 配置类内部由
func=引用的函数必须定义在这些类之上。 - G1 WBC 环境需要足迹净空和匹配的地面/基础高度值;在选择这些数字之前加载
hybrid-layout-rules.md。 - 额外的固定相机通常是场景编辑/烘焙工作。如果创建提示明确需要策略/数据集相机,请加载场景编辑相机和烘焙参考,并一次性连接所有表面。
验证
运行这些静态检查:
python -m py_compile <changed-python-files>
workflows/agentic/policy/run.sh --list-envs
workflows/agentic/arena/run.sh --env <env> --dry-run
workflows/agentic/policy/run.sh --env <env> --dry-run
然后,从 skills/i4h-workflow-create/references/create-validation.md 运行真正的构建/视觉门。--dry-run 是浅层的:它不能证明任务/资产实例化或场景在视觉上可用。在桥接达到就绪、关键对象有效、视口捕获已检查且桥接停止之前,不要报告新环境已就绪,使用:
workflows/agentic/arena/stop.sh --env <env>
如果无法在主机上启动Isaac Sim,请将其报告为阻塞项并包含静态检查结果;不要将仅有静态检查作为成功呈现。
移交给场景编辑
在环境外壳通过创建验证后,使用[[i4h-workflow-scene-edit]]进行:
- 添加、移动、调整大小或替换对象/资产。
- 添加固定的房间/头顶/手腕相机。
- 实时桥接编辑。
- 将实时更改烘焙到源中。
- 运行
local-agent/validate-bake.sh。
场景编辑工作流拥有对象片段、相机片段、桥接端点细节和烘焙清单,因此此创建工作流保持精简。
先决条件
- 工作流设置已通过 [[i4h-workflow-setup]] 完成;
.venv、第三方checkouts和Isaac Sim启动支持已存在。 - 已知源环境和目标环境id,或者提示提供了足够的信息以从现有模式中选择它们。
- 桥接验证在可以启动Isaac Sim的GPU主机上运行。
限制
- 每次调用创建一个环境。
- 派生现有模式;不要发明新的策略栈或共享框架。
- 使用场景编辑进行创建后润色、可选道具、相机烘焙和实时编辑的源持久化。
--dry-run不能替代桥接构建和视觉验证门。
故障排除
- 缺少设置:如果
.venv、第三方checkouts或run.sh入口点缺失,请先运行 [[i4h-workflow-setup]]。 - 环境未列出:检查 YAML 是否存在于
workflows/agentic/config/environments/<env>.yaml,并且所有文件都使用完整的workflows/agentic/仓库根前缀。 - 静态检查通过后构建失败:检查第一个 Isaac/arena 堆栈跟踪;常见原因是错误的 cfg kwargs、帮助函数定义在配置类下方,或观察指向缺失的传感器。
- 场景看起来错误:修复源或使用场景编辑实时调整并烘焙;不要仅从静态检查报告成功。
最终响应
报告环境id、源选择、创建的文件、验证命令和结果、捕获路径以及任何阻塞项。除非用户明确要求,否则不要提交更改。