Ouroboros: LLM과 프로그래머를 위한 디버거-트레이서, 프로그램의 실제 실행 내용(모든 호출, 인자, 결과)을 8개 언어로 기록하는 도구
·2026.09.11 04:12
핵심 내용
LLM의 코드 생성 오류를 줄이는 디버거 'Ouroboros'가 공개되어 8개 언어를 지원한다.
자세히 보기
LLM이 생성한 코드의 환각(hallucination)을 방지하고 정확도를 높이기 위한 디버깅 도구 Ouroboros가 공개되었다. 이 도구는 프로그램의 실제 실행 기록(호출, 인자, 결과)을 추적하여 LLM이 코드를 저장하기 전에 문제를 진단할 수 있도록 돕는다.
성능 개선 효과
트레이스 적용 전후의 정답률 비교 결과, 다양한 모델에서 유의미한 성능 향상이 확인되었다.
- qwen3.5:4b: 44.0% → 78.3% (+23.7%p)
- qwen2.5:14b-instruct: 61.0% → 84.7% (+23.7%p)
- qwen3:32b: 66.7% → 90.3% (+23.6%p)
- Claude Opus 5 subagent: 95.0% → 98.3% (+3.3%p)
주요 기능 및 특징
- 비침습적 디버깅: 실제 파일 수정 없이 별도 사본에서 실행하며, 디버깅된 코드만 반환한다.
- 다중 언어 지원: Python, JavaScript/TypeScript, C, C++, Elixir, Go, Java, C# 등 8개 언어를 지원한다.
- 경량 아키텍처: 데몬, 에이전트, 포트, 컬렉터가 없으며 외부 API를 사용하지 않는다.
- 실행 추적: 함수 진입/출입 시 JSON 라인 형식으로 시간, 호출 ID, 스레드, 인자, 반환값, 예외, 소요 시간 등을 기록한다.
활용 사례
- 함수 내부 상태 추적: 스택 트레이스로 파악하기 어려운 함수 내부의 빈 리스트 입력 등 문제를 진단한다.
- 무한 대기 프로세스 진단: 진입 로그는 있으나 출력 로그가 없는 '미매칭 ID'를 찾아
in_flight필드를 통해 스택 위치를 파악한다.
도구는 BSD-2-Clause 라이선스로 공개되었으며, GitHub를 통해 설치 및 기여가 가능하다.
이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.