Culpa: AI 에이전트 디버깅을 위한 오픈 소스 결정론적 재생 엔진

Culpa는 AI 에이전트 세션 디버깅을 위해 특별히 설계된 오픈 소스 결정론적 재생 엔진입니다. 이 도구가 해결하는 핵심 문제는 LLM 에이전트의 비결정론적 특성입니다—에이전트가 실패할 때, 단순히 세션을 다시 실행해서 정확한 실패를 재현할 수 없습니다.
작동 방식
이 도구는 에이전트 세션 동안 모든 LLM 호출과 전체 실행 컨텍스트를 기록합니다. 실패를 디버깅해야 할 때, 새로운 API 호출을 하지 않고 기록된 응답을 스텁으로 사용해 세션을 재생합니다. 이렇게 하면 재생이 완전히 결정론적이 되며, 실제 API를 호출하지 않으므로 비용이 전혀 발생하지 않습니다.
주요 기능
- 프록시 모드: Claude Code 및 Cursor와 같은 도구와 코드 변경 없이 작동
- Python SDK: 자체 에이전트를 구축하는 개발자에게 제공
- API 지원: Anthropic 및 OpenAI API와 호환
- 포킹 기능: 기록된 결정 지점에서 포크를 생성하고, 다른 응답을 주입하여 어떤 일이 발생했을지 확인 가능
실용적 이점
재생 시 실제 API 호출 대신 기록된 응답을 사용하므로, 디버깅 세션에 API 비용이 전혀 들지 않습니다. 재생의 결정론적 특성 덕분에, LLM 응답의 고유한 무작위성으로 인해 재현이 불가능했던 실패를 안정적으로 재현하고 분석할 수 있습니다.
이 프로젝트는 특히 에이전트 워크플로를 구축하는 개발자들의 피드백을 적극적으로 구하고 있습니다. 제작자는 CS 신입생이며 도구를 개선하고자 한다고 밝혔습니다.
📖 Read the full source: r/LocalLLaMA
👀 See Also

Claude 코드용 동적 상태 표시줄, 실시간 업데이트 표시
한 개발자가 Claude Code 상태 표시줄을 정적 텍스트에서 Claude가 작업 중인 내용을 실시간으로 보여주는 동적 디스플레이로 개선했습니다. 이 구성은 GitHub gist로 제공됩니다.

Claude 코드용 COLR 폰트 변환을 통한 맞춤형 GIF 스피너
한 개발자가 Claude Code의 기본 스피너 애니메이션을 임의의 애니메이션 GIF로 대체하는 방법을 공개했습니다. 이 기술은 GIF를 OpenType COLR 컬러 폰트로 변환하여 애니메이션의 각 프레임을 글리프로 만든 다음, Claude Code의 스피너를 패치하여 이러한 글리프를 순환하도록 하는 방식입니다. 터미널은 결과를 픽셀 아트로 렌더링합니다.

컨텍스트 라우팅 레이어는 접근된 파일을 추적하여 Claude 코드 토큰 사용량을 줄입니다
한 개발자가 컨텍스트 라우팅 계층을 추가하여 AI가 후속 차례에서 동일한 저장소 파일을 다시 읽지 않도록 함으로써 Claude Code 사용 비용을 월 약 80달러 절약했습니다. 이 도구는 이미 접근한 파일을 추적하여 중복 토큰 소비를 줄입니다.

봇 대결: Claude Code로 구축된 멀티플레이어 게임용 AI 에이전트 아레나
Bot Fight는 포커, 당구, 고릴라, 뱀 게임을 포함한 다양한 게임에서 AI 에이전트들이 서로 대결하는 아레나로, Claude 코드로 완전히 구축된 Next.js + Node 모노레포에 WebSocket과 실시간 게임 엔진을 탑재하고 있습니다.