에이전트가 흔들릴 때 제일 먼저 나오는 반응은 모델이 별로인가?다.
근데 실전에서는 그보다 먼저 볼 게 있다.
모델이 아니라 프롬프트, 루프, 하니스다.
같은 모델이어도 결과가 안정적인 팀이 있고, 같은 모델인데도 매번 삐끗하는 팀이 있다.
차이는 보통 모델명이 아니라 실행 계층에서 난다.
이 글은 코딩 에이전트 결과가 들쭉날쭉할 때 모델 교체 전에 무엇부터 봐야 하는지 TECHTAEK 운영 체크리스트로 정리한 글이다.
이 글이 필요한 사람
- Claude Code, Codex, Copilot 같은 에이전트를 팀에서 쓰는 사람
- 결과가 흔들릴 때마다 모델 이름부터 바꾸는 사람
- 같은 프롬프트인데도 출력 품질이 들쭉날쭉한 사람
- 하니스, 루프, 메모리, 도구 경계가 헷갈리는 사람
- 운영팀 입장에서 어디가 병목인지 먼저 잡고 싶은 사람
Quick Answer
에이전트가 흔들리면 순서는 대체로 이렇다.
- 프롬프트가 작업을 충분히 좁혔는가
- 루프가 반복 실행에서 같은 경로를 타는가
- 하니스가 리포와 도구, 승인, 메모리를 제대로 받쳐주는가
- 그래도 안 되면 그때 모델을 의심한다
즉 모델은 마지막 체크다. 그 전에 작업 정의, 반복 구조, 실행 환경을 먼저 본다.
지금 결론
- 모델을 바꾸기 전에 프롬프트가 흔들리는지 본다
- 프롬프트가 멀쩡하면 루프의 반복 조건과 에러 복구를 본다
- 루프도 괜찮으면 하니스의 리포 컨텍스트와 도구 경계를 본다
- 하니스가 빈약하면 같은 모델도 엉성하게 보인다
- 하니스가 안정적이면 중간 모델도 충분히 일한다
3층 구조
1. 프롬프트
프롬프트는 무엇을 하라를 정한다.
- 목표가 좁은가
- 성공 조건이 적혀 있는가
- 하지 말아야 할 게 명시돼 있는가
- 결과 형식이 정해져 있는가
프롬프트가 넓으면 모델은 자꾸 멋있는 쪽으로 샌다.
2. 루프
루프는 어떻게 반복하라를 정한다.
- 실패했을 때 다시 시도하는가
- 중간 점검이 있는가
- 도구 호출 후 검증이 있는가
- 세션 메모리가 갱신되는가
루프가 없으면 좋은 프롬프트도 한 번 하고 끝난다.
3. 하니스
하니스는 어디서 돌리느냐를 정한다.
- 리포 상태를 읽는가
- 도구 접근이 제한돼 있는가
- 승인 경계가 분명한가
- 로그와 메모리가 남는가
하니스가 약하면 루프가 좋아도 실제 운영은 흔들린다.
흔들리는 이유
프롬프트가 흔들릴 때
- 작업 범위가 너무 넓다
- 목표와 산출물이 동시에 흔들린다
- 성공 조건이 없어서 모델이 자기 마음대로 한다
루프가 흔들릴 때
- 실패 후 재시도 규칙이 없다
- 결과 검증이 없다
- 동일 작업을 반복해도 상태가 갱신되지 않는다
하니스가 흔들릴 때
- 리포 컨텍스트가 반쯤만 읽힌다
- 도구 권한이 애매하다
- 승인 기록이 남지 않는다
- 세션이 길어질수록 메모리가 꼬인다
숫자 예시
| 구간 | 흔들릴 때 보이는 증상 | 먼저 볼 것 |
|---|---|---|
| 프롬프트 | 질문이 너무 넓다 | 성공 조건, 금지 조건 |
| 루프 | 같은 실수를 반복한다 | 재시도, 검증, 상태 갱신 |
| 하니스 | 같은 모델인데 팀별 결과가 다르다 | 컨텍스트, 권한, 로그 |
30분 디버깅 순서표
실전에서는 이걸 너무 길게 끌면 안 된다. 일단 30분 안에 어디 층이 문제인지 좁히는 게 먼저다.
| 시간 | 확인할 것 | 의미 |
|---|---|---|
| 0~10분 | 프롬프트와 산출물 정의 | 작업이 넓어서 흔들리는지 |
| 10~20분 | 루프의 재시도/검증/메모리 | 같은 실수를 반복하는지 |
| 20~30분 | 하니스의 권한/컨텍스트/로그 | 팀마다 결과가 달라지는지 |
이렇게 보면 좋은 점이 있다.
- 모델 탓을 가장 늦게 하게 된다
- 사람마다 다른 진단을 덜 하게 된다
- 나중에 운영 문서로 남기기 쉽다
특히 팀에서 에이전트를 여러 개 굴릴수록 이슈 재현 -> 층 분류 -> 수정 순서가 있어야 고장난 날 덜 난리 난다.
언제는 진짜 모델 문제를 의심해야 하나
하니스 찬양 글처럼 보이면 좀 웃기니까 이 얘기도 같이 해야 한다.
아래면 모델 문제를 의심할 만하다.
- 프롬프트가 좁고 성공 조건도 명확하다
- 루프가 검증/재시도/메모리까지 갖췄다
- 하니스 로그도 멀쩡하다
- 그런데도 특정 유형 작업만 계속 약하다
이때는 모델 교체 실험이 의미 있다.
반대로 아래면 모델 바꿔도 별 차이 안 날 가능성이 크다.
- 작업 정의가 계속 넓다
- 루프가 중간 검증 없이 끝난다
- 승인/권한/도구 경계가 애매하다
- 세션 메모리가 지저분하다
즉 모델은 중요하지만, 운영이 흔들릴 때 제일 마지막에 의심해도 늦지 않은 경우가 많다.
직접 운영 시 어디가 제일 귀찮나
1. 모델 탓이 제일 편하다
모델 탓은 쉽다. 원인을 바꾸는 척하기 좋기 때문이다.
근데 운영은 늘 같은 모델을 쓰는 게 아니다. 그래서 모델명만 바꾸면 원인 추적이 더 늦어진다.
2. 루프는 문서가 없으면 금방 망한다
루프는 코드보다 규칙이 중요하다.
- 언제 재시도하나
- 언제 중단하나
- 언제 사람에게 넘기나
이 셋이 없으면 루프는 그냥 반복 실수다.
3. 하니스는 좋아 보이지만 유지가 어렵다
하니스는 세팅하면 끝이 아니다.
- 도구가 바뀐다
- 리포 구조가 바뀐다
- 승인 정책이 바뀐다
그래서 하니스는 설정이 아니라 운영문서다.
실수 TOP
1. 모델만 바꾸는 것
결과가 흔들릴수록 모델만 갈아끼운다. 제일 쉬운 오답이다.
2. 프롬프트를 길게만 쓰는 것
길이는 길어져도 좁아지지 않는다.
3. 루프 검증을 생략하는 것
자동화가 편할수록 검증이 더 중요하다.
4. 하니스 로그를 안 남기는 것
나중에 누가 왜 이렇게 돌렸는지 아무도 모른다.
5. 도구 경계를 문서화하지 않는 것
권한은 세팅보다 문서가 먼저다.
FAQ
Q1. 그럼 모델은 별로 중요하지 않나?
아니다. 중요하긴 한데, 에이전트 운영에서는 하니스 영향이 더 크게 보일 때가 많다.
Q2. 초보 팀은 어디부터 시작하나?
프롬프트의 성공 조건부터다.
Q3. 루프와 하니스 차이가 뭐냐?
루프는 반복 규칙이고, 하니스는 실행 기반이다.
Q4. 제일 먼저 고칠 수 있는 건?
출력 형식과 검증 규칙이다.
다음에 읽을 글
- Claude Code 팀 온보딩 2026 — AGENTS.md·SKILL.md·hooks를 어떤 순서로 깔아야 덜 망할까
- LLM Wiki 2026 — RAG 안 붙이고도 개인 위키가 굴러가는 조건, second brain 운영 체크리스트
- OpenCode + oh-my-opencode 운영 체크리스트 2026 — 팀에서 실제로 굴릴 때 먼저 막히는 5가지