하네스가 묶어내는 네 층위
하네스는 시스템 프롬프트 한 장이 아니라 도구 레지스트리, 컨텍스트 관리자, 안전 감독 계층, 피드백 루프를 함께 엮은 실행 환경입니다. Anthropic 응용 AI 팀은 이 설계의 원칙을 "어떤 목표를 달성할 가능성을 최대화하는 가장 작은 고신호 토큰 집합을 찾는 일"로 정의합니다. 도구 설명 문구 하나, 불필요한 예시 하나가 모두 제한된 주의 예산을 깎아 먹기 때문에, 하네스는 프롬프트를 잘 쓰는 기술이 아니라 무엇을 모델에 노출할지 결정하는 아키텍처 문제로 다뤄야 합니다.
컨텍스트는 다 써버리면 끝나는 자원이다
장시간 실행되는 에이전트일수록 각 단계가 다음 단계의 입력이 되므로, 압축·정리·오프로드 없이는 컨텍스트 창이 그대로 넘칩니다. Anthropic은 이 문제에 대한 대응을 세 갈래로 나눕니다 — 오래된 상호작용을 핵심 결정만 남기고 요약하는 압축(compaction), 컨텍스트 창 밖에 상태를 남겨 필요할 때 다시 불러오는 구조화된 메모, 그리고 깊이 있는 탐색을 메인 루프에서 떼어내는 서브에이전트 격리입니다. 세 전략 모두 컨텍스트 총량을 줄이는 게 아니라, 어느 시점에 무엇을 지우고 무엇을 남길지를 미리 규칙으로 정해 두는 작업입니다.
설계에서 운영까지: 장기 실행 하네스가 지켜야 할 체크리스트
기획 단계에서는 하네스를 초기화 에이전트와 실행 에이전트로 나누는 이원 구조부터 정합니다. 초기화 에이전트가 프로젝트 시작 시 한 번 돌며 요구사항을 feature-list.json 같은 구조화 파일로 펼치고 init.sh로 부팅 절차를 남기면, 이후 세션은 매번 새로 상황을 파악하지 않고 그 파일을 읽고 시작합니다. 이때 컨텍스트 사용률이 가용 창의 70%를 넘는 시점에 압축을 자동 트리거하도록 임계값을 코드로 고정해 두는 것이 목표 수치의 출발점입니다.
세션 사이의 연속성은 문서 하나로 만들어지지 않고, 진행 기록 파일과 커밋 이력이 함께 있어야 복원됩니다. 매 세션이 끝날 때 무엇을 했고 무엇이 남았는지 짧게 남기는 진행 노트(claude-progress.txt 방식)를 커밋과 함께 저장하면, 다음 세션은 대화 기록 없이도 git 로그와 노트만으로 상태를 재구성합니다. 체크포인트 커밋은 세션당 최소 1회를 원칙으로 하고, 테스트를 통과한 지점에서만 커밋하도록 게이트를 둡니다.
장기 루프에서 반복되는 실패는 세 가지로 좁혀집니다. 첫째, 목표에 도달하기 전에 스스로 끝냈다고 판단하는 조기 종료. 둘째, 복잡한 작업을 하위 단계로 쪼개지 못해 한 컨텍스트 창 안에서 모든 걸 처리하려다 무너지는 분해 실패. 셋째, 여러 컨텍스트 창에 걸쳐 작업이 이어지면서 앞선 결정과 뒤의 판단이 어긋나는 불일치입니다. 세 유형 모두 증상은 다르지만 원인은 같습니다 — 하네스가 상태를 압축·전달하는 규칙을 갖추지 못한 것입니다.
복구는 재시도만으로 해결되지 않습니다. 컨텍스트가 임계값을 넘으면 즉시 압축을 실행해 핵심 결정만 남기고, 압축으로도 못 살릴 세부 정보는 진행 노트에 구조화해 다시 주입합니다. 깊은 탐색이 필요한 하위 작업은 메인 루프에서 서브에이전트로 격리해, 실패하더라도 메인 컨텍스트가 오염되지 않게 막습니다. 반복 실패가 임계치를 넘으면 이전 체크포인트 커밋으로 되돌리고 사람에게 확인을 요청하는 중단 조건도 미리 코드로 선언해 둡니다.
배포 전에는 세션이 끊긴 채 재기동되는 시나리오, 컨텍스트가 강제로 압축되는 시나리오를 각각 재현해 진행 노트만으로 복원되는지 확인합니다. 로그에는 세션 ID, 턴별 컨텍스트 토큰 사용량, 체크포인트 커밋 해시, 압축 발생 횟수를 표준 필드로 남기고, 진행 노트나 로그에 사용자 식별 정보가 남지 않도록 저장 전에 마스킹을 거칩니다.
생성을 맡은 에이전트가 자신의 결과물을 스스로 채점하면 통과율이 부풀려지는 경향이 있어, 평가는 별도 서브에이전트가 맡는 구조가 안전합니다. 실행 에이전트와 평가 에이전트를 분리하면 한쪽이 과도하게 관대해지는 편향을 다른 쪽이 걸러내는 정직한 피드백 루프가 만들어집니다.
새 모델로 갈아탈 때마다 하네스를 그대로 재사용하지 않고 부검부터 합니다. 이전 모델의 한계를 우회하려고 넣었던 지침이나 도구가 더는 성능에 기여하지 않으면 걷어내고, 새 모델이 잘 다루는 능력에 맞춰 항목을 새로 채웁니다. 주간 단위로 실패 유형 상위 몇 가지를 추려 하네스 변경 이력에 별도로 남기면, 다음 부검 때 무엇을 먼저 걷어낼지 근거가 쌓입니다.
바로 쓰는 체크리스트
프롬프트 한 장을 다듬는 대신 하네스 전체를 설계 대상으로 삼아야 장기 실행 에이전트가 세션을 넘나들며 버팁니다. 컨텍스트 사용률 70% 임계값에서 압축을 트리거하고, 세션마다 진행 노트와 커밋으로 체크포인트를 남기고, 생성과 평가를 분리한 뒤, 모델을 바꿀 때마다 하네스를 부검하는 흐름을 갖추면 됩니다.