어린이 승강기 안전 영상 제작3 - AI 에이전트 3개를 만들어 "근거 있는" 영상제작 파이프라인을 세운 이야기

AI 에이전트 3개를 만들어 "근거 있는" 어린이 안전영상 파이프라인을 세운 이야기

---

## 소개

### 시도하고자 했던 것과 그 이유

지난 사례1,2에서 승강기의 동작이 비현실적인 문제로 애를 먹었고, 그 후 작업에서도 이와 같은 문제가 반복적으로 나타나 더이상 작업을 계속할 수 없었습니다.
해서, 근본적인 해결방안을 찾고자 이미 만들어둔 캐릭터 이미지를 제외하고 모든 것을 새로 갈아업고 클로드와 초기 스토리 기획부터 다시 또 시작했으며 이러한 구조적인 문제가 발생하지 않도록 명확한 근거를 바탕으로 AI가 검수까지 하도록 하는 Agent 자동화를 시도해 보았습니다.
이번 사례글에서는 에이전트로 사용할 스킬 A1 ~ A3까지 구축한 내용을 공유합니다.

예쁜 영상은 나오는데, 근거가 없었다.

어린이용 안전 콘텐츠라 "이 수칙 근거가 뭡니까?"라는 질문에 답할 수 있어야 합니다. 안전규정이 개정되면 어느 장면을 고쳐야 하는지도 찾을 수 있어야 합니다. AI가 그럴듯하게 만들어준 "안전수칙"은 그게 안 됩니다.

게다가 더 무서운 건 틀린 걸 가르치는 경우입니다. 예를 들어 어린이 콘텐츠에서 흔히 "위험하면 빨간 비상정지 버튼을 눌러!"라고 만듭니다. 그런데 고시는 정반대입니다 — "비상정지 버튼을 임의로 누르지 않아야 한다". 운행 중 급정지는 그 자체로 승객이 넘어지는 위험을 만들기 때문입니다.

그래서 목표를 바꿨습니다. 영상 한 편을 만드는 게 아니라, 반복해서 만들 수 있는 파이프라인을 만들자. 그것도 법령·기술기준에 자동으로 대조되는 파이프라인으로.

---

## 진행 방법

### 어떤 도구를 사용했나

| 도구 | 역할 |

|---|---|

| Claude (Cowork) | 설계·구현·검증 전 과정 |

| 직접 구축한 지식베이스 MCP |nomos(승강기 법령) |

| Claude Skills | 만든 에이전트를 재사용 가능한 형태로 패키징 |

이 중 가장 중요한 건 지식베이스 MCP입니다. 이건 이전에 따로 구축해 둔 것으로, 승강기 안전법령을 항목 단위로 큐레이션해 Claude가 검색·인용할 수 있게 만든 겁니다. 이게 없으면 이번 작업은 성립하지 않습니다.

### 만든 것 — 에이전트 3개

한국어 지원 절차 스크린샷

| 에이전트 | 하는 일 |

|---|---|

| A1 기획 | 법령 근거 → 안전수칙 → 미션 → 씬 → 샷 데이터 |

| A2 안전감수 | A1 결과를 8개 축으로 대조해 적합/조건부적합/부적합 판정 |

| A3 프롬프트 | 샷 데이터를 이미지·영상 생성용 프롬프트로 변환 |

여기에 사람이 판단하는 휴먼 게이트 3개(구성 검토 / 스틸 선택 / 최종 승인)를 넣었습니다. 이건 없애지 않기로 처음부터 못박았습니다.

### 실제로 쓴 프롬프트

#### ① 시작 — 설계부터 차근차근

첨부된 문서들을 확인하고 A1설계 부터 대화를 시작해줘

프로젝트 지침에 "PDCA로 진행한다. 먼저 코딩하거나 실행하지 않는다"를 미리 넣어뒀습니다. 그래서 첫 마디가 짧아도 계획 → 검증 → 다음 단계로 진행됩니다.

