AI를 ‘Vibe Checking’하는 것을 멈추세요. 대신 Snapshot Testing을 사용하세요.
Source: Dev.to
왜 AI에 대해 이런 방식을 쓰지 않을까?
우리 대부분은 아직도 “바이브 체크”를 하고 있습니다: 프롬프트를 직접 실행하고, 출력을 읽고, “음, 괜찮아 보이네.” 라고 말하는 것이죠.
이를 해결하기 위해 도구를 만들었습니다.
SafeStar 소개
SafeStar 는 의존성이 전혀 없는 CLI 도구로, “스냅샷 & Diff” 워크플로를 AI 엔지니어링에 도입합니다. Python, Node, curl 등 어떤 인터페이스와도 함께 사용할 수 있으며, AI를 블랙박스로 취급해 다음 질문에 답합니다:
“지난 번과 비교했을 때 동작이 변했는가?”
작동 방식
SafeStar는 Git과 유사한 워크플로를 따릅니다:
- Snapshot – “좋은” 동작의 기준선을 저장합니다.
- Run – 현재 코드를 실행합니다.
- Diff – 결과를 비교해 드리프트를 감지합니다.
빠른 시작
코드를 수정하지 않고 바로 SafeStar를 사용해 볼 수 있습니다.
1. 설치
npm install --save-dev safestar
2. 시나리오 정의
scenarios/refund.yaml 파일을 만듭니다. exec 키를 사용해 스크립트를 실행하는 방법을 알려줍니다.
name: refund_bot
prompt: "I want a refund immediately."
# Your actual code command
exec: "python3 my_agent.py"
# Run it 5 times to catch randomness/instability
runs: 5
# Simple guardrails
checks:
max_length: 200
must_not_contain:
- "I am just an AI"
3. 기준선 생성
원하는 출력이 나올 때까지 실행한 뒤, 이를 “고정”합니다:
npx safestar baseline refund_bot
4. CI에서 드리프트 확인
프롬프트나 모델을 변경할 때마다 다음을 실행합니다:
npx safestar diff scenarios/refund.yaml
모델이 드리프트하면 SafeStar가 알림을 보냅니다:
--- SAFESTAR REPORT ---
Status: FAIL
Metrics:
Avg Length: 45 chars -> 120 chars
Drift: +166% vs baseline (WARNING)
Variance: 0.2 -> 9.8 (High instability)
만든 이유
저는 “정확도 점수 87/100” 같은 복잡한 평가 대시보드에 지쳤습니다. 점수는 신경 쓰지 않으며, 리그레션에만 관심이 있습니다. 어제는 봇이 정상 작동했는데, 오늘은 다른지 알고 싶을 뿐입니다.
SafeStar는 오픈 소스이며, 로컬 우선으로 동작하고, GitHub Actions와 바로 연결됩니다.
링크
- NPM:
- GitHub:
- Full blog post:
유용하게 쓰신다면 알려 주세요!