← PRISM 홈
PRISM Harness

좋은 모델이 아니라,
좋은 harness가 안전을 만든다.

AI의 성능은 모델 하나가 아니라, 그것을 감싼 도구·메모리·상태·실행·안전장치·관측이 결정합니다. PRISM은 이 여섯을 ai_guard 하나로 묶었습니다.

“Harness — 모델 주변의 도구, 메모리, 상태, 실행, 안전장치, 관측 인프라.”
KEPCO AI 혁신 아카데미 학습맵 · 용어사전
안전장치 ai_guard 관측 ai_audit_log 도구 egress 8 실행 규칙+LLM 상태 SQLite
AI 기능 · SKILLS

harness가 감싸는 것 — AI 기능

harness 스스로는 아무것도 만들지 않습니다. 아래 AI 기능(skill)들을 감싸 안전하게 실행시킵니다. 범용 모델이 주는 것과, PRISM이 직접 설계한 것을 나눕니다.

🌐범용 모델이 제공외부 제작

텍스트 요약·생성(회의록) · 음성↔텍스트(STT·TTS) · 이미지 판독(OCR)

Claude·Google이 원래 잘하는 능력을 그대로 활용합니다.

🛠️PRISM이 직접 설계자체 제작

결합위험 추론 · 유사 사고매칭(규칙+LLM) · 급락 플래그 · 아찔순간 이중 비식별 · 공종별 이해 퀴즈

안전철학과 한전 현장 데이터로 만든 도메인 특화 기능입니다.

안전장치 · GUARDRAILS

모든 AI 호출은 한 문을 지납니다.

상용 AI로 나가는 모든 요청은 backend/ai_guard.py 단 하나를 통과합니다. 감사자가 파일 하나로 "무엇이 나가고 무엇이 막히는지" 확인할 수 있습니다.

1kill-switchAI_ENABLED=false → 즉시 전면 차단, 앱은 503으로 degrade(죽지 않음)
2길이·형식 검증입력 상한 초과 시 잘라 보내지 않고 거절
3PII 스크러빙 · 가명화실명→작업자A로 치환, AI에는 가명만 전송 (설비·작업 어휘는 보존)
4프롬프트 인젝션 방어"이전 지시 무시" 류 알려진 문구 차단 + 입력을 '자료'로 구획 분리 (완전 차단을 보장하진 않음)
5시스템 안전지침 주입활선 직접작업 안내 금지 등 불변 지침
6egress 확인 후 호출허용 호스트 외 차단 → Anthropic 호출
7출력 검증 → 가명 복원 · 감사기록지어내거나 복원된 개인정보는 다시 마스킹하고, 화면 출력 직전 실명 복원 후 감사로그를 남깁니다
관측 · OBSERVABILITY

무엇이 나갔는지는 남기고,
내용은 남기지 않습니다.

모든 호출은 ai_audit_log에 기록됩니다. 단, 프롬프트·응답 본문은 저장하지 않습니다 — 감사로그가 이 시스템에서 가장 큰 개인정보 저장소가 되는 것을 막기 위해서입니다.

✓ 남기는 것

  • 시각 · 기능명 · 벤더 · 모델어떤 기능이 언제 무엇을 호출했나
  • 입력 길이 · SHA-256 해시같은 입력이 반복됐는지 — 되돌릴 수 없음
  • 제거 내역 · 인젝션 적중 수이름 몇 건·연락처 몇 건을 지웠나
  • 성공 여부 · 소요 시간실패·지연 추적

✕ 남기지 않는 것

  • 프롬프트 본문작업자가 보낸 원문 텍스트
  • 응답 본문AI가 생성한 답변 원문
  • 아찔순간 음성·낭독 문장변환 즉시 파기 — 집계 수치만 남김
도구 · TOOLS

바깥세상과는, 정해진 문으로만.

harness가 쓸 수 있는 외부 도구는 화이트리스트 7곳으로 못박혀 있습니다(ai_guard 허용목록은 앱 자기 백엔드 api.prizmwork.com을 더해 8개 항목). 목록 밖 호스트는 코드가 호출 자체를 막고, 테스트가 소스를 훑어 우회를 실패시킵니다.

api.anthropic.comClaude — 위험분석·의미매칭·요약·퀴즈
texttospeech.googleapis.comGoogle TTS — AI 분석 음성 낭독
speech.googleapis.comGoogle STT — 아찔순간·낭독 음성→텍스트
apihub.kma.go.kr기상청 — 현장 날씨
api.open-meteo.com기상 백업 — 기상청 장애 시
dapi.kakao.com카카오 — 주소·지도·작업계획도
api.sendgrid.comSendGrid — 메일 발송
실행 · ORCHESTRATION

확실한 일은 코드가,
판단은 AI가 — 그리고 폴백.

harness는 결정론 규칙과 LLM을 엮습니다. 규칙으로 값싸게 좁히고, 판단만 LLM에 맡기며, AI가 실패해도 규칙으로 폴백해 앱이 멈추지 않습니다. (유사 사고매칭 예)

코드규칙 1차 필터SQL 조직 · 공종 · 전압 · 공법 · 날씨 · 시간대
코드후보 경량화random.sample → ≤ 60건
AILLM 의미 랭킹압축목록에서 가장 닮은 2건 선별
코드id 검증 · 실패 시 규칙 폴백AI가 없어도 결과는 나온다
작업자오늘 작업과 닮은 실제 사고 경고
상태 · 메모리 · STATE

기억은 앱이 쥐고,
AI에는 필요한 만큼만.

지속 상태는 서버 DB가 보관하고, 민감한 연결은 요청 범위 안에서만 다룹니다.

🗄️SQLite · prism.db

TBM 기록 · 사고사례 코퍼스 · 아찔순간 · 감사기록을 단일 DB에 보관합니다(ORM과 raw 쿼리가 같은 DB — split-brain 제거).

🎭요청별 실명↔가명 표

호출마다 실명↔가명(작업자A) 표를 만들어 텍스트를 받는 Claude에는 가명만 보내고, 응답을 화면에 보이기 직전 실명으로 복원합니다. 즉 Claude는 실명 텍스트를 받지 않습니다. (아찔순간 음성은 인식을 위해 Google STT에 원음이 전달되며, 이름 등 식별정보는 인식된 텍스트 단계에서 제거하고 원음 자체는 저장하지 않고 즉시 파기합니다.)

화면도 안전장치 · DESIGN HARNESS

디자인 하네스

화면 규칙도 작업자를 지키는 harness입니다 — 취지만 짧게.

☀️야외 가독성

진한 바탕·흰 글자 — 옥외 반사광에도 또렷하게.

👁️노안 배려

화면 비율로 커지는 큰 글자와 넓은 터치 영역.

🎯집중

꼭 필요한 정보만 — 과부하는 곧 주의 분산.

harness가 곧 안전

모델은 갈아끼워도,
harness는 남습니다.

PRISM의 안전은 ai_guard라는 harness가 지킵니다 — 도구를 제한하고, 개인정보를 가리고, 무엇이 나갔는지 남기고, AI가 멈춰도 규칙으로 이어갑니다.

단일 관문 · 본문 없는 감사 · egress 화이트리스트 · 규칙 폴백 — 한전 정보보안 보안성 검토에 대응하는 실행 인프라입니다.

← PRISM 홈으로 돌아가기