에이전트 루프는 AI에게 도움을 요청하는 것과 잠에서 깨어 완성된 작업을 확인하는 것의 차이를 만듭니다. 대부분의 사람들은 루프를 구축하지 않는데, 최첨단 모델에서 수백 번 반복하는 데는 실제로 비용이 많이 들기 때문입니다.
내용: 루프 패턴을 하나의 다이어그램, 두 가지 정확한 설정(Claude Code 및 raw API), 그리고 K3를 루프 머신으로 만드는 캐시 수학으로 설명합니다.
첫 번째 루프는 오늘 밤 턴당 약 $0.39에 실행됩니다.
전체 설정은 다음과 같습니다 👇
본격적으로 시작하기 전에, 저는 AI 및 바이브 코딩에 대한 일일 노트를 Telegram 채널에서 공유합니다: https://t.me/zodchixquant 🧠

루프가 실제로 무엇인가
과대광고를 걷어내면 루프는 네 단계의 반복입니다:
1GOAL → ATTEMPT → CHECK → (better? keep : retry)2 ↑__________________________|
- 목표(Goal): 측정 가능한 완료 지점이지, 막연한 느낌이 아닙니다. "모든 테스트 통과", "페이지 로딩 1초 미만", "점수 90점 이상"
- 시도(Attempt): 모델이 목표를 향해 한 단위의 작업을 수행합니다
- 확인(Check): 무언가가 결과를 목표와 비교하여 검증합니다. 테스트 스위트, 린터, 두 번째 모델 등
- 반복(Repeat): 확인 결과를 다시 입력하고, 다시 진행하며, 목표가 달성되거나 예산이 소진되면 중단합니다
이게 전부입니다. 그 외의 모든 것(메모리, 하위 에이전트, 야간 실행)은 이 사이클을 장식할 뿐입니다.
왜 특히 K3인가: 루프 경제학
루프는 매 턴마다 동일한 컨텍스트(코드베이스, 목표, 기록)를 다시 읽습니다. 대부분의 모델에서는 이 반복에 대해 정가를 지불합니다. 하지만 K3에서는 그렇지 않습니다:
1Turn cost = fresh_tokens × $3/M + cached_tokens × $0.30/M23Real shape (800K stable context + 50K fresh per turn):4K3: $0.24 + $0.15 = $0.39/turn5Fable 5: 850K × $10/M = $8.50/turn
50턴의 야간 루프: K3는 약 $20, Fable 5는 약 $425. 이는 단순한 할인이 아닙니다. "그냥 실행하게 두는 것"과 "매의 눈으로 지켜봐야 하는 것"의 차이입니다.
한 가지 규칙: 매 턴마다 안정적인 컨텍스트를 동일한 접두사로 유지하고 작업은 마지막에 배치하여 캐시가 실제로 적중하도록 해야 합니다.

