| 名称 | nemo-relay-debug-runtime-integration |
| 描述 | 当NeMo Relay已安装或导入,但应用程序端的运行时行为缺失或不正确时,使用本技能,包括加载失败、非活动作用域(inactive scopes)、缺失事件(missing events)以及插件或自适应接线问题。 |
| 开源协议 | Apache-2.0 metadata: |
| 作者 | NVIDIA公司及其关联公司 |
调试运行时集成
当应用程序中存在NeMo Relay但某些功能无法正常工作时,请使用此技能。
在更改配置之前,首先确认哪个运行时层出现故障。
首要检查
- 绑定或原生工件能否加载?
- 当失败调用运行时,是否有一个活动的作用域?
- 工作是否在预期的作用域栈上执行?
- 订阅者/导出器/插件配置是否实际生效?
- 应用是否选择了正确的公共API层:托管执行与手动生命周期与类型化包装与自适应/插件?
常见故障类别
- Python原生扩展缺失
- Go动态库不在加载器路径中
- Node原生插件未构建或无法加载
- 在作用域之外执行调用
- 因从未注册而缺少事件
- 并发导致错误的作用域栈处于活动状态
- 自适应组件从未初始化,或配置验证被忽略
嵌入式故障排查矩阵
- Rust构建失败:先运行最小化的核心构建,然后扩展到受影响的绑定或工作区命令。
- Python导入失败:使用
uv sync重建虚拟环境和原生扩展,然后在与应用程序相同的环境中运行一个小型Python测试或导入检查。 - Node.js插件失败:在调试应用程序代码之前,从Node绑定包重新安装并重建原生插件。
- Go加载器失败:构建发布版FFI共享库,并将链接器和运行时加载器都指向发布输出目录;在macOS上使用macOS动态库路径变量(
DYLD_LIBRARY_PATH)。 - 作用域栈为空:工作位于活动作用域之外,或跨过线程、任务、goroutine或工作边界而未携带预期的栈。
- 请求间工作泄漏:独立的请求共享一个作用域栈;为每个独立的请求或代理创建新的栈。
- 中间件缺失或顺序错误:检查组级与作用域级注册、活动作用域继承链、名称和优先级值。
- 订阅者缺少事件:在事件发出之前注册;对于作用域本地订阅者,确保当前作用域是所有者或后代。
- 事件字段缺失:托管辅助函数会填充语义字段;手动生命周期调用需要为输入、输出、模型名称和工具调用ID提供显式参数。
- ATIF为空或混合:在工作开始前注册,每次运行使用一个导出器或在运行之间清除,并通过根作用域分隔并发代理。
- Provider负载转换失败:使用显式编解码器转换非JSON的provider对象、SDK句柄、回调、流或类实例。
- 插件验证失败:独立于运行时注册验证配置,并检查必填字段、值类型、默认值和配置来源。
- 自适应行为未改变:确认插桩会发出事件,自适应组件已启用,策略允许该行为,并且调用路径到达所配置的组件。
- OpenTelemetry或OpenInference导出失败:首先确认Relay版本。对于0.6,检查独立的导出器、
http_binary与grpc、端点、头部、目标支持,以及用于原生gRPC的活动Tokio运行时。对于0.7,检查类型化投影、端点、头部、TLS和目标支持;订阅者拥有原生gRPC运行时。 - 回调成功但没有生命周期事件出现:确认集成使用的是托管执行辅助函数或配对的启停API,而不仅仅是底层业务回调。
相关技能
nemo-relay-get-startednemo-relay-instrument-context-isolationnemo-relay-plugin-adaptive-tuningnemo-relay-plugin-build