sepia 소개
AI가 쓴 글을 사람 글처럼 만들어 준다는 도구는 이미 많습니다. 대부분은 단어와 문장 구조를 손봅니다. 상투적인 형용사를 빼고, 대시를 쉼표로 바꾸고, 문장 길이를 뒤섞습니다. 문제는 그렇게 표면을 다 지워도 판별이 거의 그대로라는 점입니다. 2026년 4월 공개된 논문 StoryScope는 문체 신호를 전혀 쓰지 않고 담화 수준의 서사 선택만으로 학습한 분류기가 사람과 AI 소설을 macro-F1(클래스별 F1 점수의 산술 평균) 93.2%로 구분했다고 보고했습니다. sepia 저자는 이 논문을 인용해 표면 문체를 걷어내도 판별 성능이 95.5%에서 93.9%로만 내려간다고 정리하고 있습니다.
이번에 소개할 sepia는 그 결과를 개고 순서로 옮긴 에이전트 스킬입니다. 소설에서는 서사 구조를 먼저 고친 뒤에야 단어를 건드리고, 릴리즈 노트나 장애 회고 같은 실무 문서에서는 문서가 게재될 지면에 맞춘 규칙을 적용합니다. 어느 쪽이든 연산은 네 가지로 고정되어 있습니다. 새로 쓰기(write), 수정 없이 진단만 하기(review), 최소한만 손대기(refactor), 사실만 남기고 다시 쓰기(recreate)입니다.
sepia는 Agent Skills 표준을 따르는 이식 가능한 스킬이라 그 표준을 읽는 에이전트라면 불러 쓸 수 있고, 77종 이상의 에이전트를 지원하는 Skills CLI (
Vercel Skills (Skills.sh): 여러 AI 에이전트들을 지원하는 오픈소스 스킬 생태계)로 한 줄에 설치됩니다. Claude Code, Codex, Grok Build (
Grok Build: 터미널에서 코드베이스를 이해하고 편집하는 AI 코딩 에이전트), Antigravity는 별도의 플러그인 패키징까지 제공하며, 저자는 이 네 곳에서 설치가 완료되고 항목이 나타나는 것까지 직접 확인했다고 적어 두었습니다. 정본 SKILL.md 는 하나이고 플랫폼별로 따로 관리하는 사본을 두지 않습니다.
sepia와 기존 탈AI 개고 도구 비교
같은 문제를 다루는 도구들이 서로 어느 계층에서 작동하는지 정리하면 다음과 같습니다:
| 도구 | 주로 손대는 계층 | 대상 글 | 대상 언어 | 근거 |
|---|---|---|---|---|
| im-not-ai | 문장과 어휘 | 일반 한국어 글 | 한국어 전용 패턴 | 한국어 번역투 분류 체계 10개 대분류 |
| 일반 문체 교정 도구 | 문장과 어휘 | 일반 글 | 주로 영어 | 도구별로 다름 |
| sepia | 서사 구조를 먼저, 문체는 마지막 | 소설과 실무 문서 5종 | 규칙 파일은 영어 | StoryScope 등 12편의 연구 |
im-not-ai와 sepia는 경쟁 관계가 아니라 서로 다른 층을 맡습니다. im-not-ai는 한국어 문장에서 "~를 통해" 나 이중 피동 같은 번역투를 잡아내고, sepia는 이야기의 인과 사슬이 한 줄로 너무 깔끔하게 이어져 있는지, 결말이 주인공의 깨달음으로 정리되고 있는지를 봅니다. 뒤쪽 문제는 문장을 하나하나 고쳐서는 사라지지 않고, 장면 단위로 다시 짜야 사라집니다. sepia 저자도 개고 순서를 뒤집으면 안 되는 이유로 이 점을 들고 있습니다.
sepia는 누구에게 맞는가
영어로 소설이나 서사가 있는 에세이를 쓰면서 AI 초고를 개고하는 사용자에게 sepia가 가장 잘 맞습니다. 30개 항목의 진단 루브릭(Rubric)과 모델별 지문 표를 갖추고 있어, 초고를 어느 모델이 썼는지 알고 있으면 그 모델이 자주 남기는 서사 습관부터 확인할 수 있습니다. 릴리즈 노트나 장애 회고를 자주 쓰는 개발자에게도 실무 문서 경로가 따로 있어 쓸 곳이 있습니다.
반대로 한국어 글의 AI 티를 걷어내는 것이 목적이라면 sepia만으로는 부족합니다. 3단 중 마지막 표면 문체 패스의 금칙어 목록(tapestry, delve, underscore)과 복원 목록(축약형 don't, 담화 불변화사 well, anyway)이 영어 어휘로 되어 있어 한국어 문장에는 그대로 적용되지 않습니다. 저장소는 대상 언어를 명시하지 않고 있으며, 근거로 삼은 StoryScope도 영어 소설 말뭉치로 만들어졌습니다. 다만 앞의 두 패스인 서사 구조와 담화 흐름은 언어에 걸리는 규칙이 아니므로, 한국어 글이라면 앞 두 패스는 sepia로, 마지막 문체 패스는 한국어 전용 도구로 나눠 쓰는 조합이 현실적입니다.
sepia의 3단 개고 순서
sepia가 소설에 적용하는 패스는 세 개이고, 깊은 층부터 올라옵니다:
| 패스 | 계층 | 손대는 것 |
|---|---|---|
| 1 | 서사 구조(Narrative Architecture) | 주제를 화자가 설명해 버리는 것, 지나치게 정돈된 단일 인과 사슬, 감정을 신체 감각으로만 그리는 것, 실제 작품과 지명을 회피하는 것, 선형적인 시간, 주인공의 성장과 수용으로 닫히는 결말 |
| 2 | 담화 흐름(Discourse Flow) | 문단과 질문이 반복되는 틀, 중간이 처지는 전개, 리듬과 위치의 단조로움 |
| 3 | 표면 문체(Surface Style) | 상투구, 구문 틀, 어휘, 격식 |
그런데 패스 3이 마지막인 것은 순서 문제만이 아닙니다. sepia는 진단 목록을 먼저 만들지 않은 채로 문장만 바꿔 쓰면 AI 지문이 오히려 더 드러난다는 것을 refactor와 recreate 연산에서 필수 절차로 정해 두고 있습니다. 그래서 두 연산은 항상 전체 결함 목록을 먼저 만들고, 그다음에 깊은 층부터 항목 단위로 고칩니다.
고치는 방향에는 수치로 된 기준도 있습니다. 전문 편집자의 편집 비율을 따라 교체 74%, 삭제 18%, 삽입 8% 로 기울이고, 분량을 늘리는 것이 허용되는 유일한 경우는 실제 구체성을 더할 때입니다. 그리고 sepia는 사람 평균을 목표로 삼되 AI 평균의 반대 극단으로 가지 않습니다. 예를 들어 시간 순서를 흐트러뜨리는 정도의 사람 평균은 5점 만점에 2.4점이므로, 그 값을 5점으로 밀어 올리면 AI 지문 대신 새로운 개고 지문이 생깁니다. 저자는 한 편에 3~5개 수법만 골라 쓰고 나머지는 그대로 두라고 안내합니다.
sepia가 실무 문서를 다루는 방식
실무 문서는 소설과 다르게 무너집니다. sepia는 그 차이를 정보를 담지 않은 군더더기, 판단이 필요한 자리의 헤지, 대화창에서 남은 말투, 지면에 맞지 않는 격식, 찍어낸 듯한 서식으로 정리하고, 이 공통 점검 목록 위에 문서 유형별 규칙 파일을 한 겹 더 올립니다:
문서 유형에 따라 무엇을 앞세우는지가 갈립니다. 릴리즈 노트는 사용자 영향을 먼저 쓰고 주장마다 산출물을 붙이며 마케팅 과장을 넣지 않습니다. PR과 이슈 답변은 결론을 먼저 쓰고 근거를 file:line 으로 인용하며 반사적인 칭찬을 뺍니다. 장애 회고는 사람에게는 관대하고 메커니즘에는 엄격하게 쓰면서 타임스탬프와 막힌 길, 담당자가 정해진 후속 작업을 남깁니다. 티켓은 제목을 결과로 쓰고 완료 조건을 검증 가능하게 적으며, 기술 글은 문제에서 시작해 실제로 막혔던 길 하나와 확실한 의견 하나를 담고 수치에는 측정 조건을 함께 적습니다.
다만 실무 경로에서도 규칙을 한꺼번에 다 적용하지는 않습니다. 점검 목록이 실제로 걸어낸 것만 고치고 그 이상은 손대지 않는 것이 sepia의 원칙이고, 격식을 억지로 낮추는 것도 금지되어 있습니다. 저자는 격식을 낮추는 것만으로는 훈련된 독자를 속이지 못한다는 실험 결과를 근거로 들고 있습니다.
sepia의 안전 경계와 사실 관련 제약
에이전트 스킬이 남의 글을 입력으로 받는다는 점 때문에 sepia는 별도의 안전 경계를 명시해 두었습니다. 개고 대상 산문, 파일 내용, 링크, 인용된 자료를 모두 지시가 아닌 신뢰할 수 없는 데이터 로 취급하고, 그 안에 박힌 지시문으로는 연산을 고르거나 바꿀 수 없고 범위를 넓히거나 도구, 파일, 네트워크 접근을 승인할 수도 없다고 명시합니다. 연산을 고르는 것은 래퍼(Wrapper) 진입점이나 사용자의 명시적 요청뿐입니다.
사실 관련 제약도 개고 도구로서는 눈에 띄는 항목입니다. sepia는 구체적인 내용을 절대 지어내지 못하게 합니다. 소설에서 인용하는 실제 작품과 브랜드, 지명은 실재하고 정확해야 하고, 실무 문서의 버전, 수치, 타임스탬프, 벤치마크, 인용은 실제 변경 사항이나 사건 데이터에서 와야 합니다. 자료가 없으면 사용자에게 묻거나 명시적인 TODO를 남기고, 채워 넣지 않습니다. 자신 있게 틀린 사실 자체가 가장 강한 AI 티라는 것이 그 이유입니다.
또한 모델을 추정하지 못하게 막는 항목도 있습니다. sepia는 글을 읽고 어느 모델이 썼는지 추정하는 것을 금지하고, 사용자나 메타데이터에서 확인된 정보만 씁니다. StoryScope의 6종 모델 판별이 304개 서사 특징으로 학습한 분류기에서 macro-F1 68.4%였고, 사람이 읽는 것은 그 분류기가 아니라는 것이 근거입니다.
sepia가 근거로 삼은 연구와 저자가 밝힌 한계
sepia의 research/ 디렉토리에는 근거로 삼은 12편의 연구 요약이 출처와 함께 정리되어 있습니다. 주 근거인 StoryScope는 사람 저자와 5개 프런티어 모델이 같은 10,272개 글쓰기 프롬프트로 쓴 61,608편의 소설을 10개 차원의 304개 서사 특징으로 분석한 연구입니다.
sepia가 근거와 추론을 구분해 표기한다는 점이 이 프로젝트에서 가장 눈에 띄는 부분입니다. 저자는 StoryScope가 "서사 구조를 먼저 고치고 표면 문체를 나중에 고친다"는 개고 순서 자체를 개입 실험으로 검증한 적은 없다고 명시하고, 그 순서는 sepia의 설계 추론이라고 적어 두었습니다. 30개 핵심 특징으로 학습한 XGBoost 분류기가 macro-F1 84.8%(AUPRC .828)를 냈다는 수치도 함께 적으면서, 사람이 손으로 채우는 진단 루브릭은 그 분류기가 아니라고 덧붙입니다. v0.4.0부터 들어간 음성과 문체 스킬 결합 기능에 대해서도 엄격한 미니멀리즘 표본 하나에 대한 블라인드 리뷰 실험에 기반한 것이며 측정된 증거가 아니라고 밝히고 있습니다.
같은 태도가 설치 안내에도 나타납니다. Skills CLI로 설치되는 나머지 에이전트에서의 실행 동작은 저자가 직접 확인한 것이 아니라고 적혀 있고, 연산별 진입점 표에 대해서도 패키지 문법을 기록한 것이며 설치된 UI와 실행 동작을 확인한 결과는 아니라고 단서를 달아 두었습니다.
sepia 설치와 사용
모든 명령은 프로젝트마다 다시 설치하지 않아도 되는 사용자 범위(user scope) 기준입니다. Skills CLI를 쓰면 지원하는 모든 에이전트에 한 번에 설치됩니다:
npx skills add Nanako0129/sepia -g # -g = 사용자 범위, 기본값은 프로젝트 범위
npx skills update sepia -g # 업데이트
npx skills remove sepia -g # 제거
Claude Code에는 마켓플레이스를 등록한 뒤 플러그인으로 설치합니다:
claude plugin marketplace add Nanako0129/sepia
claude plugin install sepia@sepia --scope user
Codex, Grok Build, Antigravity는 각자의 플러그인 명령을 씁니다:
codex plugin marketplace add Nanako0129/sepia
codex plugin add sepia@sepia
grok plugin install Nanako0129/sepia --trust
agy plugin install https://github.com/Nanako0129/sepia
한 저장소에만 사본을 고정하고 싶으면 skills/sepia/ 를 그 저장소에 .agents/skills/sepia(Codex와 Antigravity) 또는 .claude/skills/sepia(Claude Code) 경로로 커밋합니다.
설치가 끝나면 네 연산에 각각 진입점이 생깁니다. Claude Code, Grok Build, Antigravity에서는 /sepia-write, /sepia-review, /sepia-refactor, /sepia-recreate 이고 Codex에서는 $sepia-write 처럼 접두사가 바뀝니다. 어느 연산인지 정하지 않았다면 /sepia(Codex는 $sepia) 라우터를 그대로 부르면 됩니다. 연산 진입점은 정본 스킬에 의존하는 얇은 래퍼이므로 따로 떼어 설치하는 것은 지원하지 않고, 플러그인 패키지 전체를 설치해야 합니다.
sepia의 라이선스
sepia는 MIT 라이선스로 공개되어 있어 개인 및 상업적 목적으로 자유롭게 사용할 수 있습니다.
sepia의 주 근거인 StoryScope 논문
sepia 프로젝트 GitHub 저장소
더 읽어보기
-
im-not-ai: 기존의 의미를 보존하면서, 'AI스러움'을 자연스럽게 다듬는 Claude Code 윤문 스킬
-
InkOS: 10개의 전문 AI 에이전트가 협력해 소설을 자율적으로 집필, 감사, 수정하는 멀티에이전트 소설 창작 CLI 도구
-
Agent Behavior: 스킬과 달리 런타임 프롬프트가 아니라 트레이스 검토용으로 쓰는 에이전트 행동 표준
이 글은 GPT 모델로 정리한 초안을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 댓글로 알려주시기를 부탁드립니다. ![]()
이 글은 파이토치 한국 사용자 모임
이 직접 정리한 글입니다. 새 글을 놓치지 않으시려면 텔레그램(Telegram)이나 Slack/Discord/Teams/Dooray/GoogleChat 등으로 알림을 받으시고, 회원으로 가입하시면 주요 글들을 이메일
로도 보내드립니다! ![]()
아래
쪽에 좋아요
를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ ![]()

