Phoenix ATIF exporter misses tool spans from IntermediateStepToATIFConverter and ends the workflow span before a trailing tool call
Maintainers usually reply within 1 day
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 30/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Stale
- Tech stack
- python
- Domain
- observability
Research direction
Read nat/plugins/phoenix/scripts/export_trajectory_to_phoenix/atif_trajectory_exporter.py and nat/utils/atif_converter.py to see the two metadata shapes. Inspect _per_toolcall_meta and _trajectory_time_bounds for missed cases. Done means both converter trajectories yield tool spans and workflow span covers trailing tool call.
Written by the indexing model from the issue text.
Description
Version
develop (9e614099)
Which installation method(s) does this occur on?
Source
Describe the bug.
ATIFTrajectorySpanExporter (nat/plugins/phoenix/scripts/export_trajectory_to_phoenix/atif_trajectory_exporter.py) reads tool call metadata from one place when it builds tool spans and from another when it computes the workflow span's time range, and each misses one of the two forms NAT produces:
IntermediateStepToATIFConverter(nat/utils/atif_converter.py) writes tool ancestry and timing as the step-levelextra.tool_ancestryandextra.tool_invocationsarrays, and leavestool_calls[*].extraempty._per_toolcall_metaonly readstool_calls[*].extra, so no tool span is created for these trajectories at all.- The ATOF converter in
nvidia-nat-atifwrites them on each tool call (tool_calls[*].extra.invocation)._trajectory_time_boundsonly readsextra.tool_invocations, so when a trajectory ends with a tool call, the workflow span ends before its last child does.
Minimum reproducible example
# user -> LLM -> pow tool -> LLM, converted with IntermediateStepToATIFConverter
trajectory = IntermediateStepToATIFConverter().convert(intermediate_steps)
spans = ATIFTrajectorySpanExporter().convert(trajectory.model_dump(mode="json", exclude_none=True))
[span.name for span in spans]
# ['my_agent', 'llm', 'llm'] -- no 'pow' span
# A v1.7 trajectory (tool call metadata on the tool call) that ends with the pow call (2.0 to 3.0):
# workflow span: 1.0 to 2.0, pow span: 2.0 to 3.0
Relevant log output
No response
Other/Misc.
No response
Code of Conduct
- I agree to follow this project's Code of Conduct
- I have searched the open bugs and have found no duplicates for this bug report
- Dominant language
- Python
- Stars
- 2.7k
- Forks
- 814
- Avg merge
- 1d 10h
- Merged PRs (30d)
- 128
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from NVIDIA/NeMo-Agent-Toolkit
-
Alert triage agent: the HTTP server (run.py) starts every triage with a config file that does not existPossibly taken A pull request linked to this issue is open or already merged. Open
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
NVIDIA/NeMo-Agent-Toolkit#2536 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
NVIDIA/NeMo-Agent-Toolkit#2534 ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 85/100
NVIDIA/NeMo-Agent-Toolkit#2531 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 3/5 Half a day Newbie friendliness 35/100
NVIDIA/NeMo-Agent-Toolkit#2537 · 1 comment ·
Maintainers usually reply within 1 day
-
[FEA] Add a Future AGI OTLP telemetry exporter (futureagi)Possibly taken @nik13 claimed this 3 days ago. Open
NVIDIA/NeMo-Agent-Toolkit#2489 · 1 comment · 1 assignee ·
Maintainers usually reply within 1 day
All issues in NVIDIA/NeMo-Agent-Toolkit
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Nixtla/mlforecast#823 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
microsoft/ML-For-Beginners#1061 ·
-
bot-found documentation priority: P3
Difficulty 2/5 Under an hour Newbie friendliness 82/100
madenvel/KalinkaPlayer#503 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 63/100
EleutherAI/lm-evaluation-harness#4508 ·
Maintainers usually reply within 1 day