2026年9月4日 金曜日
AI時短ラボ
検証· 約18

AnthropicとOpenAIのSDKが揃って「Standard Schema」対応──Zod依存を外せる共通規格とは

2026年8月、AnthropicのTypeScript SDK(v0.121.0)とOpenAI Agents SDK for JavaScript(v0.16.0)が相次いでStandard Schemaへの対応を追加した。ツールの引数や構造化出力のスキーマを、Zodに縛られず共通インターフェースで渡せるようになる。GitHub上の一次リリースノートとStandard Schema公式リポジトリを確認した。

AnthropicとOpenAIのSDKが揃って「Standard Schema」対応──Zod依存を外せる共通規格とは
執筆・編集:
目次

Claude APIやOpenAI Agents SDKでツールの引数スキーマを書くとき、TypeScriptのライブラリとしては長らくZodがデファクトだった。その前提が、2026年8月に両社のSDKでほぼ同時に緩んだ。AnthropicのTypeScript SDKとOpenAIのAgents SDK(JavaScript版)が、どちらも「Standard Schema」という共通インターフェースへの対応を追加したことをGitHubの一次リリースノートで確認した。

3行まとめ

  1. Standard Schemaは、Zod作者Colin McDonnell・Valibot作者Fabian Hiller・ArkType共同創業者David Blassの3名がクレジットされている仕様で、公式サイトによれば「Standard Schema」(値の検証・変換用)と「Standard JSON Schema」(JSON Schemaへの変換用)の2つの仕様からなる
  2. AnthropicのSDKリポジトリにはhelpers.mdという別ドキュメントがあり、Valibot・ArkType・Zod・Effect Schemaの4つを名指しで「Standard Schema実装ライブラリの例」として挙げている。動くコード例(betaStandardSchemaOutputFormatbetaStandardSchemaTool)も掲載されており、structured-outputs.mdという別のガイドページだけを見た当初の確認では見つからなかった情報
  3. Anthropic側の対応は@anthropic-ai/sdk/helpers/beta/standard-schemaというbeta名前空間に置かれており、正式版のヘルパーとは別枠。OpenAI側は~standard.jsonSchema.input()~standard.jsonSchema.output()の実装とstrictモードを要求するなど、より詳細な条件を明示している

まず「Standard Schema」自体が何か

Standard Schemaは、TypeScriptのスキーマ検証ライブラリが実装できる共通インターフェースを定めた仕様で、standard-schema/standard-schemaというGitHubリポジトリで公開されている。GitHub APIで確認したところ、リポジトリの作成日は2024年4月8日、star数は3,599(本記事執筆時点の実測)、ライセンスはMITだった。リポジトリのREADME(packages/spec/README.md)にはこう書かれている。

The Standard Schema project is a set of interfaces that standardize the provision and consumption of shared functionality in the TypeScript ecosystem.

(Standard Schemaプロジェクトは、TypeScriptエコシステムにおける共有機能の提供と利用を標準化する一連のインターフェースである)

仕様の核は~standardという名前空間のプロパティで、スキーマオブジェクトがこのプロパティの下にvalidate関数(値を検証する)と、任意でjsonSchema.input() / jsonSchema.output()(JSON Schemaへの変換)を持つことを定めている。ライブラリごとに専用のアダプタを書かなくても、この共通インターフェースさえ満たしていれば、ツール側は「Zod用の分岐」「Valibot用の分岐」のようなコードを書かずに済む、というのが狙いだ。

Anthropic側の変更

AnthropicのTypeScript SDK、sdk-v0.121.0(2026年8月26日公開)のリリースノートには次の1行がある。

helpers: support Standard Schema for structured outputs and tools

(構造化出力とツールでStandard Schemaをサポート)

同じリリースには、Messages APIにupdatesという思考表示モード(ベータ)の追加や、Organization APIエンドポイント対応も含まれているが、この1行だけを見た当初の確認では、公式の構造化出力ガイド(build-with-claude/structured-outputs.md)にStandard Schema対応を反映した更新が見当たらず、具体的な使い方までは追えなかった。

その後、SDKリポジトリ内の別ファイルhelpers.md(ガイドページとは別に、SDK自身のヘルパー関数群をまとめたドキュメント)を確認したところ、動くコード例と対応ライブラリ名が明記されていた。