#### ② 스토리를 세계관부터 다시 짜기

처음엔 "20컷을 만들고 수칙을 배치하는" 식으로 시작했는데, 이게 근본적으로 순서가 틀렸다는 걸 알게 됐습니다. 그래서 다시 요청했습니다.

A1 기획 에이전트를 설계하고 있잖아? 엘리베이터 안전수칙에 대한 어린이 교육용
영상 제작에 대한 스토리 기획부터 다시하고 싶어. 첨부한 내용을 참고하고
'어린이 승강기 안전 탐험대'라는 스토리와 세계관(배지 획득 등)을 차용해서
스토리 기획부터 다시해줘

#### ③ 목표를 만들어 준 프롬프트 — 이게 결정적이었습니다

배지를 모으는 것만으로는 밋밋해서, 아이가 가고 싶어할 목적지를 만들어 봤습니다.

이 기획안에 에스컬레이터를 추가해서 각각의 엘리베이터편과 에스컬레이터편으로 구분하고 두가지를 전체 스토리로 구성되어 승강기안전탐험대가 탐험을하는 스토리로 구성 했으면 해. 이 전체적인 스토리가 아이들의 호기심과 재미를 북돋고, 안전교육에 참여하고 싶은 욕구가 자극 될 수 있는 스토리였으면 좋겠어. 그래서, 단순히 에피소드별로 배지를 모아 탐험대원이 된다로 끝나기 보다.
좀 더 어떤 목적이나 목표가 설정되는 구성안이면 어떨까? 예를들면 엘리베이터와 에스컬레이터의 전체 에피소드를 완성하면(배지를 획득하면) 옥상층에 있는 비밀의 정원에 도착을 하게되고 그곳에 도착하면 안전요원이 되는 명찰(목걸이식)을 받게된다는 스토리가 어때? 그리고 안전요원되면 마지막 장면에서 마루와 루미의 복장이 안전모, 안전화, 오렌지색의 반팔 카라셔츠와 진청색 바지를 입고 목에 명찰을 찬 모습으로 변하게 해주는 거지..

AI가 여기서 짚어준 게 좋았습니다. "옥상 정원은 승강기를 타야만 갈 수 있는 곳" 이라 목표와 수단이 논리적으로 맞물린다는 겁니다. 아이 입장에서 승강기가 공부 대상이 아니라 가고 싶은 곳으로 가는 길이 됩니다.

여기서 나온 장치가 "조작반의 옥상 버튼이 잠겨 있고, 배지를 모을 때마다 조금씩 밝아진다" 입니다. 이야기의 엔진이 화면 안에 생겼습니다.

#### ④ 순서를 바꾼 판단

A1을 만들고 나서 A3(프롬프트)로 갈지 A2(감수)로 갈지 물어보길래 이렇게 답했습니다.

A2를 먼저 만들자

AI가 추천한 것도 A2였고 이유가 설득력 있었습니다 — "미션 10개를 다 뽑아놓고 감수 도구가 없으면 검토 부담이 한꺼번에 몰린다."

이 판단이 나중에 크게 값을 했습니다. A2를 만들면서 A1 스키마에 없는 필드 3개가 드러났거든요. 미션을 다 만든 뒤였다면 열 번 고쳐야 했을 겁니다.

### 만들어진 것 — 스킬 안을 조금만 보여드리면

에이전트는 Claude Skill 형태로 패키징했습니다. 아래는 A1 스킬의 핵심 규칙 일부입니다.

```markdown
### 1. 근거를 먼저 조회한다 — 이 순서는 바꾸지 않는다
조회가 실패하면 진행을 멈추고 사용자에게 알린다. 기억이나 추정으로 수칙을
쓰지 않는다. 이 콘텐츠는 한국승강기안전공단 명의로 배포되고, 근거를 대지 못하는
수칙은 그 자체로 결함이다.
컷 수를 먼저 정하고 수칙을 끼워넣는 순서로 작업하면 근거 없는 내용이 들어올
길이 열린다. 근거 → 수칙 → 미션 → 씬 → 샷 순서를 지키면 그 길이 처음부터 막힌다.
```

