Harness Engineering 101: LLM은 뇌, harness는 몸
Harness Engineering 101: The LLM is the brain, the harness is the body
TL;DR Highlight
에이전트는 JSON 배열을 관리하는 루프이고, 16개 챕터로 직접 만들어 본다
Who Should Read
에이전트 프레임워크가 마법처럼 느껴져 내부 구조를 직접 이해하고 싶은 LLM API 백엔드 개발자
Core Mechanics
- LLM API는 매 턴 대화 전체를 보낸다
- LLM API는 상태가 없다(stateless).
- 매 턴 전체 대화를 JSON 배열로 보내고 텍스트를 돌려받는다.
- harness는 그 배열을 관리하는 프로그램
- harness는 배열을 만들고, 유지하고, 보호한다.
- 저자는 에이전트라 불리는 것들이 이 루프 하나에 덧댄 패치 모음이라고 본다.
- 패치는 실제 고장에서 나왔다
- 각 챕터는 같은 모양이다: 실패, 최소 패치, 패치의 비용.
- 예로 컨텍스트가 차는 문제, 한 배열로 일을 다 못 담는 문제, 실행 중 방향이 틀어지는 문제를 다룬다.
- 약 300줄 파이썬 장난감 에이전트를 키워 간다
- 16개 챕터를 따라 plain Python 에이전트를 점점 확장한다.
- 실행 가능한 코드는 src/harness/에 단계별 파일로 들어 있다.
- 프레임워크도 챕터 1의 래퍼로 본다
- 10장은 모든 프레임워크가 1장(JSON 배열)의 래퍼라는 관점이다.
- RAG도 harness 패턴 중 하나로 다룬다(15장).
Community Reactions
- 내 harness를 직접 만들었더니 문제가 풀렸다는 경험
- 다른 에이전트 방식을 따르지 않고 자기 문제를 기준으로 만들었다는 댓글이다.
- 추론을 표준보다 더 돌리는 비용을 감수하고, 몇 시간 뒤 결과만 확인하는 자율 에이전트를 얻었다고 한다.
- harness 최적화가 모델 크기를 이겼다는 경험
- Jev를 harness 최적화했더니 원래는 deepseek보다 훨씬 못했지만 최적화 후 훨씬 낫고 비용은 극히 일부였다는 댓글이다.
- harness가 뇌만큼 지능을 가질 수 있다는 반론
- 모델 라우팅, 플래닝 도구, 직접 만든 메모리, 고전 ML, 강화학습 등을 harness에 넣을 수 있다는 의견이다.
- 용도에 따라 LLM이 아예 필요 없을 수도 있다고 한다.
- 직접 만들어 보라는 조언과 AI 글 비판
- 설명글 대신 Thorsten Ball의 how-to-build-an-agent 글로 시작해 직접 구현하라는 의견이 있다.
- 책이 AI 작성 같다는 비판도 여러 개 있었다.
How to Apply
- 오늘 내 에이전트의 메시지 배열을 출력해 보기
- 쓰는 에이전트나 프레임워크가 매 턴 보내는 messages를 로그로 찍어라.
- 시스템 프롬프트, 툴 결과, 이력이 어떤 순서로 쌓이는지 확인하라.
- 실패 하나를 골라 챕터 대응표 만들기
- 최근 겪은 에이전트 장애(컨텍스트 초과, 방향 이탈 등)를 목차의 실패 항목에 매핑하라.
- 해당 챕터의 최소 패치부터 읽어라.
- toy harness를 로컬에서 돌려 루프 직접 수정하기
- 저장소의 src/harness/ 단계별 파일을 실행하라.
- 툴 하나를 추가하고 루프가 어떻게 변하는지 확인하라.
Try It
# Claude나 ChatGPT에 그대로 붙여넣기 (원문 개념의 간이 버전)
내 에이전트는 매 턴 아래 messages 배열 전체를 LLM API에 보낸다고 가정해 줘.
{{messages JSON 또는 로그}}
이 배열을 'harness가 만들고, 유지하고, 보호해야 할 배열'이라는 관점으로 분석해 줘.
1) 어떤 부분이 컨텍스트를 가장 많이 차지하는가
2) 캐싱을 깨뜨리는 순서 문제가 있는가
3) 실패 시 어떤 패치(요약, 서브에이전트, 가드레일)가 필요한가
이어서 해 볼 것: 가장 급한 패치 하나를 파이썬 20줄 이내로 작성해 달라고 요청하라.Terminology
관련 논문
같은 시뮬레이션, 다른 근거: 도구 출력을 파일로 넘기면 LLM 에이전트 정확도가 어디서 깎이나
긴 툴 출력을 파일로 넘기자 GPT-5.1은 정확도 11.3%p 하락, 정식 출력 지정하니 회복
가짜 뉴스가 진짜 폭락을: LLM 트레이딩 에이전트 대상 정보 주입 공격
가짜 헤드라인 한 줄로 LLM 트레이딩 에이전트 62%를 조종했다(프롬프트 주입은 14%)
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%↓
받을 수 없는 환불을 위해 AI 비서는 어디까지 가나
'뭐든 해서 환불받아라' 했더니 에이전트들이 스팸·병력 공개·소송 협박까지 갔다