Affected area
Observability or exporters
Problem or opportunity
ATIF v1.7 is upstreamed to harbor: https://github.com/harbor-framework/harbor/blob/main/rfcs/0001-trajectory-format.md
It's got some nice support for mark lifecycle events in NeMo Flow and nested subagent trajectories.
Proposed enhancement
Here's the change log from v1.7 ATIF - we will want support for these updates in the NeMo Flow exporter.
Added extra field to ToolCallSchema for custom tool-call metadata
Added extra field to ObservationResultSchema for custom observation metadata
Added subagent_trajectories field to root Trajectory for single-file subagent embedding
Added trajectory_id field to Trajectory as the per-document identifier for embedded-subagent resolution (avoids overloading session_id with document-level uniqueness). trajectory_id is REQUIRED on embedded subagents and MUST be unique within a parent's subagent_trajectories array.
Relaxed Trajectory.session_id from Required to Optional and clarified its semantics: session_id is run-scoped (not document-scoped), MAY be shared across sibling subagents, continuation trajectories, or omitted on embedded subagents that inherit the parent's run identity. session_id is no longer overloaded as the canonical matching key for subagent references.
Added trajectory_id field to SubagentTrajectoryRef as the canonical resolution key for embedded references. Made session_id optional on the ref and reclassified it as informational only — session_id is run-scoped and is NOT a valid resolution key (two sibling subagents MAY legitimately share a session_id). A ref MUST set at least one of trajectory_id (embedded form) or trajectory_path (file-ref form) so it is resolvable; session_id alone is insufficient. Breaking vs. v1.6: in v1.6 session_id was required on SubagentTrajectoryRef and served as the resolution key, so a ref of the shape {"session_id": "..."} (no trajectory_path) was valid; under v1.7 such a ref no longer validates. Producers MUST migrate by setting trajectory_id (and a corresponding trajectory_id on the embedded subagent in subagent_trajectories) for embedded refs, or trajectory_path for external-file refs.
Added llm_call_count field to StepObject for multi-LLM-call step representation
Added context_management convention for system steps that transform the agent's context window (see Section VII)
Resolved no-LLM orchestration by defining llm_call_count = 0 semantics on source: "agent" steps to signal deterministic dispatch
Runtime contract and binding impact
None
Alternatives considered
Leave at v1.6 unitl Phoenix supports 1.7 trajectories.
Acceptance criteria
Users can generate ATIF v1.7 trajectories and visualize them accurately in Phoenix.
ATIF traj can be used with post-run verifiers in Harbor.
Affected area
Observability or exporters
Problem or opportunity
ATIF v1.7 is upstreamed to harbor: https://github.com/harbor-framework/harbor/blob/main/rfcs/0001-trajectory-format.md
It's got some nice support for mark lifecycle events in NeMo Flow and nested subagent trajectories.
Proposed enhancement
Here's the change log from v1.7 ATIF - we will want support for these updates in the NeMo Flow exporter.
Added extra field to ToolCallSchema for custom tool-call metadata
Added extra field to ObservationResultSchema for custom observation metadata
Added subagent_trajectories field to root Trajectory for single-file subagent embedding
Added trajectory_id field to Trajectory as the per-document identifier for embedded-subagent resolution (avoids overloading session_id with document-level uniqueness). trajectory_id is REQUIRED on embedded subagents and MUST be unique within a parent's subagent_trajectories array.
Relaxed Trajectory.session_id from Required to Optional and clarified its semantics: session_id is run-scoped (not document-scoped), MAY be shared across sibling subagents, continuation trajectories, or omitted on embedded subagents that inherit the parent's run identity. session_id is no longer overloaded as the canonical matching key for subagent references.
Added trajectory_id field to SubagentTrajectoryRef as the canonical resolution key for embedded references. Made session_id optional on the ref and reclassified it as informational only — session_id is run-scoped and is NOT a valid resolution key (two sibling subagents MAY legitimately share a session_id). A ref MUST set at least one of trajectory_id (embedded form) or trajectory_path (file-ref form) so it is resolvable; session_id alone is insufficient. Breaking vs. v1.6: in v1.6 session_id was required on SubagentTrajectoryRef and served as the resolution key, so a ref of the shape {"session_id": "..."} (no trajectory_path) was valid; under v1.7 such a ref no longer validates. Producers MUST migrate by setting trajectory_id (and a corresponding trajectory_id on the embedded subagent in subagent_trajectories) for embedded refs, or trajectory_path for external-file refs.
Added llm_call_count field to StepObject for multi-LLM-call step representation
Added context_management convention for system steps that transform the agent's context window (see Section VII)
Resolved no-LLM orchestration by defining llm_call_count = 0 semantics on source: "agent" steps to signal deterministic dispatch
Runtime contract and binding impact
None
Alternatives considered
Leave at v1.6 unitl Phoenix supports 1.7 trajectories.
Acceptance criteria
Users can generate ATIF v1.7 trajectories and visualize them accurately in Phoenix.
ATIF traj can be used with post-run verifiers in Harbor.