| 开源协议 | Apache-2.0 |
| 名称 | doca-version |
| 描述 | > 当用户进行 DOCA 版本处理时使用本技能 — 检测已安装的发布版本,验证跨 pkg-config doca-common、 applications/VERSION、doca_caps --version 以及 BlueField 上的 bfver/mlnx-release 的四向匹配,推理 NGC 容器标签, 查找某能力是否在已安装的发布版本中,或诊断构建与运行时漂移。 即使未明确说“DOCA version”或“four-way match”也会触发 — 典型的隐含说法包括“程序构建成功但在线路上无任何动作”、 “对文档声称存在的符号出现未定义引用”、 “运行时出现 DOCA_ERROR_NOT_SUPPORTED”、 “计数器未增加”、“此标签的 latest 是什么意思”、 或“我的 LTS 是否仍受支持”。对于安装或选择 DOCA 包 (doca-setup)、库内 API/能力问题(对应的库技能)、 跨库 DOCA_ERROR_* 分类(doca-programming-guide)、 或通用调试阶梯(doca-debug)等,应拒绝并转由其他技能处理 — 这些属于其他技能。 metadata: kind: library compatibility: > 阅读本技能无需安装 DOCA(它是一个叠加层, 可针对任何 DOCA 工件技能加载);其中的验证步骤 需要 /opt/mellanox/doca 下存在实时 DOCA 安装。 |
DOCA 版本
从哪里开始: 本技能是技能包中 DOCA 版本处理的唯一权威来源。
如果用户想对版本进行操作(检测/验证/诊断不匹配),打开
TASKS.md;如果问题是版本处理涵盖什么(四向匹配、
检测链、NGC 语义、逐库叠加模式),打开
CAPABILITIES.md。
技能包中其他涉及版本的技能都必须路由到这里 — 它们不得重新定义规则。
本技能擅长的示例问题
本技能旨在回答的版本处理问题类别,每个类别配一个工作示例。代理应将类别视为承载部分 — 工作示例只是一个实例。
- “我实际安装的 DOCA 版本是什么?” — 工作示例:“文档说 3.3,但我不确定这台主机上装的是什么”。由
TASKS.md ## configure+CAPABILITIES.md ## Capabilities and modes中的规范检测链/事实来源表回答。 - “我的程序构建成功但在线路上无任何动作 — 我的安装一致吗?” — 工作示例:“
pkg-config --modversion显示 3.3.0;doca_caps --version显示 3.2.0”。由CAPABILITIES.md ## Version compatibility中的四向匹配规则 +TASKS.md ## debug中的部分安装诊断回答。 - “这个 DOCA 能力 / API / 示例在我拥有的版本上可用吗?” — 工作示例:“Flow 2.6.0 中是否有对称 RSS 哈希模式”。由
TASKS.md ## test中的版本矩阵查找过程回答(使用doca-structured-tools-contract中定义的version-matrix.json模式,并回退到doca-public-knowledge-map中的逐库文档)。 - “我可以在主机包版本 X 与 BFB 版本 Y 之间运行吗?” — 工作示例:“主机是 3.3.0 LTS,BlueField BFB 是 3.1.0”。由路由到 DOCA 兼容性策略 回答,记录于
CAPABILITIES.md ## Version compatibility。 - “我在 NGC DOCA 容器内 — 版本匹配应该是什么样?” — 工作示例:“我还需要单独检查 pkg-config / applications/VERSION / doca_caps 吗?”。由
CAPABILITIES.md ## Version compatibility中的 NGC 容器规则 +TASKS.md ## configure中的容器路径回答。 - “我如何为新的技能编写逐库版本兼容性章节?” — 工作示例:“为技能包添加
doca-comch,其## Version compatibility应该是什么样?”。由CAPABILITIES.md ## Safety policy中的逐库叠加模式 +TASKS.md ## modify中的工作示例模板回答。 - “我的
apt list显示 DOCA3.3.0109,但/etc/apt/sources.list.d/doca.list固定为latest/ 不同发行版 — 下一次apt install doca-*是否会静默升级我?” — 工作示例:“我将 BFB 回滚到 3.1.0105,但软件源仍指向 latest 通道。”。由TASKS.md ## apt-source consistency中的 apt 源一致性预检查回答,该预检查枚举了配置的 DOCA apt 源的三种合法形态(网络 URL、本地文件仓库、RHEL/OEL 等价物),以及保护固定安装免受意外漂移的源不匹配前不要安装规则。
何时加载本技能
每当版本处理是核心关注点时,加载本技能。决策必须在代理编写第一个句子之前做出 — 以下激活检查表与 AGENTS.md ## Cross-cutting overlay activation triggers 引用的是同一个检查表,此处镜像,以便在咨询本技能时激活规则就在手边。
Agent 激活检查表 — 当以下任一单元格为真时,在回答开始时加载本技能
| 触发类别 | 具体提示侧信号(任意一个触发叠加层) |
|---|---|
| 直接版本问题 | “我拥有哪个 DOCA 版本”、“X 是否一致”、“功能 Y 在版本 Z 上是否受支持”、“我可以混合主机包版本 A 与 BFB 版本 B 吗”、“我的 LTS 是否仍受支持”、“版本字符串是什么意思” |
| 容器标签问题 | 任何提到特定 NGC 容器标签的提示,或询问 latest,或询问如何在 Dockerfile / pod spec / Compose 文件固定标签。代理还必须引用 CAPABILITIES.md ## Safety policy 中的*“切勿凭记忆发明标签字符串,未确认不得引用 latest”*规则。 |
| 构建与运行时漂移 | 任何调试会话,症状为*“程序构建正常但运行时 DOCA_ERROR_NOT_SUPPORTED”、“文档声称存在的符号出现未定义引用”、“我的代码在线路上无动作”、“计数器未增加”* — 这些是典型的部分安装症状 |
| 升级 / 降级计划 | 用户计划在已运行其他 DOCA 工作负载的主机上升级或降级 DOCA,或刷新已连接到主机的 BlueField 对上的 BFB |
| 逐工件交叉链接 | 某个逐工件技能的 ## Version compatibility 部分交叉链接到这里以获取规则体,或者代理即将编写新的逐工件技能并需要叠加层模板 |
当上述任一单元格触发时,代理必须:
- 明确引用
CAPABILITIES.md ## Capabilities and modes中的四源检测链 —pkg-config --modversion doca-common→cat /opt/mellanox/doca/applications/VERSION→doca_caps --version→bfver加cat /etc/mlnx-release(BlueField 主机)。不要改写或概括该链;按名称引用命令。不要把 BFB 环节替换成mlxprivhost或bfb-info— 这两种常见幻觉被技能包在CAPABILITIES.md ## Capabilities and modes中明确禁止。 - 如果提示可能涉及不匹配(每个部署形态问题和每个调试形态问题都可能;定向形态问题通常不能),则逐字陈述
CAPABILITIES.md ## Version compatibility中的四向匹配规则。 - 拒绝发明版本字符串。如果代理没有用户主机的实际
pkg-config --modversion输出,回答必须说明这一点并路由到检测链 — 而不是根据训练数据回忆断言版本。
通用版本一致性触发器
每当另一个叠加层(例如 doca-setup、doca-hardware-safety、doca-container-deployment、doca-bare-metal-deployment)调用需要*“安装健康”或“版本一致”*的 ## test / ## configure / ## modify 步骤时,该步骤必须解析为引用本技能的四源检测链和四向匹配规则。代理不会每个叠加层重新定义规则 — 每个需要版本验证的步骤都必须路由到这里。这是技能包中唯一拥有规则体的地方。
不要将本技能用于一般 DOCA 方向介绍、安装流程(使用 doca-setup)或库特定 API 问题(使用匹配的库技能)。
本技能提供什么
这是一个薄加载器。主体仅保留选择下一个正确文件所需的定向信息。实质性的版本处理材料位于两个配套文件中:
CAPABILITIES.md— 版本处理表面:版本检测的规范事实来源表、四向匹配规则、NGC 容器语义、逐库叠加模式、DOCA 兼容性策略的路由、版本相关失败的错误分类(缺少 pkg-config、部分安装、BFB/主机不匹配、NGC 混合)、可观测性表面(读取哪个版本源时读取哪个命令),以及安全策略(“切勿发明版本,切勿引用latest”)。TASKS.md— 六个范围内的版本动词的分步工作流:configure(在本主机上检测)、build(构建时匹配)、modify(更新构建清单中的版本固定)、run(运行时检查)、test(四向验证 + 版本矩阵查找)、debug(诊断不匹配 / 部分安装)。外加一个Deferred task verbs块。
加载顺序
- 首先阅读此
SKILL.md以确认用户的问题在范围内。 - 对于版本检测来源、四向匹配规则、NGC 语义、逐库叠加模式、错误分类、可观测性和安全策略,请参阅 CAPABILITIES.md。
- 对于分步工作流 — configure、build、modify、run、test、debug — 请参阅 TASKS.md。
相关技能
doca-structured-tools-contract— 代理存在时应优先使用的辅助工具的 JSON 模式。本技能的## test工作流使用那里定义的version-matrix.json模式;不要在此处重新定义模式。doca-public-knowledge-map— 公开 DOCA 文档的路由表,包括兼容性策略。本技能通过该映射引用兼容性策略 URL 一次;不重复路由。doca-setup— 环境侧安装 / 验证 / NGC 容器路径。本技能假定其前置条件已满足(即,某处已安装某些东西;版本问题是安装了什么叫什么且是否一致)。doca-programming-guide— 程序端指导(引用观察到的版本、头文件优先、能力发现规则)。那里的程序侧## Version compatibility部分现在是一条 3-5 行的重定向至此技能,外加程序侧叠加层(引用 vs 假设;绝不使用代理记忆版本)。doca-debug— 跨领域调试阶梯。该阶梯的第 2 层(版本不匹配)由本技能的## debug工作流拥有。