에이전트는 모델이 아니다: 모델·추론 서비스·하니스 구분하기
Agent Is Not the Model
TL;DR Highlight
에이전트 시스템을 모델·추론 서비스·하니스로 나눠 보니 문제 층이 보인다
Who Should Read
LLM이 이상하게 동작할 때 모델 탓인지 코드 탓인지 몰라 헤매는 에이전트 개발자
Core Mechanics
- 에이전트 시스템은 3층 구조
- 모델 위에 추론 서비스가 있고, 그 위에 하니스(harness, 입력을 가공하고 도구를 붙이는 래퍼)가 있다.
- 이 셋이 함께 돌아가는 것이 에이전트 시스템이다.
- MCP와 Skills는 하니스의 일
- 모델은 MCP 서버나 Skill의 존재를 원래 알지 못한다.
- 하니스가 어떤 컨텍스트와 도구를 모델에 보여줄지 정한다.
- 같은 모델도 하니스에 따라 다르게 굴렀다
- Sonnet 같은 같은 모델도 하니스가 입력을 만들고 출력을 해석하는 방식에 따라 다르게 동작한다.
- 층 이름을 붙이면 고칠 곳이 보인다
- 느리거나 비싸면 추론 서비스나 모델 선택을 본다.
- 도구를 잘못 쓰면 하니스가 도구를 잘못 포맷하거나 응답을 잘못 파싱했을 가능성이 크다고 한다.
- 증상별 의심 층 표 제공
- 컨텍스트 누락과 도구 미제공은 하니스, 느린 추론은 추론 인프라, 높은 비용은 모델 선택이나 추론 서비스로 매핑한다.
- 하니스 로직은 오래 못 갈 수도 있다
- 모델이 똑똑해지면 Skills나 MCP 같은 지금의 하니스 로직이 덜 쓸모 있어질 수 있다고 쓴다.
Community Reactions
- 에이전트 정의가 제각각이라는 의견
- 에이전트는 LLM 채팅 루프에 도구 호출을 붙인 것이라는 의견이 있었다.
- 이 정의에서는 하니스가 따로 필요 없고, 루프를 돌리는 셸 스크립트 정도라는 주장이다.
- 표의 제품명이 모호하다는 지적
- Claude Desktop 안에는 하니스가 셋(Claude, Cowork, Code) 있고, Cursor와 ChatGPT도 제품 안에 여러 하니스가 있다는 의견이 있었다.
- 그래서 '추론 서비스'는 '기본 추론 제공자'가 더 정확하다는 의견도 나왔다.
- 층이 더 많다는 의견
- 애플리케이션, 오케스트레이터, 에이전트 인스턴스, 서비스 API, 모델 순으로 더 쪼개 보는 틀을 쓴다는 경험이 있었다.
- Claude Code의 서브에이전트는 컨텍스트 내용만 다른 포크에 가깝다는 경험도 나왔다.
- 애초에 혼동하는 사람이 없다는 반론
- 에이전트와 모델을 섞어 쓰는 사람을 본 적이 없다는 댓글이 여럿 있었다.
- 글에서 AI가 쓴 느낌이 난다는 의견도 있었다.
How to Apply
- 오늘 겪은 버그에 층 라벨 붙이기
- 최근 이슈 3개를 골라 글의 증상 표로 모델/하니스/추론 서비스 중 하나로 분류하라.
- 이슈 트래커에 layer 라벨을 달아라.
- 디버깅 전에 하니스 로그부터 열기
- 도구 호출이 깨지면 모델을 바꾸기 전에 도구 정의와 응답 파싱 코드를 먼저 확인하라.
- 같은 모델로 하니스만 바꿔 비교하기
- 프롬프트 템플릿이나 도구 목록만 바꿔 같은 입력으로 돌려라.
- 결과가 달라지면 모델이 아니라 하니스 문제로 기록하라.
- 팀 용어집에 네 용어 정의 넣기
- 모델, 추론 서비스, 하니스, 에이전트 시스템을 위키에 한 줄씩 적어라.
Try It
# Claude나 ChatGPT에 그대로 붙여넣기 (글의 증상-층 표를 프롬프트로 옮긴 것)
너는 LLM 에이전트 디버깅 도우미다. 아래 층 정의로 증상을 분류해라.
- 모델: 입력 토큰을 출력 토큰으로 바꾸는 함수
- 추론 서비스: 모델을 호스팅하고 사용량을 추적
- 하니스: 입력 가공, 출력 해석, 도구 연결
증상: {{증상 설명}}
사용 중인 도구: {{예: Claude CLI, 직접 만든 LangChain 에이전트}}
1) 가장 의심되는 층과 이유 2) 그 층에서 확인할 것 3가지 3) 다른 층일 가능성을 알려줘.
이어서 해 볼 것: 최근 이슈 3개로 반복해서 분류 결과를 비교해 봐라.Terminology
관련 논문
같은 시뮬레이션, 다른 근거: 도구 출력을 파일로 넘기면 LLM 에이전트 정확도가 어디서 깎이나
긴 툴 출력을 파일로 넘기자 GPT-5.1은 정확도 11.3%p 하락, 정식 출력 지정하니 회복
가짜 뉴스가 진짜 폭락을: LLM 트레이딩 에이전트 대상 정보 주입 공격
가짜 헤드라인 한 줄로 LLM 트레이딩 에이전트 62%를 조종했다(프롬프트 주입은 14%)
Harness Engineering 101: LLM은 뇌, harness는 몸
에이전트는 JSON 배열을 관리하는 루프이고, 16개 챕터로 직접 만들어 본다
Harness²: 에이전트 harness를 스스로 고쳐 쓰는 재귀 최적화 프레임워크
모델은 고정하고 harness를 재귀로 고쳤더니 벤치마크 점수가 최대 11.8%p 올랐다
해고된 Savannah 경찰관, ICE 요원 남편에게 Flock 계정 공유
경찰관이 Flock 계정을 남편(ICE 요원)에게 공유했고, 감사에서 983건 검색이 드러나 해고됐다
tmux와 Claude Code: 세션, send-keys, 그리고 한계선
tmux로 Claude Code 여러 개를 돌리면 편하지만 에이전트 4개쯤에서 한계가 온다
Hybrid Reasoning Agents: 잠재 공간에서 생각하고 텍스트로 행동하는 LLM 에이전트
잠재 공간 추론과 텍스트 도구 호출을 섞었더니 성능 10.4%↑, 토큰 최대 54.7%↓