플랫 로그에서 실행 트리까지: 최신 AI 에이전트 디버깅
에이전트 추적은 근본적으로 이벤트 시퀀스이지만, 개발자는 실행 트리의 인과 구조를 시각화해야 합니다. 이러한 트리를 구축하려면 타임스탬프 정렬 이상의 작업이 필요합니다. 이벤트가 순서대로 도착하지 않을 수 있고, 형제 노드가 동시에 실행될 수 있으며, 스팬이 불완전하거나 재시도될 수 있기 때문입니다. 최소 이벤트 계약은 안정적인 추적 및 스팬 ID를 보장하며, 시작 이벤트는 부모 관계를 설정하고 종료 이벤트는 결과를 정의합니다. 타임스탬프만으로는 올바른 부모 관계를 파악하기에 불충분하므로, 시작 및 종료 이벤트를 명시적으로 스팬으로 조립해야 합니다.스팬 어셈블러는 상태를 관리하고, 해당 시작 이벤트가 도착할 때까지 종료 이벤트를 버퍼링하며, 누락된 시작 또는 중복 이벤트와 같은 문제에 대한 진단을 보고합니다. 조립된 스팬을 명시적으로 표현하고, 크기 제한 및 만료 정책을 제안하여 무제한 스트림의 잠재적인 미래 문제를 처리합니다. 실행 트리 숲을 구축하면 여러 루트와 고아 스팬을 우아하게 처리하여 충돌을 방지하고 모든 정보가 표시되도록 할 수 있습니다. 렌더링 전에 사이클에 대한 부모 링크를 검증하는 것은 무한 재귀를 방지하는 데 중요합니다.명확한 부모가 없는 고아 스팬은 계측 격차를 가리는 것을 방지하기 위해 별도로 표시해야 합니다. 형제 노드는 안정적인 표시를 위해 시작 시간별로 정렬되지만, 병렬 자식 노드가 상당히 겹칠 수 있으므로 인과 관계를 의미하지는 않습니다. 유용한 UI는 부모 관계 및 재시도를 보여주는 트리 보기와 중첩 및 지연 시간을 보여주는 타임라인 보기를 결합합니다. 포함된 자식 기간 및 중첩된 병렬 작업으로 인해 스팬 기간을 합산하면 추적 시간이 과대평가됩니다.대신, 추적 벽 시간, 스팬 기간, 자체 시간 및 중요 경로는 더 정확한 지표입니다. 재시도 및 대체는 작업의 자식으로 모델링되어야 하며, 자식이 실패하더라도 부모가 성공할 수 있도록 합니다. 부분 추적은 보존되어야 하며, 불완전한 스팬은 불완전한 이유를 명확히 하여 다르게 렌더링하고, 임의의 기간이나 상태를 피해야 합니다. 트리를 비교하는 것은 정확한 스냅샷이 아닌 스팬 종류, 부모-자식 관계, 종료 상태와 같은 불변 속성을 포함합니다. 이벤트 저장소는 추적 ID별로 인덱싱되고 기본적으로 민감한 데이터가 제외된 상태로 추가 친화적으로 유지되어야 합니다. 검증은 추적의 무결성을 보장하고 검증 오류를 실제 에이전트 오류와 분리합니다. 핵심 변화는 이벤트 도착 순서를 실행으로 취급하는 것에서 라이프사이클 이벤트를 신뢰할 수 있는 구조적 트리로 조립하여 더 나은 검사를 수행하는 것으로 전환하는 것입니다.