🌿 AI Nature Quest: I Built an AI That Wants You to Stop Using It
🌿 AI Nature Quest — 사용자가 앱을 닫도록 돕는 AI
AI Nature Quest는 주변을 탐험하는 야외 퀘스트를 생성하고, 사용자가 휴대전화를 내려놓은 뒤 돌아와 사진·음성·메모로 수행 결과를 제출하는 오픈소스 앱입니다. Gemma와 로컬 저장소를 활용해 AI 제공자를 교체할 수 있도록 설계했습니다.
- 주제
AI 요약
AI Nature Quest는 산책을 야외 모험으로 바꾸는 모바일 우선 Progressive Web App(PWA)입니다. 사용자는 15분부터 60분까지 시간을 고르고, 자연·야생동물·사진·탐험·마음챙김 같은 유형과 난이도를 선택합니다. AI가 잎 모양 세 가지 찾기, 동물이 지나간 흔적 살피기, 자연의 소리를 60초간 듣기 같은 목표를 만듭니다. 퀘스트를 시작하면 화면을 타이머와 “휴대전화를 내려놓으세요”라는 안내만 남기고 단순하게 유지합니다. 탐험을 마친 사용자는 사진, 음성, 자연 관찰 메모를 제출하고 AI의 평가에 따라 경험치(XP)를 얻습니다. 완료한 기록은 비공개 Nature Journal에 저장합니다.
퀘스트 생성부터 증거 평가까지
프로젝트는 Next.js, TypeScript, Tailwind CSS, App Router를 사용합니다. 브라우저 저장소에 기록을 보관하고, 카메라·마이크 API와 PWA API를 활용합니다. AI 기능은 제품 화면이 특정 모델에 묶이지 않도록 AIProvider 인터페이스 뒤에 둡니다. 이 인터페이스는 퀘스트 요청을 받아 Quest를 생성하고, 제출된 증거를 평가해 EvidenceResult를 반환합니다.
DemoAIProvider는 정해진 결과를 내는 결정적(deterministic) 제공자입니다. API 키, GPU, 모델 다운로드, 외부 서비스 없이 데모 전체를 실행하도록 마련했습니다. 저장소를 내려받은 뒤 npm install과 npm run dev만 실행하면 체험할 수 있으며, 공개 데모도 계정 없이 사용할 수 있습니다. 실제 모델을 쓰려면 GemmaAIProvider를 선택하고 Ollama에 Gemma를 설치합니다. 예시 설정은 ollama pull gemma3:4b이며, 환경 변수에 AI_PROVIDER=gemma, AI_MODEL=gemma3:4b, AI_API_URL=http://localhost:11434를 지정합니다. 이미지 증거는 멀티모달 Gemma 모델로 평가할 수 있습니다.
모델이 반환한 내용을 그대로 화면 제어에 쓰지는 않습니다. 퀘스트와 증거 평가 결과를 구조화된 스키마로 검증합니다. 예를 들어 평가 결과에는 완료 여부, 신뢰도, 피드백, 지급 경험치가 포함됩니다. 이렇게 하면 모델별 처리를 UI에 퍼뜨리지 않고 제공자를 바꿀 수 있습니다. 글쓴이는 이 구조가 모델 크기, 추론 런타임, 프롬프트, 평가 방식, 하드웨어를 바꿔 실험하기 쉽게 한다고 설명합니다.
로컬 우선 설계와 안전 지침
계정, 비밀번호, 이메일 주소가 필요하지 않습니다. Nature Journal과 진행 정보는 기기에 저장합니다. Gemma를 로컬 추론 엔드포인트에서 실행하면 사진 등 증거를 중앙 AI 서비스에 보내지 않고 처리할 수 있습니다. 다만 글은 오픈 모델을 쓴다고 자동으로 개인정보가 보호되는 것은 아니며, 추론 위치와 데이터 처리 방식을 개발자가 통제하도록 인프라를 구성할 수 있다는 점을 강조합니다.
퀘스트는 식물 섭취나 접촉, 야생동물 접근·먹이 주기, 출입 금지 구역 진입, 무단 침입, 위험한 등반을 권하지 않습니다. 안전한 공공 경로를 이용하고 야생동물을 존중하라고 안내합니다. 목적은 위험을 감수하는 활동이 아니라 관찰입니다.
제품이 측정하는 성공
글쓴이는 앱 안에 머무는 시간을 성공 지표로 삼지 않습니다. 앱에서 5분을 보내고 다음 55분은 현실 세계에서 보내는 경험을 목표로 둡니다. 친구와 직접 퀘스트를 해 본 결과 친구가 이겼지만, 앱이 친구를 밖으로 나가 주변을 살피게 했으므로 실험은 성공이었다고 설명합니다. 기능을 추가할 때도 “사람이 밖으로 나가도록 돕는가”를 기준으로 삼았다고 합니다. 이 프로젝트는 Hacktoberfest Open-Source AI Challenge의 ‘Touch Grass’ 주간 제출작이며, MIT 라이선스로 공개했습니다.
dev.to 반응
- @rajanikant_singh_49905892 — Gemma와 상호작용할 때 Ollama를 쓰고 있는데, 그러면 오프라인에서는 사용할 수 없는 건가요?
- @ssapable — “앱과 함께 5분, 현실 세계와 함께 다음 55분”은 이번 주에 읽은 제품 문장 가운데 가장 간결합니다. “친구가 이겼지만, 그래도 성공이라고 봤다”는 말은 이번 챌린지에서 제가 온전히 믿는 유일한 사용자 테스트입니다. 게시물을 80초짜리 손그림 만화로 만들었습니다. 스크롤에 빠지는 모습, 퀘스트 카드, “휴대전화는 이제 필요하지 않습니다”라는 문구, 공원, 그리고 글쓴이를 이긴 친구가 나옵니다. 가입 없이 볼 수 있는 단순한 페이지에 올렸으니, 원하면 쓰고 아니면 무시해도 됩니다. 세부 내용이 틀렸다면 어느 장면인지 말해 주세요. 다시 그리겠습니다. Gemma가 사진을 평가할 때 원래 목표 문구도 이미지와 함께 받나요, 아니면 이미지 하나만 받나요?
- @anh_nguynvn_0478e614ba — 사용자가 “화면에서 멀어지도록” 권하는 AI를 만든다는 발상은 정말 흥미롭고, 약간 깊은 풍자도 담겨 있습니다. 대규모 언어 모델을 쓰다 보면 아주 사소한 일에도 모델을 남용하는 함정에 빠져 독립적으로 사고하는 능력을 잃곤 합니다. 인간의 의존성을 인식하는 ‘의식’을 가진 에이전트를 설계하는 일은 오픈소스 프로젝트에 인간적인 방향을 더합니다. 저도 계속 채팅만 하지 않고 시간을 아끼도록 더 똑똑한 자동화 워크플로를 실험하고 있습니다. 과부하 없이 워크플로를 최적화하려고 LabAgent의 모델 사용량 관리 자료도 찾아봤습니다. 사이트는 labagent.tech입니다.
원문: dev.to / 번역·요약: Trawling