コンテンツにスキップ

google-jsonschema-goのこれまでとこれから

チェック

  • [ ] 本文を確認した
  • [ ] 概要を確認した
  • [ ] タグを確認した
  • [ ] inbox/ 直下へ移行した

概要

MCP Go SDK とともに登場した google/jsonschema-go の背景と機能を紹介する資料。 JSON Schema は JSON data の構造、型、制約を定義するための言語で、OpenAPI、REST API validation、form generation、LLM Structured Output などで使われる。 Structured Output では schema creation、serialization、validation、inference をまとめて扱える library が求められる。

本文

JSON Schema は、JSON data の構造や型、制約を定義するための言語。 それ自体も JSON の形で書かれる。 version があり、Draft 2020-12、2019-09、07、06 などで書き方が変わる。

Go よりも JSON Schema の data type は自由度が高い。 Union type、index ごとに型が違う array など、Go の型 system とは直接対応しにくい概念がある。

JSON Schema の用途は次の通り。

  • OpenAPI
  • REST API request / response validation
  • JSON Schema Form による入力画面生成
  • LLM Structured Output

LLM Structured Output で必要な機能は、Go type で schema を定義する Schema Creation、schema object から JSON string にする Serialization、与えられた JSON value が schema に適合するかの Validation、Go struct などから schema object を生成する Inference。

従来は、Inference は invopop/jsonschema-go、Validation は santhosh-tekuri/jsonschema のように library を組み合わせる必要があった。 google/jsonschema-go は、こうした機能をまとめて扱う library として紹介されている。

要点

  • JSON Schema は API validation と LLM Structured Output の基盤になる。
  • Go type と JSON Schema の表現力には差がある。
  • Structured Output では creation、serialization、validation、inference が必要。
  • google/jsonschema-go は MCP Go SDK 文脈で注目される library。

タグ

go #json-schema #structured-output #llm #mcp