利用 NVIDIA DOCA Agent Skills 加速 BlueField 应用开发
AI agent 正在成为开发流程中的标配,但通用型 agent 在设计之初并没有考虑 NVIDIA DOCA 这类专业基础设施软件。由于缺乏领域知识,agent 往往只能靠猜测。在基础设施开发中,这是一个大问题——每一次纠错循环都会拖慢部署进度。
DOCA 是一个统一的软件平台,能让 NVIDIA BlueField 数据处理器(DPU)在 agentic AI 基础设施中发挥全部潜力。它涵盖加速网络、AI 原生存储、片内安全、遥测和生命周期管理,是构建在 NVIDIA BlueField 之上的团队的开发平台。
DOCA AI agent skills 现已在 GitHub 上发布。这些技能提供了一套结构化、经过验证的基础,正好弥补通用型 AI agent 在 DOCA 开发上的短板。它们为 agent 提供了经过验证的 API 签名、硬件能力要求和构建约束。
本文将介绍 DOCA AI agent skills 是什么,以及它们在四个典型 DOCA 开发场景中的表现,并包含并排对比演示,以及如何上手使用 DOCA agent skills,从而在 BlueField 基础设施上更快地构建、交付更稳定的代码。
DOCA AI agent skills 是什么?
DOCA AI agent skills 是一种标准化的方式,用于为 AI agent 赋予新的能力和专业知识。它是一种轻量级的开放格式,围绕一个 SKILL.md 文件构建,其中包含真实的 API 签名、硬件能力要求和构建约束。这些技能共同为 agent 提供了关于 DOCA 的推理和操作框架。
技能覆盖整个 DOCA 库,包括 Flow、GPUNetIO、PCC 等。它们不会取代 agent,而是赋予它像经验丰富的 DOCA 开发者那样思考的领域知识。
每项技能都针对特定的 DOCA 组件或工作流设定范围。例如,当智能体加载 DOCA Flow 相关技能时,它会获取真实的函数签名、正确的 pkg-config 模块名称、构建容器约束,以及常见故障模式及其缓解措施。这些技能不仅仅是文档的摘要,而是智能体可以直接据此进行推理的机器可读规范。
为什么 AI 智能体需要 DOCA 开发的基础设施?
当你让通用 AI 智能体配置 DOCA Comch(通信通道)、设置 RDMA 上下文,或调试 DOCA Flow 程序中的链路故障时,该智能体是基于通用训练数据中的模式匹配来工作的——而不是基于经过验证的 DOCA API 契约、硬件能力清单或构建系统规范。DOCA 库的覆盖面广泛,演变迅速,且具有硬件特异性,这些特点在通用训练数据中并未被充分捕捉。目前不存在可供智能体推理的机器可读契约,也没有保证稳定的接口来连接智能体已知内容与硬件及软件实际支持的功能。
为了量化这一差距,NVIDIA 团队运行了 65 个真实的 DOCA 开发者提示词,对比了智能体在有无这些技能下的表现。这些提示词从单行问题到详细的多需求提示不等,评估依据是标准答案检查清单(每个任务有一组具体的通过/失败标准)。在没有技能的情况下,智能体持续出现相同的错误,包括:
- 误用 API 和标志位:65 个提示词中有 59 个
- 未验证硬件能力:65 个提示词中有 46 个
- 工具路由错误:65 个提示词中有 39 个
- 跳过冒烟测试:65 个提示词中有 34 个
- 猜测版本号:65 个提示词中有 30 个
这些是持续性的失败。在没有技能的情况下,智能体在真实的 DOCA 任务中仅满足了 19% 的评估检查项。而在有技能的情况下,它们在全部 65 个提示词中均满足 100% 的检查项。没有技能意味着智能体的每一个错误都会转化为开发者的调试会话,从而延长通往可用代码的路径。
DOCA 智能体技能对开发人员有哪些益处?
DOCA 智能体技能使你能够为智能体配备领域专业知识。这意味着你可以更快地构建应用,发布更稳定的代码,并在部署时减少不确定性。
- 构建更快:Skills 让智能体从一开始就拥有经过验证的 API 调用,让你专注于编写代码,而非纠错。
- 交付更稳定的代码:借助 Skills,智能体在写下一行代码前,会先确认设备实际支持的功能,而不是等到在真实硬件上运行后才发现。
- 部署时未知数更少:智能体会在接触硬件之前,执行预检、回滚计划以及冷启动断电感知,而不是等到出问题后再补救。
综合来看,这减少了从任务到可用代码之间的纠错周期。对于大规模使用 AI 智能体开发 DOCA 应用的团队而言,这种效率提升会在每位开发者、每个任务和每次部署中累积放大。
利用智能体 Skills 加速 DOCA 开发
以下章节详细说明了四种能力。每种能力都通过我们在 65 项提示词评估中的一个真实示例,以及使用该 Skill 带来的益处来展示。
使用真实 API 加快构建
DOCA AI 智能体 Skills 解决的问题:API 误用:智能体凭空捏造不存在的函数、标志(flags)和镜像标签(image tags)。
这是我们在评估中最常见的失败模式,影响了 65 个提示词中的 59 个。在没有 Skills 的情况下,智能体会生成引用不存在的 DOCA 函数、名称错误的标志以及运行时失败的镜像标签的代码。作为开发者,你最终不得不在调试一个由智能体“发明”出来的错误,而非你自己引入的错误。
提示词示例:“我有一台主机,配备了 BlueField-3 DPU 并安装了 DOCA。我想在主侧进程和 DPU 侧智能体之间建立一个 DOCA Comch(通信通道),以便它们交换小型控制消息(每条小于 4 KiB,每秒几次)。”
配备 Skills 的 AI 智能体仅使用真实的 DOCA Comch API 调用:参数顺序正确,标志和生命周期序列经过验证,没有捏造内容。
当智能体的首次响应使用了正确的 API 接口时,你可以直接进行集成,而不必从调试会话开始。在测试 API 准确度的 63 个提示词中,使用 Skills 的结果每次都更好。
在编写任何代码前验证硬件
DOCA AI 智能体 Skills 解决的问题:智能体编写了设备不支持的功能代码。
在无 skills 的 65 个提示词中,有 46 个遗漏了硬件能力验证。失败模式如出一辙:Agent 想当然地认为某项能力存在,据此生成代码,开发者直到在真实硬件上运行时才发现不匹配。到那时,修复工作需要弄清跳过了哪项能力检查、重写代码路径并重新测试。
提示词:“我有两台主机,通过高速 InfiniBand 交换网络互连。每台主机配有一块 NVIDIA GPU 和一块 ConnectX 网卡,两台都装了 DOCA。我想测量 RDMA WRITE 工作请求的延迟,前提是这个 WR(work request)是从 GPU 上的 CUDA kernel(而非主机 CPU 线程)发起的,以便决定是否把我的应用迁移到 GPUNetIO Verbs 接口上。”
带 skills 的 AI Agent 在写任何代码之前,会先确认设备实际支持哪些功能:验证 GPU 与网卡之间的 PCIe 拓扑、在正式采用前确认 GPUNetIO 的支持情况,并指出可选的其他 API 及各自的适用场景。
带 skills 的 AI Agent 在编写任何代码之前,会对照实际使用的硬件验证答案的前置条件。
生成能编译、能链接的代码
DOCA AI Agent skills 解决的问题:Agent 生成的代码在 DOCA 容器中无法编译或链接。
构建正确性测试覆盖了 65 个提示词中的 10 个。虽然只是较小的子集,但一旦命中,开发就会完全卡住。
提示词:“我在用自带的示例构建一个 DOCA Flow 程序。编译没问题,但链接失败:undefined reference to doca_flow_init。该怎么排查?”
带 skills 的 AI Agent 会将这个 undefined reference 识别为链接期错误,并通过构建工具(pkg-config)查询 doca-flow 所需的正确链接器参数。
如果 Agent 给出的链接器参数有误,开发者就会走上一条永远走不通的路。而带 skills 的 Agent 能立即给出正确的排查思路,并指明用哪个工具获取正确的参数。
安全执行影响硬件的变更
DOCA AI Agent skills 解决的问题:Agent 在运行中的硬件上直接应用固件级变更,却缺乏预检查、回滚方案,也不了解冷重启(cold power-cycle)的要求。
任务越复杂,技能的作用就越关键。在我们的 65 项提示词评估中,性能差距最大出现在最高复杂度的场景,即对运行中的硬件进行固件级变更。
提示词:“我有一台正在生产环境运行 DOCA 工作负载的 BlueField-3 DPU。我已经为服务加载了 DOCA AI agent skill,下一步是编写一个 mlxconfig 类固件级参数。”
具备技能的 AI agent 应用了固件级变更所需的全套规范,以满足所有要求。这包括预检清单、将带外(OOB)路径作为前置条件、明确的维护窗口、回滚计划,以及注明 mlxconfig 类写入仅在冷断电重启时生效,而非热重启。
带技能的 agent 满足了所有要求,而不带技能的 agent 则一项未满足。在生产环境的实时 DPU 上,这些遗漏无法通过调试步骤补救。技能承载了“哪里可能出错”及“为什么”的知识,将高风险的固件变更转化为有纪律、安全规程的操作流程。
在全部 65 项提示词中,拥有 DOCA 技能的 AI agent 每次都给出了正确答案。这意味着修正周期更少,生成可运行代码的速度更快。
视频 1 的演示具体展示了效率提升。两个 agent 被分配了相同的任务:使用 NVIDIA DOCA 构建一个程序,在 BlueField-3 上发送真实 RDMA 流量。两者都成功了,但带技能的 agent 手写代码量少 73%(189 行对 695 行),硬件命令数量减少约一半(20 条对 37 条,降幅 46%)。这就是一个通过试错重新发现 DOCA API 和构建要求的 agent,与一个在写第一行代码前就掌握这些知识的 agent 之间的区别。
开始使用 NVIDIA DOCA AI agent 技能
DOCA AI agent 技能赋予 agent 领域知识,助其取得成功,让你能以更高效率和准确性进行构建。入门请访问 NVIDIA/skills GitHub 仓库。查看通用技能以快速入门,并浏览 DOCA Flow、GPUNetIO、RDMA 等库的专用技能。