코딩 에이전트의 코드 수정을 '거래'처럼 다루는 오픈소스 하네스 Pactrail
Pactrail은 Rust로 만든 오픈소스 하네스로, AI 모델이 리포지토리를 곧바로 수정하지 못하게 막는다. 핵심 발상은 깃(Git) 커밋과 데이터베이스 트랜잭션을 결합한 것이다. 모델은 작업을 받으면 먼저 범위가 정해진 계약(bounded contract)과 예산이 정해진 문맥(model-budgeted ) 안에서만 움직이고, 타입이 정해진 도구와 정책 검사를 거친 뒤, (isolated candidate )에서 변경안을 만든다.
이 변경안은 검증 단계를 통과해야 하며, 통과하면 수정 전후 차이(diff)·근거(receipt)·실행 기록(trace)이 함께 남는 불변 기록으로 저장된다. 사용자는 이 결과를 보고 '/apply'로 반영하거나 '/discard'로 폐기할 수 있다. 제작자는 로컬 부터 강력한 모델까지 다양한 코딩 모델을 테스트하면서, 문제의 핵심이 모델 자체보다 그 모델에게 파일시스템·도구·프로세스·메모리·자격증명 접근권을 주는 '시스템'에 있다는 점을 깨달았다고 설명한다.
모델이 아무리 뛰어나도, 그것을 감싸는 시스템(하네스)이 허술하면 위험한 결과로 이어질 수 있다는 문제의식에서 출발했다.
핵심 포인트
- Pactrail은 Rust로 작성된 오픈소스 하네스다.
- 작업 흐름: 작업→계약→문맥 예산→도구/정책 검사→→검증→불변 기록(diff+근거+실행기록)→적용 또는 폐기.
- AI가 코드를 바로 수정하지 않고, 사람이 검토 후 '/apply'나 '/discard'로 결정한다.
- 제작자는 모델의 성능보다 모델에게 시스템 접근권을 주는 하네스의 안전성이 더 중요하다고 강조한다.
- 깃 커밋과 데이터베이스 트랜잭션 개념을 결합한 설계다.