facts
가입이나 이메일 입력 없이 게스트 상태로 즉시 대화할 수 있는 정서지원 AI '아르(AIRU)'가 공개됐다. 고등학교 3학년 학생이 단독으로 설계하고 운영하는 이 서비스는 사용자의 이름을 기억하고 이전 대화 맥락을 이어가는 연속성에 집중한다.
기술적 핵심은 '굴절반사 게이트'라 불리는 의도 재평가 구조다. "내 마음이 왜 이런지 찾아줘"와 같이 '찾아줘'라는 키워드가 포함된 발화가 입력되면, 시스템은 이를 즉시 검색 도구로 보내지 않는다. 대신 도구 실행 직전에 초소형 LLM을 호출해 해당 발화가 실제 정보 검색이 필요한 것인지, 아니면 단순한 정서적 위로가 필요한 대화성 발화인지를 다시 판정한다. 만약 대화성 발화로 판단되면 검색 실행을 취소하며, 판정에 실패할 경우에만 기존의 키워드 판정을 유지하는 '페일 오픈(fail-open)' 방식을 취한다.
기억 저장 방식은 성격에 따라 두 갈래로 나눴다. 이름, 취향, 진행 맥락 같은 정보는 구조화 기억으로 관리하고, 대화 원문은 SQLite와 한글 2-gram 유사도 검색을 결합한 아카이브에 저장한다. 민감한 대화는 기본적으로 저장하지 않으며, 사용자가 직접 조회하거나 수정, 삭제할 수 있는 권한을 부여했다.
안전 장치와 운영 스택도 구체화했다. 위기 신호가 감지되면 자살예방 통합번호(109) 안내를 최우선으로 처리하며, 서비스 자체가 정신건강 전문 서비스가 아니라는 경계를 페르소나와 화면 곳곳에 명시했다. 기술 스택은 FastAPI와 바닐라 JS를 사용했으며, 모델은 API 형태로 조달하는 모델-애그노스틱(Model-agnostic) 구조다. Docker와 Caddy 기반의 단일 드롭릿 환경에서 운영되며, 매 배포 전 296개의 회귀 테스트를 수행한다.
market-flow
범용 AI 어시스턴트가 매번 새로운 세션을 시작하는 것처럼 응대하는 것과 달리, 아르는 '연속성'을 핵심 축으로 삼는다. 이는 사용자와의 관계 맺기를 통해 정서적 지지를 제공하려는 채택 전략이다. 동시에 기존 캐릭터 챗 서비스들이 몰입도와 체류 시간을 늘려 사용자를 서비스에 묶어두려는 방향으로 설계되는 것과는 정반대의 흐름을 보인다.
아르의 설계 철학은 사용자가 서비스를 덜 필요로 하게 되는 상태를 성공으로 정의한다. 이를 위해 사용자의 의존을 유도하는 표현이나 다크패턴(Dark Pattern)의 사용을 금지했다. 이는 AI 서비스의 성과 지표를 '체류 시간'이나 '재방문 횟수' 같은 양적 지표가 아니라, 사용자의 정서적 회복이라는 질적 결과로 옮기려는 시도로 해석된다.
reader-impact
AI 실무자가 주목할 지점은 도구 실행 전 단계에서 배치한 '재평가 레이어'의 실효성이다. 생성 후 필터링하는 방식이 아니라, 도구 실행 자체를 결정하는 전단계에 초소형 LLM을 배치함으로써 정서적 맥락이 깨지는 것을 방지했다. 이는 에이전트 설계 시 키워드 기반 트리거가 가진 경직성을 어떻게 보완할 수 있는지 보여주는 사례다.
검색 쿼리 생성 과정에서 발생하는 지시어 처리 문제도 구체적인 판단 기준을 제공한다. "그 곡은 주제가 뭔지 말해줘"라는 후속 질문에서 '그 곡'이라는 지시어가 이전 대화의 주제어를 포함하지 않은 채 검색어로 전달될 때 응답 품질이 급격히 떨어진다. 이를 해결하기 위해 지시어를 감지하면 이전 발화에서 주제어를 찾아 합성하는 로직을 적용했으며, 이는 대화형 검색 서비스의 고질적인 난제인 상호참조 해결(Coreference Resolution)의 실무적 접근법을 제시한다.
1인 운영 환경을 유지하기 위한 규율 체계 또한 참고할 만하다. 개발자의 테스트 트래픽이 실제 사용자 지표를 오염시키는 것을 막기 위해 실사용자, 평가자, 운영자, 봇의 로그를 물리적으로 분리했다. 또한 배포 전 데이터 스냅샷과 무결성 검증을 자동화하여, 최소 인원으로도 서비스 안정성을 유지하는 운영 파이프라인을 구축했다.




