← 빌드 일지
AI Lab2026-04-27·9분 읽기

AI 에이전트 셋업, 7번의 함정과 탈출 — ₩271,621 결제 폭탄에서 24시간 안에 월 $0까지

Gemini 무료라고 알고 쓰던 OpenClaw가 ₩271,621 청구서를 떨어뜨렸습니다. 그 후 24시간 동안 7번의 함정에 걸리며 셋업을 갈아탄 기록입니다. 결과는 월 $0 영구 운영. 무료라는 단어가 함정이 되는 순간을 데이터로 정리했습니다.

받은 영수증부터

2026년 4월 1일~25일 청구액: ₩271,621
2026년 4월 30일 예상 청구: ₩337,239
미납 상태 (카드 한도 초과)

OpenClaw — 24시간 돌아가는 자동화 에이전트 — 가 Gemini 3 Pro Preview API를 쓰면서 무료 한도를 진작에 초과한 결과입니다. 무료라고 들어서 안 끄고 둔 게 결제 폭탄으로 돌아왔습니다.

이 글은 그 폭탄이 떨어진 후 24시간 동안 7번의 함정을 차례로 밟으며 무료 셋업으로 옮겨간 기록입니다. 끝에는 월 $0로 동일 기능이 도는 셋업이 남았습니다.

함정 1 — "무료"라는 단어가 함정이었다

Google Cloud는 신규 가입 시 90일/$300 크레딧을 줍니다. 1월 가입 → 4월 3일에 만료. 만료된 이후에도 봇은 계속 돌고 있었기 때문에, 무료 한도 초과분이 자동으로 paid tier로 전환되어 청구가 시작됐습니다.

4월 3일: Google Cloud free trial 만료
4월 4일~25일: ₩271,621 누적 (24/7 봇 호출)
4월 26일: 카드 한도 초과 → 결제 실패
4월 26일: 프로젝트 자체 차단 (PERMISSION_DENIED)

"무료" = "무료 한도 안에서 무료"라는 걸 결제카드가 한 번 거절당하고 나서야 알았습니다.

함정 2 — API 비활성화로는 차단이 안 풀린다

출혈을 멈추기 위해 Google Cloud Console에서 Generative Language API를 Disable했습니다. 청구는 멈췄지만 — 미납 상태와 보안 플래그가 살아있어서 — API를 다시 켜도 호출이 모두 차단됐습니다.

이건 API 토글 문제가 아니라 결제 상태 문제입니다. 5월 10일 카드 한도 회복 후 결제해야 풀립니다. 그 전까지 Gemini는 못 씁니다.

함정 3 — 로컬 LLM으로 대피, 첫 모델이 Tools를 지원 안 했다

Ollama를 깔고 DeepSeek-R1 14B를 받았습니다. 추론 잘하는 14B 모델, 9GB 다운로드, 32초 응답 — 다 좋았습니다.

OpenClaw에 연결해보니 19초 안에 5번 retry 후 실패. 로그를 뜯어보니 매 retry가 1.2초만에 종료. 진짜 추론 시간이 아니라 모델이 즉시 거절 하고 있었던 겁니다.

원인:

deepseek-r1:14b → capabilities: ['completion', 'thinking']
qwen2.5:7b      → capabilities: ['completion', 'tools']

DeepSeek-R1 distill 시리즈는 tools를 지원하지 않습니다. 추론은 하지만 tool calling을 못 합니다. OpenClaw 같은 에이전트 프레임워크는 tool calling이 핵심이라 즉시 실패합니다.

함정 4 — Ollama 기본 컨텍스트가 4K였다

Qwen 2.5 7B로 갈아탔습니다. tools 지원 ✅, 한국어 ✅, 응답 3초 ✅. 그런데 OpenClaw에서 또 실패. 이번엔 정확히 19.6초 timeout 패턴.

확인해보니:

qwen2.5:7b: context_length=4096

Ollama 기본 컨텍스트가 4096 토큰 이었습니다. OpenClaw는 시스템 프롬프트 + tool 정의 + 직전 대화를 합쳐 8,000~15,000 토큰을 모델에 보냅니다. 4K 모델에 15K 프롬프트를 넣으면 잘려서 모델이 혼란스러워합니다.

해결:

