Improving Deep Agents with harness engineering
Quick Summary
LangChain은 gpt 5.2 codex를 고정한 채 트레이스 분석과 자기 검증을 중심으로 하네스를 개선해 deepagents cli의 Terminal Bench 2.0 점수를 52.8%에서 66.5%로 13.7%포인트 높이고 상위 5위권에 진입했다고 보고했다.
🖼️ 인포그래픽

🖼️ 4컷 인포그래픽

💡 한 줄 요약
LangChain은 gpt-5.2-codex를 고정한 채 트레이스 분석과 자기 검증을 중심으로 하네스를 개선해 deepagents-cli의 Terminal Bench 2.0 점수를 52.8%에서 66.5%로 13.7%포인트 높이고 상위 5위권에 진입했다고 보고했다.
📌 핵심 요약
- 실험은 머신러닝·디버깅·생물학 등 89개 과제로 구성된 Terminal Bench 2.0에서 진행됐다. Harbor가 Daytona 샌드박스와 실행·검증·채점을 조율하고, LangSmith가 에이전트 행동과 지연 시간·토큰 수·비용을 기록했으며, 개선 범위는 System Prompt, Tools, Middleware에 집중됐다.
- LangSmith 트레이스 분석을 Agent Skill로 구성해 실험 기록 수집, 병렬 오류 분석, 결과 종합, 하네스 수정을 반복했다. 이전 실행의 실패를 바탕으로 개선하되, 특정 과제에 대한 과적합은 일반화 저하와 다른 과제의 회귀를 일으킬 수 있다고 경고했다.
- 주요 개선은 계획·구현·검증·수정의 반복, 종료 전 자기 검증을 유도하는 PreCompletionChecklistMiddleware, 환경 정보를 주입하는 LocalContextMiddleware, 반복 편집 시 접근법 재검토를 유도하는 LoopDetectionMiddleware였다. 테스트 누락, 환경 탐색 오류, 시간 초과, 같은 실패 접근법의 반복을 줄이는 데 초점을 맞췄다.
- gpt-5.2-codex의 추론 예산은 시간 제한과 절충이 필요했다. xhigh만 사용한 실행은 시간 초과로 53.9%, high는 63.6%를 기록했고, 계획과 검증에 더 많은 추론을 배정하는 xhigh-high-xhigh 방식을 채택한 최종 구성은 66.5%에 도달했지만 예산 배분별 시험 차이는 크지 않았다.
- 이전 하네스를 사용한 Claude Opus 4.6 시험은 59.6%였으나 Codex와 같은 개선 반복을 적용하지 않아 모델 간 우열로 단정하기 어렵다. 글은 환경 맥락 제공·자기 검증·트레이스 피드백을 공통 원칙으로 제시하면서도 모델별 하네스 조정과 추가 연구가 필요하다고 강조했다.
🧩 주요 포인트
- 모델을 고정하고 하네스를 변경한 성과 → 도구·지시·실행 흐름도 에이전트 성능을 좌우하는 주요 최적화 대상이다.
- 실패 트레이스를 다음 수정에 연결하고 실행 중 테스트 피드백을 활용 → 하네스 개선 반복과 과제 내부의 자기 수정이 서로 보완한다.
- 추론 강화에는 시간 비용이 따르고 모델별 최적화 조건도 다름 → 최고 추론 설정이나 단일 하네스의 보편적 우위를 가정하기 어렵다.
🧠 상세 정리
1. 하네스 개선의 목표와 실험 조건
글은 하네스의 목적을 과제마다 들쭉날쭉하게 나타나는 모델의 지능을 원하는 작업에 맞게 이끄는 것으로 설명하며, 시스템 프롬프트·도구 선택·실행 흐름을 통해 과제 성능과 토큰 효율, 지연 시간 등을 최적화한다고 정의한다. LangChain은 모델을 gpt-5.2-codex로 고정하고 하네스만 수정해 deepagents-cli의 Terminal Bench 2.0 점수를 52.8%에서 66.5%로 13.7%포인트 높였다고 보고했다. 기본 구성은 당시 순위표에서 상위 30위권 바로 밖에 있었으며, 개선 후에는 상위 5위권에 진입했다. 평가에 사용한 Terminal Bench 2.0은 머신러닝·디버깅·생물학 등 여러 분야의 89개 과제로 구성되고, Harbor가 Daytona 샌드박스를 띄워 에이전트 실행과 검증·채점을 조율한다. 모든 에이전트 행동과 지연 시간·토큰 수·비용은 LangSmith에 기록했으며, 다양한 하네스 요소 중 실험의 초점은 System Prompt, Tools, Middleware로 좁혔다.
2. 트레이스 분석을 반복 가능한 개선 절차로 구성
모델 내부는 해석하기 어려운 블랙박스에 가깝지만, 입력과 출력으로 남는 트레이스는 실패 양상을 파악하는 근거가 될 수 있다는 것이 글의 출발점이다. 연구진은 분석을 반복 가능하게 만들기 위해 LangSmith에서 실험 트레이스를 가져오고, 병렬 오류 분석 에이전트를 실행한 뒤, 주 에이전트가 발견 사항과 제안을 종합하는 Agent Skill을 만들었다. 이어 피드백을 모아 하네스를 표적 수정했으며, 이러한 과정은 이전 실행의 실수에 집중하는 부스팅과 유사하다고 설명했다. 사람이 수정안을 검토하고 논의하면 도움이 되지만 필수는 아니며, 특정 과제에만 맞춘 변경은 일반화를 해치고 다른 과제에서 회귀를 일으킬 수 있다고 경고했다. 자동 분석은 수작업 시간을 수시간 줄이고 실험을 빠르게 시도하도록 도왔으며, 글 작성 당시 이 스킬은 일반적인 프롬프트 최적화에도 시험 중이고 추후 공개할 예정이었다.
3. 구현 후 종료하는 습관을 자기 검증 반복으로 전환
트레이스에서 가장 흔한 실패는 에이전트가 해법을 작성한 뒤 자신의 코드를 다시 읽고 괜찮아 보인다고 판단해 종료하는 패턴이었다. 글은 모델이 피드백을 받으면 실행 중에도 해법을 개선할 수 있지만, 구현과 검증을 반복하는 흐름에 자연스럽게 들어가지는 않는다고 지적한다. 이를 보완하기 위해 시스템 프롬프트에 과제와 코드베이스를 살펴 검증 방법까지 계획하고, 테스트를 염두에 두고 구현하며, 정상 경로와 경계 사례를 시험한 뒤 오류를 수정하는 절차를 넣었다. 검증에서는 테스트의 전체 출력을 읽고 자신이 작성한 코드가 아니라 원래 요구사항과 결과를 비교하며, 실패하면 명세를 다시 확인하도록 강조했다. 또한 PreCompletionChecklistMiddleware가 종료 직전에 개입해 과제 명세에 대한 검증을 상기시키도록 했는데, 이는 종료 시 훅으로 실행을 이어 가게 하는 Ralph Wiggum Loop와 유사한 방식이라고 설명했다.
4. 환경·평가 기준·시간 제약을 맥락으로 제공
Terminal Bench 과제에는 디렉터리 구조와 기본 도구, 엄격한 시간 제한이 있으므로, 에이전트가 이를 이해하도록 맥락을 전달하는 것도 하네스 설계의 역할이라고 설명한다. LocalContextMiddleware는 시작 시 cwd와 주변 상위·하위 디렉터리를 파악하고 bash 명령으로 Python 설치 등 사용 가능한 도구를 찾아, 환경 탐색과 검색 과정에서 발생할 수 있는 오류를 줄인다. 프롬프트에는 결과물이 프로그램에 의한 테스트로 평가된다는 점을 알리고, 명세에 나온 파일 경로를 정확히 따르며 정상 경로뿐 아니라 경계 사례도 고려하도록 안내했다. 글은 이런 테스트 기준 준수가 시간이 지나며 부실한 코드가 쌓이는 현상을 막는 강력한 전략이라고 주장한다. 시간 추정이 서툰 에이전트에는 남은 시간에 관한 경고를 주입해 구현을 마무리하고 검증으로 전환하도록 유도했으며, 실제 코딩에 항상 엄격한 제한이 있는 것은 아니지만 제약을 알려야 그 안에서 행동할 수 있다고 덧붙였다.
5. 실패한 접근법의 반복을 감지하고 재검토 유도
에이전트는 한 번 계획을 정하면 시야가 좁아져, 작동하지 않는 접근법을 조금씩 바꾸면서 계속 반복하는 경우가 있었다. 일부 트레이스에서는 같은 실패 접근법을 10회 넘게 변형하는 이른바 ‘doom loop’가 관찰됐으며, 연구진은 이를 단순한 재시도만으로 해결하기 어려운 행동 패턴으로 다뤘다. LoopDetectionMiddleware는 도구 호출 훅을 통해 파일별 편집 횟수를 추적하고, 같은 파일을 N회 편집하면 접근법을 재검토하라는 맥락을 추가한다. 이 장치는 반복에서 벗어나도록 도울 수 있지만, 모델이 자신의 접근법을 옳다고 판단하면 계속 같은 경로를 따를 수 있으므로 회복을 보장하지는 않는다. 글은 이를 현재 모델의 한계를 보완하는 설계상의 휴리스틱으로 규정하며, 오늘날의 자율 실행에는 유용하지만 모델이 발전하면 이러한 보호 장치가 불필요해질 가능성이 있다고 설명한다.
6. 추론 예산을 계획·구현·검증에 다르게 배분
추론 모델은 장시간 자율 실행할 수 있지만, Terminal Bench의 시간 제한 아래에서는 매 단계에 최대 추론 예산을 쓰는 것이 오히려 불리할 수 있다. gpt-5.2-codex에는 low·medium·high·xhigh의 네 모드가 있으며, 더 많은 추론은 각 단계를 신중하게 평가하도록 돕는 대신 토큰과 시간을 2배 넘게 소비할 수 있다고 설명했다. 연구진은 어려운 문제를 충분히 이해하는 초기 계획과 실수를 찾아 제출을 마무리하는 후기 검증에 추론을 더 배정하고, 중간 구현에는 high를 사용하는 xhigh-high-xhigh ‘reasoning sandwich’를 기준으로 삼았다. xhigh만 사용한 실행은 시간 초과 때문에 53.9%에 그쳤고 high는 63.6%였으며, 최종 구성은 66.5%에 도달했지만 추론 예산 배분별 시험 차이가 크지는 않았다고 밝혔다. 글은 Claude와 Gemini에서 볼 수 있는 모델 자체의 Adaptive Reasoning을 자연스러운 방향으로 제시하고, 여러 모델을 쓰는 하네스에서는 큰 모델이 계획한 뒤 작은 모델로 구현을 넘기는 방식도 가능성으로 언급했다.
7. 공통 설계 원칙과 모델별 조정의 필요성
실험에서 도출한 공통 원칙은 디렉터리와 도구, 코딩 관행과 문제 해결 전략을 미리 제공해 불필요한 탐색·계획 오류를 줄이고, 테스트와 수정을 통해 첫 번째 그럴듯한 해법을 재검토하게 만드는 것이다. 특히 사람이 개입하지 않는 자율 코딩에서는 자기 검증이 중요하며, 트레이스를 통해 도구 문제와 추론 문제를 함께 분석해야 한다고 강조했다. 필요한 도구나 사용 지침이 없어 잘못된 경로로 들어갈 수도 있으므로, 실패를 모델의 추론 능력만으로 설명해서는 원인을 놓칠 수 있다는 취지다. 한편 Codex와 Claude의 프롬프팅 지침이 다르다는 점을 들어 모델별 하네스 조정의 필요성을 설명했으며, 이전 하네스로 실행한 Claude Opus 4.6은 59.6%를 기록했다고 밝혔다. 이 결과는 Codex보다 낮았지만 Claude에는 같은 개선 반복을 적용하지 않았으므로, 글은 공통 원칙의 활용과 함께 대상 모델·과제에 맞춘 여러 차례의 하네스 개선을 권했다.
8. 남은 연구 과제와 공개 방향
글은 이번 결과를 하네스 설계의 완성으로 제시하지 않고, 모델과 실행 시스템의 조합을 더 연구해야 한다는 방향으로 마무리한다. 후속 연구 주제로는 Codex·Gemini·Claude를 함께 사용하는 다중 모델 시스템, 에이전트가 과제 수행을 통해 자율적으로 개선하도록 돕는 지속 학습용 메모리 요소, 하네스 변경 효과를 여러 모델에 걸쳐 측정하는 방법을 꼽았다. 에이전트 자체를 개선하는 외부 반복 과정에서는 방대한 트레이스에서 정보를 더 효율적으로 추출하기 위한 RLMs 같은 방법도 살펴보고 있다고 밝혔다. 현재의 맹목적인 재시도나 검증 누락을 보완하는 장치는 유용하지만, 향후 모델이 발전함에 따라 그 필요성이 줄어들 수 있다는 관점을 유지했다. 연구진은 하네스 개선과 연구 공개를 계속하겠다고 밝혔으며, 커뮤니티와 공유할 트레이스 데이터셋을 만들었고 Deep Agents는 Python과 Javascript로 제공되는 오픈소스라고 덧붙였다.
🧾 핵심 주장 / 시사점
- 이번 실험은 모델을 바꾸지 않아도 실행 환경과 피드백 구조를 개선해 성능을 높일 수 있음을 보여준다. 다만 여러 변경을 누적한 결과이므로 개별 장치가 13.7%포인트 개선에 기여한 정도는 제시되지 않았다.
- 테스트는 결과를 판정하는 수단인 동시에 실행 중 해법을 수정하게 하는 피드백이다. 트레이스 분석은 다음 하네스 변경을 이끌어, 과제 내부와 실험 사이의 두 개선 반복을 연결한다.
- 추론 예산은 높을수록 항상 유리하지 않으며 시간 제한과 함께 판단해야 한다. 모델별 개선 조건도 달랐으므로 특정 추론 배분이나 모델 순위를 보편적인 결론으로 확대하기 어렵다.
✅ 액션 아이템
- LangSmith 트레이스의 실패 분석을 바탕으로 System Prompt, Tools, Middleware의 수정 효과와 과적합·회귀 여부를 검토.
- PreCompletionChecklistMiddleware, LocalContextMiddleware, LoopDetectionMiddleware를 활용한 자기 검증·환경 맥락 제공·반복 접근법 재검토의 적용 가능성을 평가.
- gpt-5.2-codex의 xhigh-high-xhigh 방식은 시간 초과와 함께 비교하고, Claude Opus 4.6에도 모델별 하네스 개선 반복을 적용해 성능을 재평가.
❓ 열린 질문
- Terminal Bench 2.0에서 확인한 13.7%포인트 개선은 다른 과제에서도 과적합이나 회귀 없이 재현되는가?
- 추론 예산 배분별 시험 차이가 크지 않았다면, xhigh-high-xhigh의 효과와 다른 하네스 변경의 효과는 각각 어느 정도인가?
- Claude Opus 4.6에 Codex와 같은 개선 반복을 적용하면 59.6%의 성능과 모델 간 격차는 어떻게 달라지는가?