코딩 에이전트에게 '기억'을 붙이는 시도는 많다. 대부분은 벡터 DB에 대화 로그를 떠넣거나, plan.md 같은 마크다운에 진행 상황을 적게 한다. Beads는 그 자리에 다른 답을 놓는다. 작업 자체를 그래프 노드로 만들고, 의존성과 상태를 SQL DB에 영속화한다. 표면은 이슈 트래커지만 실제 역할은 에이전트의 외부 메모리다.
백엔드가 흥미롭다. Dolt다. 버전 관리되는 SQL이라 셀 단위 머지가 되고 브랜칭이 git처럼 동작한다. 기본 모드는 외부 서버 없이 in-process로 도는 임베드 모드라 .beads 폴더 하나로 끝난다. 다중 동시 쓰기가 필요하면 server 모드로 넘어가 dolt sql-server를 따로 띄운다. 단일 라이터냐 다중 라이터냐의 결정이 모드 선택에 명시적으로 분리돼 있다.
세부에서 갈린다. 이슈 ID가 bd-a1b2 같은 해시다. 여러 에이전트가 다른 브랜치에서 동시에 이슈를 만들어도 순번이 겹쳐 머지가 깨지는 일이 없다. Compaction은 닫힌 이슈를 의미 단위로 요약해 컨텍스트 창을 아끼는 '의도된 망각' 메커니즘이다. bd ready는 블로커 없는 다음 작업을 꺼내고, bd update --claim은 원자적으로 점유한다. relates_to·duplicates·supersedes·replies_to 같은 그래프 링크와 메시지 이슈 타입까지 더해, 다중 에이전트 워크플로를 처음부터 전제한 API 모양을 갖췄다.
운영 쪽 선택지도 가볍다. stealth 모드는 공유 레포에 트래커를 남기지 않는다. contributor 모드는 포크된 레포의 계획용 이슈를 ~/.beads-planning 같은 별도 디렉터리로 라우팅해 PR에 실험 흔적이 안 섞이게 한다. BEADS_DIR을 지정하면 git 없이도 돌아 Sapling이나 Jujutsu, 모노레포 서브디렉터리, /tmp 평가용 DB까지 같은 CLI로 다룰 수 있다. 결국 Beads는 '메모리 업그레이드'라는 라벨보다 에이전트 작업 상태의 영속화 레이어에 가깝다. plan.md가 길어질 때마다 흐트러진다면 그 자리를 한 번 갈아볼 만하다.