"Any schema library implementing Standard Schema (Valibot, ArkType, Zod, Effect Schema, ...) can be used to define the input schema for your tools"

(Standard Schemaを実装しているスキーマライブラリであれば、Valibot・ArkType・Zod・Effect Schemaを含め、ツールの入力スキーマの定義に使える)

構造化出力の実際のコード例も掲載されている。

import { betaStandardSchemaOutputFormat } from '@anthropic-ai/sdk/helpers/beta/standard-schema';
import Anthropic from '@anthropic-ai/sdk';
import * as v from 'valibot';
import { toStandardJsonSchema } from '@valibot/to-json-schema';

const client = new Anthropic();

const NumbersResponse = toStandardJsonSchema(
  v.object({
    primes: v.array(v.number()),
  }),
);

const message = await client.beta.messages.parse({
  model: 'claude-sonnet-5',
  max_tokens: 1024,
  messages: [{ role: 'user', content: 'What are the first 3 prime numbers?' }],
  output_config: {
    format: betaStandardSchemaOutputFormat(NumbersResponse),
  },
});

helpers.mdによれば、Standard Schema対応は@anthropic-ai/sdk/helpers/beta/standard-schemaというbetaの名前空間の下に置かれており、client.beta.messages.parse()と組み合わせて使う設計になっている。正式版のzodOutputFormat()ヘルパーとは別枠のベータ機能という位置づけだ。ツール定義向けにはbetaStandardSchemaToolという対になるヘルパーもあり、こちらも同じ4ライブラリを例に挙げている。JSONスキーマへの変換は、スキーマが~standard.jsonSchema(Standard JSON Schema)を実装していればそこから自動で導出され、実装していない場合はjsonSchemaオプションを明示的に渡す必要がある、とドキュメントには注記がある。

当初「Anthropic側のドキュメント更新は反映されていない」と考えたのは、確認先が公式ガイドサイトのstructured-outputs.mdのみだったためで、SDKリポジトリ内のhelpers.mdという別ドキュメントには、この記事の調査時点で既にコード例が用意されていた。ガイドサイトと、SDKリポジトリ内のドキュメントとで、更新される速度・タイミングが揃っていない可能性がある。

OpenAI側の変更

OpenAI Agents SDK for JavaScriptのv0.16.0(2026年8月15日公開)のリリースノートは、Anthropic側より詳しい条件を書いている。

Tools, handoffs, and agent structured outputs now accept supported Standard Schema values alongside Zod and raw JSON Schema. The schema must provide synchronous ~standard.validate behavior plus ~standard.jsonSchema.input() and ~standard.jsonSchema.output(), and generated schemas must have an object root. Standard Schema function-tool parameters require strict mode; use a Zod schema, raw JSON Schema, or application-side validation for unsupported cases.

(ツール・ハンドオフ・エージェントの構造化出力が、Zodや生のJSON Schemaに加えてStandard Schemaの値を受け付けるようになった。スキーマは同期的な~standard.validateの挙動と、~standard.jsonSchema.input()~standard.jsonSchema.output()を提供しなければならず、生成されるスキーマのルートはオブジェクトである必要がある。Standard Schemaの関数ツールパラメータはstrictモードを要求する。未対応のケースではZodスキーマ、生のJSON Schema、アプリケーション側でのバリデーションを使うこと)

Anthropic側の1行と比べると、対応範囲が「ツール・ハンドオフ・構造化出力」と明示され、条件(同期的なvalidate、jsonSchemaの入出力両方、object rootの必須化)も具体的に書かれている。同じv0.16.0では、モデル呼び出しなしでrunner・sandbox・Realtimeの挙動を検証できるScriptedModel等のテストユーティリティも同時に追加されているが、これは別の機能であり、本記事ではStandard Schema対応にしぼって扱う。

仕様を作ったのは、競合するライブラリ3つの作者たち

Standard Schemaの公式サイト(standardschema.dev)のフッターを確認すると、仕様は「by @colinhacks, @fabianhiller, and @ssalbdivad」とクレジットされている。それぞれのX(Twitter)ハンドルが記載されており、GitHub上のプロフィールと突き合わせると、次のように対応する。

