> 교안 최초 작성: 2026-09-26 · 최신 개정: 2026-09-30 · 1주차 수업: 9월 30일

# 1주차 실습 — 내 자료로 LLM Wiki v1 만들기

**완료 목표:** 내가 관리할 도메인을 정하고, 원문과 출처가 연결된 작은 지식베이스를 만든다. 질문 3개의 기존 답변을 보존하고 정리 후 다시 확인한다.

준비한 대표 노트 10개와 질문 3개를 가져온다. 첫 실행은 그중 공개·비민감 자료 3~5개로 제한한다. 기존 지식베이스와 본인이 쓰는 파일 작업 에이전트를 사용하며, 새로 시작하면 [공개 AKM](https://github.com/DECK6/akm)의 실제 설치판 안내를 따른다. Jev API와 Python은 선택 실습에만 필요하다.

## 1. 내 도메인과 자료 상태를 적기

아래를 한 문서에 작성한다.

```text
내가 관리할 도메인:
누가, 어떤 상황에서 이 지식을 쓰는가:
반복해서 답하고 싶은 판단 하나:
이번 주에 포함할 범위 / 제외할 범위:
대표 노트 10개 중 먼저 사용할 3~5개:
자료마다 확인한 원문·작성일·버전·현재 위치:
현재 문제: 출처 누락 / 중복 / 옛 상태 / 이름 혼용 / 그 밖의 문제
```

‘AI 전반’처럼 큰 주제보다 ‘내가 쓰는 촬영 장비의 연결 조건’처럼 자료와 질문을 확인할 수 있는 범위를 고른다. 자료가 없으면 아래 합성 예제로 시작하고, 실제로 가져올 자료와 범위를 기록한다.

## 2. 구조를 바꾸기 전에 질문 3개를 고정하기

질문마다 예상 답, 필수 근거, 자료가 없으면 답을 보류해야 할 지점을 직접 적는다. 에이전트의 답을 그대로 정답으로 삼지 않는다. 그런 다음 현재 지식베이스로 답하게 하고 결과를 저장한다.

```text
현재 자료 구조를 수정하기 전에 아래 질문 3개에 답하라.
실제로 읽은 파일과 절을 각 답변에 연결하고, 근거가 없으면 모른다고 표시하라.
사용한 에이전트·모델, 시각, 질문 원문, 답변, 인용 위치를 기록하라.
파일을 재구조화하거나 내용을 보강하지 말고 먼저 적용 전 기록을 보존하라.
```

질문은 4주차까지 유지한다. 바꿀 필요가 생기면 원래 질문을 보존하고 변경 이유와 버전을 남긴다.

## 3. 공통 자료 다섯 개로 역할과 출처를 연습하기

다음은 수업용 합성 자료다. 실제 요리법·영양·안전 조언이 아니다. 여기서 ‘가능’은 정의한 필수재료가 모두 있다는 뜻이며, 수량·도구·조리 기술은 판단하지 않는다.

| ID | 제목 | 원문 |
|---|---|---|
| N01 | 계란볶음밥의 필수재료 | 이 실습에서 계란볶음밥의 필수재료는 밥과 달걀이다. 간장은 선택재료다. |
| N02 | 토마토밥의 필수재료 | 이 실습에서 토마토밥의 필수재료는 밥과 토마토다. |
| N03 | 지금 가진 재료 | 지금 보관함에는 밥, 달걀, 간장이 있다. 토마토는 없다. |
| N04 | 메뉴 이름 대응 | 이 자료에서 달걀볶음밥은 N01의 계란볶음밥과 같은 요리를 가리킨다. 계란과 달걀은 같은 재료의 이름이다. |
| N05 | 주말 커피 메모 | 주말에는 카페에서 커피를 마셨다. 볶음밥 메뉴와 보관함 재고에 관한 정보는 없다. |

공통 질문은 다음과 같다. 내 도메인의 질문 3개와 별도로 연습한다.

1. 현재 가진 재료로 두 메뉴 중 무엇의 필수재료를 충족하는가? 메뉴의 별칭도 확인하라.
2. 지금 토마토밥의 필수재료를 충족한다는 주장은 자료가 뒷받침하는가?
3. 토마토를 추가한 가상 상태에서는 무엇이 달라지는가?

먼저 사람과 에이전트가 기존 표만 보고 답한 결과를 보존한다. 1번에서 N01~N04가 왜 필요한지, N05를 빼도 되는지 설명한다. N03을 빼고도 답할 수 있는지 검토한다.

## 4. 원문·지식·맥락과 인덱스를 만들기

공통 예제에서 구분을 연습한 뒤 자기 자료에 적용한다.

```text
내 AKM의 실제 AGENTS/CLAUDE 지침, INDEX, ROUTER, SCHEMA와 템플릿을 먼저 읽어라.
기존 지식베이스가 다른 구조라면 그 규칙과 대응시켜 설명하라.
1. 첫 자료 3~5개를 원문 그대로 보존하고 ID와 실제 경로의 대응표를 만들라.
   새 AKM 자료는 설치판의 inbox-first 규칙을 따르라.
2. 재사용할 정의·설명과 현재 상황·프로젝트 맥락을 구분하라.
   공통 예제의 N03은 현재 재고이며 변하지 않는 일반 지식으로 만들지 마라.
3. 질문에 답할 수 있는 사람이 읽는 가이드 1개를 작성하고 각 설명에 원문을 연결하라.
4. 인덱스에 각 문서의 역할과 위치를 짧게 적어라. 없는 경로를 인용하지 마라.
5. 자료 추가, 내용 수정, 근거 부족, 옛 상태 처리의 운영 규칙을 짧게 적어라.
6. 원문과 적용 전 답변을 보존하고 실제 저장 결과와 링크를 직접 확인하라.
온톨로지 자동 병합과 그래프 DB 설치는 하지 마라.
```

완료 확인: 원문이 남아 있고 가이드에서 원문으로 돌아갈 수 있는가? 현재 상태가 일반 지식과 구분되는가? 같은 문서를 여러 폴더에 기계적으로 복제하지 않았는가?

## 5. 같은 질문으로 구조화 효과를 확인하기

같은 에이전트·모델 설정으로 질문 3개를 다시 묻는다. 이 단계에서는 Jev를 추가하지 않는다. 자료 구조 개선과 Jev 추가 효과를 따로 보기 위해서다.

| 질문 ID·원문 | 구조화 전 답·출처 | 구조화 후 답·출처 | 필수 근거 누락 | 개선·악화·동일 | 아직 해결하지 못한 점 |
|---|---|---|---|---|---|
| Q1 | | | | | |
| Q2 | | | | | |
| Q3 | | | | | |

여기까지에서 LLM Wiki v1과 질문 3개의 기본 비교를 완성한다. 아래 7절의 정의 검토 카드는 진단 리포트에 함께 붙인다. 답변이 처음부터 맞았어도 출처 추적과 상태 구분을 확인하면 된다. 실제 원문이 제공하지 않는 사실을 추가해 개선을 만들지 않는다.

## 6. Jev로 후보를 고르기 — 스터디장 시연·선택 실습

먼저 GitHub [kb-jev](https://github.com/robebots/kb-jev)의 ‘원문, 분류 판단, 사람의 교정 기록’ 구분을 살펴본다. 저장소 전체 설치는 필요 없다. 이 프로젝트의 분류와 달리 이번 선택 실습은 질문에 필요한 근거를 고르는 연습이다.

키가 없으면 N01~N05를 `USE / SKIP / REVIEW`로 직접 분류하고 이유를 적는다. 이를 Jev 결과로 기록하지 않는다. 실행 환경이 준비된 스터디멤버는 [기존 실행 코드](03-runner.md)를 `jev_lab.py`로 저장해 에이전트의 도움으로 실행할 수 있다.

```sh
python3 jev_lab.py
python3 jev_lab.py --live
```

첫 명령은 예상 답을 보여주는 오프라인 연습이고, `--live`가 실제 요청이다. Python 3.10 이상이 필요하며 Windows에서는 환경에 따라 `py -3`를 사용한다. API 키는 본인 터미널에서 숨김 입력하며 채팅·제출물에 넣지 않는다.

기존 코드는 관련성 5개와 개체·관계 4개, 총 9개 질문을 1요청으로 보낸다. **1주차 후보 선별에서는 `relevance_N01`~`relevance_N05`, `kept_notes`, 사용량을 읽는다.** 개체·관계 4개 결과는 정의와 관계의 차이를 설명할 때 참고하고, 아래 분류 기준 수정 실습의 결과와 섞지 않는다. 보고되는 usage는 전체 9개 질문의 사용량이다.

공통 질문 1을 그대로 사용한다. 필수 근거 N01~N03, 별칭 근거 N04, 보류된 후보는 최종 답변 전에 확인한다. Jev가 제외했어도 필수 근거는 복구하고 그 사실을 기록한다.

```text
구조화 후의 공통 질문 1과 같은 문구·답변 모델을 유지하라.
Jev 결과와 필수 출처 목록을 받아 남은 후보의 실제 원문을 읽고 답하라.
필수 근거가 누락되면 복구하고, 제외 후보를 다시 읽은 이유를 기록하라.
선택 자체를 사실의 근거로 인용하지 마라. 앞선 답변은 덮어쓰지 마라.
```

| 항목 | 구조화 후, Jev 없음 | 구조화 후, Jev 추가 |
|---|---|---|
| 실제 읽은 출처와 답변 | | |
| 필수 근거 누락·복구 | | |
| 주 모델 토큰·시간 | | |
| Jev mode·모델·입력 토큰·시간 | 해당 없음 | |
| 재검토한 후보와 이유 | 해당 없음 | |

측정 불가능한 값은 ‘미측정’으로 남긴다. 파일 개수·글자 수 감소를 토큰 절감률로 바꾸지 않는다. 다섯 문서에서는 추가 비용이 더 클 수 있다.

## 7. Ontology + Jev 미니 실습 — 정의가 겹치는 곳 찾기 · 15분

[Ontology + Jev](https://github.com/dagfinndybvig/Jev_Ontology)의 분류·피드백 구조를 수업용으로 단순화한 활동이다. 원저자 실험을 재현한 것이 아니며, 이번에는 온톨로지의 출발점이 되는 **문서 역할의 분류 정의**를 다듬는다. 분류표만으로 완전한 온톨로지를 만들었다고 하지는 않는다.

**① 정의 v1을 고정한다.** 아래 기준은 경계가 넓은 연습용 초안이다. 한 자료에 붙일 대표 역할을 하나 고르되 여러 역할이 함께 있거나 근거가 부족하면 `REVIEW`로 남긴다. 폴더 이동은 하지 않는다.

| 라벨 | v1의 설명 |
|---|---|
| GENERAL | 음식과 재료에 관한 정보 |
| CURRENT | 현재 상황에 관한 정보 |
| ALIAS | 이름에 관한 정보 |
| REVIEW | 하나로 고르기 어렵거나 자료가 부족함 |

**② N01·N03·N04를 분류한다.** 분류 전에 사람이 예상 역할과 근거 문장을 적어 둔다. 선택, 근거, 겹치는 정의를 기록한다. N03이 ‘재료 정보’이면서 ‘현재 상황’인 것처럼 같은 자료를 여러 정의가 포괄하는지 살펴본다. 모델이 반드시 틀리거나 낮은 확률을 낸다고 가정하지 않는다.

**③ 한 곳의 정의를 고치거나 유지한다.** 예를 들어 GENERAL을 ‘현재 재고나 이름 대응을 제외한, 자료가 명시한 재사용 가능한 요리 조건’으로 좁히는 안을 검토한다. 이는 정답을 보장하는 정의가 아니라 수업용 수정 후보다. 자료의 내용이나 예상 답은 바꾸지 않는다.

```text
분류 기준 v1과 N01·N03·N04만 사용하라.
각 문서의 대표 역할을 GENERAL/CURRENT/ALIAS/REVIEW 중 골라라.
근거 문장과 정의가 겹치는 부분을 적어라. 보류 원인을
정의 중첩 / 입력 부족 / 복합 내용 / 그 밖의 문제로 구분하라.
정의 한 곳을 수정한 v2 또는 수정하지 않는 이유를 제안하라.
내 검토 후 기준을 고정하고, 이후 제공할 별도 확인 자료는 수정에 사용하지 마라.
Jev를 실제 호출하지 않았다면 그 확률이나 실행 결과를 만들어 쓰지 마라.
```

**④ 다른 자료로 확인한다.** v2를 고정한 뒤 스터디장이 확인 자료 4개를 제공한다. 동일한 모델·설정으로 v1과 v2를 각각 적용하고 사람의 기준과 비교한다. 확인 자료를 보고 다시 고치면 새 버전의 개발 자료가 된 것이므로 ‘안 본 자료의 검증’이라고 부르지 않는다. 네 건은 학습 연습이며 일반 성능을 추정할 표본이 아니다.

| 수정 카드 | 기록할 내용 |
|---|---|
| 기준 v1 → v2 | 바꾼 정의 한 곳 또는 유지 이유 |
| 수정 근거 | N ID·문장·모호함의 원인 |
| 실행 방식 | 수동 / 일반 에이전트 / 실제 Jev |
| 확인 자료 | 자료별 사람 기준·v1 선택·v2 선택·오류·보류 |
| 결론 | 개선 / 동일 / 악화 / 판단 불가와 근거 |

API 키가 없어도 수동 또는 일반 에이전트로 이 활동을 마친다. 실제 Jev 연결이 준비된 환경에서는 같은 문서와 네 라벨을 보내고 원응답·모델·버전을 기록할 수 있다. **기존 `03-runner.md`는 이 v1/v2 분류를 실행하지 않는다.** 그 runner의 성공을 이 실습의 실제 Jev 실행 증거로 사용하지 않는다.

AKM에는 원문과 별도로 정의·수정 이유·확인 결과를 보존한다. ‘높은 확률로 골랐다’보다 ‘새 자료에서 사람의 기준과 맞았고 무엇을 보류했는가’를 설명한다.

## 8. 내 사례글과 다음 주 질문 남기기

사례글은 다음 순서로 쓴다.

```text
제목: 내 [도메인] 자료를 AI가 근거로 쓰게 만들기
1. 원래 하려던 일과 자료의 문제
2. 이번에 사용한 자료와 고정한 질문 3개
3. 원문·지식·현재 맥락을 어떻게 나눴는가
4. 실제 적용 전후 답과 출처가 어떻게 달라졌는가
5. Jev를 썼다면 실제/오프라인 구분, 관찰 결과와 추가 비용
6. Ontology + Jev 미니 실습에서 정의를 고치거나 유지한 이유와 확인 결과
7. 해결하지 못한 질문과 다음 주에 정의할 개념·관계
```

최종 제출은 도메인 정의·진단, LLM Wiki v1, 질문 3개의 기준 및 비교 기록, 사례글 1편이다. 원문을 공개할 수 없다면 공유 가능한 작은 예제로 바꾸고 공개 범위를 표시한다. 온톨로지는 이번 주에 완성할 필요가 없다.

## 기존 웹 예제와 함께 쓰기

[기존 요리 관계망](https://dexa.art/ontology/study/)의 R01–R04는 버터를 추가하며 관계를 이해하는 4개 메모다. 이 교안의 N01–N05는 필수 근거·별칭·불필요한 후보를 구분하는 별도 5개 메모다. 서로 다른 합성 자료이며 질문·예상 답·실행 결과를 섞지 않는다. 1주차 120분 실습에서는 이 교안의 N 자료를 사용하고, 기존 관계망은 개념을 살펴보는 참고 화면으로 둔다. 내 자료 실습은 [내 주제 실습실](https://dexa.art/ontology/study/my-topic.html)에서 이어간다.
