Show GN: 멀티에이전트는 토큰만 많이 잡아먹고 컨텍스트도 자주 놓치더라? 그래서 '신문 편집국' 구조를 도입한 LLM Wiki를 만들어 보았습니다.
(github.com/alfadur7)- 자율 멀티에이전트, 요즘 많이들 나오고 있는데 막상 돌려보면 토큰만 5~10배 잡아먹고 컨텍스트도 자주 놓칩니다. 그래서 신문사 편집국을 본떠 멀티에이전트의 구조를 잡았습니다.
- 다섯가지 에이전트 역할이 있지만 LLM이 알아서 판단하는 에이전트는 데스크(검수) 하나뿐입니다. 나머지는 글쓰기 작업이거나, LLM이 아니라 규칙대로 도는 파이썬 검사(린트), 그리고 작업 조율(오케스트레이션)입니다.
- LLM Wiki 개념과 같이 원본 문서를 읽어서 소스 페이지를 만들고, 거기서 인물·개념 초안을 뽑고, 그걸 묶어 주제별 개요·모순 정리·종합 페이지로 쌓아 올립니다. 저장은 그냥 마크다운 파일에 git이고, 파이썬 도구는 전부 로컬에서 돕니다. clone만 하면 API 키 없이도 예제 그래프를 바로 돌려볼 수 있습니다.
- 지금 github에 들어 있는 예제는 'AI에서 오픈소스가 뭐냐'는 논쟁을 다루지만, 프레임워크 자체는 주제를 안 가립니다.
왜 에이전트를 그냥 여러 개 풀어놓지 않았나
- 이걸 수천 달러씩 써가며 실제로 돌려본 사람들 후기가 대체로 같은 결론이었습니다. 토큰만 잔뜩 쓰고, 에이전트끼리 주고받다 컨텍스트를 놓치고, 덜 끝난 일을 끝났다고 표시한다는 거죠.
- 그래서 알아서 판단하게 맡기는 대신, 정해진 규칙과 컨텍스트 격리 쪽에 무게를 뒀습니다. 편집국이라는 비유를 쓰긴 해도 정말 자유롭게 판단하는 LLM은 데스크뿐이고, 나머지는 정해진 일만 합니다.
나올 만한 반론에 미리 답하면
- 문서가 자꾸 불어나서 결국 못 쓰게 된다: 제일 현실적인 걱정이라고 봅니다. 그래서 글 쓰는 역할과, 통과시킬지 판정하는 데스크를 아예 갈라놨습니다. 데스크한테는 결과물과 채점 기준만 보여주고, 글쓴이가 어떤 의도로 썼는지는 안 보이게 했고요. 여기에 규칙 기반 린트가 문서가 불어나거나 중복되거나 방향 없이 늘어지는 걸 기계적으로 걸러냅니다. 그래도 부풀림을 '막았다'고까진 못 하겠습니다.
- 편집을 반복하면 오류가 쌓이고, 자기가 만든 피드백으로 자기를 고치면 결국 있던 패턴만 되풀이한다: 스스로 개선한다는 얘기엔 늘 따라붙는 의심이고, 저도 타당하다고 봅니다. 그래서 데스크가 반복해서 잡아내는 결함을 가이드라인에 다시 반영할 때, 같은 시험 문제에만 익숙해지는 걸(overfit) 막으려고 검증용 실패 사례를 매번 새것으로 갈아끼웁니다. 늘 처음 보는 사례로 확인하는 셈이죠. 종합 페이지 쪽에는 출처가 다른 내용을 한데 뭉뚱그리지 않았는지 대조하는 검사도 넣었고요.
- 결국 임베딩만 수동으로 바꾼 RAG 아니냐: 검색이 목적이라면 맞는 말입니다. 차이라면, 결과물이 벡터 인덱스가 아니라 사람이 그냥 읽을 수 있는 연결된 문서라는 점, 그리고 출처끼리 안 맞는 부분을 덮지 않고 따로 모순 페이지로 드러낸다는 점입니다. 질문할 때마다 원문을 다시 긁어모으는 게 아니라, 쌓인 판단이 남는 걸 노립니다.
오래된 개념: Memex
- 바네바 부시의 Memex(1945년에 구상된 연결형 정보 기계), 리클라이더의 'Man-Computer Symbiosis' 같은 흐름을 의식하고 만들었습니다.
- 그래서 페이지와 페이지를 잇는 trail(연상 경로)과, 뜻밖의 연결을 찾아주는 discover 기능을 넣었습니다. 자동으로 색인을 뽑아주는 게 아니라, 사람이 직접 따라 걸을 수 있는 길을 남겨보려는 겁니다.
사용시 고려사항
- 'API 키가 필요 없다'는 말은 절반만 맞습니다: tools 안의 파이썬은 로컬에서 도니까 외부 키가 안 듭니다. 다만 에이전트 자체는 Claude Code로 돌아가니, 그건 각자 자기 키를 물려 써야 합니다(BYOK).
- 공개 레포는 아이디어와 작은 예제 정도입니다: 노드 15개짜리 영어 예제가 들어 있어서, clone만 하면 누구나 같은 그래프를 재현할 수 있습니다. 제가 매일 굴려온 2,300노드쯤 되는 실제 인스턴스는 따로 비공개로 두고 있으니, 공개 레포와는 구분해서 봐주세요.
- 한국어 모드(WIKI_LANG=ko): 본문과 문서 상단 메타데이터(frontmatter)만 한국어로 바꾸고, 문서 구조를 나타내는 표기(## Summary, [fact] 같은 것)는 일부러 영어로 남깁니다. '완전 한국어'는 아니라는 뜻입니다.
만든 계기와 지금 상태
- Karpathy가 공유한 LLM Wiki gist에 구현을 하나 붙여본 게 출발이었습니다. 이 개념 자체는 예전에 GeekNews에도 소개된 적이 있어요: https://news.hada.io/topic?id=28208
- 글 쓰는 쪽과 검수하는 쪽을 나누면 정말 대충 통과시키는 일이 줄어드는지, 스스로 개선하는 루프가 진짜 도움이 되는지는 아직 제대로 측정한 결과가 아니라 실험 중인 가설입니다.