"Burr에서 LLM 에이전트용 타임머신 디버거를 구축... 노트

"Burr에서 LLM 에이전트용 타임머신 디버거를 구축한 방법과 "변경되지 않은 분기를 다시 실행하고 아무것도 변경되지 않았음을 증명하는 것"이 실제로 무엇을 의미하는가."

기존 에이전트 추적 도구는 제한적이어서 사용자가 문제를 디버깅하기 위해 전체 파이프라인을 다시 실행해야 하며, 비결정적 모델 동작으로 인한 변경 사항을 격리하기 어렵습니다. Rewind는 완료된 실행을 어떤 단계에서든 포크하고, 단일 입력을 수정하고, 다운스트림 단계만 다시 재생할 수 있도록 하여 이를 해결합니다. 이를 통해 트래젝토리의 정확한 차이점을 비교하고 실제 변경 사항과 모델의 불안정성을 구별할 수 있습니다. Rewind 아키텍처는 브라우저 인터페이스, FastAPI 백엔드, Burr 애플리케이션을 포함하며, 상태는 SQLite에 지속되고 원격 측정은 노드별로 캡처됩니다.핵심 설계 원칙은 상태가 의미론적인 것만 포함하며, 지연 시간이나 토큰 수와 같은 비결정적 요소를 상태 자체에서 제외한다는 것입니다. 프레임워크별 키는 프롬프트나 해시에 영향을 미치기 전에 상태에서 제거되어 분기를 유발합니다. 포크된 실행에 대한 재정의는 상태 외부에서 관리되어 변경되지 않은 분기가 여전히 캐시를 히트할 수 있도록 합니다. 아티팩트 해시는 포함하는 파일 경로가 아닌 콘텐츠 바이트에서 생성되어 잘못된 차이점을 방지합니다.캐싱 메커니즘은 모델, 온도, 프롬프트 및 도구 결과에 기반한 결정론적 키를 사용합니다. 도구 노드는 도구 이름과 표준 인수에 의해 키가 지정된 별도의 캐시를 가집니다. 차이 엔진은 중첩된 사전을 평탄화하여 특정 필드 수준의 차이점을 식별하고 명확하고 실행 가능한 디버깅 정보를 제공합니다. Rewind는 구문 분석 오류 또는 소비 불가능한 재정의에 대해 명확하게 실패하는 강력한 오류 처리를 구현합니다.검증 테스트는 Rewind가 100% 캐시 히트율과 변경되지 않은 재생에 대해 0개의 증분 토큰 사용량을 달성함을 확인합니다. 이 결정론은 유용하며, 모든 LLM 호출이 캐시된 경우 실행이 중단된 제공자를 생존할 수 있습니다. 잠재적인 함정에는 메타데이터를 잘못 처리하는 SDK와 다른 제공자들의 일관성 없는 모델 ID 유효성 검사가 포함됩니다. 이 도구는 또한 포트 경합 및 Vite의 IPv6 기본값과 같은 일반적인 개발 환경 문제를 해결합니다. 향후 개선 사항에는 여러 재정의를 병렬화하기 위한 "what-if" 그리드와 비선형 그래프 토폴로지에 대한 지원이 포함됩니다.