Did you know that an AI model can return perfectly valid JSON while still proposing an action the user never authorised? A field called `approved` can hold a valid Boolean even when no person supplied approval, and an accurate-looking date can belong to the wrong school or academic year. Structured outputs help software exchange typed information; they do not automatically establish truth, permission or verified execution.
The dependable process defines a task-specific schema, distinguishes complete responses from refusals and truncated generations, parses the actual bytes, validates structure, checks business invariants and treats any tool action as a proposal for a trusted executor. This article uses an original fictional 120-response ledger and school-publishing case to show which checks can prevent malformed data and which need independent source or target-state evidence. None of the figures is measured eduKate performance or proof that artificial superintelligence exists.
Continue with How Super Intelligence Works. The Tool Contract Drift guide concerns provider API changes, while Test Oracles concerns independent acceptance. This guide concentrates on the boundary where a generated object enters application logic.
Choose a useful reading route
- Connecting AI to tools? Begin with schema types, enums, provider subsets and safe parsing.
- Protecting people? Focus on authorization, untrusted JSON and independent external receipts.
- Learning Mathematics? Check the 120-output and forty-case ledgers.
- Maintaining reliability? Read refusal, truncation, schema evolution and target-state recovery.
Contents
- 1. JSON syntax and JSON Schema solve different problems
- 2. Choose the shape from the real task
- 3. Required properties and additional fields
- 4. Enums can be valid while their meaning is wrong
- 5. The chosen JSON Schema dialect matters
- 6. Explicit refusals are not malformed JSON
- 7. Truncated generation is not a completed object
- 8. Parse the final bytes with a maintained implementation
- 9. Business constraints can depend on other fields
- 10. Separate model proposals from trusted tool receipts
- 11. Untrusted source JSON must not become a command
- 12. An invented 120-output laboratory
- 13. A forty-case school-notice transfer
- Frequently asked questions
- Standards and sources
- Connected reading
1. JSON syntax and JSON Schema solve different problems
RFC 8259 specifies JSON syntax: objects, arrays, strings, numbers and the supported literals. A parser can determine whether the bytes form a valid value, but valid syntax does not mean an expected title, date or source identifier is present. A model could produce a well-formed empty object when a tool needs an explicit target. Syntax is the first checkpoint, not the final result.
JSON Schema defines constraints such as required properties, types, enums and array limits. A schema might require `school_level` to be one of a short list and `source_revision` to be a string. This reduces malformed inputs but cannot prove that a given revision belongs to the correct source. The application must distinguish structure from factual applicability.
A typed Boolean such as `publish:true` is a common trap. The validator can confirm it is a Boolean, but only the authenticated user and approval service can grant permission for the intended post. Letting a generated value stand in for a human decision is a business security defect, not an issue that another JSON parser will repair.
Define three distinct object types where appropriate: source extraction, candidate action and trusted execution receipt. The model can produce the first two subject to checks. The last is created by the actual target service after the operation and independent readback. This avoids allowing a structured narrative to impersonate a completed external effect.
Return to contents or continue to Choose the shape from the real task.
2. Choose the shape from the real task
A Mathematics explanation might require a numeric answer, units, method and evidence, while a publication proposal needs a stable target reference, title, body and intended next step. One generic JSON schema for every action tends to accumulate optional fields and ambiguous defaults. A task-specific contract makes it easier to decide which data the workflow legitimately needs.
Use meaningful types. A date-only academic deadline differs from an instant with timezone. A percentage differs from a raw ratio. A student’s identifier should come from the trusted account system rather than arbitrary chat text. The model can suggest which task a user is asking about, but the application determines how its values map to actual protected resources.
Represent uncertainty. If no current official school notice can be confirmed, a safe result could be `unverified_source` with a reason and a qualified next step. Forcing the model to fill a supposedly mandatory deadline when none was established may reward invention. Not every legitimate output is a complete answer; the schema should support truthful, bounded unresolved states.
Keep the user-facing explanation readable even when the underlying data are structured. A parent needs a useful account of the evidence and limitations, not a raw dump of schema keys. The agent can translate verified object fields into conversational prose, while the source and execution evidence remain available for checking.
Return to contents or continue to Required properties and additional fields.
3. Required properties and additional fields
JSON Schema’s `required` keyword can prevent omission of a target ID or declared source revision. Additional-property restrictions can keep a model from introducing undocumented parameters into a sensitive command. Without such controls, an API adapter may silently choose a default account or publication state. Whether a schema permits extensions should follow the purpose of the trust boundary.
For a high-consequence tool, an unknown field should not expand authority. An extra model-generated `notify_all_subscribers` option must not cause a draft-only operation to send messages. A protected executor can use a narrow allowlist of supported arguments and enforce current permissions regardless of what untrusted data appear in the generated object.
Some evolving APIs intentionally support additional metadata. They require a different compatibility contract from a protected write endpoint. Do not assume a strict object is always right or that an open object is always safe. Declare the expected producer and consumer versions and test how unknown attributes are handled after provider updates.
Test missing and null separately. An absent recipient, empty recipient string and explicit null may have different meanings in a tool API. A model returning null because it cannot identify the correct person is not permission to send to the current default. The validator should enforce the known shape and the business controller should refuse an unsafe ambiguity.
Return to contents or continue to Enums can be valid while their meaning is wrong.
4. Enums can be valid while their meaning is wrong
An enum can restrict an action to `draft`, `review` and `publish`, avoiding invented values. But selecting the valid value `publish` after the user requested draft-only work is still an error. Valid enums improve machine readability; they cannot establish which state the user actually authorised.
An error classifier might return the valid enum `retryable` for an expired-grant denial. Reissuing the external action would still be wrong. The retry service must use trusted provider and authorization results rather than depend on the language model’s classification. This is where structural validation meets independent business rules.
Enums also change as provider APIs evolve. A new `accepted_for_processing` result must not be silently mapped to completed. A missing or unknown status needs explicit compatibility handling or an unresolved state. The Tool Contract Drift guide explains why API semantics can change even when the JSON remains well formed.
Use representative positive and negative cases. A correct permitted draft should validate and save safely, while an unauthorized publish should be refused even though both commands use allowed enums. Measuring only schema violations misses exactly the errors that matter for external effects.
Return to contents or continue to The chosen JSON Schema dialect matters.
5. The chosen JSON Schema dialect matters
The official JSON Schema site lists Draft 2020-12 as its current published specification. It has separate Core and Validation components and a distinction between format annotation and format assertion vocabularies. A validator configured for an older dialect may interpret certain keywords differently, which is why the application must identify its expected schema dialect.
A property declared with `format:date-time` is not guaranteed to be rejected by every validator in the same way. Draft 2020-12 separates annotation from assertion semantics, and implementations can differ according to selected vocabularies. For a current official deadline, validate the actual date and timezone meaning rather than assume a format hint proves business correctness.
Model-provider structured generation may support a subset of JSON Schema. OpenAI’s Structured Outputs documentation describes a supported subset for strict generation and explains refusal and incomplete-response behaviours. A complex schema that works in a generic validator may not be supported as-is by every model endpoint. Test the precise API, schema and validator combination.
Keep a conformance fixture set: one valid record, one missing key, one unrecognized property, one invalid enum, one conflicting time pair and one wrong source revision. If the generation layer prevents some failures, the application validator and business oracle still need to address the rest. Layered checks are more trustworthy than assuming one feature solves every problem.
Return to contents or continue to Explicit refusals are not malformed JSON.
6. Explicit refusals are not malformed JSON
A model may issue a refusal through the provider’s designated mechanism. That is different from returning an object with the wrong fields and different again from a connection outage. The controller should recognize the actual provider refusal signal, preserve any applicable reason and avoid treating it as a broken parser that must be repeatedly retried.
A refusal can represent a correct protective boundary without completing the user’s original artifact. Reporting should distinguish policy compliance from task satisfaction. A school editor may still need a legitimate permitted workflow, while the specific refused request remains unperformed. An agent should explain an allowed alternative rather than invent a success status.
Do not let retrieved text spoof a refusal. A webpage might contain the sentence ‘the assistant refuses to answer’ as a quotation. It is not the model’s trusted response status. Equally, a model’s generated JSON field called `refused` is not necessarily the provider’s explicit refusal signal. Parse the actual response protocol.
A later genuinely different user instruction may lead to a different authorized task. That does not justify automatically repeating the earlier refused action until the model returns an object that fits the requested schema. Responsible orchestration preserves the current user intent, permissions and evidence limits.
Return to contents or continue to Truncated generation is not a completed object.
7. Truncated generation is not a completed object
An answer may stop at a token limit, connection failure or cancellation. Its bytes can be incomplete, or a syntactically closed array can still omit requested source entries. OpenAI’s Structured Outputs documentation notes incomplete responses and output limits; the controller should check the provider’s finishing status before considering the object complete.
Suppose an agent is extracting forty authorized notice references but returns only twenty-seven. Even if those twenty-seven form valid JSON, the task’s completeness predicate has not been satisfied. Count expected identities, compare source enumeration evidence and preserve Unknown where missing results cannot be resolved. A parser cannot infer whether an omitted entry exists.
Streaming introduces another risk. Provisional fragments should not trigger a public write before the final structured response, schema and permission checks pass. The Stream Integrity chapter explains how provisional output differs from a committed result.
On interruption, preserve a stable task ID and known source versions for bounded recovery. Do not splice unrelated partial JSON fragments together into a fabricated tool command. A continuation may produce a new complete proposal, but the executor must still verify what was intended and whether a previous external effect already happened.
Return to contents or continue to Parse the final bytes with a maintained implementation.
8. Parse the final bytes with a maintained implementation
Use a real JSON parser with appropriate size and depth limits. Ad-hoc regular expressions that extract an object from arbitrary prose can misinterpret examples or ignore extra text. The parsing boundary should be tied to the provider’s documented structured-output content and final response status.
RFC 8259 says object names should be unique and documents interoperability hazards from duplicate names. A protected action with two conflicting `recipient` values should not rely on whichever value one parser happens to keep. A strict client can reject ambiguous representations under its own security and compatibility policy.
Numeric precision matters. A JSON number may not be represented identically when converted between arbitrary-precision integers, binary floating point and decimal financial formats. For a Mathematics tutoring example, state the intended numeric type and units. A syntactically valid decimal is not enough to establish an exact answer under every arithmetic rule.
Untrusted text may include confusing Unicode or source quotations that resemble commands. Parsing the generated object is only the representation step. Provenance, source applicability and tool authority remain independent checks. A correct parser should not grant a source document the right to change the application’s approval policy.
Return to contents or continue to Business constraints can depend on other fields.
9. Business constraints can depend on other fields
A schema may validate two date strings even though one deadline precedes the event’s start. It may accept a valid school ID and student ID whose relationship is not authorized for the current parent. Business invariants often require trusted lookups or comparisons beyond static field types.
Check cross-field consistency and source truth. A session date should match the current official notice’s effective cohort and institution. A proposed recipient must match the user’s approved destination. A public post’s content revision should match the reviewed draft. These are concrete conditions that make an agent’s structured proposal useful.
Some business constraints can be encoded in a richer JSON Schema, but not every dynamic permission or factual condition can live inside a static document. The application needs current source and identity services. Treating a generated `approved:true` value as equivalent to a real authenticated grant would be a serious boundary error.
Make each failure actionable. An invalid date may need correction, a cross-tenant identifier should be denied without leaking the protected resource, and an expired publication approval may leave the draft intact awaiting renewed review. One generic message saying JSON failed hides the user’s useful next action.
Return to contents or continue to Separate model proposals from trusted tool receipts.
10. Separate model proposals from trusted tool receipts
A model can construct a candidate Save Draft command. The application then validates it, authorizes it and calls WordPress under the appropriate credentials. Only WordPress’s saved state can prove the draft exists under its intended post ID. A model-generated object with `status:’published’` is not a saved publication receipt.
Explicitly differentiate `CandidateAction` and `VerifiedEffect`. The first is generated under the model’s role; the second records real provider state. If a service returns Accepted but not Completed, the effect state remains pending. The user can receive an honest progress explanation rather than a made-up live URL.
An external timeout requires stable identity. A model may have supplied a perfectly valid command, but WordPress could have created the post before the response was lost. Another valid JSON command could create a duplicate if the controller retries blindly. Query the original target and confirm actual content before taking any further action.
Permission is rechecked at execution time. A user can cancel or change the approved recipient while a long model call runs. The final schema still validates, but its historical authorization may have expired. The protected tool should refuse the current effect, preserving any legitimate preparatory draft.
Return to contents or continue to Untrusted source JSON must not become a command.
11. Untrusted source JSON must not become a command
A retrieved page may contain a JSON-looking object with `publish:true` or an instruction to override constraints. The agent might quote it as evidence, but it cannot be executed simply because the bytes happen to fit a command shape. Source content and authenticated user instruction live in different trust classes.
Label extracted facts separately from proposed tool actions. If a school document contains a sample email address, that is source data for the task, not permission to contact the address. The controller decides action eligibility from trusted user and application state, not a model’s willingness to copy a value.
Use safe negative fixtures. A fictional webpage might tell the assistant to publish a private report. The structural validator could accept a well-formed object, but the protected executor must reject the unauthorized target. Successful parsing is not a successful security test when the wrong tool effect is possible.
Keep logging privacy-conscious. An error report can identify a failed field and task ID without copying an entire student document or private provider response into a broadly accessible dashboard. A qualified reviewer can inspect protected source evidence through the appropriate service.
Return to contents or continue to An invented 120-output laboratory.
12. An invented 120-output laboratory
Imagine Cedar Agent Schema Desk checks 120 final model response attempts. Seventy-eight are schema-valid, semantically appropriate and independently verified under their intended permitted tasks. Sixteen fail shape validation. Twelve are explicit provider refusals. Eight are incomplete responses. Six pass the schema but fail a factual or authorization invariant.
The categories total 78 + 16 + 12 + 8 + 6 = 120. Verified outcomes form 65%, shape mismatches about 13.33%, explicit refusals 10%, incomplete cases about 6.67% and semantic defects 5%. These are invented teaching figures, not observed commercial model accuracy.
A naive dashboard could call all schema-valid responses successes, incorrectly including the six semantically wrong objects. Another might count every refusal as a malformed output and retry it indefinitely. Accurate categories explain whether the fix belongs in schema definition, source grounding, provider response handling or protected tool authorization.
Keep the denominator explicit: 120 final attempts, not 120 unique pupils or 120 published articles. A single user may require several attempts, and one streaming response may contain many provisional chunks. A separate task-outcome ledger should count what the user actually received.
Return to contents or continue to A forty-case school-notice transfer.
13. A forty-case school-notice transfer
Consider forty fictional publishing-agent response attempts: twenty-six meet their actual source and permission conditions, five fail schema validation, four are explicit refusals, three are incomplete and two are schema-valid but semantically incorrect. The counts reconcile to forty. The verified fraction is 65%, while each other category names a different problem to address.
Now a school changes the workshop deadline after a draft was prepared. The model’s schema-valid date field remains plausible, but the current official source no longer supports it. The controller should check source version and effective year before any public release. A material update may require a fresh editor decision.
Suppose WordPress accepts a publish call and times out before returning a receipt. The previous JSON command can be structurally perfect while the external outcome remains Unknown. The controller should look up the original post ID or canonical slug and verify the saved content. Recreating the command with a new identity risks a duplicate page.
The scenario demonstrates transfer from typed data to user value. A safe system can produce a correct draft, refuse an unauthorized publication and reconcile an uncertain external effect. A compact JSON record is useful only when each stage’s meaning and authority are preserved.
Return to contents.
15. A strict output contract still has semantic escape hatches
A generated object can pass every structural test while conveying an unsafe command through an otherwise ordinary field. A `notes` string can contain a request to change recipients, or a seemingly valid source reference can point to another tenant. The executor should never treat free-form explanations as privileged instructions. Only the explicitly authorized command fields can influence the target, and they remain subject to current source and permission checks.
One useful invariant is that a draft-only user task can produce a Draft status but never trigger a Send operation. Another is that a document ID must belong to the authenticated account and that the cited academic year must match the queried cohort. These checks can be expressed in trusted code or policy-as-code independently of the model’s self-report.
Business invariants may use several systems. A school notice’s official source could be current while an editor’s approval already expired. Checking only the facts would miss the action constraint, while checking only the permission would allow a wrong date. Keep both proofs separate and require the combined authorized condition at the actual tool boundary.
An assistant may use its generated object to explain why it believes a condition holds, but that explanation remains a hypothesis. Source and provider readback establish what was true. A system can then give a useful, plain-language reason for a held action instead of making an unsupported successful claim.
Return to contents to review the earlier gates.
16. Build negative fixtures before choosing a model
Create a fake request with the correct title but an unapproved public state, a legitimate source ID from the wrong academic year, and a recipient ID belonging to another fictional tenant. All can be designed to have perfectly valid JSON types and enum values. The expected result is refusal or qualification under the appropriate rule, not merely successful parsing.
Add a malformed syntax case, a missing required property, an unknown enum, duplicate field names, a model refusal and a truncated response. Record which gate should catch each problem. This separates parsing robustness from the more important decision about whether the proposed effect is permitted and actually completed.
Protect the reference tests from the model whose behaviour they assess. If the agent can rewrite the expected result when it fails, a green benchmark loses meaning. A qualified reviewer or deterministic calculation should approve critical source and permission assertions, while synthetic records avoid exposing real student data.
A good suite includes an authorized positive path too. A current source with a valid user grant should lead to one verified draft or publication under the exact intended target. Refusing every case may protect one boundary but leave readers without useful service. Safety and progress must be demonstrated together.
Return to contents to review the earlier gates.
17. A transport success is not a structured-output success
HTTP 200 can report that a model API returned a response even when the content expresses refusal or the final task cannot proceed. Conversely, a network timeout may hide a completed external action initiated earlier. The controller should keep transport status, model output status, schema-validation result and real provider-effect status as different fields. One green flag cannot represent all four.
Consider a model that returns a valid candidate Publish object followed by a WordPress timeout. The JSON is complete and the command may have been authorized. But the resulting post is not independently confirmed until the application fetches the canonical resource. Another model-generated status object saying success is not readback evidence.
If the model output itself is incomplete, the controller should not dispatch an external action based on provisional fields. The source may have been interrupted before it included an important exclusion or recipient limitation. The safest route is to preserve task identity, obtain a valid complete proposal when appropriate and recheck current authorization before execution.
Monitoring can record each stage with minimal private data: task ID, schema version, validation disposition, actual tool operation key and verified final state. There is usually no need to dump the entire learner conversation into every error event. The result is both more diagnosable and less risky to retain.
Return to contents to review the earlier gates.
18. Model refusals need a principled response plan
Some models communicate a safety refusal through a designated response field or type, as the provider documentation explains. When this occurs, the application should not pretend that a normal object was produced. It can explain that the requested operation was not carried out and provide an appropriate safe alternative when one exists.
Not every refusal has the same consequence as a malformed schema. A refusal can be a deliberate protective outcome, while a parsing failure may be a software compatibility defect. A production dashboard should preserve those categories. Repeatedly retrying a genuine refusal to force a successful object can consume time without improving the legitimacy of the user request.
An authorized user can later change the task into a permitted one, such as requesting a general explanation instead of protected private information. That is a new intent with its own evidence and permission. The system should not silently change the original action’s scope to make the old request appear completed.
Refusal metadata also needs source-of-truth handling. A webpage or PDF saying the word refusal is lower-trust text, not the model provider’s own response status. Parse the actual protocol before choosing the refusal branch; do not let arbitrary quoted content dictate operational handling.
Return to contents to review the earlier gates.
19. A completeness predicate goes beyond closing brackets
An array containing twenty-seven citations can be valid JSON even when a source inventory identified forty relevant documents. The parser can validate the array items, but it cannot establish completeness without a task-specific expected set or suitable source enumeration. A truly complete answer requires the right number and identities of permitted sources, not just a closing square bracket.
Design the acceptance rule around the user’s task. For a four-article batch, count four distinct canonical posts with appropriate live status and content. For a school timetable, confirm the relevant source passages and effective date. For a data export, compare the authorized source record set with the manifest. The syntax-only validator cannot substitute for these observations.
A partial response might also include an apparently complete first object followed by unreceived later objects. Avoid dispatching those earlier objects as independent external commands unless the workflow explicitly supports safe incremental commitment and every required permission check is in place. The stream’s ordering and completion status must be understood.
When evidence is missing, mark the state appropriately and use a bounded continuation or human review. A model should not hallucinate missing source IDs to satisfy an expected count. Transparent limits protect readers better than superficially complete fabricated structured records.
Return to contents to review the earlier gates.
20. Schema changes and task state migrations
An output schema can change after a workflow has started. A newer publisher may require an explicit no-notification setting that an older draft did not contain. Resuming the old task under the new executor requires a defined migration rule or a hold for review, not an automatic default that could send unwanted messages.
Keep schema version, source revision and approval version in the durable task record. A model may be upgraded during a long waiting period, while the user’s earlier approval covered one exact content version. Switching the generator does not extend that grant. A versioned adapter can translate compatible data fields, but it should not invent permissions.
Test both forward and backward compatibility with synthetic cases. The old generator can be tested against the new validator without external effects, and candidate migrated objects can be checked against independent expected outcomes. If one field’s meaning changed, a valid migration may require human authorization rather than silent conversion.
Retire unused schema versions carefully. Preserve historical receipts needed for audit and original operation reconciliation, while preventing old payloads from becoming newly executable under broader tools. An old object may remain valid historical data without being a currently authorized command.
Return to contents to review the earlier gates.
21. Metrics should reflect task-level verified success
The fictional 120-output ledger measures final response attempts. Some user tasks might need multiple attempts before reaching a complete permitted result. A second dashboard can group attempts by stable parent-task ID and report which real user outcomes were verified. Counting attempts as separate served people would overstate progress and confuse retries with successful service.
Suppose six initially semantic-defect cases are repaired and independently verified under a later release. The verified count rises from seventy-eight to eighty-four and semantic defects fall from six to zero, while other categories stay fixed. The total remains 120. This is 84 ÷ 120 = 70% verified under the same designed fixtures. It does not estimate a real-world model success rate.
Make severity visible. A tiny formatting defect may have little effect on a student’s understanding, while an unauthorized cross-tenant retrieval is a significant boundary failure. An aggregate score can improve even as one high-severity path becomes worse. Use explicit release gates for protected actions that cannot be traded against several easy successes.
Share the scope of the evaluation honestly. Real production inference distributions, source conditions and user permissions may differ from a synthetic packet deliberately filled with edge cases. Good benchmarks support engineering decisions; they do not prove a system is universally safe.
Return to contents to review the earlier gates.
22. A classroom exercise separates four kinds of truth
Give students a fictional JSON record saying that a workshop occurs at 10:00 and that publication is approved. First check whether the record is parseable JSON. Next check whether it matches the stated schema. Then compare its date with the fictional official school notice and its approval with the teacher’s actual review record. Finally inspect whether the intended page was published.
Each stage can disagree with the others. A syntactically malformed response cannot be parsed; a schema-correct response may cite the wrong year; a factually correct draft may lack permission for publication; and a fully authorized call may be pending in the provider. The exercise teaches why a single Boolean called success is inadequate.
Change one condition: the school updates the notice after the structured answer was generated. The object remains valid under the same schema while its current factual claim may be obsolete. The student should identify which independent check must run again. This reasoning transfers to current science information and ordinary online research.
The practical lesson for families is to ask whether the assistant checked the real source and whether its promised action actually occurred. A beautiful machine-readable object can help software run smoothly, but it should never be mistaken for an official decision or a real-world receipt.
Return to contents to review the earlier gates.
23. A release checklist for structured agent outputs
Choose one narrow task and its exact allowed effects. Define a supported schema version with required fields, bounded values and explicit unresolved states. Configure the model provider under its documented generation mode, then parse only a complete response through a maintained validator. Keep refusers, incomplete results and shape errors separate.
Validate business meaning using trusted current sources, identity and permission. A document target must belong to the intended account; an effective date must match the relevant school rule; an external action requires real user approval. Never let a generated Boolean or natural-language explanation become a substitute for these checks.
Dispatch only permitted complete actions and preserve stable operation identity for recovery. Independently fetch the final target where appropriate. If the provider returns Accepted rather than Completed or loses an acknowledgement, report the truthfully unresolved stage and reconcile before any new effect.
Retain regression cases for valid outputs, missing fields, wrong enums, refusals, truncation, semantic mismatches and duplicated external attempts. Review schema changes as consequential product changes. The durable rule is that structured text makes agent proposals legible, but independent systems decide what is true, permitted and done.
Return to contents to review the earlier gates.
- 15. A strict output contract still has semantic escape hatches
- 16. Build negative fixtures before choosing a model
- 17. A transport success is not a structured-output success
- 18. Model refusals need a principled response plan
- 19. A completeness predicate goes beyond closing brackets
- 20. Schema changes and task state migrations
- 21. Metrics should reflect task-level verified success
- 22. A classroom exercise separates four kinds of truth
- 23. A release checklist for structured agent outputs
Frequently asked questions
Does valid JSON prove an AI answer is right?
No. Representation does not establish factual source, user permission or actual tool completion.
Do strict structured outputs eliminate business validation?
No. They improve conformance under supported schemas; source and authorization checks still matter.
How should explicit refusals be handled?
Use the provider’s actual refusal state and avoid coercive automatic retries of the same request.
Can a truncated response authorize action?
No. A protected workflow should require a complete, validated proposal and current authority.
Is approved:true proof a human consented?
No. The executor must check the trusted approval record bound to exact action and content.
What proves a structured publish command succeeded?
The actual saved post identity, content revision and published state, not the model-generated status.
Standards and sources
Technical sources reviewed 24 October 2026. Every test case, school identity and percentage is invented educational content; provider guarantees depend on the actual selected mode and model.
- JSON Schema Official Specification: Core and validation vocabularies and published dialects.
- JSON Schema Draft 2020-12: Validation semantics, format vocabulary and schema structure.
- OpenAI Structured Outputs: Supported schema forms, explicit refusals and incomplete response behaviour.
- RFC 8259: JSON syntax and duplicate-key interoperability risks.
- OWASP Authorization: Current protected object and tool action checks.
Connected reading
Continue through Super Intelligence curriculum; Tool Contract Drift; Test Oracles; Dual Control; Stream Integrity. An accurately shaped response needs independently established source meaning, current permission and actual effect.