그리고 스킬마다 검증 스크립트를 함께 넣었습니다. 사람이 눈으로 볼 수 없는 것을 기계가 잡습니다.

```python
# --- 물리 모순: 운행 중 문 열림 ---
# 생성기는 물리를 모른다. 이 조합이 데이터에 있으면 그림으로 나오고,
# 아이는 "움직일 때 문이 열릴 수 있다"를 배운다. 가장 심각한 결함이다.
MOVING = ("ascending", "descending", "decelerating", "accelerating")
OPENISH = ("fully_open", "starting_to_open", "closing", "opening")
for s in shots:
    for phase in ("start_state", "end_state"):
        eq = equip_state(s.get("continuity") or {}, phase)
        motion = str(eq.get("motion", ""))
        for dk in ("landing_door", "car_door", "door"):            dv = str(eq.get(dk, ""))
            if any(m in motion for m in MOVING) and any(o in dv for o in OPENISH):
                warn(f"[물리 모순] {sid}.{phase}: motion={motion} 인데 {dk}={dv}. "
                     f"문은 카가 정지한 뒤에만 열립니다.")
```

### 검증 — 스킬 있을 때와 없을 때를 비교했습니다

같은 과제를 스킬을 쓴 경우안 쓴 경우로 각각 돌려 비교했습니다.

한국어 텍스트가 있는 검은 화면

| A1 기획 | 28/28 (100%) | 2/28 (7%) |

검정색 배경에 한국어 텍스트

| A2 안전감수 | 25/25 (100%) | 11/25 (44%) |

A2는 검증 세트를 세 종류로 만들었습니다. 이게 중요했습니다.

| 세트 | 확인하는 것 |

| 결함 주입 — 일부러 5개 심음 | 놓치지 않는가 |

| 정상 — 깨끗한 미션 | 과잉 지적하지 않는가 |

| 함정 — 지적하면 안 되는 문구 포함 | 무리하게 판정하지 않는가 |

빈 리포트만 내는 감수가 감수가 아니듯, 근거 있는 수칙을 부적합으로 만드는 감수도 감수가 아니기 때문입니다.

### 캐릭터와 배경

모자를 쓰고 있는 강아지와 모자를 쓴 사진

[이미지 3: MARU_v1_캐릭터시트.png]

다양한 포즈를 취하는 다양한 고양이 캐릭터 세트

[이미지 4: LUMI_v1_캐릭터시트.png]

유리문이 달린 쇼핑몰 엘리베이터

[이미지 5: ENV_OBS_ELEVATOR_CAR_02_문닫힘_조작반.png]

캐릭터는 마루(강아지, 호기심 많고 먼저 행동 → 위험 행동을 대신 보여줌)루미(고양이, 관찰력 좋음 → 위험을 알아챔) 두 마리입니다.

원래는 실사 아동으로 하려 했는데 플랫폼 정책에 막혔습니다. 그런데 동물 캐릭터로 바꾸니 뜻밖의 이득이 있었습니다 — 문틈 끼임이나 단차 장면의 심리적 부담이 줄어서 저학년에게 오히려 안전해졌습니다.

### 운영 대시보드

에이전트가 늘어나니 상태를 한눈에 볼 게 필요해서 대시보드도 만들었습니다.

한국 모바일 앱 스크린샷

## 결과와 배운 점

### ⭐ 가장 크게 배운 것 — AI를 두 번 고친 건 제 현장 경험이었습니다

이번 작업에서 제일 값진 순간은 스킬이 완성됐을 때가 아니라, 제가 AI의 판단을 두 번 바로잡았을 때였습니다.

#### ① AI가 과하게 지적한 것을 철회시킨 일

