"모든 구현이 완료되었습니다"를 어디까지 믿으세요? 한달간 도구로 붙들어본 이야기
요즘 여기에 멀티 에이전트나 하네스 얘기가 보이던데, 반가워서 저도 한달쯤 굴려본 걸 풀어봅니다.
여러 에이전트(Claude Code, Codex, Gemini) 섞어 쓰다 보면 다들 겪으실 텐데, 저는 두 가지가 계속 걸렸어요. 하나는 모델 바꿀 때마다 앞에서 뭘 했는지 통째로 날아가는 거, 다른 하나는 AI가 "다 되었다" 는 걸 너무 믿기 어렵다는 거요.
처음엔 memory.md나 따로 rule을 강제해 봤는데, 대화 길어지면 결국 안읽거나 안지키더라고요. 그래서 작업 상태를 아예 저장소에 따로 두고 각 에이전트가 읽고 쓰게 하는 식으로 한 달쯤 굴려봤습니다. 그 과정에서 의외였던 것 몇 개만 적어봅니다.
1. 결정 기록은 '못 고치게'
뭘 결정했고 왜 그렇게 정했는지(날짜·이유·대안)를 남기는 건 다들 하실 텐데, 저는 이걸 추가만 되고 수정·삭제는 안 되게 막았습니다. 모델이든 저든 나중에 슬쩍 고쳐 쓸 수 있으면 "그때 왜 이렇게 했지"의 신뢰가 무너지고, 못 고치게 하니까 오히려 기록이 쓸모 있어졌습니다.
2. "판단 점검"이랑 "사실 검증"은 완전히 다른 일
이게 제일 크게 배운 건데요. 처음엔 "다른 모델한테 리뷰시키기"와 "테스트 진짜 통과했나 확인"을 같은 걸로 봤어요. 근데 앞은 "이 접근이 맞아?"(방향에 대한 판단)이고 뒤는 "이거 빌드·테스트 통과했어?"(기계적 사실)잖아요. 이 둘을 뭉뚱그리니까 딱 그 "완료했습니다" 거짓말이 다시 나오더라고요. 그래서 검증은 아예 LLM 안 끼고, 실패하면 그냥 종료되게 분리했습니다.
3. 근데 "뭘 검증할지" 기준은 여전히 사람 몫
이건 아직 못 푼 부분이에요. 검증을 강제할 순 있는데, 정작 무엇을 검증해야 하는지는 도구가 못 정해줍니다. 익숙한 도메인이면 감이 오는데 처음 보는 요구사항은 기준부터가 안 서더라고요. AI한테 "기준도 네가 세워봐" 하면 또 그 "완료했습니다" 루프고요. 여긴 그냥 숙제로 남겨두고 있습니다.
결국 문제는 "AI가 안 똑똑해서"가 아니라 여러 작업 오가면서 뭐가 끝났고 뭐가 안 끝났는지를 잃어버리는 구조.
이걸 붙드는 걸 결국 도구로 만들어서 오픈소스로 열어 두었습니다(framein.dev). 아직 다듬는 중이에요.
혹시 비슷하게 멀티 에이전트 작업 상태 붙들어보신 분들, 특히 "검증 어떻게 하냐"는 부분 노하우나 있으면 공유 부탁드립니다.
