오픈소스 프로젝트를 운영하다 보면 누구나 겪는 골칫거리가 있다. 수년 전 올라온 질문이나 이미 해결된 버그 보고서가 수천 개씩 쌓여 저장소의 관리 상태를 어지럽히는 상황이다. 최근 openclaw/openclaw 저장소는 이런 문제를 해결하기 위해 AI를 활용한 자동 관리 도구인 ClawSweeper(오픈소스 프로젝트의 방치된 이슈와 요청을 AI로 분류해 정리하는 봇)를 도입했다. 1만 3천 개가 넘는 미처리 항목을 사람이 일일이 확인하는 것은 불가능에 가깝지만, 이 도구는 기계적인 삭제가 아닌 사람의 판단을 돕는 조력자 역할을 자처하며 등장했다.
ClawSweeper의 3단계 자동화 파이프라인과 운영 방식
ClawSweeper는 계획(Plan), 검토(Review), 적용(Apply)이라는 3단계 과정을 거쳐 작동한다. 먼저 계획 단계에서 처리할 이슈의 우선순위를 정하고, 검토 단계에서는 OpenAI의 Codex(코드 작성 및 분석에 특화된 AI 모델)가 코드와 커밋 기록, 댓글을 읽기 전용으로 분석한다. 마지막 적용 단계에서는 사람이 직접 수동으로 트리거를 눌러야 실제 이슈가 닫히는 구조다. 봇이 닫기를 제안하는 조건은 5가지로 엄격히 제한된다. 이미 구현된 기능, 재현 불가능한 오류, 별도 플러그인으로 이관해야 할 건, 내용이 불명확한 건, 그리고 60일 이상 방치되어 정보가 부족한 건만 대상이 된다. 이 외의 모든 항목은 보수적인 원칙에 따라 그대로 열어둔다. 대량 처리를 위해 40개의 병렬 샤드(데이터를 분산 처리하는 단위)를 사용하며, 건당 10분의 타임아웃을 설정해 시스템 안정성을 확보했다. 검토 결과는 마크다운 파일로 저장되며, 결정의 근거가 된 파일 경로와 커밋 SHA(변경 사항을 식별하는 고유 코드)가 상세히 기록된다.
기존 수동 관리 방식과 달라진 점
예전에는 메인테이너가 직접 이슈를 하나씩 열어보고 닫을지 결정해야 했다. 이제는 ClawSweeper가 제안과 적용을 분리하여 사람이 개입할 수 있는 안전장치를 마련했다. 특히 메인테이너나 기여자가 작성한 이슈는 자동 닫기 대상에서 원천적으로 제외된다. 또한 스냅샷 해시(데이터의 변경 여부를 확인하는 지문 같은 값)를 활용해 제안 시점과 적용 시점 사이에 이슈가 업데이트되면 봇이 작업을 건너뛰도록 설계했다. 이는 오래된 판단이 최신 상황을 덮어쓰는 사고를 방지하기 위함이다. 기술적으로는 TypeScript(자바스크립트에 타입을 입힌 언어) 단일 파일 약 2,500줄로 구성되어 의존성이 낮다. 컴파일러는 Go(구글이 만든 고성능 프로그래밍 언어) 기반의 tsgo를, 린터와 포매터는 Rust(메모리 안전성을 강조하는 프로그래밍 언어) 기반의 oxlint와 oxfmt를 채택해 빌드 속도를 최적화했다. GitHub Actions(깃허브에서 제공하는 자동화 도구)의 매시간 cron(특정 시간에 작업을 반복 실행하는 기능)으로 구동되며, API 속도 제한에 맞춰 스스로 대기하는 스로틀링(요청 빈도를 조절하는 기술) 로직도 포함되어 있다.
2025년 4월 기준 운영 성과와 AI의 역할
개발자가 바로 체감하는 변화는 압도적인 처리 속도와 정확도다. 7일간 검토된 1만 3천여 개의 항목 중 이슈의 33.7%, PR의 11.4%가 닫기 후보로 분류되었고, 실제 3,907개가 정리되었다. 실패 및 오류 건수는 17개로 전체의 0.1% 미만에 불과하며, 일일 검토 커버리지는 98.2%에 달한다. ClawSweeper가 보여주는 핵심은 AI가 사람을 대체하는 것이 아니라, 근거가 분명한 것만 골라내어 메인테이너의 판단 부담을 줄여주는 것이다. 닫기 제안률이 전체의 4분의 1 수준에 머문다는 점은 이 봇이 과잉 정리를 하지 않도록 설계되었음을 증명한다. 결국 오픈소스 관리에서 AI의 가치는 기술적 정교함보다 어디까지 자동화하고 어디서 멈출 것인가라는 선 긋기에 달려 있다.




