카파시의 autoresearch와 AgentHub, 그리고 Anthropic의 에이전트 인프라 문서들을 한 줄에 놓고 읽었어요. 각각은 따로 나온 물건인데 이어 붙이면 하나의 질문이 보여요. 에이전트를 여럿 굴릴 때 병목은 다음 모델 호출이 아니라 기억과 평가를 어디에 두느냐라는 거예요. 이 연결은 어느 한 문서의 주장이 아니라 제 독해라는 걸 미리 밝혀둬요. 관측을 어텐션 대신 가중치 갱신으로 저장하는 RoboTTT의 빠른 가중치가 로봇 정책 안의 기억 배치 문제였다면, 이 글은 에이전트 시스템 바깥의 같은 문제예요.
루프: 평가를 하네스에 박아요
autoresearch는 언어모델에게 소규모 GPU 학습 코드를 스스로 개선하게 시키는 저장소예요. 구조가 의도적으로 작아요. 저장소에서 중요한 파일은 셋뿐인데, 데이터 준비와 평가 유틸리티를 담아 에이전트가 못 건드리는 prepare.py, 에이전트가 편집하는 유일한 실험 표면인 train.py, 그리고 연구 과정과 제약을 자연어로 적은 program.md예요.
루프는 단순해요. 변경을 하나 제안하고, 고정된 5분 예산으로 학습을 돌리고, val_bpb라는 검증 지표를 재서, 좋아졌으면 커밋을 유지하고 나빠졌으면 되돌려요. 이 속도면 시간당 12개 안팎, 자는 동안 100개 안팎의 실험이 돌아가요.
여기서 눈여겨볼 건 성과 수치가 아니라 설계 조건이에요. 산출이 지표로 검증 가능하고, git 리셋으로 되돌릴 수 있고, 5분이라는 짧은 지평으로 피드백이 잦고, 저장소가 행동 공간을 좁혀요. 사람의 판단이 필요한 부분을 미리 하네스에 박아두면, 그 안에서는 에이전트가 사람 없이 밤새 돌 수 있다는 거예요.
스웜: 병합을 버리고 계보를 남겨요
다음 단계로 카파시가 내놓은 스케치가 AgentHub예요. 슬로건이 방향을 다 말해요. GitHub은 사람을 위한 것이고 AgentHub은 에이전트를 위한 것이라고요. 구현은 Go 바이너리 하나, SQLite 하나, 디스크의 bare git 저장소 하나로 끝나고, 에이전트는 git 번들로 커밋을 밀어 넣어요.
재밌는 건 뺀 것들이에요. 필수 main 브랜치도, 풀 리퀘스트도, 병합 큐도 없어요. 에이전트가 떼로 동시에 탐색하는 상황에서는 대부분의 결과가 병합될 일이 없고, 실패한 실험도 증거로는 가치가 있으니까요. 기본 연산이 “main에 합치기”에서 “커밋 DAG를 순회하기”로 바뀌어요. 어떤 아이디어 위에 무엇이 시도됐는지, 어느 계보가 좋아지다 정체됐는지를 그래프로 물을 수 있게요. 저장소 스스로 작업 중인 스케치라고 못박고 있지만, 사람 속도의 리뷰와 병합 중심 협업이 에이전트 규모에서 제일 먼저 깨진다는 지적은 스케치만으로도 서요.
워크플로우: 기억을 그래프로 빼요
Anthropic 쪽도 같은 방향으로 움직여 왔어요. 2024년 12월의 Building Effective Agents 가이드는 프롬프트 체이닝, 라우팅, 병렬화, 오케스트레이터-워커, 평가자-최적화자라는 다섯 가지 단순하고 조합 가능한 패턴에서 시작하라고 권해요. 2026년의 Dynamic Workflows는 그 오케스트레이션 자체를 모델이 생성한 스크립트로 옮겼는데, 동시 실행 에이전트는 CPU 코어 수에 따라 많아야 16개로 묶고, 워크플로우 수명 전체로는 1000개를 넘지 못하게 해요. 예산과 한도가 명세에 박혀 있는 게 특징이에요.
지식그래프 요리책은 남은 조각인 기억을 맡아요. 문서를 형식화된 개체와 관계로 뽑아 그래프로 잇고, 질의할 때 관련 부분그래프만 직렬화해서 넣어요. 워커들의 발견이 대화록이 아니라 출처가 달린 간선으로 쌓이면, 종합하는 쪽은 모든 워커의 대화를 다시 읽을 필요가 없어요.
다섯 구조가 외부화하는 것
이렇게 놓고 보면 각 구조는 서로 다른 병목을 컨텍스트 창 밖으로 빼내는 장치로 읽혀요. 루프는 반복과 평가를, 체인은 작업 순서를, 스웜은 병렬 탐색을, 커밋 DAG는 실험 계보를, 지식그래프는 출처 달린 사실을 밖에 둬요. 에이전트는 잊지만 그래프는 잊지 않으니까, 다음 세션이 세계를 처음부터 다시 만들 필요가 없어요.
이 가든에 적용한 것
이 원리를 이 가든의 발행 파이프라인에도 옮겼어요. 계기는 실패였어요. 리서치 글의 수치를 웹 요약으로 받아 적다가 표의 값이 왜곡된 일이 있었는데, 그걸 막는 규칙은 이미 문서에 있었어요. 규칙이 문서로 존재하는 것과 실행 경로에서 강제되는 건 다른 문제였던 거예요.
그래서 지금은 리서치 글마다 인용 수치가 든 원문 구절을 전사한 사이드카 파일이 붙고, 발행 게이트가 본문의 수치가 전부 그 전사 안에 있는지 기계로 검사해요. 원문에 없는 수치를 만들어내는 실수는 여기서 잡혀요. 원문에 있는 수치만 골라 쓰는 왜곡은 기계가 못 잡는 한계도 있는데, 그건 검증 단계가 같은 사이드카를 대조 자료로 받아서 봐요. 값싼 기구학 검사를 앞세워 접촉 계획 탐색을 넓힌 FARO에서 정리한 구도 그대로예요. 싼 기계 검사를 앞에 세우고, 비싼 판단은 입력을 좋게 만들어서 돕는 거예요.
남는 것
autoresearch의 루프가 도는 건 저장소와 지표가 좁게 묶여 있어서예요. 분산 인프라와 여러 목표가 얽힌 실제 연구 시스템에서 같은 자율성이 안전하다는 증명은 아니고, 옮겨갈 것은 검증 가능한 산출과 되돌릴 수 있는 변경이라는 조건 쪽이에요. 지표를 볼 수 있는 루프는 그 지표만 좋게 만들 수도 있으니, 평가자를 세게 만들수록 평가자 자신의 오류를 걸러줄 장치가 또 필요해져요. 기억을 밖에 두는 구조들도 결국 무엇을 기록할 가치가 있다고 정하느냐는 사람의 판단을 증폭할 뿐이에요. 그 판단이 틀리면 자동화는 틀림의 규모를 키워요.