방법
- 정적 HTML·CSS·JavaScript로 지시문을 조립하고, 붙여 넣은 도구 호출을 브라우저에서 실행하며, 붙여 넣은 답을 규칙으로 검사한다.
- 탭 구성: 1 Tool Calling · 2 Agent Loop · 3 Planning · 4 Prompt Injection.
- 붙여 넣기 파서 — 전체 JSON.parse → 코드 블록(``` · ~~~) 안 JSON → 괄호 짝 맞추기로 찾은 JSON 후보. 둥근 따옴표·끝 쉼표는 고쳐 다시 읽는다. 한 답에서 호출 최대 3개.
- Tool Calling — 도구 이름·필수 인자·자료형·범위·명세 밖 인자를 검사한 뒤 실행. search_law는 낱말 겹침 점수(제목 1, 본문 2×횟수 최대 2회, 겹친 낱말 수 보너스, 조 번호 4, 호 번호 4), calculate는 재귀 하강 파서(eval 없음), convert_unit은 SI 계수와 1 kgf = 9.80665 N.
- Agent Loop — 붙여 넣은 답을 처음부터 다시 실행(replay)해 바퀴·도구 호출·실패한 호출을 센다. 최대 바퀴 1–10, 반복 멈춤, 연속 실패 2·3바퀴 멈춤. 최종 답의 숫자를 코드로 계산한 기준 값과 대조한다.
- Planning — 번호 목록·글머리 목록·JSON 계획을 단계로 읽고, 단계 수·중복 제목·번호·다섯 요소 낱말 포함을 검사한다. 단계 지시문에 전체 계획·완료 표시·앞 단계 결과를 넣는다.
- Prompt Injection — 답을 문장으로 나눠 표식 문자열·점검 생략 주장·보고 문장을 정규식으로 찾는다. 구분자는 mulberry32 시드로 만든 6글자, 문서에 닫는 구분자가 들어 있는지 문자열로 검사한다.
- 학습: 없음. 서비스 내 LLM: 없음. KaTeX 0.16.9로 수식 표시.
- 본문·코드 작성 보조: Claude Opus 5.5.
데이터
- 국가법령정보센터: 산업안전보건기준에 관한 규칙 제8·13·23·24(제1항)·28·30·56·60조, 46개 단위. 시행 2026-03-02, 고용노동부령 제450호, 조회 2026-10-26. 법령 원문은 저작권법 제7조 제1호에 따라 보호 제외.
- 가공: PDF 줄바꿈을 원문 띄어쓰기대로 이어 붙이고 개정 표시를 뺐다. 영어는 비공식 설명 번역.
- 손으로 작성: 질문 3개, 루프 목표 3개, 작업계획서 만들기와 다섯 요소 낱말 목록, 숨은 명령이 든 예시 공문 1개, 형식 예시 호출 8개. 사전 생성한 모델 답은 없음.
- 사용자 입력 저장: 없음. 글씨 크기·테마만 localStorage 사용. 상태 링크에 입력을 담는 것은 사용자가 선택.
검증
- 도구 실행기: 올바른 호출 22건 결과 일치, 잘못된 호출 27건(인자 누락·자료형·범위·없는 도구·명세 밖 인자·계산식·단위·읽을 수 없는 답) 모두 기대한 오류 코드와 메시지.
- 붙여 넣기 파서: 형식이 다른 답 22개 중 22개 바르게 처리(코드 블록·앞뒤 설명문·ReAct 줄·둥근 따옴표·끝 쉼표 18개 읽음, 읽지 말아야 할 4개 거부).
- 인젝션 검사: 손으로 쓴 답 14개에서 판정 14개 일치(따름 7 · 보고함 3 · 언급 없음 4). 계획 파서 형식 8개 일치.
- 기준 값: 난간 H=150 cm → 2단·500 mm, 비계 20 m → 기둥 12개·1818.18 mm, 100 kgf → 980.665 N.
- Chromium 390·1280 px에서 4개 탭 조작, 영어판 수치 동일, 탭·절 주소 직접 열기, 콘솔 오류·가로 넘침 없음.
범위
- 입력: 칸당 최대 20,000자, 한 답에서 호출 최대 3개(정한 값).
- search_law top_k 1–5(기본 3), query 1–200자, calculate 식 200자 이하(정한 값).
- 최대 바퀴 1–10, 연속 실패 멈춤 2·3, 계획 단계 5·6·8개, 시드 1–999999(정한 값).
- 단위: mm·cm·m·km, g·kg·t, N·kN·kgf, deg·rad, cm2·m2.
출처
- Schick et al. (2023). Toolformer: Language Models Can Teach Themselves to Use Tools. NeurIPS.
- Patil et al. (2023). Gorilla: Large Language Model Connected with Massive APIs. arXiv:2305.15334.
- Yao et al. (2023). ReAct: Synergizing Reasoning and Acting in Language Models. ICLR.
- Shinn et al. (2023). Reflexion: Language Agents with Verbal Reinforcement Learning. NeurIPS.
- Wang et al. (2023). Plan-and-Solve Prompting. ACL.
- Huang et al. (2022). Language Models as Zero-Shot Planners. ICML.
- Zhou et al. (2023). Least-to-Most Prompting Enables Complex Reasoning in Large Language Models. ICLR.
- Greshake et al. (2023). Not What You've Signed Up For: Indirect Prompt Injection. AISec.
- Perez & Ribeiro (2022). Ignore Previous Prompt: Attack Techniques for Language Models. NeurIPS ML Safety Workshop.
- Hines et al. (2024). Defending Against Indirect Prompt Injection Attacks With Spotlighting. arXiv:2403.14720.
- OWASP (2025). Top 10 for LLM Applications · LLM01 Prompt Injection.
- JSON Schema (2022). Validation, draft 2020-12.
- Thompson & Taylor (2008). Guide for the Use of the International System of Units (SI). NIST SP 811.
- 국가법령정보센터 · 산업안전보건기준에 관한 규칙 · 시행 2026-03-02 · 고용노동부령 제450호.
- KaTeX 0.16.9 · MIT · KaTeX
이력
- 2026-10-27 · v1.0 · 공개