- 개 내부 서비스
- 9
- 줄의 Python 코드
- ~175K
- 개 언어, 지식 베이스는 하나
- 9
- 개 허용 목록 어시스턴트 도구
- 10
- AI 답변 1건당 비용(정가 기준)
- US$0.004
- 의 코드베이스가 AI 계층
- ≈3%
고객사
고객 반품에서 고객에게 되돌려주기까지
Atravesar Services는 리치먼드힐에 사무실, 마컴에 수리 작업장과 창고를 두고 택배로 캐나다 전역에 서비스하는 전자제품 수리·리퍼비시·역물류 기업입니다. 제조사와 소매업체를 위한 B2B 위탁 수리·반품 프로그램과 소비자 직접 우편 수리를 운영하며, 캐나다 내 Narwal 독점 공인 A/S 제공업체로서 ECOVACS와 Segway/Ninebot도 지원합니다.
팀은 매일 같은 질문에 답했습니다. 내 택배는 어디 있나요? 오류 코드 E12는 무슨 뜻인가요? 퀘벡에서 세금 포함 수리비는 얼마인가요? 내 작업 지시서는 수리 중인가요? 모든 답은 이미 존재했습니다—문서, 데이터베이스, 혹은 운송사 API 안에. 요구 사항은 분명했습니다: 소프트웨어가 안전하게, 24시간, 고객의 언어로 답하게 할 것.
-
리치먼드힐 사무실 · 마컴 수리 작업장 및 창고 · 택배로 캐나다 전역 서비스
-
캐나다 내 Narwal 독점 공인 A/S 제공업체 · ECOVACS 및 Segway/Ninebot 지원
-
로봇청소기 · 전동킥보드 · 스마트폰 · 태블릿 · 노트북 · 게임기 · 소형 가전
-
EN简体繁體日本語한국어Tiếng ViệtESITFR
설계 원칙
AI는 읽고, 이해하고, 대화합니다. 소프트웨어는 결정하고, 기록하고, 결제합니다.
이 아키텍처는 하나의 명확한 선을 긋습니다. 어시스턴트 계층은 일상 워크플로 위에 위치하며, 좁고 이름이 있고 로그가 남는 문—도구와 API—을 통해서만 비즈니스에 접근합니다. 그 아래에서는 인증·인가·감사 기록을 갖춘 일반 소프트웨어가 가격을 정하고, 작업 지시서를 기록하고, 돈을 움직입니다.
-
AI 어시스턴트 계층
읽고, 이해하고, 조회하고, 사람에게 답합니다—상대의 언어로, 24시간.
-
좁고, 이름이 있고, 로그가 남는 문
주문, 결제, 창고, 배송, 추적, 고객 지원은 JSON 스키마가 있는 허용 목록 도구를 통해서만 접근할 수 있습니다. 모델은 데이터베이스를 절대 건드리지 않습니다.
-
보안 및 통제
인증(당신은 누구인가?), 인가(무엇을 보고 무엇을 할 수 있는가?), 감사 기록(무슨 일이 있었는가—로그로 남고 감사 가능).
이미 비즈니스를 운영하던 것
9개의 서비스, 약 175,000줄의 Python
웹사이트는 눈에 보이는 부분일 뿐입니다. 그 뒤에서 SolvoSync는 회사를 움직이는 플랫폼—창고 및 RMA 관리, 다중 운송사 배송, 결제와 세금, 인증, 점검, 제조사 연동—을 설계하고 운영합니다. AI 계층은 코드베이스의 약 3%이며, 나머지 전부는 AI 계층이 물려받는 규율입니다.
-
7.7K LOC
www · 공개 웹사이트
9개 언어 · 서비스 페이지 및 가이드 · 보증 외(OOW) 웹 양식 · 챗봇 위젯 · 관리자 지식 업로드 · llms.txt
-
59.5K LOC
Flow · WMS / RMA
입고 · 재고 · 부품 · RMA · 출고 주문 · 팔레트 · ECOVACS ESB · Mammotion FS Cloud · LSS · 테스트 파일 31개
-
50.6K LOC
Fulfill · 배송
UPS · Canpar · Canada Post · Purolator(ShipEngine) · Freightcom · 요금, 라벨, 픽업, 매니페스트, 추적 · EDI 210 청구 감사
-
5.2K LOC
Payment · 결제 및 세금
Stripe Checkout + webhooks · 우편번호 기반 캐나다 세금 계산(GST/HST/PST/QST) · 송장 S3 저장 · 주간 보고서
-
2.6K LOC
SSO · 인증
계정 · OAuth2 client-credentials · 역할 ADMIN, CUSTOMER, DEALER, RECEIVER, REPAIR, TECH, SHIPPER · 벤더 범위
-
35.4K LOC
Track · 디지털 시스템
이전 세대 재고/RMA 시스템 · React + TypeScript 프런트엔드
-
10.0K LOC
Maintain · 장비 점검
체크리스트, 사진, 서명, 예약 보고서
-
2.8K LOC
Mammotion · 제조사 스크립트
FS Cloud 데포 수리, 예비 부품, RMA 및 출고 대기 내보내기
-
0.6K LOC
재고 실사
AVS 라벨 ↔ EAN 스캔, 누락 기기 표시, Excel 내보내기
- AWS EC2 (Ubuntu)
- RDS MySQL
- S3
- Redis
- nginx + gunicorn
- Flask
- React + TypeScript
- Qdrant
- Gemini API
- Stripe
- Google Places
LOC = 가상 환경, 마이그레이션, 벤더 패키지를 제외한 Python 줄 수(2026년 10월 기준).
AI 어시스턴트 계층
Gemini + RAG + MCP: 어시스턴트가 연결되는 지점
AVS 어시스턴트는 www.atravesar.ca에서 세션 기반 토큰과 속도 제한의 보호 아래 동작합니다. 함수 호출을 지원하는 Gemini Flash로 실행되며(답변당 최대 4라운드의 도구 호출), Qdrant 벡터 데이터베이스에서 지식을 검색하고, 배송·세금·인증에는 MCP와 함수 엔드포인트를 통해 접근합니다. 각 엔드포인트는 자체 인증, 제한, 로그를 갖추고 있습니다.
-
1
지식 어시스턴트(RAG)
직원이 관리자 페이지에서 PDF, Markdown 또는 텍스트를 업로드합니다. 문서는 청크로 나뉘고(약 1,000자, 150자 중첩), gemini-embedding-001로 768차원 벡터로 임베딩되어 Qdrant에 저장됩니다. 질문마다 코사인 유사도로 상위 5개 구절을 검색하고, 모델은 이를 근거로 출처를 밝히며 답합니다. 영어 문서로 9개 언어의 질문에 답할 수 있습니다.
-
2
도구 사용 어시스턴트(함수 호출 및 MCP)
도구는 이름, 설명, JSON 스키마로 이루어집니다. 모델이 도구와 인수를 고르면 우리 코드가 OAuth2 서비스 토큰으로 실행하고, 모델이 결과를 설명합니다. 배송 MCP 서버는 MCP over Streamable HTTP(JSON-RPC 2.0)로 통신하므로, 하나의 통합이 오늘은 웹사이트 챗봇에, 내일은 직원용 데스크톱 어시스턴트에, 이후에는 범위가 지정된 키를 가진 파트너 에이전트에 쓰입니다.
-
3
워크플로 자동화(모델 없음)
결제 확인 → 라벨 생성 → 작업 지시서 생성 → 이메일 발송. 가격, 세금, 번호 부여, 단계 전환 규칙은 테스트된 결정론적 코드 안에 있습니다—돈과 기록이 움직이는 곳입니다.
배포된 도구 카탈로그
설계 규칙 #1: 모델은 데이터베이스를 건드리지 않는다—도구를 요청한다.
| 도구 | 실행 위치 | 기능 | 가드레일 |
|---|---|---|---|
| search_knowledge_base | www → Qdrant | 시맨틱 검색; 출처와 제목이 포함된 상위 5개 구절 반환. | 읽기 전용; 모델에게 출처를 인용하고 절대 지어내지 말라고 지시. |
| share_oow_webform | www | 사용자의 언어로 보증 외 수리 양식 URL 반환. | 모델은 채팅에서 양식 항목을 수집할 수 없음. |
| list_provincial_tax_rates calculate_tax |
Payment | 주 또는 우편번호별 GST/HST/PST/QST; 상품과 서비스 구분. | 결정론적 Decimal 연산; 모델은 세금을 계산하지 않음. |
| rate_shipment track_shipment |
Shipment MCP (fulfillapi) | 운송사 요금; UPS 1Z / Canpar D / Canada Post PIN 또는 고객 참조 번호로 추적. | OAuth2 서비스 토큰; 읽기 전용. |
| email_waybill validate_address |
Shipment MCP (fulfillapi) | 등록된 주소로 라벨 재발송; Google 검증 주소 대조. | 해당 배송의 연락처로만 이메일 발송; 캐나다/미국 한정. |
| get_account_info get_account_access |
SSO MCP | 계정 프로필과 사용자가 볼 수 있는 벤더 데이터 범위. | 서버 측 토큰; 벤더 범위 한정. |
| clear_chat_history | www | 이 브라우저의 대화 삭제. | 세션 범위 한정. |
제한: 답변당 최대 4라운드의 도구 호출 · 도구 결과당 12,000자 이하 · 검색당 5개 구절 · 데이터베이스에 쓰는 도구 없음 · 돈을 움직이는 도구 없음.
하나의 워크플로, 엔드투엔드
보증 외(OOW) 수리 여정
시작과 끝에는 AI—대화 부분. 중간은 평범하고 테스트 가능한 소프트웨어. 회사가 이미 가진 시스템 위에 소규모 팀이 구축.
-
고객이 어시스턴트에게 묻습니다: “제 Narwal이 보증이 끝났는데 수리할 수 있나요?” share_oow_webform 도구가 고객의 언어로 양식 링크를 반환합니다. 채팅에서는 개인정보를 수집하지 않습니다.
-
4단계 웹 양식이 기기, 문제, 주소(Google Places로 검증)를 수집하며, 직접 방문 또는 택배 발송을 선택할 수 있습니다.
-
견적은 코드가 계산합니다: 점검비 $40, 결제 서비스가 우편번호로 계산한 세금, 그리고 가장 저렴한 실시간 택배 요금(운송사 병렬 조회)에 고정 마진을 더한 금액.
-
Stripe Checkout으로 점검비와 배송비를 결제하고, 15일 결제 조건의 PDF 송장이 이메일로 발송됩니다.
-
검증된 webhook이 작업 지시서 AVSOOW{YYMMDD}####를 생성하고 Flow에서 “Receiving” 단계로 엽니다. 가장 저렴한 운송사의 발송 라벨과 QR 코드가 고객에게 이메일로 전송됩니다.
-
기기를 수령·점검한 뒤 수리 견적을 발행하고, 두 번째 Stripe 결제로 지불되면 작업 지시서는 “Repair” 단계로 넘어갑니다.
-
수리된 기기를 반송하고 추적 번호를 이메일로 보냅니다—그동안 어시스턴트는 배송 MCP를 통해 “내 배송은 어디 있나요?”에 계속 답합니다.
가치의 대부분은 평범한 자동화에서 나온다
의도적으로 AI를 쓰지 않는 영역
- 가격 및 세금
- 결제 서비스의 Decimal 연산, 은행가 반올림, 우편번호 접두사별 주 규칙.
- 운송사 선택
- 규칙: 사서함 → Canada Post; 우선 제조사 → Canpar; UPS 속도 제한 → 대체 운송사; 그 외에는 가장 저렴한 실시간 요금.
- 작업 지시서 및 단계
- Flow의 고유 번호와 단계 상태 머신(Receiving → Repair → …), 31개 테스트 파일로 검증.
- 청구 감사
- 매일 밤 EDI 210 송장(UPS, Canpar)을 파싱해 견적 요금과 대조하고 과다 청구 보고서를 자동 생성.
- 결제 및 인증
- 검증된 webhook이 있는 Stripe Checkout, 송장과 영수증은 S3에 저장; 역할 기반 SSO, 서비스 간 OAuth2 client-credentials, 직원 MFA.
- 예약 작업 및 제조사 연동
- 평일 하루 두 번 추적, 주간 경고 이메일, 하루 세 번 제조사 데이터 가져오기; ECOVACS SEEBURGER ESB, Mammotion FS Cloud, LSS—대화가 아닌 계약으로.
경험 법칙: 결과가 정확하고, 반복 가능하며, 회계사나 변호사에게 설명할 수 있어야 한다면 그것은 코드의 몫입니다. AI는 그 옆에서 설명하고 안내합니다.
아래를 받치는 보안과 통제
인증, 인가, 감사 기록
인증 — 당신은 누구인가?
- 직원과 파트너는 SSO; 배송 시스템 로그인에는 MFA.
- 서비스 간(Fulfill, Payment, SSO) OAuth2 client-credentials 토큰.
- 챗봇 세션: IP와 브라우저에 바인딩된 HttpOnly JWT, 30분 유효; 동일 출처 검사와 남용 방지용 Redis 블랙리스트.
인가 — 무엇을 보고 무엇을 할 수 있는가?
- 역할 ADMIN, CUSTOMER, DEALER, RECEIVER, REPAIR, TECH, SHIPPER; 파트너는 자사 벤더 데이터만 열람.
- 모델은 어떤 자격 증명도 갖지 않음—허용 목록 도구만.
- 도구는 읽기 전용. 예외는 해당 배송의 연락처로 라벨을 이메일 발송하는 것과 자신의 채팅을 삭제하는 것뿐.
감사 기록 — 무슨 일이 있었는가?
- 모든 채팅 턴 기록: 세션, 질문, 답변, 사용 도구, 모델 버전; CSV 내보내기.
- Stripe webhook 검증; 결제 이벤트와 송장은 S3에 저장.
- 매일 밤 EDI 210으로 운송사 송장과 견적 대조; 주간 자동 보고서.
이 중 어느 것도 AI에만 해당하는 것이 아닙니다. 원래 갖춰야 할 규율이며, AI 계층은 그것을 그대로 물려받을 뿐입니다.
성과
무엇을 제공하는가
-
고객은 보증, 오류 코드, 세금, 배송, 수리 절차에 대한 답을 9개 언어로, 연중무휴 24시간, 출처와 함께 받습니다.
-
보증 외 수리 접수가 첫 질문부터 결제 완료된 작업 지시서까지, 직원이 견적·라벨·이메일을 직접 입력하지 않고 진행됩니다.
-
하나의 MCP 통합이 오늘은 웹사이트 어시스턴트에 쓰이고, 직원 및 파트너 어시스턴트에도 바로 쓸 수 있습니다—두 번째 통합이 필요 없습니다.
-
답변당 비용은 센트 단위입니다: 정가 기준 약 US$0.004, 월 1만 건 답변에 약 US$45.
-
모든 채팅 턴은 사용 도구와 모델 버전과 함께 기록됩니다—품질은 재학습이 아니라 로그를 읽고 문서를 고치는 것으로 향상됩니다.
정직한 엔지니어링: 대비했던 장애 모드와 실제로 일어난 일
- 환각
- 검색된 구절에 근거, 사실은 반드시 조회, temperature 0.4, 이메일로 인계. 실제로 일어난 일: 초기에 영업시간과 주소 답변이 일반 지식에서 나왔음—조회 필수 규칙으로 수정.
- 프롬프트 인젝션
- 정책형 프롬프트와 스키마로 제한된 도구; 풀어낼 민감 정보가 없음—전화번호 목록도, 결제 도구도 없음. 실제로 일어난 일: 시도하는 사람은 있지만, 기능 범위가 좁아 거부가 유지됨.
- 장애
- 도구 오류는 데이터로 반환되고 봇은 지식 베이스로 계속 답변; 운송사는 병렬 조회하며 규칙 기반 대체 경로 보유. 실제로 일어난 일: 운송사 API 속도 제한 → 대체 운송사로 전환.
- 모델 드리프트
- 변동하는 모델 별칭은 어느새 어조, 길이, 도구 사용을 바꿉니다. 모든 턴에 모델 버전을 기록하고, 변경 시마다 실제 질문으로 구성된 회귀 세트를 다시 실행합니다.
1년 전의 우리에게 해주고 싶은 말
아홉 가지 엔지니어링 교훈
-
01
받은편지함에 이미 있는 질문에서 시작하라—기술에서가 아니라.
-
02
프롬프트보다 도구: 모델이 동적인 정보를 ‘알아야’ 한다면 문단이 아니라 도구를 추가하라.
-
03
지식 베이스는 평범하게 유지하라: 직원이 이미 관리하는 PDF와 Markdown으로.
-
04
모델을 고정하고 버전을 기록하라—변동 별칭은 어느새 동작을 바꾼다.
-
05
우아하게 성능을 낮춰라: 도구 오류는 데이터다. 의존 서비스가 멈춰도 봇은 계속 동작해야 한다.
-
06
모든 것에 상한을 두라—라운드, 글자 수, 토큰, 속도. 무제한 소비는 실제 청구서가 된다.
-
07
돈은 Stripe와 양식 뒤에, 채팅창 뒤에는 절대 두지 마라.
-
08
표준을 사용하라: MCP + OAuth2 덕분에 아직 만들지 않은 클라이언트에도 통합을 재사용할 수 있었다.
-
09
관리자 페이지를 먼저 만들어라: 문서 업로드와 로그 열람—품질은 거기서 나온다.
덤으로 열 번째: 시스템 프롬프트를 정책처럼 작성하라—버전 관리하고, 검토하고, 코드처럼 테스트하라.
라이브 발표
NATEA 토론토 · 중소기업을 위한 AI
- 60분 · 강연 및 라이브 데모 · 온라인
연사: Nelson Lai — SolvoSync · Atravesar Services CTO
2026년 10월 21일(온라인) 60분 강연과 라이브 데모로, 소매 기업이 atravesar.ca 위에서 어떻게 운영되는지, 그리고 AI가 실제로 제 몫을 하는 지점이 어디인지 보여주었습니다: 중소기업 AI 도입에 관한 2026년 캐나다 통계청 데이터, 세 가지 패턴—지식, 도구, 자동화—운영 환경 데모 2회, 캐나다 보안·개인정보 체크리스트, 그리고 4주 스타터 플랜.
캐나다 기업의 19%가 AI를 사용하고, 25%는 도입을 계획하며, 40%는 자신과 무관하다고 생각합니다. 그 ‘관련성’은 바로 당신의 받은편지함에 있습니다.
이 프로젝트에 대해 자주 묻는 질문
어시스턴트가 사실을 지어내는 것을 어떻게 막나요?
사실은 검색된 구절이나 도구에서만 나오며, 모델의 기억에서는 절대 나오지 않습니다. 시스템 프롬프트가 주소·영업시간·정책에 대해 지식 베이스 조회를 강제하고, temperature는 0.4이며, 도구로 답할 수 없으면 어시스턴트가 이메일로 인계합니다. 초기에는 영업시간 답변이 일반 지식에서 나왔지만, 조회 필수 규칙으로 해결했습니다.
AI 답변 1건의 비용은 얼마인가요?
2026년 10월 정가 기준으로 답변 1건(입력 약 12,000토큰 + 출력 약 300토큰)은 약 US$0.004이며, 월 1만 건이면 약 US$45입니다. 진짜 비용은 토큰이 아니라 엔지니어링과 콘텐츠 유지 관리입니다.
우리 회사도 이 접근법이나 MCP 서버를 재사용할 수 있나요?
네. 도구 계층은 개방형 표준—MCP over Streamable HTTP와 OAuth2 client-credentials—위에 구축되어 같은 서버를 어떤 어시스턴트에서도 쓸 수 있습니다. SolvoSync는 다른 중소기업에도 같은 패턴을 구축합니다: 받은편지함에 이미 있는 질문에서 시작하고, 4주 안에 채널 하나를 출시하고, 주장하기 전에 측정합니다.
개인정보는 어떻게 처리되나요?
개인정보는 채팅창 밖에 둡니다. 어시스턴트는 동의·검증·Stripe를 갖춘 양식으로 안내하고, 비밀 정보는 서버 측에만 두며, 세션은 IP와 브라우저에 바인딩된 HttpOnly 토큰이고, 모든 턴은 모델 버전과 함께 기록됩니다. 설계는 PIPEDA와 퀘벡 제25호 법의 원칙을 따릅니다: 모델은 결정하지 않습니다—코드와 사람이 결정합니다.
귀사에도 이런 시스템이 필요하신가요?
SolvoSync는 웹사이트, 시스템 통합, AI 어시스턴트 계층을 설계·구축·운영합니다—받은편지함에 이미 있는 질문에서 시작해 4주 안에 채널 하나를 출시합니다.