도구 스키마 설계는 홈 AI 에이전트의 행동을 어떻게 제한할까요?

에바 왕 는 기술 작가 그리고 이자 ZimaSpace의 상주 장인입니다. 평생을 기술에 열정을 가진 사람으로서 홈랩과 오픈소스 소프트웨어에 열정을 가지고 있으며,복잡한 기술 개념을 쉽게 이해할 수 있는 실습 가이드로 번역하는 데 전문성을 가지고 있습니다.에바는 셀프 호스팅이 어렵지 않고 재미있어야 한다고 믿습니다. 그녀의 튜토리얼을 통해 커뮤니티가 하드웨어 설정의 신비를 풀도록돕고 있습니다. 첫 NAS 구축부터 Docker 컨테이너 마스터링까지.

도구 스키마 설계는 실행 전에 유효한 도구 호출이 될 수 있는 매개변수와 작업 형식을 제한함으로써 홈 AI 에이전트의 동작 범위를 제약합니다.

모델이 여전히 잘못 추론할 수는 있지만, 형식이 지정된 필드, 필수 대상, 열거형, 유효성 검사를 사용하면 권한 및 승인 계층에서 작업 실행 여부를 결정하기 전에 그 실수가 표현할 수 있는 범위를 줄일 수 있습니다.

도구 스키마는 허용된 요청의 형태를 정의합니다

에이전트 도구는 이름과 설명만으로 구성되지 않습니다. 스키마는 어떤 필드를 제공할 수 있는지, 각 필드가 어떤 형식을 사용하는지, 어떤 조합이 구조적으로 허용되는지를 정의합니다.

현재 MCP 사양은 JSON Schema로 정의된 inputSchema를 요구합니다. 이를 통해 런타임은 자연어에만 의존하지 않고 기계가 읽을 수 있는 계약을 갖게 됩니다. Model Context Protocol은 입력 스키마를 사용해 도구를 정의하므로, 도구 호출이 실행되기 전에 허용되는 인수 구조를 명확히 지정할 수 있습니다. 자세한 내용은 MCP 도구 입력 스키마를 참조하세요.

홈 서버에서는 이를 통해 제한적인 재시작 도구와 모호한 관리용 셸을 구분할 수 있습니다.

임의의 명령을 표현할 수 없는 호출은 그 자체로 더 작은 작업 범위를 갖습니다.

필수 필드는 불완전한 작업을 방지합니다

필수 속성을 지정하면 모델이 작업에 필요한 정보를 제공하도록 강제할 수 있습니다. 파일 이동 도구는 원본과 대상을 모두 요구할 수 있고, 컨테이너 도구는 대상과 작업을 필수로 지정할 수 있습니다.

MCP는 필수 속성과 형식 제약을 지원하는 JSON Schema 유효성 검사 의미 체계를 따릅니다. JSON Schema 유효성 검사는 필수 속성 및 기타 구조적 조건을 정의해 불완전한 요청을 거부할 수 있도록 하며, 이는 JSON Schema 유효성 검사 어휘의 제약 계층을 뒷받침합니다.

이를 통해 애플리케이션 코드가 누락된 대상을 추측하거나 위험한 기본값을 적용하는 일을 막을 수 있습니다. 누락은 암묵적인 작업이 아니라 유효성 검사 실패가 됩니다.

열거형과 범위는 모델이 표현할 수 없는 작업을 제거합니다

스키마는 필드를 열거된 집합이나 제한된 범위로 제약할 수 있습니다. 작업이 재시작, 중지, 시작만 허용한다면 삭제는 해당 필드를 통해 전달될 수 없습니다.

MCP는 도구 인수가 도구 입력 스키마를 준수하도록 요구합니다. 구조적 제약은 일반적으로 무엇을 해야 하는지만 설명하는 문장보다 강력합니다. OpenAPI 스키마는 열거된 값, 숫자 제한, 형식이 지정된 속성을 표현할 수 있어, 도구가 OpenAPI 스키마 정의를 통해 잘못된 작업을 표현할 수 없도록 만드는 방식을 보여줍니다.

가정에서도 같은 메커니즘을 사용해 온도 조절기 값, 보존 일수, 서비스 이름 또는 백업 대상을 제한함으로써 작업 어휘를 명확하게 유지할 수 있습니다.

설명은 선택을 안내하지만 유효성 검사는 구조를 강제합니다

자연어 설명은 모델이 도구를 선택하고 필드를 해석하는 데 도움을 주지만, 계약을 벗어난 호출을 거부하는 유효성 검사기와 같은 경계를 강제하지는 않습니다.

MCP는 도구 설명을 모델의 이해를 돕는 사람이 읽을 수 있는 힌트로 설명하는 반면, inputSchema는 공식적인 매개변수 계약을 제공합니다. Anthropic의 도구 사용도 선언된 도구 매개변수를 활용해 모델이 호출을 생성하도록 안내하지만, 모델의 안내와 런타임 유효성 검사는 서로 다릅니다. 자세한 내용은 Anthropic 도구 사용 스키마를 참조하세요.

이는 도구가 너무 많을 때 도구 선택의 신뢰성이 낮아지는 현상을 다룬 ZimaSpace의 글과도 구분됩니다. 선택의 모호성은 도구가 선택되기 전에 발생하지만, 스키마 제약은 후보 호출 자체에 적용됩니다.

스키마 유효성 검사는 권한을 부여하지 않습니다

구조적으로 유효한 요청이라도 권한이 없을 수 있습니다. 스키마에서 restart(container=postgres)를 허용하더라도 호출자에게 미디어 컨테이너를 재시작할 권한만 있을 수 있습니다.

MCP는 도구 사용을 외부 시스템과의 상호작용으로 간주하며, 호출 과정에 보안 및 사람의 승인 제어를 둘 것을 권장합니다. 스키마의 정확성은 하나의 계층일 뿐 완전한 권한 시스템은 아닙니다. Google Gemini의 함수 호출도 구조화된 함수 선언을 사용하지만, 인증과 권한 부여는 스키마 자체의 외부에 있습니다. 이러한 분리는 Gemini 함수 호출 스키마를 뒷받침합니다.

이 경계는 ZimaSpace의 홈 AI 에이전트 도구 범위 제한과 연결됩니다. 스키마는 표현 가능한 매개변수를 제한하고, 범위와 기능은 실제로 어떤 유효한 작업에 권한이 부여되는지를 결정합니다.

더 작은 스키마는 테스트와 감사가 쉽습니다

선택적 필드가 많은 광범위한 도구는 유효한 조합을 많이 만들어냅니다.

도구를 좁게 설계하면 평가에서 다뤄야 할 동작의 수가 줄어듭니다.

JSON Schema는 객체 속성, 필수 구성원, 추가 속성 제어를 지원하므로 예상하지 못한 필드를 조용히 허용하는 대신 거부할 수 있습니다. Pydantic은 형식이 지정된 모델에서 기계가 읽을 수 있는 스키마를 생성할 수 있어, Pydantic JSON Schema 생성에서 작고 명시적인 스키마가 유효성 검사와 테스트에 더 적합한 이유를 보여줍니다.

이제 모델을 파일, 컨테이너, 장치 또는 백업 시스템에 연결하기 전에 허용된 작업, 잘못된 조합, 경계값, 거부 동작을 테스트에서 열거할 수 있습니다.

기술 및 AI 허브

더 읽어보기

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.