개요
코드베이스는 예전부터도 설명하기 어려운 존재였다. 원작자조차 ‘왜 이렇게 짰는지’를 기억하지 못하는 일이 흔했다. 주석, 문서, git blame, 위키, 의사결정 로그 — 수많은 방법을 시도했지만, 결국 모두 누군가가 유지보수해야 한다는 전제가 달렸다. 그리고 그 유지보수는 항상 기능 개발에 밀렸다.
이제 코드 작업의 상당 부분이 엔지니어와 AI 에이전트 사이에서 이루어진다. 그 대화는 비공개 채팅창 안에서 끝나고, 컨텍스트는 증발한다. Hugging Face의 Caleb Fahlgren은 이 문제에 대한 단순하지만 강력한 해답을 제시한다. 에이전트는 이미 모든 과정을 기록하고 있다. 그 기록에 영구적인 집을 만들어 주면 된다.
핵심 요약
- 문제: 에이전트와의 작업 컨텍스트가 로컬 JSONL 파일에 쌓이고 사라진다
- 인사이트: 에이전트 트레이스는 코드베이스 결정의 가장 밀도 높은 기록
- 해법: Hugging Face Buckets에 트레이스를 동기화해 영구 메모리 레이어 구축
- 도구:
hf syncCLI + 에이전트 트레이스 뷰어
본문
컨텍스트는 항상 어딘가에서 사라진다
소프트웨어 개발에서 컨텍스트를 보존하려는 시도는 오래됐다. 커밋 메시지, PR 설명, 기술 문서, 위키 — 하지만 이 모든 것은 누군가가 꾸준히 관리해야 살아있는 아티팩트다. Caleb Fahlgren이 표현한 대로, 이 유지보수는 전형적인 ‘글루 워크(glue work)‘다. 기능 개발에 비해 가시성이 낮고, 결국 뒷순위로 밀린다.
문제는 AI 에이전트 시대에 더 심각해졌다. 온콜 장애 대응을 맡은 에이전트, 리팩토링 작업을 이어받은 에이전트 — 이들은 수만 줄의 코드를 수초 만에 읽을 수 있지만, 누군가가 컨텍스트를 남겨놨을 때만 활용할 수 있다. 정작 그 컨텍스트를 만들어낸 이전 작업 대화는 엔지니어의 노트북 어딘가에 JSONL 파일로 잠들어 있다.
에이전트 트레이스는 이미 모든 것을 담고 있다
여기에 반전이 있다. 에이전트는 이미 작업 과정을 전부 기록한다.
코드베이스를 탐색하고, 여러 접근법을 시도하고, 오류에 부딪히고, 문서를 읽고, 방향을 전환하는 모든 과정이 트레이스에 남는다. 이 트레이스는 어떤 PR 설명이나 커밋 메시지보다 훨씬 풍부한 결정의 기록이다. 코드베이스가 점점 자율적으로 자가 유지보수되는 방향으로 진화할수록, 에이전트 트레이스는 그 진화를 만든 결정의 유일한 기록이 된다.
문제는 그 기록이 어디에도 집이 없다는 점이다.
코드는 git에 있다. 문서는 Notion에 있다. 이슈는 Linear에 있다. 대화는 Slack에 있다. 그런데 실패한 Codex 실행 기록은? PR #428의 마이그레이션을 만들어낸 트레이스는? “SQLite를 쓰자"는 결정을 내린 리서치 스레드는? 대부분 누군가의 노트북 안에, 혹은 Slack 어딘가에 묻혀 있다.
Hugging Face Buckets — 트레이스에 집을 준다
Hugging Face는 자체 Slack 코딩 에이전트를 운영하면서 이 문제를 직접 해결했다. 각 에이전트 세션은 Hub 위의 버킷(Bucket)에 기록되고, 에이전트는 과거 세션에서 메모리를 끌어올 수 있다. PR을 열면 그 PR을 만든 트레이스로 다시 연결된다. 다음 리뷰어가 사람이든 에이전트든 — 변경이 어떻게 만들어졌는지 볼 수 있게 된다.
이 패턴을 누구나 쓸 수 있도록 CLI 명령으로 제공한다:
# 버킷 생성
hf buckets create agent-sessions --private
# Claude Code 세션 동기화
hf sync ~/.claude/projects/ hf://buckets/{username}/agent-sessions/claude
# Codex CLI 세션 동기화
hf sync ~/.codex/sessions/ hf://buckets/{username}/agent-sessions/codex
버킷에 올라간 트레이스는 에이전트 트레이스 뷰어에서 바로 JSONL을 시각화해 볼 수 있다. 별도 파싱이나 변환 없이 드랍하면 바로 열린다.
실무자가 볼 핵심 포인트
- Claude Code, Codex CLI 사용자 즉시 적용 가능 — 위 명령 두 줄이면 로컬 세션이 자동 동기화된다. 별도 인프라 구축 없이 팀 메모리 레이어가 생긴다.
- 에이전트 간 메모리 공유 — 버킷이 공통 저장소가 되면, 한 에이전트가 탐색한 내용을 다른 에이전트가 이어받을 수 있다. 멀티 에이전트 워크플로의 컨텍스트 단절 문제를 해결한다.
- PR 리뷰 품질 향상 — 트레이스가 PR에 링크되면, 리뷰어는 결과물(코드)만이 아니라 과정(결정 흐름)까지 검토할 수 있다. 버그 리뷰에서 특히 강력하다.
- LLMOps 관점의 감사 로그 — 에이전트가 어떤 판단으로 어떤 코드를 만들었는지 추적 가능해진다. 규제 산업이나 보안 감사가 필요한 환경에서 중요한 기반이 된다.
