지금까지 에이전트를 개선한다는 건 사람이 프롬프트를 다듬고 도구를 붙였다 떼는 일이었습니다. 최근 공개된 하네스들은 그 손보는 일 자체를 에이전트에게 넘기죠.

OpenAI 출신 연구자 릴리안 웡이 하네스 엔지니어링과 재귀적 자기개선(RSI)을 잇는 정리 글을 냈습니다. 비슷한 시기에 Prime Intellect는 그 아이디어를 구현한 코딩 하네스를 오픈소스로 풀었고, 자기진화가 왜 불안정한지 파고든 논문도 나왔죠. 이론과 제품, 남은 문제가 한 줄로 이어지는 모양새입니다.
출처:
- Harness Engineering for Self-Improvement – Lil’Log
- Prime Agent: A self-improving RLM agent – Prime Intellect
- DREvo: Distilling Recalibrated Historical Experience for Harness Self-Evolution – arXiv
하네스는 프롬프트 템플릿이 아니다
먼저 용어부터. 하네스는 원 모델을 둘러싸고 실행을 조율하는 시스템입니다. 모델이 어떻게 생각하고 계획할지, 어떤 도구를 호출할지, 컨텍스트를 어떻게 인식하고 관리할지, 산출물을 어디에 남기고 결과를 어떻게 평가할지를 결정하죠.
2023년쯤의 “에이전트 = LLM + 메모리 + 도구 + 계획 + 행동”과는 다릅니다. 여기에 워크플로 설계와 평가, 권한 통제, 영속 상태 관리가 더 붙거든요. 프롬프트 템플릿보다는 런타임이나 소프트웨어 시스템 설계에 가까운 물건이 됐습니다.
웡이 든 비유는 운영체제입니다. OS가 복잡한 로직을 감추고 인터페이스는 단순하게 유지하듯, 하네스도 그래야 한다는 겁니다. 실제로 반복되는 설계 패턴이 셋 있죠.
- 워크플로 자동화 — 계획, 실행, 관찰과 테스트, 개선을 목표 달성까지 도는 루프. 정적 프롬프트가 아니라 런타임 안에서 모델이 자기 궤적과 실패 사례를 분석합니다.
- 파일 시스템을 영속 메모리로 — 실험 로그와 코드 diff, 에러 트레이스는 컨텍스트 창보다 훨씬 길어지죠. 전부 컨텍스트에 이고 가는 대신 파일로 남깁니다.
- 서브에이전트와 백그라운드 작업 — 가설 여러 개를 병렬로 돌리되, 병렬성을 명시적이고 들여다볼 수 있게 만드는 게 핵심입니다.
세 번째의 단서가 특히 실무적입니다. 서브에이전트 결과가 휘발성 대화 컨텍스트에만 남으면 금세 쓸모없어지고 보이지도 않게 되죠. 파일과 로그로 저장해야 중단 뒤에 복구되고, 모델이 자기 실행 이력을 되짚을 수 있습니다.
최적화 대상이 옮겨가고 있다
웡은 하네스 시스템에서 무엇을 최적화하는가의 흐름을 이렇게 정리합니다. 프롬프트에서 구조화된 컨텍스트로, 다시 워크플로로, 하네스 코드로, 그리고 옵티마이저 코드로. 모델이 강해질수록 더 복잡한 대상을 더 일반적인 방법으로 다루게 된다는 얘기죠.
RSI라고 하면 모델이 자기 가중치를 직접 고쳐 쓰는 장면을 떠올리기 쉽습니다. 웡의 예측은 다르죠. 가까운 경로는 하네스가 먼저 메타 방법론 쪽으로 진화하는 것이라고 봅니다. 답을 잘 내는 게 아니라, 답을 잘 내는 기계 자체를 개선하는 방향이고요. 그러면 성숙한 하네스가 오토리서치를 굴리고, 그 결과로 똑똑해진 모델이 다시 하네스의 과잉 설계를 막아주죠.
결국 상당수의 하네스 개선은 모델 행동 안으로 흡수될 겁니다. 프롬프트 엔지니어링이 지나온 길과 같죠. 수작업 프롬프트 요령은 덜 중요해졌지만, 목표와 제약과 맥락과 평가 기준을 지정해야 할 필요 자체는 사라지지 않았으니까요.
Prime Agent, 하네스가 자기 상태를 CRUD한다
Prime Intellect가 공개한 Prime Agent는 그 예측을 제품으로 옮긴 사례입니다. 추상화가 둘이죠.
재귀 언어 모델(RLM) 은 컨텍스트를 변수로, 서브에이전트 위임을 REPL 안의 함수 호출로 취급합니다. 모델의 유일한 도구가 IPython 커널이고, 자기 대화 이력과 서브에이전트, 도구에 프로그래밍으로 접근하죠. 긴 세션에서도 과거 정보를 변수에 담아둔 채 다룰 수 있는 구조입니다.
Continual Harness 는 여기서 한 발 더 갑니다. 하네스 자신의 상태, 그러니까 프롬프트와 스킬, 메모리, 서브에이전트를 에이전트가 실행 도중에 만들고 읽고 고치고 지울 수 있게 열어둔 구조입니다. 지속형 서브에이전트를 띄워놓고 나중에 메시지를 보내거나, 아예 다른 Prime Agent 세션과 직접 대화할 수도 있습니다.
이 설계의 문제의식은 분명합니다. 기존 하네스는 이전 세대 모델의 능력에 맞춰 만들어졌고, 고정된 도구 호출 스키마와 컨텍스트 압축이 모델로 하여금 자기 발판을 활용하기보다 우회하게 만든다는 것.
그런데 자기진화는 아직 출렁인다
DREvo 논문이 짚는 지점이 여기입니다. 하네스 자기진화는 과거 시행 경험을 모아 다음 하네스를 제안하고 평가하고 개선하는 방식인데, 쌓인 경험이 늘 안정적인 탐색 지침이 되지는 않죠. 반복할 때마다 성능이 크게 출렁여서, 진화 예산이 제한된 상황에서는 좋은 하네스를 안정적으로 찾아내기 어렵습니다.
저자들이 지목한 한계는 둘입니다. 과거 경험이 지금의 하네스에도 여전히 유효한지 다시 판단하는 장치가 없다는 것, 그리고 유효하다고 판단된 경험을 실제 탐색 방향으로 옮기는 명시적 방법이 없다는 것.
DREvo는 함수 수준에서 증거를 고정하고, 상태에 따라 증거를 재보정하고, 역할별로 탐색 의도를 증류하는 방식으로 이 둘을 메웁니다. 다섯 개 벤치마크 전부에서 가장 높은 정확도를 냈고, 도메인 추론에서 평균 16.2%, 에이전틱 과제에서 14.2% 개선했다고 보고했죠. 다만 저자들이 직접 낸 수치이므로 독립 재현은 따로 봐야 합니다.
도구를 고르는 기준이 바뀐다
개인 입장에서 이 흐름이 닿는 지점은 도구 선택입니다. 지금까지 코딩 에이전트를 고르는 기준은 대체로 어떤 모델을 쓰느냐였죠. 하네스가 최적화 대상이 되면 질문이 바뀝니다. 이 도구가 내 작업 방식을 학습해서 스스로 조정하는가, 아니면 내가 매번 설정을 다시 맞춰줘야 하는가.
당장 Prime Agent 같은 걸 붙여 쓸 필요는 없습니다. 다만 세 가지 패턴은 지금 쓰는 도구에도 그대로 적용되죠. 긴 작업의 상태를 대화창이 아니라 파일에 남기고 있는가, 병렬로 돌린 서브에이전트의 결과를 나중에 들여다볼 수 있는가, 실패한 궤적이 다음 시도에 반영되는가. DREvo가 보여준 건 마지막 항목이 사람에게도 어렵다는 사실입니다. 지난번에 안 됐던 방법이 이번에도 안 될 거라는 보장은 없으니까요.

답글 남기기