AI 에이전트의 핵심, 하네스(Harness)를 파헤치다!
AI 에이전트 시스템에서 모델을 감싸는 인프라인 하네스(Harness)의 개념을 정의하고, 핵심 구성 요소를 설명
LangChain의 사례를 통해 하네스 엔지니어링의 중요성을 강조하며, Terminal Bench 2.0에서 성능 향상을 입증
하네스는 파일 시스템, 샌드박스, 도구, 메모리 관리 등을 포함하며, 모델의 한계를 보완
모델이 똑똑해질수록 하네스는 모델을 확장하고 교정하는 용도로 사용되며, 모델과 하네스의 공진화(Co-evolution)가 일어남
하네스 엔지니어링은 모델의 지능을 중심으로 시스템을 설계하여 효율성을 극대화하며, LangChain은 관련 연구를 지속
하네스(Harness)의 정의와 역할
본문에 따르면 하네스(Harness)는 모델 그 자체가 아닌 모든 코드, 설정, 실행 로직을 의미하며, 모델에게 상태(State), 도구 실행, 피드백 루프(Feedback Loop) 등을 부여하여 에이전트(Agent)로 만든다.
시스템 프롬프트(System Prompt), 도구, 번들링된 인프라, 오케스트레이션 로직, 결정론적 실행을 위한 훅/미들웨어(Hook/Middleware) 등을 포함
모델의 지능을 중심으로 시스템을 설계하도록 강제하며, 에이전트의 행동을 하네스의 실제 기능으로 변환
하네스 엔지니어링은 인간이 에이전트의 행동을 유도하기 위한 사전 지식(Prior)을 주입하는 일이다.
파일 시스템(File System)의 핵심 프리미티브(Primitive) 역할
글에서는 파일 시스템(File System)이 하네스의 가장 근본적인 프리미티브(Primitive)라고 강조하며, 에이전트에게 데이터, 코드, 문서를 읽을 수 있는 작업 공간을 제공한다고 설명한다.
작업의 점진적 추가/삭제, 중간 산출물 저장, 세션 간 상태 유지, 협업 표면 제공
Git을 더해 버전 관리(Version Control)를 지원하고, 에이전트가 작업을 추적하고 에러를 롤백하며 실험을 브랜치로 나눌 수 있게 함
파일 시스템은 장기 작업(Long-term Task)을 지속 가능하게 담아 시간에 따른 진전 추적을 가능하게 한다.
샌드박스(Sandbox)를 활용한 안전한 실행 환경
본문은 샌드박스(Sandbox)가 에이전트에게 안전한 실행 환경을 제공하며, 로컬 대신 하네스가 샌드박스에 연결해 코드를 실행한다고 설명한다.
격리된 코드 실행(Isolated Code Execution)을 가능하게 하고, 보안 강화를 위해 허용 명령어 화이트리스트(Whitelist) 지정 및 네트워크 격리(Network Isolation)를 강제할 수 있음
확장성(Scalability)을 열어주어 필요에 따라 환경을 생성하고, 여러 작업에 병렬로 뿌리고, 정리 가능
샌드박스는 언어 런타임, 패키지 사전 설치, git, 테스트용 CLI, 웹 상호작용 및 검증용 브라우저 등 다양한 도구(Tools)를 포함한다.
컨텍스트 부패(Context Rot) 관리 전략
글에서는 컨텍스트 부패(Context Rot)를 해결하기 위한 하네스의 전략으로 Compaction, 도구 호출 오프로딩(Tool Call Offloading), 스킬(Skills)을 제시한다.
Compaction: 컨텍스트 윈도우가 가득 찼을 때 기존 컨텍스트를 덜어내고 요약하여 에이전트가 계속 작업하도록 지원
도구 호출 오프로딩: 큰 도구 출력은 파일 시스템에 옮겨두어 컨텍스트 윈도우(Context Window) 관리
스킬: 점진적 공개(Progressive Disclosure)를 통해 에이전트 시작 시 너무 많은 도구나 MCP 서버가 컨텍스트에 로드되어 성능이 떨어지는 문제를 해결
하네스(Harness)와 모델의 공진화(Co-evolution)
본문은 모델이 더 유능해질수록 하네스에 있는 일부 기능이 모델 안으로 흡수될 것이라고 예측하며, 모델과 하네스의 공진화(Co-evolution)를 강조한다.
모델은 계획 수립, 자기 검증, 장기 일관성 유지 등을 더 잘하게 될 것이고, 컨텍스트 주입과 같은 필요성은 줄어들 것
하네스 엔지니어링은 프롬프트 엔지니어링처럼 좋은 에이전트를 만드는 데 계속 유용할 가능성이 높음
하네스는 모델의 부족한 점을 보완하고, 모델의 지능을 중심으로 시스템을 설계하여 효율성을 극대화