Airflow 기여 정책에 대한 논의 공유: AI 에이전트가 PR을 여는 것을 금지하는 것은 어떨까?

AI 에이전트가 빠르게 발전하면서 오픈소스 생태계는 생각보다 큰 혼란을 겪고 있습니다.

Apache Airflow 역시 이러한 흐름을 피해 가지는 못했습니다.

사실 Airflow는 비교적 이른 시기부터 AI를 활용해 유지보수 부담을 줄이기 위한 시도를 해왔습니다. 초창기에는 Breeze의 auto-triage 기능을 만들었고, 이후에는 그것이 발전하여 Apache Magpie라는 별도 프로젝트로 이어지기도 했습니다.

이렇게 점차 나아지고 있는 것처럼 보였지만, 최근 들어 다시 한 번 제대로 검토되지 않은 AI가 생성한 PR(AI slop)들이 대량으로 유입되면서 커뮤니티가 큰 어려움을 겪고 있는 것 같습니다.

최근 메일링 리스트와 별도 채널에서 이에 대해 또 한 번 논의가 진행되고 있습니다.

https://lists.apache.org/thread/g34gx1tv8slorfy9hw7ks8wkkk86nxq0

주요 의견

1. AI가 PR을 열지 못하도록 하자

일부 메인테이너들은 "이제 AI가 PR을 열지 못하도록 하자"라고 합니다.

  • PR 생성은 인간이 직접 해야 한다.
  • PR 작성자는 변경사항 전체를 검토해야 한다.
  • PR 생성 자체를 인간이 수행하도록 하면 최소한의 노력(proof-of-effort)을 확인할 수 있다.
  • 이를 완벽히 막을 순 없겠지만 "Brown M&M Test"처럼 저품질 기여를 줄이는 데 도움이 될 수 있다.

2. 문제는 AI가 아니라 인간의 책임감이다

반대 의견도 있었습니다.

  • AI가 PR을 생성하는 것 자체는 문제가 아니다.
  • 실제 문제는 변경사항을 검토하지 않는 인간이다.
  • 단순히 PR 생성 방식을 제한하는 것은 쉽게 우회 가능하다.

공통적인 의견

우리는 Airflow를 좋아해서 소프트웨어를 함께 만드는 사람들의 커뮤니티에 참여하고 싶다.

PR을 제출했다면 최소한 Airflow에 대한 기본적인 이해를 바탕으로 자신이 변경한 내용을 이해하고, 리뷰에 응답하고, 끝까지 책임지는 사람이 있어야 한다는 것입니다.

물론 Airflow 전체를 완벽하게 알아야 한다는 의미는 아닙니다. 다만 가끔은 Airflow를 실제로 사용해본 경험이 거의 없는 상태에서 작성된 것으로 보이는 PR도 만나게 됩니다.

또한 많은 메인테이너들이 비슷한 피로감을 이야기했습니다.

AI를 활용한 기여의 속도가 너무 빨라지면서 모든 PR을 꼼꼼히 살펴볼 시간을 확보하기 어려워졌고, 오히려 중요한 리뷰에 집중하기가 점점 더 힘들어지고 있다는 것입니다.

예전에는 PR이 많아지는 것이 긍정적인 신호였다면, 이제는 꼭 그렇지만도 않은 시대가 된 것 같습니다.

마무리하며

아직 명확한 답은 없는 것 같습니다.

다만 Airflow 커뮤니티 역시 시행착오를 겪으며 자신들만의 기준을 만들어가고 있고, 다른 오픈소스 프로젝트들도 비슷한 고민을 하고 있을 것입니다.

그러면서 저도 다시 한 번 생각해보게 되었는데요.
돌이켜보면 저는 개발을 그저 취미로 하는 사람으로서 Airflow를 좋아해서 Airflow를 더 좋은 도구로 만들고 싶어 하는 사람들과 함께 성장하는 과정이 좋았던 것 같습니다.

PR을 리뷰하면서 새로운 사용 사례를 배우기도 하고, 때로는 제가 몰랐던 기능을 알게 되기도 했습니다.
그래서 저도 기능 구현 관련해서는 적어도 Airflow를 실제로 사용하고 고민하는 사람들과 이야기하고 싶다는 생각이 들었습니다.

이번 분위기는 이전과 다르게 조금은 내부적으로 과격해지는 것 같기도 합니다.
그만큼 커뮤니티가 현재의 문제를 진지하게 받아들이고 있다는 의미겠죠.

그래도 비온 뒤에 땅이 굳듯이 이 기간이 잘 지나가면 더 단단한 커뮤니티가 될 수 있지 않을까 싶네요.

3개의 좋아요

메일링 리스트를 보면 점점 과격해지는 것 같기도하고, 감정적으로 가는 것 같기도 합니다.

아마 Airflow를 정말 좋아하는 사람들이 오랜기간 기여를 하다보니 저도 이해는 됩니다.

가끔 Airflow에 대한 전체적인 맥락 이해가 부족한 상태에서 PR이 제출되고, 리뷰 과정에서도 큰 문제가 발견되지 않아 머지되는 경우가 있습니다. 하지만 시간이 지나면서 예상하지 못했던 영향이 드러나고, 결국 추가 패치로 대응하거나 나중에 되돌려야 하는 상황이 생기곤 합니다.

물론 대부분의 경우 문제는 해결됩니다. 다만 그 과정에서 예외 처리와 우회 로직이 추가되면서 코드베이스가 점점 복잡해지고, 나중에 원래 상태로 되돌리는 비용도 커집니다. UI 부분에 대해서는 최근 monaco 에디터를 CDN처리하면서 json 표기되는 것들에 대해서 많은 문제를 생성하고 있습니다.

이 부분에 대해서 ash 님도 이야기를 하시지만, 저 역시 이렇게 유입되는 사람들이 제출한 PR은 프로젝트를 오염시키고 있는 것이라고 생각합니다.

개인적으로 Airflow 3.1.x 부터 점점 오염되어가고 있는 것을 느끼고 있습니다.

그래서 저는 Airflow의 기여자는 적어도 Airflow 사용자여야 하지 않을까 하는 생각입니다. 단순히 기능 단위의 이해만이 아니라 Airflow 자체에 대한 충분한 사용 경험과 맥락 이해가 필요하다고 생각합니다.

또한 개인적으로는 단순히 이슈를 찾아 해결하는 것과, 그 변경이 앞으로 몇 년 동안 프로젝트에 미칠 영향까지 책임지는 것은 다른 문제라고 생각합니다. 자신이 실제로 사용하지 않는 시스템에 대해 그런 책임감을 지속적으로 가지기는 쉽지 않기 때문입니다.

결국 이것을 개인의 선의나 책임감만으로 해결하기는 어려워 보입니다. 리뷰 프로세스, 유지보수 문화, 그리고 프로젝트 차원의 가드레일이 함께 필요하지 않을까 생각합니다.

물론 AI의 등장으로 기여 방식 자체가 크게 바뀌고 있고, 예전으로 돌아가기는 어려울 것입니다. 앞으로 오픈소스 프로젝트들이 이런 문제를 어떤 프로세스와 문화로 해결해 나갈지는 저도 궁금합니다.

저도 자주 지치고 있는 입장에서 공감이 되는 문제라 아마 계속 보게 될 것 같네요.