설정 A: Claude Code (5분 경로)
Claude Code를 사용한다면 루프는 내장되어 있으며, Moonshot의 공식 설정을 통해 K3가 그 아래에 위치합니다:
1export ANTHROPIC_BASE_URL=https://api.moonshot.ai/anthropic2export ANTHROPIC_AUTH_TOKEN=${YOUR_MOONSHOT_API_KEY}3export ANTHROPIC_MODEL=kimi-k34export ANTHROPIC_DEFAULT_OPUS_MODEL=kimi-k35export ANTHROPIC_DEFAULT_SONNET_MODEL=kimi-k36export ANTHROPIC_DEFAULT_HAIKU_MODEL=kimi-k37export CLAUDE_CODE_SUBAGENT_MODEL=kimi-k38export ENABLE_TOOL_SEARCH=false9export CLAUDE_CODE_AUTO_COMPACT_WINDOW=104857610claude
그러면 루프는 두 개의 명령어로 구성됩니다:
- /goal 은 완료 지점을 설정합니다: "tests/ 디렉토리의 모든 테스트 통과 및 커버리지 80% 이상 유지". Claude Code는 첫 번째 답변에서 멈추지 않고 이 목표를 향해 계속 작업합니다
- /loop 는 이를 반복적으로 만듭니다: 세션이 일정에 따라 또는 목표가 유지될 때까지 다시 실행됩니다
/status를 통해 K3를 사용 중인지 확인하세요(/model 메뉴에는 표시되지 않음). 설정에 포함된 1M 자동 압축 창은 긴 루프가 드물게 압축되도록 하여 반복 기록을 유지합니다.
설정 B: raw API 루프 (완전한 제어)
Claude Code 외부에서 루프를 사용하기 위한 완전한 최소 루프입니다. OpenAI 호환 가능:
1from openai import OpenAI23client = OpenAI(4 api_key=MOONSHOT_API_KEY,5 base_url="https://api.moonshot.ai/v1",6)78# Stable prefix: identical every turn = cache hits at $0.30/M9STABLE = f"""당신은 루프 안에서 작업하는 코딩 에이전트입니다.10GOAL: 아래 프로젝트의 모든 테스트를 통과시키세요.11PROJECT:12{project_dump}13RULES:14- 턴당 하나의 집중된 변경만 수행하세요15- 변경한 내용과 이유를 2줄로 설명하세요16- 테스트가 통과하면 정확히 다음과 같이 응답하세요: GOAL_REACHED17"""1819history = []20MAX_TURNS = 302122for turn in range(MAX_TURNS):23 result = run_tests() # your check: pytest, npm test, etc.24 if result.passed:25 print(f"Done in {turn} turns")26 break2728 response = client.chat.completions.create(29 model="kimi-k3",30 messages=[31 {"role": "system", "content": STABLE},32 *history[-6:], # last 3 exchanges, capped33 {"role": "user", "content":34 f"Turn {turn}. Test output:\n{result.output}\n"35 f"Fix the next failure."},36 ],37 )38 change = response.choices[0].message.content39 apply_change(change) # write the edit, commit to a branch40 history += [41 {"role": "user", "content": f"Turn {turn} test output given"},42 {"role": "assistant", "content": change},43 ]
세 가지 중요한 세부 사항:
- 확인은 코드로 이루어지며, 막연한 느낌이 아닙니다. run_tests()가 진행 상황을 결정하며, 모델은 스스로를 평가하지 않습니다
- 기록은 제한됩니다. 마지막 3개 교환만 포함하며, 안정적인 접두사가 지속적인 컨텍스트를 전달하고 캐시 친화적으로 유지됩니다
- 모든 변경 사항은 브랜치로 이동합니다. 루프가 10번 틀려도 메인 브랜치는 그 영향을 받지 않습니다
자리를 비우기 전의 보호 장치
- 예산 중단: 턴당 토큰 수를 계산하고 달러 한도에 도달하면 루프를 중단합니다. MAX_TURNS만으로는 충분하지 않으며, 한 번의 비대해진 턴이 일반적인 턴 10개보다 더 많은 비용을 소모할 수 있습니다
- 진행 중단: 동일한 테스트가 3턴 연속 실패하면 중단하고 플래그를 표시합니다. 수렴할 수 없는 루프는 예산을 정중하게 소모합니다
- K3의 한 가지 주의사항: 추론은 현재 max-only로 실행되므로, 모든 턴은 $15/M의 전체 생각(thinking) 출력을 전달합니다. 턴을 집중적으로 유지하고, 턴당 하나의 실패만 처리하면 출력 측면이 안정적으로 유지됩니다
일반적인 실수
- 모호한 목표. "코드 개선"과 같은 목표는 영원히 루프됩니다. 루프는 완료 지점을 확인할 수 있을 때만 유용합니다
- 모델이 스스로 평가하도록 두는 것. "제게는 맞아 보입니다"는 루프가 쓰레기를 배출하는 방법입니다. 검사자는 외부에 있어야 합니다: 테스트, 린터 또는 루브릭이 있는 두 번째 모델
- 캐시를 깨는 것. 접두사의 타임스탬프, 무작위 ID 또는 재정렬된 파일은 매 턴이 $0.30/M 대신 $3/M으로 청구되도록 만듭니다. 동일함은 동일함을 의미합니다
- 브랜치 규율 없음. 메인 브랜치에 대한 쓰기 권한이 있는 감독되지 않은 루프는 단계가 추가된 공포 스토리입니다
- 야간 실행부터 시작하는 것. 첫 번째 루프는 지켜보면서 10-15턴 실행하세요. 잠들기 전에 신뢰를 쌓으세요
15분 설정
- Moonshot API 키를 확보하고, 10-30% 보너스 기간 내에 충전하세요. 8월 11일까지 유효 (3분)
- 설정 A 또는 B를 선택하고 연결하세요 (5분)
- 실제 작은 작업에 대해 확인 가능한 목표 하나를 작성하세요: 실패하는 테스트, 린트 통과 등 (2분)
- 감독하에 10턴을 실행하고, 확인이 작업을 어떻게 이끄는지 지켜보세요 (4분)
- 비용을 확인하세요. 그런 다음 다음 루프의 규모를 결정하세요 (1분)
루프는 프로그래밍에서 가장 오래된 아이디어를 가장 새로운 도구에 적용한 것입니다. K3는 이를 실제로 사용할 수 있을 만큼 저렴하게 만들었습니다.
읽어주셔서 감사합니다!
저는 AI 및 바이브 코딩에 대한 일일 노트를 Telegram 채널에서 공유합니다: https://t.me/zodchixquant 🧠






