用途:Trace Viewer 是 NVIDIA OO Agents 的 trace 浏览工具,单个 FastAPI 应用同时充当接收智能体 span 的 OTLP 接收器和 Web UI(React SPA),用于查看 trace、LLM 调用与评估实验。trace 持久化在 SQLite,重启后仍保留。
启动:执行 nooa start-dev(默认 http://localhost:5001)。可选参数:--port 5002 自定义端口、--db /path/to/other.db 指定独立存储、--host 127.0.0.1(默认 0.0.0.0)。Ctrl-C 停止;依赖缺失时运行 uv sync --extra viewer;端口占用会报告对应 PID。数据库解析顺序:--db > $NOOA_TRACE_DB > ~/.config/nooa/traces.db。备用入口 python -m nooa.viewer 遵循 $NOOA_TRACE_VIEWER_PORT(默认 5001),其默认 DB 为当前目录 ./traces.db,建议优先用 start-dev。
主要能力:/traces 分页会话列表(支持搜索、按 experiment/batch ID 过滤、删除);/traces/view?session_id=… 查看 span 层级事件、展开折叠与文本搜索;/eval 与 /eval/experiment/{id} 查看评估实验状态与逐测试 trace。详情页含可缩放时间线、过滤侧栏、LLM 调用对话重建、标注(评分/标签/评论)、Playground 换模型或温度重跑并 diff、batch ID 芯片。快捷键 j/k 导航、/ 搜索、? 查看全部;URL 保存视图状态可分享,加 &embed=true 可嵌入。
导入导出:nooa import-traces ./traces/ 或指定文件与 --endpoint、--batch-id;nooa import-harbor <job-dir> 导入 Harbor 评估目录;curl -o session.jsonl "http://localhost:5001/api/trace/export?session_id=<ID>" 导出;nooa delete-traces --batch-id 或对应 DELETE 接口删除;nooa traces list / nooa traces delete --older-than 7 用于磁盘文件清理。仅接受 OTLP JSON 行,session ID 取自文件名,已导入的会跳过。
REST API 基址 http://localhost:5001,提供会话列表、原始 span、导出、LLM 调用、资源属性、实验与评估、POST /v1/traces 摄取、POST /v1/sync 等待队列排空等端点。
限制与注意:摄取为队列式单后台写入,刚跑完立即 GET 可能缺尾部数据,应先用 POST /v1/sync。另一进程单独运行 python -m nooa.viewer 未设 NOOA_TRACE_DB 会写入 ./traces.db 导致"丢失" trace。SQLite 被其他实例锁定时查看器会以退出码 1 拒绝启动。旧文档提到的独立包与 nooa viewer 子命令已过时,现位于 src/nooa/viewer/,规范命令为 nooa start-dev。插件渲染器通过 nooa.viewer.plugin span 属性选择,旧键 nemo_oo_agents.viewer.plugin 仅作兼容回退。相关技能:nooa-capturing-traces、nooa-trace-explorer。