ClawSweeper: AI 기반 오픈소스 이슈 자동 관리 봇

3 hours ago 2

openclaw/openclaw 저장소는 열린 이슈와 PR을 합쳐 13,000개 이상의 미처리 항목을 안고 있습니다. ClawSweeper는 이 항목들을 AI가 자동으로 검토해 닫을 수 있는 것과 열어둘 것을 분류하는 봇으로, "확실하지 않으면 닫지 않는다"는 보수적 원칙 위에 설계되었습니다.

핵심 동작 방식

  • 3단계 파이프라인으로 운영됩니다. 계획(Plan) 단계에서 우선순위를 정하고, 검토(Review) 단계에서 OpenAI Codex(gpt-5.4)가 코드·커밋 히스토리·이슈 댓글을 읽기 전용으로 분석하며, 적용(Apply) 단계에서 수동 트리거를 통해 실제 닫기를 수행합니다.
  • 닫기 제안 조건은 5가지로 한정됩니다. 이미 구현된 건, 재현 불가능한 건, 별도 플러그인으로 이관해야 할 건, 내용이 불명확한 건, 60일 이상 방치되면서 정보가 부족한 건만 해당됩니다. 이 외에는 모두 열어둡니다.
  • 40개 병렬 샤드로 대량 처리합니다. 건당 10분 타임아웃을 두고, 검토 결과는 마크다운 파일로 저장되며 결정 근거와 증거(파일 경로, 커밋 SHA 등)가 함께 기록됩니다.

안전 장치

  • 메인테이너가 작성한 항목은 자동 닫기 대상에서 제외됩니다. OWNER, MEMBER, COLLABORATOR 역할을 가진 사람의 이슈·PR은 봇이 건드리지 않습니다.
  • 스냅샷 해시를 통해 변경 여부를 확인합니다. 제안 시점과 적용 시점 사이에 이슈가 업데이트되었다면 자동으로 건너뛰어, 오래된 판단이 그대로 적용되는 사고를 방지합니다.
  • 제안과 적용이 분리되어 있어 사람이 개입할 기회가 확보됩니다.

실제 성과 (2025년 4월 기준)

  • 7일간 검토 완료 항목은 이슈 8,419개, PR 5,026개입니다. 이 중 이슈의 약 33.7%, PR의 약 11.4%가 닫기 후보로 분류되었고, 실제 3,907개가 정리되었습니다.
  • 실패 및 오류 건수는 17개로, 전체의 0.1% 미만입니다.
  • 일일 캐던스 커버리지는 98.2%에 달해 거의 모든 항목이 매일 검토 대상에 포함되고 있습니다.

기술 스택의 특징

  • TypeScript 단일 파일 약 2,500줄로 전체 로직이 구성되어 있어 외부 의존성이 적고 구조가 단순합니다. 컴파일러로는 Go 기반의 tsgo를 사용하며, 린터와 포매터는 Rust 기반의 oxlint·oxfmt를 채택해 빌드 속도를 높였습니다.
  • GitHub Actions의 매시간 cron으로 구동되며, API 속도 제한에 맞춰 자동 대기하는 스로틀링 로직이 포함되어 있습니다.

AI를 조력자로 두되 최종 판단은 사람에게 남긴다는 설계 철학

ClawSweeper가 보여주는 것은 AI가 메인테이너를 대체하는 그림이 아닙니다. 13,000개 항목 중 근거가 분명한 것만 골라내고, 나머지 판단은 사람에게 돌려주는 구조입니다. 닫기 제안률이 전체의 약 1/4 수준에 머문다는 점은 봇이 과잉 정리를 하지 않고 있다는 방증이기도 합니다. 오픈소스 유지 관리에서 AI 도구가 실질적으로 유효한 역할을 하려면, 기술적 정교함보다 "어디까지 자동화하고 어디서 멈출 것인가"라는 선 긋기가 더 중요하다는 점을 이 프로젝트가 잘 보여주고 있습니다.

Read Entire Article