setx OLLAMA_CONTEXT_LENGTH 32768

환경변수 한 줄. Ollama 프로세스 재시작 후 context_length=32768 적용 확인.

함정 5 — Tool 호출 포맷 미스매치

컨텍스트 늘려도 OpenClaw에서 실패가 반복. 매 시도가 정확히 19.6초. agent loop 4번 retry 후 포기.

원인 추정: Qwen 2.5의 tool call 출력 JSON이 OpenClaw 파서가 기대하는 OpenAI 표준 포맷과 미묘하게 다릅니다. Ollama가 "tools 지원"이라고 보고는 하는데, 실제 응답 구조가 OpenClaw랑 안 맞습니다.

이건 Ollama 자체 문제는 아니고, OpenClaw가 어떤 모델 출력을 기대하느냐와 연결됩니다. 에이전트 프레임워크와 로컬 모델 사이의 호환성 layer가 아직 성숙하지 않은 영역입니다.

함정 6 — OpenClaw 카탈로그에 없는 모델은 못 쓴다

결국 OpenRouter의 무료 모델로 옮기기로 했습니다. OpenRouter는 결제카드 등록이 필요 없어서 결제 폭탄 위험이 0입니다. 한도 초과 시 그냥 차단되고 끝.

NVIDIA Nemotron 3 Super 120B (262k 컨텍스트, 한국어 native, tools 지원)로 시도 — OpenClaw 응답:

⚠️ Agent failed before reply: Unknown model

OpenClaw는 하드코딩된 모델 카탈로그 만 받습니다. OpenRouter API에는 있어도, OpenClaw 정적 리스트에 없으면 거부됩니다. 카탈로그에 등록된 free 모델 후보 6개를 직접 호출 테스트:

모델결과
qwen3-coder:freerate-limit
gemma-3-27b:freerate-limit
solar-pro-3:free무료 종료
z-ai/glm-4.5-air:freerate-limit
llama-3.3-70b:freerate-limit
qwen3-next-80b:freerate-limit
gpt-oss-120b:free✅ 작동
gpt-oss-20b:free✅ 작동

새벽 시간 (UTC 04:00 = KST 13:00) 기준 가장 안정적으로 작동하는 무료 모델은 OpenAI가 푼 gpt-oss 시리즈였습니다. 120B로 정착.

함정 7 — 영어만 답한다

gpt-oss-120b가 작동하니 텔레그램 봇에 "안녕"을 보냈습니다. 응답:

I'm here and ready to help. What do you need assistance with?

영어로 옵니다. 모델이 OpenAI 출신이라 학습 데이터가 영어 위주입니다. OpenClaw 전체에 한국어 응답을 강제하려면 시스템 프롬프트를 손봐야 합니다.

OpenClaw는 매 호출마다 시스템 프롬프트를 자동 조립하는데, workspace/SOUL.md (페르소나 파일)이 자동 주입됩니다. 거기에 다음 룰을 박았습니다:

## Language — 한국어 우선 (HARD RULE)

- 기본 출력 언어 = 한국어
- "Hi", "I'm here", "Sure" 같은 영어 인사 금지
- 자연스러운 친구체 말투
- 코드/명령어/영문 고유명사는 영어 그대로
- 협상 불가 룰 — 모델 학습 편향과 무관하게 항상 한국어

OpenClaw가 SOUL.md 변경을 자동 감지하고 다음 호출부터 적용합니다. 게이트웨이 재시작 불필요.

테스트:

사용자: 안녕
봇: 안녕! 뭐 도와줄까?

사용자: 너 LLM 모델이 지금 뭐지?
봇: 현재 저는 OpenRouter의 gpt-oss-120b 모델을 사용하고 있습니다.

자연스러운 한국어. 영어 인사 사라짐. Tool 호출 정상.

최종 셋업

[텔레그램]
   ↓
[OpenClaw Gateway]
   ↓ Primary
[OpenRouter gpt-oss-120b:free] (월 $0)
   ↓ Fallback 1
[OpenRouter gpt-oss-20b:free] (월 $0)
   ↓ Fallback 2
[Ollama qwen2.5:7b] (로컬, 무제한)
   +
[Brave Search] (월 2,000 쿼리 무료)
   +
[SOUL.md] (한국어 강제 + 페르소나)

