Recommendation for JSON & schema
JSON & Schema Output
Our top recommendation for JSON & Schema Output, based on the public evidence we track, is OpenAI: GPT-5.6 Luna.[1][2][3] Use for requirement extraction and gap analysis workflows where Pydantic-based strict JSON schema validation is required, as confirmed in production Korean NLP services. Watch out: Avoid the /v1/chat/completions endpoint with legacy structured output contracts; the model requires /v1/responses or adapted providers to return valid schema-conforming output. OpenAI: GPT-5.6 Sol is the next-ranked alternative. Select for data transformation pipelines involving table joining and reformatting, where LiveBench Data Analysis scores indicate strong structured output reliability.
About this recommendation
- Updated
- Sep 25, 2026
- Evidence through
- Sep 25, 2026
- Sources
- 15
- Revision
- v77
Decision audit
Why this result
Inspect the inputs and the computed order behind the recommendation.
Models screened
20
live candidates
Evaluation feeds
6
task-weighted
Winner coverage
43%
intended feed weight
Largest provider share
4 of 7
Anthropic
Sources evaluated
The task sets these weights before any model is scored.
| Evaluation feed | Weight | Winner result | Field measured |
|---|---|---|---|
| Structured-output evalunavailable | 40% | feed unavailable | 0/20 |
| LiveBench Data Analysis | 20% | #17 | 18/20 |
| Berkeley Function Calling | 15% | not measured | 3/20 |
| LMArena Text | 10% | #39 | 19/20 |
| price weight | 10% | 100/100 | 20/20 |
| OpenRouter usage | 5% | 99/100 | 20/20 |
Provider concentration
Each exact model is scored separately; provider identity is not a ranking input.
- Anthropic4 models
- OpenAI3 models
Decision table
Every published model is shown in computed order. Practitioner sources are distinct community threads, not the citations repeated in the prose below.
| Rank | Model | Relative score | Coverage | Practitioner evidence | Strongest measured reason |
|---|---|---|---|---|---|
| 01 | GPT-5.6 LunaOpenAI | 65 | 43% | 9 threads · 9 families · 2 cautions | #17 LiveBench Data Analysis · #39 LMArena Text |
| 02 | GPT-5.6 SolOpenAI | 59 | 43% | 1 threads · 1 families · 0 cautions | #6 LiveBench Data Analysis · #13 LMArena Text |
| 03 | Claude Fable 5Anthropic | 57 | 43% | 1 threads · 1 families · 1 cautions | #1 LMArena Text · #3 LiveBench Data Analysis |
| 04 | Claude Sonnet 4.6Anthropic | 56 | 43% | 3 threads · 3 families · 3 cautions | #18 LiveBench Data Analysis · #21 LMArena Text |
| 05 | GPT-6 SolOpenAI | 54 | 29% | 1 threads · 1 families · 0 cautions | #2 LiveBench Data Analysis |
| 06 | Claude Sonnet 4.5Anthropic | 54 | 37% | 2 threads · 2 families · 1 cautions | #2 Berkeley Function Calling · #34 LMArena Text |
| 07 | Claude Opus 4.6Anthropic | 53 | 43% | no linked practitioner threads | #2 LMArena Text · #40 LiveBench Data Analysis |
Relative score combines normalized benchmark quality and signal coverage; independent practitioner evidence and freshness are bounded tie-breakers. It is an ordering score, not an absolute quality percentage. The writing model receives this order and cannot change it.
GPT-5.6 Luna is actively deployed in production pipelines with Pydantic JSON Schema validation and strict structured output, though schema support varies by API endpoint and version.
Best when: Use for requirement extraction and gap analysis workflows where Pydantic-based strict JSON schema validation is required, as confirmed in production Korean NLP services.
Tips
- Use for requirement extraction and gap analysis workflows where Pydantic-based strict JSON schema validation is required, as confirmed in production Korean NLP services.
- Deploy for planning and classification layers in latency-tolerant pipelines where 1.3s response times are acceptable and regex pre-filtering handles simple cases.
Watch out for
- Avoid the `/v1/chat/completions` endpoint with legacy structured output contracts; the model requires `/v1/responses` or adapted providers to return valid schema-conforming output.
- Do not assume newer Luna versions maintain schema support; gpt-6-luna dropped `json_schema` text format and `reasoning.effort` parameters entirely.
- Watch for ordinal turn-tracking failures in debate coordination workflows where step sequencing matters, observed when switching from Gemini defaults.
GPT-5.6 Sol ranks highly on LiveBench Data Analysis (79.84%, #7 of 58) for table joining and reformatting tasks, with strong human preference rankings on LMArena.
Best when: Select for data transformation pipelines involving table joining and reformatting, where LiveBench Data Analysis scores indicate strong structured output reliability.
Tips
- Select for data transformation pipelines involving table joining and reformatting, where LiveBench Data Analysis scores indicate strong structured output reliability.
Watch out for
- Do not assume autonomous execution quality matches Muse Spark 1.3 Contributor for critical change detection; comparative evaluation showed higher rates of missed important changes.
Claude Fable 5 ranks #1 on LMArena overall (Elo 1506) and scores highly on LiveBench Data Analysis (80.54%, #4 of 58), though community reports indicate structured output support has been removed in recent versions.
Best when: Consider for data analysis tasks where raw capability matters more than native schema enforcement, given strong benchmark performance on table joining and reformatting.
Tips
- Consider for data analysis tasks where raw capability matters more than native schema enforcement, given strong benchmark performance on table joining and reformatting.
Watch out for
- Do not rely on native structured outputs or JSON schema modes; multiple user reports confirm these features were removed in Fable and recent Opus versions.
Claude Sonnet 4.6 is the only Anthropic model in the Dify plugin with
structured-outputdeclared in its YAML, though implementation gaps cause runtime failures in taxonomy workflows.Best when: Use as a fallback when other Anthropic models lack structured output declarations entirely, accepting that declared support exceeds actual implementation.
Tips
- Use as a fallback when other Anthropic models lack structured output declarations entirely, accepting that declared support exceeds actual implementation.
Watch out for
- Expect complete failure in `nameTaxonomyClusterActivity` workflows; all 13 observed runs failed after 8 retry attempts with backoff, with zero successes in production cron jobs.
- Do not trust the `structured-output` feature declaration; the plugin contains no handling code for `json_schema`, `output_format`, or `structured-outputs-2025-11-13`, causing silent fallback failures.
GPT-6 Sol achieves the #3 rank on LiveBench Data Analysis (81.19%) among all models tested, indicating strong capability for structured data tasks.
Best when: Prioritize for data analysis pipelines where benchmark-leading table joining and reformatting accuracy is the primary requirement.
Tips
- Prioritize for data analysis pipelines where benchmark-leading table joining and reformatting accuracy is the primary requirement.
Watch out for
- Verify Bedrock provider handling for your specific use case; MD_JSON handler bugs have been reported that may affect structured output conversion.
Claude Sonnet 4.5 achieves strong BFCL scores (73.24%, #2 of 31) for format-sensitive tool calling.
Best when: Enable `strict: true` constrained decoding in Bedrock Converse tool specifications to guarantee type conformance for array fields and required properties in multi-turn workflows.
Tips
- Enable `strict: true` constrained decoding in Bedrock Converse tool specifications to guarantee type conformance for array fields and required properties in multi-turn workflows.
Watch out for
- Without `strict: true`, expect type mismatches where arrays return as strings and required fields go missing, causing `PageDecodeError` in document processing pipelines.
- Note that Dify plugin support for structured outputs is explicitly absent for this version; only Sonnet 4.6 carries the declaration, though non-functional.
Anthropic: Claude Opus 4.6 ranks #2 of 146 on LMArena's overall text arena (Elo 1505), based on blind human preference votes.
Best when: Consider only after reviewing the cited caution.
Frequently asked
- What is the top-ranked model for JSON & Schema Output?
- OpenAI: GPT-5.6 Luna ranks first in the current evidence-weighted comparison. Use for requirement extraction and gap analysis workflows where Pydantic-based strict JSON schema validation is required, as confirmed in production Korean NLP services.[1]
- What should I watch out for with OpenAI: GPT-5.6 Luna?
- Avoid the `/v1/chat/completions` endpoint with legacy structured output contracts; the model requires `/v1/responses` or adapted providers to return valid schema-conforming output.[2]
- What is an alternative to OpenAI: GPT-5.6 Luna?
- OpenAI: GPT-5.6 Sol is the next-ranked option. Select for data transformation pipelines involving table joining and reformatting, where LiveBench Data Analysis scores indicate strong structured output reliability.[3]
Sources
- 1
“## 목적 및 담당 범위 자연어 서비스 요구사항을 입력받아 Requirements와 Gaps로 구조화하고, UI에서 확인할 수 있는 초기 분석 모듈을 구현한다. - 담당: 권지연 - 범위: Input UI → Requirement Extraction / Structuring → Gap Analysis → Handoff - Clarification 이후 기능은 이번 구현 범위에서 제외한다. ## 구현 내용 - [x] 자연어 입력 UI와 FastAPI 연결 - [x] Mock / SnowChat Provider 선택 구조 및 환경 변수 설정 - [x] Requirement Extraction과 Gap Analysis의 호출·Prompt·Schema 분리 - [x] 모델 목록 확인 후 두 단계 모두 `gpt-5.6-luna` 사용 - [x] Pydantic JSON Schema 기반 strict Structured Output 및 반환값 검증 - [x] Requirement–Gap 참조…”
Jiyeon125 · GitHub · Sep 24, 2026 - 2
“## Constat réel staging La clé API et `OPENAI_MODEL=gpt-5.6-luna` sont correctement configurés. Un appel direct depuis le même serveur à `POST /v1/responses` avec ce modèle retourne HTTP 200 et `OK`. En revanche, le provider Jury Central retourne HTTP 400 côté OpenAI puis 502 côté application lors de `/practice/api/ai/generate`. Le provider historique utilise encore `/v1/chat/completions` avec le contrat de structured output de #10/#23. Le problème est donc dans l'adaptation du provider au modè…”
ReC82 · GitHub · Sep 17, 2026 - 3
“Scores 79.84% on LiveBench Data Analysis (#7 of 58), including table joining and reformatting tasks.”
LiveBench Data Analysis · Benchmark · Jun 25, 2026 - 4
“## 決定事項 + 追加作業(2026-08-17) - **planning モデルは gpt-5.6-luna で確定**(ユーザー承認済み)。`.env` の `LLM_MODEL` を切替済み - **分類レイヤの方針**: 専用小型モデルは置かない。実測 — 正規表現層ヒット時 2ms / LLMフォールバック(Luna)1.3s。分類コール自体のコストは 〜0.01円で無視可能、実コストは音声ループに直列で乗る 1.3s のレイテンシ → T-139 スコープに「単純ターンの分類+応答 1コール統合(または並行実行)」を最適化項目として含める。層構成は「regex(0ms) → Luna分類 → Luna生成」で維持 - **プロンプトチューニングUIを追加**: `apps/ai/eval/ui/index.html`(タスク分解/意図分類/チャットの3タブ、dialogues.json プリセット、operations テーブル・priority チップ・warnings の整形表示、raw JSON 折りたたみ、実行メモ付き履歴)。起動は `apps/ai/dev.…”
devacxx01 · GitHub · Aug 17, 2026 - 5
“### Description I have a Foundry Agent that uses gpt-5.6-luna model. Everything works fine. **I switched to use gpt-6-luna model.** Tested both from playground/code, it now fails with this error: Invalid parameter: 'text.format' of type 'json_schema' is not supported with model version `gpt-6-luna-2026-09-22` I have updated the agent, to return text or JSON object instead of json_schema, and it still fails with: unsupported_parameterUnsupported parameter: 'reasoning.effort' is not supported wit…”
lucianteodorescu-milestone · GitHub · Sep 24, 2026 - 6
“## Background While implementing #14 (renaming the Gemini-branded OpenRouter node), changing `OPENROUTER_MODEL`'s default from `google/gemini-3.5-flash-lite` to `openai/gpt-5.6-luna` broke 3 existing real end-to-end debate-coordinator tests. Investigation (running the real debate flow manually, see PR history for tickets #15/#16) found two distinct behavior differences from the prior default: 1. **Ordinal turn-tracking is unreliable.** Given a topic instructing "Step 1 (now)... Step 2 (on your…”
Weilun2022 · GitHub · Jul 28, 2026 - 7
“2026-09-20 に、現行の **GPT-5.6 Sol / xhigh** と **Muse Spark 1.3 Contributor / max** を、過去の実リリース差分で比較しました。 **結論:Muse も無人実行と構造化出力は成功しましたが、重要変更の誤除外・見逃しが残り、「現行以上の判定品質」という移行条件には未達でした。現時点では定期実行の切り替えを保留しています。** 今回の候補は `muse-spark-1.3-contributor` です。Standard 版の 1.3 との品質比較ではありません。 ### 評価条件 | 項目 | 現行構成の baseline | 移行候補 | | --- | --- | --- | | Agent | Codex CLI 0.144.6 / `codex exec` | Muse Code 1.3.0-R3401.1 / `muse exec` | | Model | `gpt-5.6-sol` | `muse-spark-1.3-contributor` | | Reasoning effort | `xhigh`…”
YusukeIwaki · GitHub · Sep 20, 2026 - 8
“Scores 80.54% on LiveBench Data Analysis (#4 of 58), including table joining and reformatting tasks.”
LiveBench Data Analysis · Benchmark · Jun 25, 2026 - 9
“I dont get why Opus 4.7, 4.8, and now Fable all stopped supporting structured outputs? Does no one else care about that? I find it incredibly useful to reliably pass LLM output directly to other APIs libraries”
coreylane · Hacker News · Jun 9, 2026 - 10
“Hi @Mabdurahman68! I'm [Dosu](https://go.dosu.dev/dosubot) and I'm helping the Dify team. Your analysis is confirmed by the code. `claude-sonnet-4-6.yaml` is the only model file in the Anthropic plugin that declares `structured-output` in its features list [[1]](https://github.com/langgenius/dify-official-plugins/blob/93f1deb4fa4d06fcf81f7843fd55a7fbd6ce2b27/models/anthropic/models/llm/claude-sonnet-4-6.yaml#L5-L11), while `claude-sonnet-4-5-20250929.yaml` and other models do not [[2]](https://…”
dosubot[bot] · GitHub · Aug 18, 2026 - 11
“## Summary On a self-hosted stack with `LAT_AI_GENERATION_PROVIDER=anthropic` (model `claude-sonnet-4-6`), every `gardenTaxonomyWorkflow` run fails in `nameTaxonomyClusterActivity` with: 8 attempts with backoff over ~23 minutes, then the workflow fails; 4 runs/day on the `0 */6 * * *` gardening cron. 13 of 13 runs in our Temporal visibility window failed, zero successes ever, so the project's Topics taxonomy never gets named. Reproduced on `v0.3.102`; `name-taxonomy.ts` and `ai-vercel/src/ai.ts…”
jkbdco · GitHub · Sep 17, 2026 - 12
“Concrete instance filed separately: langgenius/dify-official-plugins#3671 `claude-sonnet-4-6` in `langgenius/anthropic` v0.3.26 declares `structured-output` in its model YAML while `models/llm/llm.py` contains no handling for it — zero matches for `json_schema`, `output_format`, `structured`, or `structured-outputs-2025-11-13`. That is what makes the branch above observable today: the declaration is sufficient to take the native path, the plugin never reads the schema, and the fallback has alre…”
Mabdurahman68 · GitHub · Aug 18, 2026 - 13
“Scores 81.19% on LiveBench Data Analysis (#3 of 58), including table joining and reformatting tasks.”
LiveBench Data Analysis · Benchmark · Jun 25, 2026 - 14
“Thanks for making `from_provider("bedrock/...")` pick a working mode per model family. The TOOLS and JSON_SCHEMA handlers already convert raw (`response_model=None`) requests to Converse form. MD_JSON seems to be the one handler that skips it. - [x] This is actually a bug report. - [ ] I am not getting good LLM Results - [ ] I have tried asking for help in the community on discord or discussions and have not received a response. - [x] I have tried searching the documentation and have not found…”
kimnamu · GitHub · Sep 23, 2026 - 15
“## 背景 #111 で経路 B の応答を tool use で受け取るようにしたが、2026-08-22 23:09 の再投入 (2608.17950v1) で 12 ページ目がモデルの出力 `sections` が配列ではなく文字列で返り、`PageDecodeError` になった (#113 の再試行でも同じ)。 tool use の `inputSchema` は `strict` を付けないと型を保証しない。公式ドキュメントは「strict なしでは型の不一致や必須欠落が起こり得る」と述べ、解決策として `strict: true` (constrained decoding) を提示している。 Claude Sonnet 4.5 は Bedrock Converse (`bedrock-runtime`、cross-region inference 含む) で対象。 - [ToolSpecification API Reference](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime…”
tamaco489 · GitHub · Aug 22, 2026
Rankings synthesized from community evidence and open benchmarks. See methodology. Not driven by vendor marketing.