人物 GitHubアカウント 作った・関わったライブラリ
Colin McDonnell colinhacks Zod(GitHubのピン留めリポジトリに明記)
Fabian Hiller fabian-hiller Valibot(Valibot自身のREADMEに「作者」として記載)
David Blass ssalbdivad ArkType(GitHubプロフィールに「@arktypeio, cocreator, cofounder」と明記)

つまりStandard Schemaは、TypeScriptのスキーマ検証ライブラリとして競合関係にあるZod・Valibot・ArkTypeの作者3人が共同で策定した、ベンダー中立の仕様だということになる。公式サイトはさらに、仕様が実は2つに分かれていることも示している。「Standard Schema」(データの検証・変換を行うエンティティ向け)と「Standard JSON Schema」(JSON Schemaへの変換を行うエンティティ向け)だ。Anthropic側のドキュメントで頻出する~standard.jsonSchemaは、この2つ目の仕様に対応する部分にあたる。

AnthropicとOpenAIの対応を並べると

項目 Anthropic(TypeScript SDK) OpenAI(Agents SDK for JavaScript)
バージョン sdk-v0.121.0(2026-08-26) v0.16.0(2026-08-15)
対応範囲 構造化出力・ツール ツール・ハンドオフ・エージェントの構造化出力
名前空間 betaの名前空間(helpers/beta/standard-schema 通常のツール定義の一部として(beta限定の記載はリリースノートになし)
必須の実装要件 ~standard.validate(暗黙。コード例から確認) 同期的な~standard.validate~standard.jsonSchema.input().output()両方、ルートがオブジェクトであること
対応ライブラリの明記 Valibot・ArkType・Zod・Effect Schema(helpers.mdに明記) 明記なし(リリースノートにライブラリ名の列挙はない)
特記事項 Zod専用のzodOutputFormat()は従来通り正式機能として残る 関数ツールのパラメータはstrictモード必須

何がうれしいのか

Zodはデファクトスタンダードではあるが、依存に加えたくない場面(バンドルサイズを絞りたい、すでに別のバリデーションライブラリで統一している等)は珍しくない。Standard Schemaに対応したことで、Zod専用に書かれていたヘルパー(zodOutputFormat()など)に頼らずとも、Standard Schema実装であれば共通の型でツール定義やスキーマ検証を渡せる余地ができる。ただし、OpenAI側の条件にあるとおり「関数ツールのパラメータはstrictモードが必須」など細かい制約があり、あらゆるStandard Schema実装がそのまま使えるとは書かれていない。

OpenAI側の対応ライブラリ名と、実際に動かす検証はできていない

  • OpenAI側(openai-agents-js)のリリースノート・READMEには、Anthropic側のhelpers.mdのような「対応ライブラリを名指しした一覧」が見当たらなかった。OpenAI側で実際にどのライブラリが動作確認済みなのかは、本記事の調査範囲では特定できていない
  • 実際に手元でnpm installし、ValibotやArkTypeのスキーマをAnthropic・OpenAIどちらかのSDKに渡して動かす検証は行っていない。掲載したコード例はAnthropicのhelpers.mdに載っている例をそのまま転記したものであり、この記事の執筆にあたって自分で実行して確認したものではない
  • Effect Schemaが実際に~standard.jsonSchemaを実装しているかどうかなど、Anthropicのhelpers.mdが列挙する4ライブラリそれぞれの対応状況の詳細までは、各ライブラリ自身のドキュメントまで遡って確認していない
  • Standard Schemaの公式サイトのフッタークレジットはX(Twitter)ハンドルの形で示されており、GitHubアカウントとの対応付けは各人のGitHubプロフィール・Valibotのリポジトリ内の記載から本記事側で突き合わせたものである

関連記事: Claude Codeとは / AIコーディングアシスタント比較──Copilot/Cursor/Claude Code【2026年】 / MCP(Model Context Protocol)とは

感想・指摘はコメント欄へ。

シェア: ポスト はてブ

出典・参照資料

AIニュースの解説を動画でも

YouTubeでは注目ニュースの背景を解説し、Xでは新着記事をお知らせしています。

コメント

まだコメントはありません。最初のコメントを書いてみませんか?

AIについて聞きたいことはありますか?

質問箱で無料で受け付けています。回答は公開され、他の方の参考にもなります。

質問箱を見る →

新しい記事をメールで受け取る

AIの新しい発表を、出典付きで整理して届けます。

関連記事