NVIDIA Holoscan是一个面向边缘端实时AI应用的开发平台,覆盖医学影像、机器人等多个领域。HoloHub是其配套代码仓库,汇集了大量参考应用与组件,持续展示平台的开发潜力。
本文探索了通用编码智能体如何利用工程师日常可用的示例、文档和开发工具,完成真实的开发任务。
文章以构建一个实时内窥镜器械分割应用为例,介绍了AI编码智能体辅助开发的完整流程。HoloHub的示例与文档提供了实现模式,开发技能则引导智能体完成HoloHub的开发流程。
Holoscan CLI通过./holohub封装器调用,为开发者和智能体提供统一的执行接口。智能体可通过CLI发现各类开发操作,工程师也可随时查看并复现相同命令。
开发工作流按迭代方式推进:
工程师定义目标与约束条件
编码智能体检查相关示例、实现应用代码,并通过CLI执行所需的开发操作
工程师审查代码、输出结果和测试用例,为下一轮迭代设定目标
该工作流与智能体无关;本例使用了Codex配合GPT-5.6 sol max模式,文中提及的智能体处理时间均为近似值。
整体目标是构建一个端到端的内窥镜器械分割应用:支持实时推理,并提供分割掩码的实时可视化及统计分析渲染。
开发团队复用了现有的MONAI内窥镜器械分割模型和Holoscan示例视频,确认现有应用monai_endoscopic_tool_seg可在本地正常运行。新应用在复用深度学习分割流水线的基础上,新增了综合可视化、运行时遥测和可重复基准测试功能。
智能体还额外获得了以下资源:
具备Bash执行权限的Holoscan CLI
通过agents.md以渐进式披露模式提供文档的HoloHub代码仓库
HoloHub开发技能,包括holohub-app-lifecycle和holohub-debug-build-run
以下各节将展示这些要素如何在工程师引导的智能体开发工作流中协同运作。
迭代式开发:分解目标
与其用单一提示词构建整个应用,不如将最终目标分解为更小、可验证的工程迭代,每次迭代由不确定性和已有证据驱动。这种方式确保设计决策能够得到及时审查。
综合目标可结构化为一系列可审查的议题:
开发环境是否已正确配置,能否在本地运行类似的现有应用?
现有模型和视频能否在独立的端到端应用中运行?
可视化是否呈现了有意义的信息?
延迟是否可以被重复测量?
能否在不引发功能回归的前提下提升渲染吞吐量?
每次迭代产出可审查的代码、输出结果和测试用例,为下一轮迭代的提示词和设计决策提供依据。
第一轮迭代:构建基础应用
第一个提示词明确了目标,同时约束了模型和数据的复用方式。
开发者提示词1:
使用$holohub-app-lifecycle创建一个独立的新Python HoloHub应用,用于展示内窥镜器械追踪的模型输出(参考:https://github.com/Project-MONAI/model-zoo/tree/dev/models/endoscopic_tool_segmentation)。复用MONAI内窥镜器械分割模型、示例数据、预处理和推理流程。在精美的HoloViz覆盖层中展示模型生成的掩码、覆盖率、时间线及有用的不确定性度量。不得训练或修改模型权重。确保示例视频可端到端运行。
这一提示词将实现细节留给智能体决策,同时明确要求模型复用、视觉证据和权重完整性。
智能体从指定来源收集信息:读取应用生命周期技能、附近的HoloHub示例、项目元数据和CLI文档。
智能体按预期执行了多类操作:
检查了内窥镜、分割、HoloViz、录制和测试相关模式;monai_endoscopic_tool_seg、endoscopy_tool_tracking、surgical_scene_recon是特别有用的参考
试运行并调用./holohub create,生成并注册标准脚手架
使用现有Holoscan算子和资源,实现了应用图、执行模式、测试和文档
通过./holohub run构建并运行应用,应用元数据由CLI定义
最终应用将视频回放、预处理、TensorRT推理、SDK分割后处理器、遥测和HoloViz串联起来。推理和掩码后处理对每一帧回放视频均执行。覆盖层报告了基于帧的测量结果。
智能体处理时间为40分钟。开发者可通过智能体使用的同一CLI查看实时应用:
./holohub run endoscopy_tool_segmentation_dashboard visual --language python
审查实现、视觉输出和测试用例后,确认复用的模型和示例视频在新应用中可正常运行。视觉审查也发现覆盖层的测量指标需要更清晰,因此进入下一轮迭代。
第二轮迭代:增强统计与基准测试
第二个提示词将视觉演示转化为可重复的开发产物:
开发者提示词2:
修改视觉输出,添加更有意义的统计数据:器械面积、掩码运动、作为稳定性指标的时序交并比、边缘熵、FPS、边界框位置,并移除回放过程中保持不变的数值。添加基准测试模式,用Python记录实际延迟并绘制结果图表。将图表导出至构建文件夹,并在环境支持时以交互方式展示。
智能体修订了动态测量指标和截图可读性,并将视觉审查和基准测试设为明确的应用模式。应用实现了三种命名模式:
借助Holoscan CLI和应用生命周期管理,各模式和测试均可发现并运行,无需记忆复杂的容器和应用脚本命令:
./holohub modes endoscopy_tool_segmentation_dashboard --language python
./holohub run endoscopy_tool_segmentation_dashboard benchmark --language python
./holohub test endoscopy_tool_segmentation_dashboard --language python
基准测试模式使用Holoscan数据流追踪,覆盖从视频回放器经预处理、推理、遥测、离屏HoloViz到渲染帧接收器的完整路径,有效复用了现有holoscan flow benchmarking模块的设计思路。智能体处理时间为20分钟。
修订后的基准测试提供了更具可重复性的测量结果。有了这一基线,下一轮迭代可以在不依赖视觉检查的情况下深入研究性能问题。
第三轮迭代:性能优化
应用具备可测量性后,开发者发出了第三个提示词:
开发者提示词3:
检查深度学习模型是否对每一帧都执行推理。研究降低延迟的方法,包括利用相邻帧分割结果相似性的方案,并展示新的基准测试结果。
智能体确认推理仍对每帧执行。它考虑了跨相邻帧复用掩码的方案,这可以减少部分推理开销,但需要制定判断何时可接受过期输出的策略。在本轮迭代中,智能体保持每帧推理不变,优先消除风险较低的仪表盘开销:
复用HoloViz输入规格和静态坐标张量,每帧仅刷新文本和动态几何体
将当前10个值的GPU到主机遥测拷贝异步排队至两个固定缓冲区,并使用上一次完成的值进行渲染
在同一测试系统上对比了第一轮与最终实现的性能,优化版本在全部五次测量中均更快。智能体处理时间为30分钟。
第四轮迭代:提交与收尾
三轮工程迭代完成后,开发者向智能体发出了独立的交接提示词。
开发者提示词4:
提交实现内容并保留基准测试日志。
为完成收尾工作,重新运行了应用和测试,验证了输出图表和无头测试结果。实现内容和基准测试证据通过./holohub env-check和./holohub env-info与提交哈希及依赖版本一并保留。
资源配置对比分析
三轮工程迭代展示了工作流的产出。为深入理解CLI、技能和文档的影响,研究人员在不同资源组合下对相同开发任务进行了对比(研究于8月1日完成,使用Codex 0.146.0配合GPT-5.6 Sol最大推理模式)。所有评估均基于第一轮迭代使用的单一提示词,目标是创建一个新应用。
完整配置(CLI + 技能 + 文档)
智能体处理时间40分钟,总计消耗Token 1100万。
仅CLI + 文档(无技能)
智能体获得了包含CLI使用指南和文档引用的agents.md,以及HoloHub代码库,但未提供HoloHub开发技能。
智能体处理时间65分钟,总计消耗Token 2000万。虽然工作流最终产出了达成实现目标的完整应用,但过程效率较低。智能体正确定位了HoloHub仓库中的类似应用,但倾向于使用通用Bash工具,需要更多试错来探索开发环境。例如,智能体常在使用基于CLI的代码检查之前先运行通用检查工具,或尝试直接在宿主机上安装Python依赖并运行推理脚本(正确做法是在容器中运行)。
仅代码库(无CLI指引、无技能)
智能体获得了HoloHub代码库,但没有agents.md和明确的CLI使用指引,也未提供HoloHub开发技能。
智能体处理时间40分钟,总计消耗Token 1500万。
尽管未提供CLI指引,编码智能体仍从整体代码库示例中理解了CLI的用法,并将其作为主要开发工具。然而,代码质量明显不及其他两种配置:
第三方模型配置和代码被错误地嵌入应用代码中
创建了Dockerfile,但未利用已包含所有必要依赖的现有HoloHub基础镜像
实现中忽略了TensorRT推理和格式转换器等现有优化Holoscan算子,导致该版本比其他两种配置慢2.6倍
虽然后续提示词或许能解决上述问题,但CLI、技能与文档示例的组合配置提供了最佳开发体验,同时资源开销最低。
总结
本文遵循了一个小型、可验证的开发循环。最终产出是一个基于现有模型、示例视频和Holoscan组件构建的工程原型。它可端到端运行,提供多种应用模式和自动化测试,保留了模型权重,并记录了可重现的基准测试证据。
核心要点在于开发者与智能体共享的开发循环:./holohub提供一致的操作接口,技能封装了项目特定的流程与检查,示例和文档提供了工程上下文。智能体与开发者使用相同的CLI命令。开发者可以专注于定义目标、设定约束、评估权衡,并判断现有证据是否充分。
相关资源
HoloHub:https://github.com/nvidia-holoscan/holohub/tree/holoscan-sdk-4.5.0
Holoscan CLI:https://github.com/nvidia-holoscan/holoscan-cli/tree/v4.5.0
HoloHub技能源码:https://github.com/nvidia-holoscan/holohub/tree/main/skills
HoloHub技能(NVIDIA目录):https://build.nvidia.com/skills?filters=library%3Alibrary_holoscan&q=holohub
Q&A
Q1:NVIDIA Holoscan平台主要用来做什么?
A:NVIDIA Holoscan是一个面向边缘端实时AI应用的开发平台,支持医学影像、机器人等多个领域。它配套HoloHub代码仓库,提供参考应用和组件,并通过统一的CLI工具(./holohub)让开发者和AI编码智能体使用相同的命令完成构建、运行、测试等开发操作。
Q2:在Holoscan开发中,AI编码智能体和工程师是如何分工协作的?
A:工程师负责定义目标与约束,智能体负责检查示例、实现代码并通过CLI执行开发操作,工程师再审查代码和输出结果,为下一轮迭代设定新目标。这种迭代循环让设计决策得到及时审查,同时工程师和智能体始终使用相同的CLI命令,便于工程师随时复现和验证智能体的操作。
Q3:为Holoscan智能体开发提供CLI、技能和文档,与只提供部分资源相比,效果有什么差异?
A:对比实验显示,完整配置(CLI+技能+文档)下智能体处理时间为40分钟,消耗Token 1100万;仅有CLI和文档时耗时65分钟,消耗Token 2000万,且存在更多试错;仅有代码库时虽耗时相近,但代码质量最差,运行速度比完整配置慢2.6倍。完整资源组合提供了最佳开发体验和最低资源开销。
