
Authrot는 연재 소설의 각 장을 분석해 인물과 장소, 관계, 이야기의 변화를 정리하는 글쓰기 도구다. Authrot는 분석 방식을 큰 모델 호출 하나에서 캐시된 프롬프트를 공유하는 소규모 호출 여러 개로 바꾼 뒤, 몬테크리스토 백작의 기준 장에서 관계 판정 정밀도가 약 30%에서 90%로, 재현율은 약 25%에서 72%로 높아졌다고 밝혔다.
비용은 몬테크리스토 백작의 첫 6개 장을 분석했을 때 장당 5.2~8.4센트였다. 프롬프트 입력의 약 95%는 캐시에서 제공됐다. Authrot에 따르면 분석에는 빠른 모델을 사용하고 관계 확인에는 GPT-6 Luna를 쓰며, 더 큰 모델에 추론을 켜면 비용이 훨씬 높았지만 결과는 나아지지 않았다.
분석 결과와 독자에게 보이는 내용
Authrot는 몬테크리스토 백작 40장까지 분석한 예를 공개했다. 작가가 확인한 인물·관계 정보와 인용문을 바탕으로 이야기 성경(story bible)을 갱신한다. 작가는 스튜디오에서 결과를 보고, 출간된 이야기의 독자는 스포일러를 피할 수 있는 위키로 정보를 확인한다.
예를 들어 8장에서는 감옥에 갇힌 젊은 선원 에드몽 당테스의 관계 14개를, 40장에서는 파리의 몬테크리스토 백작의 관계 61개를 기록한다. 각 관계에는 근거가 되는 인용문과 그 관계가 드러난 장이 붙는다. 인물의 외모 변화도 장별로 추적한다. 40장에서 드러나는 변장 정체는 시바 선원이라는 별도 항목으로 기록하고, 당테스의 페이지에는 정체가 밝혀진 장과 함께 표시한다. 분석 결과가 정체 공개를 제안하면 작가가 이를 확인한다.
현재 위키는 독자가 알아야 할 정보를 보여주는 것이지, 각 인물이 무엇을 알고 있는지를 모두 반영하지는 않는다. 비밀과 그 비밀을 아는 사람은 추적하지만, 일반 사실을 인물별 지식 범위로 나누는 기능은 아직 개발 중이라고 Authrot는 설명했다.
Authrot에서 몬테크리스토 백작을 읽으며 위키가 채워지는 과정 보기
장별 분석을 나눈 이유
연재 소설은 장이 하나씩 늘어나고 작가가 이전 장을 수정하기도 한다. 따라서 분석은 인물·장소·별칭·정체 공개, 인용문으로 뒷받침되는 관계, 현재 상태와 장별 변화, 앞서 심어둔 설정과 회수 등을 구조화해 갱신해야 한다. Authrot가 제시한 주요 조건은 비용, 신뢰성, 언어 설정이다. 작가가 장마다 분석을 반복할 수 있어 비용을 낮춰야 하고, 잘못된 관계나 만들어낸 인물은 빠진 정보보다 정리하기 어려운 문제라고 봤다. 원고 언어는 프로젝트 설정이므로 코드가 영어를 전제로 해서는 안 된다고도 밝혔다.
초기 방식은 장 전체와 이야기 성경, 여덟 섹션짜리 스키마를 한 번에 모델에 보내는 것이었다. flash 모델 기준 장당 3.8~3.9센트로 저렴했지만, 한 시험 장에서 사실 23개와 언급 38개를 만들고 관계는 하나도 찾지 못했다. 관계만 따로 요청하자 같은 모델이 27개를 찾았다. 추론을 켠 단일 분석에서는 출력 토큰이 4만1000개에 달했고, 프로급 모델을 낮은 추론 설정으로 사용해도 출력의 35~70%가 추론이었다. 작업을 네 부분으로 나누면 장당 24~27센트가 들었다. 이후 분석에서도 이름 언급이 출력의 55%를 차지했고, 그중 절반 이상은 코드로 무료 처리할 수 있는 단순 이름 일치였다.
두 번째 방식에서는 작업을 나누되 모든 호출이 같은 시스템 프롬프트와 스키마, 장 본문과 이야기 성경을 공유하게 했다. 작업별로 달라지는 것은 짧은 두 번째 메시지뿐이다. Authrot는 공유 접두부를 유지해야 캐시를 활용할 수 있다고 설명했다. ID는 UUID 대신 @1, @2 같은 짧은 핸들을 사용한다. 근거 인용문이 없거나 본문에 없는 이름을 가리키는 관계는 저장 단계의 코드가 제외한다. 2026년 10월 16일 추가된 저장 규칙 10개를 적용한 뒤, 몬테크리스토 백작 두 차례 실행에서 비용은 각각 장당 4.87센트와 5.38센트에서 4.26센트와 3.83센트로 낮아졌다.
OpenAI의 자동 캐싱만 사용하면 캐시가 적용되지 않아 분석 비용이 5.4센트가 됐고, 명시적 캐시 경계점을 넣으면 2.1센트가 됐다고 Authrot는 밝혔다. 명시적 경계점을 쓴 실행에서는 7228개 토큰 중 7212개가 캐시에서 제공됐다. OpenAI의 캐시 쓰기 비용은 입력 비용의 1.25배, 캐시 읽기는 0.1배라고 설명했다. 좁은 작업 호출 하나의 비용은 flash 기준 0.02~0.1센트다.
세 번째 방식에서는 코드가 판단 범위를 좁히고 모델은 준비된 선택지에서 답하도록 바꿨다. 코드는 후보 목록과 선택지를 만들고, 모델은 그 안에서 하나를 고른다. 코드가 답을 검증해 다음에 실행할 작업을 결정한다. 관계는 종류별로 나눠 호출하고 확인 절차를 추가했다. 이야기 장부와 관련 작업도 자유형 질문 대신 후보와 선택지가 있는 단계로 바꿨다.
Authrot의 설명에 따르면 각 단계는 같은 형식으로 답하며, 의존성이 끝난 단계는 작은 DAG 스케줄러가 묶음 단위로 실행한다. 캐시가 비어 있을 때는 첫 요청이 접두부를 쓰고 같은 묶음의 나머지 작업이 이를 읽는다. 각 단계는 완료 즉시 저장되므로 실패 후에는 빠진 작업만 다시 요청할 수 있다. 모델이 블록 ID를 잘못 복사하는 경우에는 코드가 정확히 일치하거나, 하나의 블록에만 해당하는 6자 이상 접두부일 때만 복구하고 나머지는 버린다.
Authrot는 글쓰기 단계에서 추론 기능이나 더 강한 모델을 쓰지 않는다는 원칙을 세웠다. 이야기 장부에서는 코드가 의심스러운 사실을 표시하고 좁은 호출이 확인하도록 바꾸자 ‘이 장에서 바뀐 것’의 정밀도가 47%에서 89%로 올랐다. 다만 확인 절차로 재현율이 65%까지 떨어졌고, 이야기 질문을 다른 방식으로 한 번 더 물어 75%로 회복했다고 밝혔다.
측정 결과와 비용
Authrot는 변경 사항을 적용하기 전에 몬테크리스토 백작과 타임머신의 일부 장으로 만든 정답 데이터와, 점수 산정 전에 작성해 둔 별도 장을 사용해 평가했다고 밝혔다. 관계 재현율은 정답 데이터와 비교했다. 정밀도는 정답 데이터 기준과 사람이 읽고 판단한 기준을 함께 보고했다. 정답 데이터에는 없지만 실제로 맞는 관계는 사람 판단 기준에서 정답으로 셌다. 실행 결과를 기록해 같은 장에서 다른 단계만 바꿔 비교하고, 각 호출의 입력·캐시 읽기·캐시 쓰기·출력·추론 토큰과 비용도 측정했다.
관계 종류마다 별도 호출을 둔 뒤 재현율은 38%에서 56%로 올랐다. 확인 호출을 추가하자 사람 판단 기준 정밀도는 97%까지 상승했지만, 정답 데이터 기준 정밀도는 64%였고 재현율은 40%로 낮아졌다. 확인 절차가 인용문뿐 아니라 장 전체가 뒷받침하는 관계도 유지하도록 수정됐다. 이후 사람별로 12개 작업을 실행하고 확인 질문을 두 번 하자 재현율은 49%에서 69%로 높아졌다. 확인 모델은 관계의 두 인물과 장 본문을 담은 별도 프롬프트로 두 번 판단한다. 두 판단이 모두 관계를 부정할 때만 제외하고, 의견이 갈린 관계와 오류가 잦은 종류는 추가로 살핀다. 재실행 결과 정밀도는 약 1.1센트의 장당 비용으로 85%에서 92%로 올랐다고 밝혔다.
첫 6개 장에서 전체 파이프라인은 장당 5.2~8.4센트가 들었다. 이 비율이 책 전체에 유지된다고 가정하면 119장 분량은 약 6~10달러지만, 뒤쪽 장은 이야기 성경이 커져 비용이 더 들 수 있다. 같은 다섯 장에서 세 번째 파이프라인은 이전 방식보다 비용이 약 55% 높았고 호출은 약 6배 많았다. 다만 추론을 끈 프로급 모델을 11개 부분 작업에 썼을 때의 9~15센트보다는 낮았다고 Authrot는 밝혔다.
일반화한 단계 응답 형식으로 바꾸자 사실 하나당 출력이 약 220토큰에서 항목당 약 35토큰으로 줄었다. 그러나 자유 목록 질문은 보고할 내용이 있어도 답을 비우는 경우가 11회 중 6회 있었다. 항목별 체크리스트를 주고 답이 없을 때도 ‘없음’이라고 답하게 하자 이 문제가 해결됐다. 실제 서비스에서는 답이 비었거나 모두 ‘없음’이면 다시 요청한다. 이야기 장부 작업의 질문을 다시 쓰자 출력은 4700~6400토큰에서 1700~2500토큰으로, 장당 비용은 0.49~0.67센트에서 0.18~0.27센트로 줄었다.
3891단어인 몬테크리스토 백작 한 장을 전체 파이프라인으로 분석한 사례에서는 캐시 읽기 입력 1,386,060토큰, 새 입력 62,236토큰, 캐시 쓰기 15,672토큰, 출력 51,629토큰이 발생했고 비용은 7.71센트였다. 입력의 약 95%가 캐시에서 제공된 셈이다. Authrot는 작가에게 실행 전 비용 추정치를 보여주고, 실제 비용이 추정치의 4배를 넘거나 잔액이 마이너스가 되기 전에 실행을 멈춘다고 밝혔다. 분석은 백그라운드에서 진행되며, 각 단계의 결과를 저장해 중단 후 재시도할 수 있다.
적용되지 않은 시도와 다음 목표
Authrot는 모든 시도를 적용한 것은 아니라고 밝혔다. 모든 사실을 추론 기능이 켜진 모델로 판정하는 방식은 판정 호출만 장당 0.56센트, 필요한 단계까지 합치면 1.14센트가 들어 중단했다. 대신 코드가 의심 항목을 표시하고 좁은 호출이 확인하도록 했다. 강한 검사 모델인 DeepSeek V4 Pro와 GPT-6.1 Sol은 GPT-6 Luna와 정밀도가 비슷했지만 장당 12.5~21.1센트가 들어 제외했다. 장을 포함하지 않은 새 최소 프롬프트로 재검토하자 재현율이 46~51%로 떨어져, 캐시된 장 본문을 이용하도록 바꿨다. 사전 분석 단계는 모든 지표에서 더 나빴고, 작업을 한 호출로 연결하는 방식도 같은 일에 0.50센트가 들어 0.33센트인 분리 방식보다 비쌌다. gpt-5-nano는 첫 장을 두 번 처리하지 못해 제외했다. Claude는 공유 스키마가 너무 크다는 API 오류로 분석에 사용하지 못했다.
Authrot는 이번 작업에서 질문을 짧은 번호 목록의 선택지로 좁히면 모델이 자유 형식 JSON을 작성할 때보다 더 정확했고, 모든 호출의 접두부를 같게 유지해야 캐시를 쓸 수 있었다고 정리했다. 또 확인 단계가 틀린 관계를 걸러내는지만 볼 것이 아니라, 맞는 관계를 놓치는지도 정답 데이터로 측정해야 했다고 밝혔다. 관계 분석의 다음 목표는 정밀도 90%를 유지하면서 재현율을 75% 이상으로 높이는 것이다. 이야기 장부에는 대화 흐름별 트리거 호출을 추가하고, 인물이 무엇을 언제 알게 됐는지도 비밀을 넘어 추적할 계획이다.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요