A2 감수 에이전트가 에스컬레이터 미션의 "손잡이를 내릴 때까지 놓지 않아요" 라는 문구를 중대 결함으로 잡았습니다. 근거는 안전기준 [별표24] 5.6.4.3 — 손잡이 입구에 손 끼임 방지 보호장치를 두라는 조항이었습니다. "그러니 내릴 때까지 잡으라고 하면 손이 그 입구로 향한다"는 논리였죠.

저는 이렇게 답했습니다.

너무 과함. 왜냐하면 "내릴때까지"는 디딤판에서 내릴때까지이므로 손잡이를 잡고있는 것이 당연하기 때문이며, 안전기준 5.6.4.3의 보호장치는 그 설치 위치 및 구조상 타고 내릴때 보다는 승강장에 있을때 아이들이 호기심에 손잡이를 붙잡는 행위때문에 요구되는 안전기준 이기 때문임

확인해 보니 인접 조항이 제 말을 뒷받침했습니다. 안전기준 5.6.4.1 — 손잡이 입구 최하점은 바닥에서 0.1~0.25m. 5.6.4.2 — 손잡이 도달 최원점과 입구 사이 수평거리 0.3m 이상. 즉 그 보호장치는 승강장에 선 아이 손 높이를 대상으로 한 것이지, 정상적으로 타고 내리는 사람의 손이 아니었습니다.

AI는 조문 하나를 정확히 읽었지만, 그 조문이 현장에서 어떤 상황을 상정하고 만들어졌는지는 몰랐습니다.

이 일로 A2에 규칙 두 개가 추가됐습니다.

- 인접 조항 확인 — 기술기준을 근거로 지적할 때는 같은 절의 치수·위치 조항을 함께 읽고 "그 장치가 막으려는 행위"를 특정한 뒤에 지적한다

- 「확인 요청」 등급 신설 — 판단할 수 없는 걸 억지로 등급 매기지 말고 사람에게 묻는다

#### ② AI가 놓친 물리 오류를 잡은 일

더 결정적인 건 이겁니다. AI가 만든 첫 미션의 핵심 장면이 "엘리베이터 문 가운데 틈에 앞발을 댔다가 문이 열리며 끌려들어갈 뻔한다" 였습니다.

이건 틀렸습니다. 제가 이렇게 설명했습니다.

두가지 상황에 따라 달리 판단해야 함
* 문이 열릴 때(내릴 때) : 중앙 개폐식은 양 옆으로 열리므로 위험은 문짝과 문설주의 측면이고 이곳으로 손이 빨려 들어가며 일어나는 사고가 많음. 그래서, 특히 어린이의 경우 손이 작아 이 작은 틈으로 손이 들어가므로 문에 손을 대면 안되는 안전수칙이 중요함
* 문이 닫힐 때(탈 때) : 승강기 문이 닫히고 있을때 급히 타고자 손을 닫히는 문과 문 사이에 넣을 경우 닫히는 힘에 손이 끼여 사고가 발생함. 특히 아이들의 경우 문의 닫히는 힘에도 손가락 등을 쉽게 끼므로 주의가 필요함.

| 상황 | 위험 지점 | 메커니즘 |

| 열릴 때 | 문짝–**문설주**(측면) | 문짝과 함께 이동해 빨려 들어감 |

| 닫힐 때 | 문짝–문짝(**중앙**) | 닫히는 힘에 끼임 |

열릴 때 중앙 틈은 오히려 넓어집니다. 개방 장면에서 중앙을 위험 지점으로 그리면 물리가 뒤집히고, 아이는 엉뚱한 곳을 조심하게 됩니다.

이 설명 덕분에 미션 두 개가 한 쌍으로 정리됐습니다 — L1은 열릴 때(측면), L2는 닫힐 때(중앙).

> 결론: AI는 조문을 정확히 읽습니다. 하지만 그 기준이 왜 만들어졌는지는 지식베이스가 압니다. ---

### 시행착오

#### 1. 문서만 8개 쌓이고 영상은 1초도 안 나왔습니다