비용 변화

시점월 비용
Claude API + Gemini API (이전)$400~500
현재 (OpenClaw 무료 + Claude Max)$200
5/10 결제 정리 후$200 (변화 없음)

월 $200~300 절감. 1년이면 ₩300만대 차이. 그리고 Gemini 같은 결제 폭탄 위험은 0.

무엇을 배웠는가

1. "무료"는 "무료 한도까지"라는 뜻이다

결제카드가 등록된 상태에서 무료 한도 초과는 자동 paid 전환을 의미합니다. 24/7 자동화 봇은 어떤 무료 한도든 빠르게 초과합니다. 결제 등록 + 24/7 자동화 = 청구서 함정.

해결: Cost Cap 즉시 설정 또는 결제 카드 미등록 서비스 (OpenRouter처럼 결제 안 받는) 사용.

2. 로컬 LLM은 만능이 아니다

DeepSeek-R1 = tools 미지원. Ollama 기본 컨텍스트 4K. Tool 출력 포맷 미스매치. 로컬 LLM이 이론적으로 좋아도, 에이전트 프레임워크와의 호환성 layer가 아직 미숙한 영역이 많습니다.

해결: 모델별 capabilities 확인 (/api/show), 컨텍스트 명시적 설정, OpenAI-compatible 출력 검증.

3. 다층 fallback이 진짜 안전망이다

Primary 한 개로 가면 그 모델이 다운/한도/폭증할 때 봇이 멈춥니다. 우리 셋업은 OpenRouter 2개 + 로컬 1개로 3중 안전망. Primary 다운 → Fallback → 로컬 → 어쨌든 응답 옴.

해결: 최소 2단계, 가능하면 3단계 fallback.

4. 시스템 프롬프트가 모델 편향을 이긴다

gpt-oss-120b는 영어 학습 편향이 강합니다. 그래도 SOUL.md 한 페이지 룰로 70~80% 한국어 자연성 회복. 모델을 못 바꾸면 프롬프트로 우회 가능.

해결: 페르소나 파일에 명시적 룰 박기 (HARD RULE 같은 강한 표현).

5. 에이전트 프레임워크는 모델보다 데이터 layer가 중요하다

OpenClaw가 24/7 하는 일의 실제 90%는 Python 코드 실행, CSV 파싱, 통계 계산입니다. LLM은 "어떤 명령을 실행할지 결정"만 합니다. 이 결정 작업은 Gemini 3 Pro Preview든 gpt-oss-120b든 차이가 거의 없습니다.

해결: 비싼 모델 = 큰 머리 작업 (전략, 한국어 깊이, 법률), 싼/무료 모델 = 자동화 / 실행 / 모니터링. 분업.

그래서 4/30 강의에서 보여줄 수 있는 것

이 사건 자체가 강의 자료가 됐습니다.

"AI 에이전트 운영의 진짜 비용 구조 — Gemini가 청구한 ₩27만"
"24시간 안에 월 $0 셋업으로 갈아타는 7가지 함정"
"OpenClaw + OpenRouter + Ollama 다층 fallback"
"SOUL.md 한 페이지로 모델 편향 우회하기"
"결제 카드 없는 LLM 운영 — 진짜 무료의 길"

라이브 데모도 가능합니다 — @WildEconForce_bot에 한국어로 묻기, 즉시 한국어 응답, 봇이 자기 모델/비용/셋업 설명. 이게 무료입니다.

다음 단계

  1. 5/10 미납 결제 → Gemini 프로젝트 정리
  2. 결제 수단 삭제 → 영구 청구 차단
  3. OpenRouter rate limit 변동 모니터링
  4. Local Ollama 모델 풀 관리 (이미지/Vision 모델 추가 검토)
  5. Mac mini 64GB 검토 (6개월 후) — 70B 모델 로컬 운영 시점

받은 영수증을 신뢰합니다. ₩271,621은 비싼 수업료였지만, "무료의 함정"이라는 챕터를 통째로 배웠습니다. 다음 프로젝트에선 첫날부터 Cost Cap을 깔겠습니다.

Wildeconforce

매일 만들고, 매일 분석하고, 매일 기록합니다.
© 2026 wildeconforce · build-in-public

이 사이트는 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.