지난 글에서 문서 파싱과 변경 미리보기에 집중한 플러그인을 봤다. 다섯 번째는 검색 요약에선 “대화형 AI와 파인만 학습법으로 지식을 검증한다”는 짧은 한 줄로만 소개됐던 Ziran LLM Wiki(iamxiaoming-gif)다. 소스를 열어보고 나서 이 한 줄이 얼마나 축약된 설명이었는지 알았다.
폴더 구조부터 다른 다섯 개와 갈렸다 — src/agent/, src/feynman/, src/services/
src/agent/(core.ts, tools.ts, builtin-skill.ts), src/feynman/
(6개 파일, AudioRecorderService·TranscriptionService·
FeynmanEvaluationService·KnowledgeEvidenceService 포함),
src/services/(BackgroundIngestionService, IngestionBatchService,
MemoryService, ContextManager 등)까지 — 스타 1개짜리 프로젝트라고
짐작했던 것과 달리, 폴더 구조만 보면 이 시리즈에서 가장 야심찬
설계였다.
진짜 에이전트 루프가 있다 — agent/core.ts + tools.ts
agent/core.ts + agent/tools.ts + agent/builtin-skill.ts 조합은
다른 다섯 개 플러그인의 “한 번 프롬프트 보내고 결과 받기” 방식과
다르다 — LLM이 도구를 호출하고 그 결과를 다시 받아서 다음 판단을
내리는 진짜 에이전트 루프를 갖추고 있었다. 이 시리즈에서 도구
호출 기반 에이전트 아키텍처를 쓰는 건 이 플러그인뿐이었다.
음성으로 설명하면 AI가 평가해준다 — Feynman
가장 독특한 기능은 feynman/ 폴더였다. 리처드 파인만의 학습법
(“정말 이해했다면 남에게 쉽게 설명할 수 있어야 한다”)을 그대로
기능으로 만들어뒀다. AudioRecorderService로 사용자가 개념을 말로
설명하는 걸 녹음하고, TranscriptionService로 텍스트로 바꾼 다음,
KnowledgeEvidenceService가 그 설명이 실제 자기 노트에 근거를
두고 있는지 확인하고, FeynmanEvaluationService가 최종 평가를
내려준다. 다른 다섯 개 플러그인이 전부 “노트를 넣으면 위키가
나온다”는 한 방향 파이프라인인데, 이건 반대로 “사용자가 아는 걸
꺼내게 만들고, 그게 진짜 아는 건지 검증”하는 완전히 다른 용도였다.
데스크톱 전용이라는 대가 — isDesktopOnly: true
manifest.json에 "isDesktopOnly": true가 박혀 있다. 이 시리즈의
나머지 다섯 개는 전부 모바일도 지원하는데, 음성 녹음·전사·에이전트
루프까지 다 갖추려다 보니 모바일 지원은 포기한 것으로 보인다.
기능 범위를 넓히는 대신 플랫폼 범위를 좁힌 선택이었다.
배운 점
스타 수(1개)만 보고 넘어갔으면 이 플러그인이 가진 진짜 아이디어를 놓쳤을 거다 — “지식을 넣는 파이프라인”과 “지식을 꺼내서 검증하는 파이프라인”은 서로 다른 문제고, 이 여섯 개 중 후자를 시도한 건 여기뿐이었다. 지금 만드는 플러그인도 “사용자가 이해했는지”를 검증하는 방향은 전혀 다루지 않고 있는데, 이건 이번 조사 전체를 통틀어 가장 참고할 만한 새로운 각도였다.