스스로 자라는 조직 지식 자산(LLM 위키)을 만들었다.
흩어진 파일·메일을 정리하고, 위키로 키우고, 그 위키로 답하는 자율 에이전트
검색할 때마다 매번 처음부터 뒤지는 도구가 아닙니다. 한 번 읽은 자료를 위키 페이지로 정착시키고, 새 자료가 들어오면 기존 위키에 이어 붙이며, 쌓인 위키를 조직의 영속 지식 자산으로 누적하는 — 시간이 지날수록 똑똑해지는 지식 사서에 가깝습니다.
최근 AI 흐름의 한 축은 자율 에이전트(agentic system). 목표를 주면 스스로 도구를 골라 쓰고, 판단하고, 막히면 되묻는 시스템이며, 그 대표격이 범용 자율 에이전트 OpenClaw입니다.
OpenClaw의 작동 원리(tool-use 에이전트)를 그대로 가져오되 "조직 지식 관리"라는 한 가지 일에 특화시킨 것이 Knowclaw(Knowledge + Claw)입니다.
대부분의 문서 Q&A는 질문마다 원본을 다시 검색하는 RAG — Knowclaw는 위키를 누적합니다.
흩어진 Drive 파일·메일을 프로젝트별로 분류하고 실제 폴더로 이동합니다.
원본을 읽어 인물·개념·요약 페이지를 쓰고, 새 자료는 기존 위키에 누적합니다.
자료가 쌓일수록 위키가 두꺼워지고 답이 정확해집니다.
Karpathy "LLM Wiki" 패턴 — 매번 재검색 대신 LLM이 위키를 점진적으로 빌드·유지하는 영속 자산.
| RAG (검색 증강) | Knowclaw (LLM 위키) | |
|---|---|---|
| 지식의 형태 | 원본 청크 임베딩 (날것) | LLM이 정제·구조화한 위키 페이지 |
| 질문 처리 | 매번 원본 재검색 | 누적된 위키를 근거로 답 |
| 새 자료 | 인덱스에 청크 추가만 | 기존 위키에 점진적 통합 · 링크 |
| 시간이 지나면 | 인덱스만 커짐 (질 그대로) | 위키가 두꺼워지며 질이 오름 |
위키 본문은 markdown으로 유지하되, 저장·쿼리·웹 렌더링은 Django DB 모델을 씁니다.
수동 동기화든 매일 자동 실행(cron)이든 같은 오케스트레이터(run_full_sync)를 탑니다.
| 단계 | 모듈 | 하는 일 |
|---|---|---|
| 📥 수집 | drive_sync | 프로젝트 폴더 재귀 스캔 → 수정분만 diff → 텍스트 추출 → DriveFile 업서트 |
| 🗂 정리 | classifier_agent → drive_organizer | 에이전트가 택소노미 설계·배치(계획) → 결정적 실행기가 실제 Drive 이동 |
| 📚 위키화 | wiki_agent | 정리된 원본을 정독해 위키 페이지 생성·갱신·링크 (전 프로젝트 통합) |
| 💬 질문 | wiki_qa | 위키 근거 자연어 QA (다턴 대화 + 출처 인용) |
| 📧 +메일 | email_archiver | Gmail 메일을 프로젝트 폴더에 파일로 적재 → 위 4단계 그대로 재사용 |
클라이언트 파일을 옮기는 비가역 행동을 LLM 즉흥 판단에 통째로 맡기지 않는다.
택소노미 설계·카테고리 배정 계획(classifier), 위키 페이지 작성·링크(wiki_agent). 전부 DB 위에서 일어나 언제든 되돌릴 수 있습니다.
실제 move_file은 drive_organizer가 dry-run / apply / revert 게이트로만 수행. 에이전트는 이 도구를 아예 쥐지 않습니다.
직접 짠 while 루프가 아니라 popax/MeetingClaw 패턴을 차용한 공용 빌더(build_tool_loop_graph)를 공유.
| 에이전트 | 그래프 | 체크포인터 | 도구 (전부 가역) |
|---|---|---|---|
| classifier_agent | 배치 1회 | 없음 | list/read · propose/assign/merge category |
| wiki_agent | 배치 1회 | 없음 | read source · read/write_wiki_page · link · search |
| wiki_qa | 다턴 | PostgresSaver | search_wiki(임베딩) · list · read_wiki_page |
make_sequential_tool_node 가 한 응답의 tool_call들을 순서대로 실행해 "one value per step" 상태 충돌을 원천 차단. 배치성은 체크포인터 없이, 다턴 QA만 세션 맥락 영속.
모든 이동을 MoveLog에 기록 → revert 한 번으로 복구. 이동은 지정 루트 하위 한정, 삭제·휴지통 호출 금지, dry-run 기본.
"파일은 프로젝트를 넘지 않는다." active 가드로 이동 대상지가 항상 현재 프로젝트 폴더임을 보장.
최상위 흩어진 파일만 이동(하위 정리분 보존). 한 번 이동된 파일은 다음 sync 대상에서 자동 제외.
분류 신뢰도가 낮거나 미매칭이면 적재하지 않고 기록만. 이메일 단계는 try/except로 격리해 핵심 sync 보호.
각 클라이언트 프로젝트의 폴더 경계를 지킵니다. 같은 "계약서"라도 프로젝트마다 별도 카테고리·별도 폴더.
프로젝트를 가로지르는 질문("A·B 공통 이슈는?")에 답해야 가치가 크므로, 위키는 전 프로젝트 단일 통합 지식 베이스.
자료량·프로젝트 수에 따라 달라지는 추정치.
| 업무 항목 | 이전 (수동) | 이후 (Knowclaw) | 효과 |
|---|---|---|---|
| Drive 파일 분류·폴더 정리 | 건당 수 분 × 수십 건 | 자동 분류·이동 | 거의 자동화 |
| 자료 요약·정리 문서 작성 | 자료당 30~60분 | 위키 자동 빌드 | 대폭 절감 |
| "그 내용 어디 있더라" 검색 | 5~15분 | 질문 한 번 + 출처 인용 | 대폭 절감 |
| 받은 메일 정리·보관 | 건당 수 분 | 프로젝트 폴더 자동 적재 | 거의 자동화 |
LangGraph (StateGraph · tool 루프 · PostgresSaver) · LangChain · LangSmith
Anthropic Claude (분류·위키·QA) · 멀티 프로바이더 교체 가능
OpenAI text-embedding-3-small (1536차원) + numpy 코사인
Django 4.2 · DRF · gunicorn · PostgreSQL · psycopg 3
standarda-core (Drive·Gmail·Docs) · crontab 매일 자동 sync
실행마다 토큰·USD 자동 기록. 프롬프트 캐싱으로 반복 입력 0.1배 (널담 실측 −36%)
설계 원칙 — "plan은 에이전트, execute는 결정적 실행기" · "가역적 행동만 LLM에게"
수백+ 페이지로 커지면 numpy 코사인 → pgvector로 교체.
DB 위키를 markdown 파일로 내보내 외부 공유·백업.
적재 보류된 저신뢰 메일을 사람이 확인·재분류.
자료가 쌓일수록 더 똑똑해지는 조직 지식 자산