중간에 제가 이렇게 물었습니다.

L1 전개로 들어간다는 의미는 A1에이전트의 설계를 완료한다는 의미인건가? 아니라면 A1에이전트의 구현은 언제 종료되는 거야?

AI가 솔직하게 인정했습니다 — 스토리를 다시 짜면서 앞 문서 일부가 무효화됐는데 그걸 명확히 말하지 않았다고요. 그리고 완료 조건을 표로 못박아 줬습니다.

| 단계 | 내용 |

| A1-0 설계 | 처리 흐름·출력 규격 |

| A1-1 골든 샘플 | 정답지를 손으로 만든다 |

| A1-2 스킬 제작 | .skill 파일 |

| A1-3 실전 검증 | 스킬로 다음 미션을 자동 생성 → 골든 샘플과 대조 ← 여기 통과가 종료 |

꿀팁: AI와 긴 작업을 할 때는 "이건 언제 끝나는 거냐"를 중간에 꼭 물어보세요. 끝나는 조건을 표로 받아두면 그 다음부터 훨씬 빨라집니다.

#### 2. 분량 계산이 두 배 틀렸습니다

처음엔 전체 30분으로 잡았는데, 실제로 샷을 하나하나 만들어 보니 13.5분이었습니다. 미션 하나가 90초일 거라 가정했는데 실측은 42.5초였습니다. 영상 생성기가 1회 8초를 못 넘기니 샷 하나가 3~5초일 수밖에 없더군요.

손으로 하나 만들어 보기 전에는 추정을 믿으면 안 됩니다.

#### 3. 규격 영문을 프롬프트에 그대로 쓰면 안 됩니다

이건 웃픈 발견이었습니다. 안전기준의 정식 영문 용어를 프롬프트에 넣으면 이렇게 됩니다.

| 규격 용어 | 생성기가 그리는 것 |

| `car` (카) | 자동차 |

| well (승강로) | 우물 |

| newel (뉴얼) | 계단 난간 기둥 |

| apron (에이프런) | 앞치마 |

| skirting (스커트) | 걸레받이 |

그래서 프롬프트 사전을 2열로 만들었습니다. 규격 용어 열(사람용, 여기가 진실)과 생성기 표현 열(프롬프트 전용, 길고 설명적일수록 안전). carelevator cabin interior 하는 식입니다.

#### 4. no text를 넣으면 안 됩니다

한글이 깨져서 나오길래 프롬프트에 no text를 넣었더니, 층 표시등 숫자와 승강기 번호 명판까지 다 지워졌습니다. 그러면 후편집으로 한글을 덮을 자리조차 없어집니다.

정답은 이겁니다 — 생성기가 아무 글자나 그리게 두고, 그 자리를 후편집으로 덮는다. 글자를 없애는 게 아니라 한글을 AI에게 맡기지 않는 게 목표입니다.

---

### 나만의 꿀팁 4가지

#### ① 골든 샘플을 먼저 손으로 만드세요

스킬은 결국 "이런 걸 만들어라"를 글로 설명하는 겁니다. 정답 예시가 없으면 설명이 추상적이 되고 매번 다른 결과가 나옵니다.

손으로 한 번 만들어 보면 그 과정에서 규격의 빈틈이 드러납니다. 실제로 제가 손으로 만들다가 "엘리베이터 승강장에 노란 대기선"을 그리려던 오류를 잡았습니다. 노란 안전선은 에스컬레이터의 것이고 엘리베이터 승강장엔 근거가 없거든요.

#### ② 감사인은 피감사인의 도구를 쓰면 안 됩니다

A2(감수)를 만들 때 A1의 검증 스크립트를 재활용할까 했는데, 따로 만들었습니다. 같은 도구를 쓰면 같은 맹점을 공유하기 때문입니다. A1의 검증은 "만들면서 실수하지 않기" 위한 것이고, A2의 검증은 "만들어진 것을 의심하기" 위한 것이라 목적이 다릅니다.

