AI 智能体在复杂的芯片设计工作流中能带来显著的生产力提升,但它们倾向于生成看似合理却错误的产物,这使得可靠性成为生产采用的主要障碍。在多阶段工程工作流中,早期设置中未被发现的错误可能会悄无声息地传播到下游阶段和最终产物生成中。针对经过验证的最终输出(而非孤立的中间步骤)来评估和优化这些智能体,对于构建可信赖的自动化至关重要。
NVIDIA NeMo Gym 是一个使用环境来评估和改进模型与智能体的开源库,它解决了这一挑战。NeMo Gym 智能体评估环境旨在诊断故障模式,并追踪复杂多阶段工作流中的错误传播。通过建立领域特定的验证器,对照经过验证的参考产物来检查最终输出,NeMo Gym 使工程师能够追踪完整的 rollout 轨迹,并识别细微错误背后的根本原因。
本文介绍了如何使用 NeMo Gym 来评估和改进 Siemens Fuse EDA AI Agent 在调用表征工具时的可靠性。Siemens Fuse 团队使用 NeMo Gym 来扩大评估规模,并对照已知参考来验证生成的 Liberty(.lib)文件,同时追踪每次 rollout 中的常见和罕见故障。这些发现指导了对该智能体技能和 Model Context Protocol(MCP)工具描述的修改,在具有代表性的标准单元表征任务基准上,将测得的基准综合得分从约 55% 提升至约 95%,同时减少了轮次和输出 token。
Siemens 的工作为芯片设计团队和 EDA 开发者提供了一个实践范例,说明如何利用 NVIDIA AI 软件栈和开源库来提高智能体可靠性并改进芯片设计工作流。
自动化标准单元表征
标准单元表征是为逻辑单元在各种工作条件下生成准确的时序、功耗和噪声模型的过程。它是芯片设计的基础,每当半导体代工厂发布新的工艺设计套件(PDK)时都需要进行。每个新 PDK 都包含 SPICE 晶体管模型;设计规则;以及工艺、电压和温度(PVT)定义,这些将制造工艺与设计工具连接起来。当代工厂更新 PDK 时,现有的表征数据集可能不再能准确描述更新后的器件。此时必须针对每个受影响的单元,在输入转换、输出负载和 PVT 条件的各种组合下重新生成并验证时序和功耗模型。
Solido Characterization Suite 智能体自动化了这一过程。该智能体通过 Siemens Fuse EDA AI Agent 编排更广泛的 Solido Characterization Suite 中的工具,后者向包括 Claude Code、Codex 和 Cursor 在内的常见编码工具链暴露 MCP 服务器和技能。
MCP 接口使这些加速工具可供工程智能体访问,而技能则指导它们在表征工作流中的使用。更快的仿真帮助智能体更快完成工程迭代,而 NVIDIA NeMo Gym 帮助开发者衡量并改进智能体编排这些工具的可靠性和效率。
Solido Characterization Suite 智能体必须完成工具设置、大规模 SPICE 仿真、分布式计算、Liberty 文件生成、调试以及最终验证(图 1)。错误往往会产生看似合理的输出,而非明确的失败,从而将错误的阈值、缺失的工艺角或不完整的单元隐藏起来。由于这些阶段相互依赖,早期的设置错误可能会传播到后续的每一个步骤。定义严格的评估协议是为生产工作流准备 Solido Characterization Suite 智能体的关键一步。

图 1. 从 SPICE 输入到试点验证、扩展、Liberty 生成和波形比较的智能体表征工作流。早期的设置错误会传播到最终库
使用 NeMo Gym 衡量并提升智能体可靠性
作为 NVIDIA NeMo 开放库集合的一部分,用于智能体专业化和优化,NeMo Gym 在受控评估循环内与标准单元表征流程集成(图 2)。它为每次运行定义任务、工具、状态和验证器,使尝试从干净状态开始并产生可比较的结果。它还记录思维轨迹、输入和输出消息以及工具操作。
这使工程师能够运行以下优化循环:
- 在自定义 NeMo Gym 环境中使用版本化任务和验证器运行基线运行
- 检查轨迹、失败的工具调用和验证器诊断
- 识别模糊指令、无效操作和错误的工具选择
- 优化智能体的技能和 MCP 工具描述
- 在相同评估条件下重复相同任务
- 比较每个成功结果的已验证结果和效率

