"Building Sidekick: An AI Assistant People Actually Use" by Felipe Leusin
- Shopify의 AI 비서 Sidekick은 기업가들이 사업을 더 쉽게 시작하고 운영할 수 있도록 돕는 것을 목표로 합니다. 🚀
- Sidekick은 단순한 챗봇을 넘어, 사용자를 대신하여 실제 작업을 수행하는 AI 에이전트 역할을 합니다. 🤖
- 초기 Shopify 관리자 페이지의 복잡한 라우팅과 데이터 로딩 문제를 해결하기 위해, 라우트 우선 액션과 스키마를 갖춘 새로운 관리자 버전을 개발했습니다. 🗺️
- Sidekick은 LLM이 API나 웹 애플리케이션과 같은 환경에서 작업을 수행하는 에이전트 루프를 기반으로 작동합니다. 🧠
- 고객 세분화, 분석 수행, 관리자 탐색, 질문 답변, 양식 작성 등 다양한 핵심 기능을 제공합니다. 🛠️
- LLM에 너무 적거나 너무 많은 컨텍스트를 제공하는 문제 사이에서 균형을 찾는 것이 중요하며, 개발자가 직접 메타데이터를 추가하는 것이 가장 효과적이었습니다. 📚
- 사용자 쿼리, LLM 호출, 벡터 검색을 통해 최적의 관리자 라우트를 찾아내며, 모델의 학습 데이터 편향 문제를 지속적으로 개선하고 있습니다. 🧭
- 너무 많은 개발자가 유사한 라우트(예: 대시보드)를 추가하는 문제를 해결하기 위해, 시스템 성능 저하를 방지하는 평가 세트를 구축하여 데이터 유효성을 확보합니다. ✅
- DOM은 AI가 작업을 수행하기에 충분한 메타데이터를 제공하지 못하므로, 프레임워크 계층(예: React 컴포넌트 라이브러리)에서 스키마 기반 접근 방식을 사용하는 것이 효과적입니다. 🏗️
- Zod와 같은 라이브러리를 활용하여 스키마 우선 API를 구축하고, 페이지 로드 없이 미리 수행 가능한 작업을 정의하여 AI의 효율성을 높였습니다. 📝
- 필드에
sidekick 주석을 추가하여 LLM에 창의성, 가격 조사 등 구체적인 지침을 제공함으로써 모델의 정확성과 유용성을 향상시킵니다. 💡
- 모델은 JSON 스키마에 대한 학습량이 많아 이를 매우 잘 이해하므로, AI 앱 개발 시 스키마 우선 접근 방식을 강력히 권장합니다. 📊
- Shopify 관리자 페이지를 Sidekick을 위한 MCP(Multi-Client Protocol) 서버로 전환하여, Sidekick이 관리자 기능을 도구로 호출하고 다른 클라이언트도 활용할 수 있는 개방형 표준을 제시합니다. 🌐
- React Router의 로더와 액션을 활용하여 브라우저 탐색 없이 백그라운드에서 양식 데이터 가져오기 및 처리와 같은 작업을 수행하는
formFetch 함수를 개발했습니다. ⚙️
- 로더와 함께
sidekickHint API를 사용하여, LLM에 과부하를 주지 않으면서 페이지 컨텍스트에 대한 더 많은 정보를 제공하여 AI의 이해도를 높입니다. 💬