전 세계 거의 모든 스마트폰과 웹 브라우저에는 SQLite(경량형 관계형 데이터베이스)가 탑재되어 있다. 보이지 않는 곳에서 데이터를 처리하는 이 작은 엔진은 극도의 안정성과 신뢰성을 생명으로 한다. 최근 SQLite 프로젝트는 AI 에이전트가 작성한 코드를 코드베이스에 직접 반영하지 않겠다는 명확한 가이드라인을 세웠다.
`AGENTS.md`라는 정책 파일을 통해 AI가 생성한 풀 리퀘스트(PR)를 거부한다는 방침을 공식화한 것이다. 특히 최근 업데이트에서는 '현재로서는(currently)'이라는 유보적인 표현마저 삭제했다. 이는 AI 생성 코드를 일시적으로 경계하는 수준을 넘어, 원칙적으로 배제하겠다는 단정적인 의지로 풀이된다.
AGENTS.md 정책과 '에이전트 코드' 거부 원칙
저장소에 새로운 파일이 추가되는 순간 개발자들의 작업 방식은 갈림길에 섰다. 5일 전 SQLite 프로젝트는 저장소에 AGENTS.md 파일을 새롭게 생성하며 인공지능이 작성한 코드에 대한 공식적인 거부 방침을 못 박았다. 이 문서는 SQLite 코드베이스를 대상으로 에이전트(AI 기반의 자동화 소프트웨어)를 사용하는 개발자들을 겨냥한 지침이다. 해당 정책은 SQLite가 에이전트가 생성한 코드를 직접 병합하지 않는다는 점을 명확히 한다.
코드베이스에 기여하기 위한 문턱은 이전보다 한층 높아졌다. SQLite는 프로젝트와 사전 합의가 없거나, 풀 리퀘스트(PR)를 퍼블릭 도메인으로 귀속시키는 법적 서류가 준비되지 않은 기여를 일절 수용하지 않는다. 사람이 작성한 간결한 풀 리퀘스트라 하더라도 이는 개념 증명(PoC) 수준의 검토 대상으로만 분류된다. 실제 코드 변경이 필요하다고 판단될 경우, 해당 로직은 SQLite 개발자가 직접 처음부터 다시 구현하는 과정을 거친다. 외부 도구가 생성한 결과물을 그대로 수용하지 않겠다는 의지다.
이번 정책 업데이트에서 가장 눈에 띄는 변화는 문구의 강도다. 기존 문서에 포함되어 있던 'SQLite does not (currently) accept agentic code'라는 문장에서 '(currently)'라는 단어가 삭제되었다. 커밋 메시지에는 'Strengthen the statement about not accepting agentic code'라는 문구가 남았다. 이는 에이전트 코드 거부 방침이 한시적인 유예 조치가 아니라, 프로젝트의 영구적이고 단정적인 운영 원칙임을 시사한다.
AI가 생성한 코드와 버그 리포트의 경계도 더욱 엄격하게 구분되었다. SQLite는 에이전트가 만든 코드는 거부하지만, 재현 가능한 테스트 케이스가 포함된 에이전트 기반의 버그 리포트는 수용한다. 다만, 품질이 제각각인 AI 생성 리포트가 급증하자 SQLite는 이를 효율적으로 관리하기 위해 별도의 버그 포럼을 신설했다. D. Richard Hipp는 이 포럼을 통해 유입되는 이슈를 선별하고 있으며, 코드베이스에 대한 실제 수정은 사람 개발자의 손을 거쳐 이루어진다. 결국 SQLite는 AI를 문제 해결의 도구로 활용하되, 최종 코드의 품질과 제어권은 인간 개발자가 독점하는 구조를 유지하고 있다.
AI 생성 버그 리포트 대응과 전용 포럼 신설
AI가 쏟아내는 버그 리포트의 양이 사람이 감당할 수준을 넘어섰다. SQLite는 품질이 제각각인 AI 생성 버그 리포트가 급증하자 이를 처리할 전용 채널인 SQLite Bug Forum을 신설했다. 기존 포럼에 무분별하게 섞여 들어오던 AI 생성 리포트를 물리적으로 분리해 관리하기 위한 조치다. 개발자가 실제 버그와 AI의 환각이 섞인 리포트를 구분하는 데 드는 비용을 줄이려는 실무적 대응이다. 보고서의 양적 팽창이 오히려 검토 효율을 떨어뜨리는 상황을 차단해 개발 리소스를 보호한다.
수용 기준은 철저하게 재현 가능성에 둔다. 구체적인 입력값과 기대 결과가 포함되어 즉시 실행 가능한 테스트 케이스가 동반된 에이전트 기반 버그 리포트(agentic bug report)는 수용 대상이다. 하지만 에이전트가 직접 작성한 코드(agentic code)는 일절 받지 않는다. 문서화 목적의 패치나 풀 리퀘스트(PR, 코드 변경 제안)는 예외적으로 환영한다. 이는 AI가 제시한 해결책을 그대로 믿지 않고 문제의 존재 여부만 확인하겠다는 전략이다. 코드 수정 권한을 인간 개발자의 고유 영역으로 남겨두어 코드베이스의 무결성을 유지한다. 해결책이 아닌 문제 제기라는 역할에만 AI를 한정시킨 셈이다.
운영 방식은 문제 보고와 코드 구현의 철저한 분리로 이어진다. D. Richard Hipp가 직접 새 버그 포럼의 이슈를 처리하며 코드베이스에 커밋을 수행하는 구조다. AI 에이전트가 버그를 찾아내어 보고하면, 사람은 그 내용을 검토해 코드를 처음부터 다시 짠다. 에이전트가 생성한 코드를 그대로 병합하는 위험을 제거하고 사람이 직접 재구현하는 프로세스를 명문화했다. AI를 문제 발견의 도구로 활용하되, 최종 구현 단계에서는 인간의 검수와 작성을 강제하는 제어 체계를 구축한 것이다. 사람이 짠 코드만이 공식 코드베이스에 들어갈 수 있다는 원칙을 세웠다.
이러한 분리 운영은 개발 워크플로우의 실질적인 효율을 높인다. AI가 생성한 수많은 리포트 중 유효한 테스트 케이스만 골라내어 개발자에게 전달하는 필터링 체계가 작동한다. 개발자는 AI가 짠 코드를 다시 디버깅하는 낭비 대신, 명확히 정의된 버그를 해결하는 본연의 작업에 집중한다. AI의 생산성을 수용하면서도 코드 품질에 대한 최종 책임은 사람이 지는 구조를 완성했다. 기술적 편의성보다 시스템의 안정성을 우선하는 보수적 접근이 실제 운영에 적용된 사례다. AI 에이전트의 역할은 해결사가 아닌 제보자로 정의된다.
SQLite는 개발 효율보다 시스템 무결성을 선택했다. AI 에이전트가 생성한 코드는 검증 비용을 높이고 잠재적 결함을 숨길 위험이 크다. 핵심 인프라 소프트웨어 영역에서 인간의 검토와 책임은 대체 가능한 효율의 문제가 아니다.
코드 생성 AI의 확산 속에서 역설적으로 인간이 직접 작성한 코드의 희소 가치는 높아진다. 신뢰라는 최후의 보루가 개발 속도보다 우선한다.