图 2. NeMo Gym 检查由 Solido Characterization Suite 智能体和 Solido 工具生成的 Liberty 文件,然后将失败分析馈入下一次技能和工具描述修订。整个过程由编码智能体驱动,并有人工参与
奖励设计与产物验证
当团队分析智能体的轨迹时,端到端评估揭示了中间检查所遗漏的失败。例如,最终的 Liberty 验证暴露了缺失的单元和工作条件、错误的压摆率阈值,以及超出容差的时序或功耗值。这些发现表明,为什么工程智能体必须针对最终产物而非单个工具调用进行评估。
为了使工作可重复,团队实现了验证器,基于以下指标提供最终的综合奖励分数:
覆盖率:智能体是否生成了每个预期的单元和 PVT 角。有效性:交付的 Liberty 文件是否格式良好且可被验证工具使用。相对验证:输出是否引入了参考中已存在的失败之外的失败。准确性:落在定义容差范围内的预期时序和功耗值的比例。完整性:表征工作流是否产生了完整结果,而非重用、截断或重新格式化现有值。
奖励分数定义为:
(R=\mathbf{1}\left[\text{Coverage}\right]\times\mathbf{1}\left[\text{Validity}\right]\times\mathbf{1}\left[\text{Relative Validation}\right]\times\mathbf{1}\left[\text{Integrity}\right]\times\frac{X_{\text{tol}}}{X_{\text{total}}})
这里,(X_{\mathrm{tol}}) 是输出中在容差范围内的值的数量,(X_{\mathrm{total}}) 是输出值的总数。它们的比率表示在容差范围内的输出值的比例。
每个指示器 (\mathbf{1}[\cdot]) 在其对应门通过时等于 (1),失败时等于 (0)。如果任何门失败,奖励为零。
使用此验证器,团队在多次迭代中系统地评估和调整了智能体的性能。
优化智能体
团队使用开源 GF180MCU PDK 来对 Solido Characterization Suite 智能体在 Liberty 文件生成方面进行基准测试。数据集包括 36 个 PVT 角下的 229 个标准单元,使用 Solido AFS 进行 SPICE 仿真。
使用 NeMo Gym 构建了自定义智能体环境。每次运行中,表征流程被限制为两个单元、36 个 PVT 角,因为这个较小的子集足以用于调整智能体工作流。每次运行大约需要 1.5 到 2 小时,团队使用在 Claude Code 中运行的 Claude Opus 4.8 作为固定模型和智能体框架,进行了大约 25 次部署。
在连续几轮评估中,团队改进了智能体的表征技能和 MCP 工具描述。为了改进工具选择,他们简化了重叠的文件和 shell 接口,并使用显式 JSON 模式定义工具输入,使表征工具更容易被智能体调用。
经过这些改进,评估部署的平均综合验证分数从大约 55% 提高到 95%。改进后的工作流还需要更少的智能体轮次和输出令牌。智能体轮次从 155 下降到 53,减少了约 66%,而输出令牌从大约 81K 下降到 29K,减少了约 64%。
模型 | 基准综合分数 | 轮次 | 平均输出令牌数 |
Claude Opus 4.8 | ~55% → ~95% | 155 → 53 | ~81K → ~29K |
表 1. 框架优化前后的开发基准结果## 使用相同方法在其他领域开发可靠的智能体
同样的评估方法适用于 EDA、CAE 及其他工程领域的工程智能体:
- 评估最终的工程产物,而不仅仅是单个工具调用是否成功。
- 编写领域特定的评分器/验证器,检测缺失、截断、重新格式化或重复使用的结果,以防止智能体作弊。
- 收集大量 rollout,通过优化技能和 MCP 工具接口来提升可靠性。
NeMo Gym 入门
使用 NeMo Gym 快速入门指南运行初始评估。然后,将本文所述方法应用于一个代表性任务:定义有效的最终产物,构建领域特定的验证器,检查 rollout 失败情况,改进技能和工具描述,并在一致的评估条件下重新运行。
有关 Solido Fuse 如何将生成式与智能体 AI 引入 Solido Characterization Suite 智能体的更多详情,请观看自验证、长时间运行的智能体表征工作流演示。
进一步了解 NVIDIA 与西门子的合作。
致谢
我们谨此感谢 NVIDIA 的 Gunjan Shah,以及西门子的 Tim Wheler、Lakshminarayanan Ramesh 和 Carl Hofmeister,感谢他们在开发该智能体和建立评估方法方面做出的关键贡献。
