M12 볼트에 맞는 스패너는 무엇일까요? DIN과 ISO가 의견이 다른 지식을 아는 에이전트
요약
본 글은 공식 표준(DIN 933 vs ISO 4017)의 차이점을 정확히 파악하여 육각 체결 부품 질문에 답변하는 'Fastener Spec Agent'를 소개합니다. 이 에이전트는 서로 다른 규격 간의 혼란을 해결하며, 특히 스패너 크기나 상호 교환 가능 여부 등 실질적인 엔지니어링 문제를 다룹니다.
핵심 포인트
- 공식 표준(DIN 933/ISO 4017) 차이점을 아는 에이전트 구현.
- 에이전트는 육각 체결 부품의 규격 및 상호 교환 가능 여부를 정확히 판단함.
- Sanity Studio와 지식 기반을 활용하여 전문적인 정보를 구조화하고 검색함.
이 글은 Sanity Challenge, Path One: 실시간 콘텐츠를 조회하는 에이전트를 배포하기에 대한 제출물입니다.
제가 만든 것
Fastener Spec Agent는 공식 표준들이 서로 의견을 달리하는 경우를 포함하여, 미터법 육각 체결 부품(hex fastener) 질문에 정확하게 답변합니다.
DIN 933과 ISO 4017은 동일한 부품, 즉 완전히 나사산이 있는 육각 머리 세트 스크류(fully threaded hex head set screw)를 설명합니다. ISO 4017이 DIN 933을 대체했지만, 거래처들은 여전히 매일 이전 명칭으로 주문하고 있습니다. 두 표준은 거의 모든 크기에서 동일하지만, 헤드의 평면 간 너비가 변경된 네 가지 경우를 제외하고는 다릅니다:
| Size | DIN 933 | ISO 4017 |
|---|---|---|
| M10 | 17 mm | 16 mm |
| ... | ||
| So |
- "M12 육각 세트 스크류에 필요한 스패너는 무엇인가요?" DIN 933의 경우 19mm, ISO 4017의 경우 18mm가 필요하며, 어떤 규격인지 확인하는 방법(평행면 간 측정)도 알려줍니다.
- "DIN 933 M22와 ISO 4017이 상호 교환 가능한가요?" 아닙니다. M22는 ISO 헤드가 더 큰 유일한 크기입니다 (34mm 대 32mm).
- "M16 세트 스크류의 머리 높이는 얼마인가요?" 10mm로, 두 규격 모두 동일합니다. 차이점을 만들어내지 않습니다.
- "DIN 933은 아직 현재 표준인가요?" 폐기되었으며 ISO 4017로 대체되었습니다. 하지만 여전히 예전 이름으로 광범위하게 주문됩니다.
직접 실행하려면: 에이전트 레포지토리를 클론하고, dotnet user-secrets를 사용하여 세 가지 값(Context Viewer 권한을 가진 Sanity 조직 토큰, MCP 엔드포인트 URL, Anthropic API 키)을 설정한 다음, dotnet run을 실행하세요. 자세한 단계는 README에 있습니다.
코드
- Agent (.NET 9): https://github.com/aftabkh4n/fastener-spec-agent
- Sanity Studio, schemas and seed data: https://github.com/aftabkh4n/sanity-fastener-kb
Sanity 사용 방법
콘텐츠 모델
다섯 가지 문서 유형으로 구성되어 있습니다: standard, fastenerType, propertyClass, sizeSpec (표준별 크기당 하나의 문서) 및 equivalence.
equivalence가 가장 중요합니다. 이 문서는 두 표준을 연결하고 차이점 배열을 포함하며, 각 항목에는 크기, 속성, 두 값, 그리고 일반적인 실용적 영향(
- My Sanity 데이터셋: 다섯 가지 유형에 걸쳐 38개의 문서가 있으며, 각 크기 사양마다 해당 표준의 코드와 상태를 참조하여 펼쳤습니다.
- 공급업체의 DIN 933 표준 시트 (PDF).
- 참조 웹페이지: DIN 931/933과 ISO 4014/4017을 비교합니다.
제가 처음 구축한 빌드는 제한 없이 해당 웹사이트를 크롤링하여 플랜지 볼팅 토크와 ASTM 스터드 볼트에 대한 43개 페이지를 가져왔습니다. 크롤링 범위를 관련 페이지 하나로 제한함으로써 지식 기반(Knowledge Base)을 집중시키고 150개 문서 예산 범위 내에 잘 유지할 수 있었습니다.
지식 기반이 포착한 것들
빌드는 세 가지 문제를 제기했고, 각각 저에게 무언가를 가르쳐주었습니다.
저 자신의 데이터에서 오류를 발견했습니다. 저는 DIN 933의 상태를 current로 설정했었습니다. PDF에는 withdrawn(폐지됨)이며 ISO 4017에 의해 대체되었다고 되어 있었고, PDF가 맞았습니다. 저는 스튜디오에서 상태를 수정하고, 이를 supersededBy(대체됨)와 연결하여 ISO 4017과 연관시켰으며, 재구축했습니다.
출판된 출처 간의 실제 충돌을 포착했습니다. 공급업체의 PDF에는 DIN 933 항목 아래에 M14가 21mm로 나열되어 있습니다. 이것은 ISO 값이며, 원래 DIN 933 수치는 22mm입니다. 지식 기반은 두 주장을 나란히 보여주었고, 각각 출처를 추적할 수 있게 했으며, 저는 이를 22mm로 해결했습니다. 이 결정은 빌드 전반에 걸쳐 유지됩니다.
이는 실제 충돌이 아닌데도 충돌을 감지하여 스키마의 핵심을 증명했습니다. 빌드 과정에서 M22를 한 항목에서는 32mm로, 다른 항목에서는 34mm로 보고했습니다. 둘 다 정확합니다. 하나는 DIN 규격이고, 다른 하나는 ISO 규격입니다. 어느 카드(정보)를 선택하든 지식 기반(Knowledge Base)에 잘못된 내용을 가르치는 '정립된 지침'을 만들었을 것입니다. 대신, 저는 같은 크기에 대한 DIN과 ISO 값이 별개의 표준에 속하며 충돌하는 사실이 아니라는 지침을 추가했고, 이 원칙을 지식 기반의 목적에도 반영했습니다. 다음 빌드에서는 잘못된 충돌 문제가 사라졌습니다.
이것이야말로 구조화된 콘텐츠에 대한 가장 명확한 증거였습니다. 명시적인 DIN↔ISO 모델링 없이는 빌드 과정조차 두 표준을 혼동했습니다.
에이전트가 사용하는 Context 도구들
에이전트는 지식 기반(Knowledge Base) 모드의 Context MCP 엔드포인트에 연결하며, 이 엔드포인트는 세 가지 도구를 제공합니다:
initial_context: 대화 시작 시 지식 기반의 개요를 가져와 에이전트가 어떤 항목들이 존재하는지 알게 합니다.knowledge_base_read: 경로(path)별로 특정 항목을 읽습니다. 예:dimensions/fully_threaded/din_933,dimensions/fully_threaded/iso_4017및standards_comparisonknowledge_base_search: 개요에 깔끔하게 매핑되지 않는 질문에 사용 가능합니다.
에이전트가 콘텐츠를 처리하는 방식
에이전트는 공식 Model Context Protocol C# SDK를 사용하는 .NET 9 최소 API이며, Claude는 Context 도구들을 이용해 '도구 루프(tool loop)'를 실행합니다. M12 질문의 경우, 개요를 읽고 DIN 933, ISO 4017 및 표준 비교 항목을 가져온 다음, 이들을 비교하여 두 값과 그 출처를 모두 포함한 답변을 제공합니다. 모든 도구 호출은 답변 아래에 표시되므로, 무엇을 정확히 읽었는지 확인할 수 있습니다.
시스템 프롬프트에서 가장 중요했던 규칙들은 다음과 같습니다:
- 항상 지식 기반(Knowledge Base)을 참조하고, 기억에 의존하여 치수를 답변하지 마세요.
- DIN과 ISO가 다를 경우, 두 값을 모두 제시하고 각각이 무엇인지 명시하세요.
- 사용자의 부품이 어떤 표준에 따라 제작되었는지 절대 추측하지 마세요. 대신 확인하는 방법을 알려주세요.
마지막 규칙은 테스트를 거쳐 추가되었습니다. 초기에 답변에는 '기성품으로 구매했다면, DIN 933일 가능성이 가장 높습니다'라는 내용이 포함되어 있었습니다. 이는 도움이 되는 것처럼 들리지만, 지식 기반 어디에도 이를 뒷받침하는 정보가 없었기 때문에 삭제했습니다.
Sanity Project 상세 정보
- 프로젝트 ID:
tko9cbz7 - 데이터셋:
production(공개) - 스키마:
standard,fastenerType,propertyClass,sizeSpec,equivalence(Studio 리포지토리 참조)
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기