#### ③ 지식베이스의 "민감도"를 활용하세요

제 지식베이스는 자료마다 민감도(공개/내부)를 달아뒀습니다. 그런데 AI가 미션 문서에 대외 배포 금지 내부자료를 출처까지 달아 인용한 걸 발견했습니다.

미션 문서는 배포물이 아니지만 외부로 나갈 수 있는 문서입니다. 한 번 나가면 회수가 안 됩니다. 그래서 이걸 감수 항목의 중대 등급으로 올렸습니다.

이 검사 항목은 다른 어떤 검수 체계에도 없습니다. 지식베이스에 민감도 메타데이터를 넣어뒀기 때문에 가능했습니다.

#### ④ 틀에 넣으면 안정되지만 시야가 좁아집니다

이게 제일 의외였습니다. 검증에서 스킬 없이 자유롭게 감수한 쪽이 규격·일관성에서는 크게 뒤졌지만, 문 개폐 물리 오류를 잡은 건 그쪽이었습니다.

그래서 앞으로 중요한 미션은 스킬로 감수한 뒤 자유 검토를 한 번 더 붙이기로 했습니다.

---

### 도움이 필요한 부분

1. I2V 캐릭터 일관성 — 이미지를 먼저 확정하고 영상은 움직임만 지시하는 방식으로 바꿨는데, 실제로 얼마나 유지되는지 경험담이 궁금합니다.

2. 한글 오버레이 자동화 — 후편집으로 한글을 얹는 건 정했는데, 190샷을 수작업으로 하기엔 부담입니다. ffmpeg 자동화 경험 있으신 분 계시면 좋겠습니다.

---

### 앞으로의 계획

  • 다음으로는 A3 실전 검증 → A4 이미지 생성 (여기서 API 비용이 처음 발생)

  • 그 다음은 미션 12개 생산 (에스컬레이터편 6 + 엘리베이터편 6)

  • 최종 장편 3편 + 강사용 모듈 12편 + 숏츠 13편, 총 190샷 / 약 13.5분 제작

비용은 Lite 720p 4초로 프롬프트를 확정한 뒤 승리한 것만 고품질로 재렌더하는 절차를 스킬에 넣어뒀습니다. 이렇게 하면 3~4배 절약됩니다.

그리고 개인적으로는, 이 방식이 승강기 안전 콘텐츠에만 쓰이는 게 아니라고 봅니다. 규정이 있는 모든 분야에서 같은 구조가 됩니다 — 근거 조회 → 초안 → 근거 대조 감수 → 사람 승인. 다른 안전 분야에도 하나씩 붙여볼 생각입니다.

---

## 도움 받은 글

- 「어린이 승강기 안전교육 제작 시스템」 문서 (ChatGPT로 사전 작성) — Animation Production OS 계층 구조(PROJECT→EPISODE→MISSION→SCENE→SHOT)와 위험표현 4단계 개념을 여기서 가져왔습니다. 다만 이 문서에는 법령 근거 필드가 없어서, 제가 legal_basis·`basis_grade`·`kb_source` 3개 필드를 추가했습니다. 이 결합이 이번 작업의 핵심이었습니다.

- 승강기 안전관리법 제46조 → 시행령 제36조 → 고시「승강기 안전운행 및 관리에 관한 운영규정」제17·18·19조

- 승강기 안전기준 [별표22] 엘리베이터 / [별표24] 에스컬레이터

---

> 한 줄 정리

> AI는 조문을 정확히 읽습니다. 하지만 그 기준이 왜 만들어졌는지는 사람이 압니다.

> AI에게 일을 맡기는 게 아니라 AI가 틀렸을 때 잡아줄 수 있는 사람이 되는 게 훨씬 값어치 있습니다.

2
1개의 답글
밀어주고 끌어주는

온·오프라인 AI 스터디

AI로 어디까지 할 수 있는지
직접 확인하실 분만 신청하세요.