AI Development

What Did OpenAI Ship at DevDay 2026? New APIs, Agents, Tool Calling, and JSON for Developers

About 16 min read

DevDay in San Francisco ended on 29 September 2026. The official recap lists more than 20 items. This piece only splits four objects a repo can take: Decisions API, Agents API, model tiers, Codex. It does not retell what an agent is, and it does not rewrite the on-site DevDay prediction.

Before you read

Object Official fact Who executes
Decisions API Luna / finite answers / limited preview The model picks an enum; the host routes
Agents API Computer Use + Tool Search + compaction Still public beta; the host runs side effects
Model tiers GPT-6.1 Sol; paid Ultrafast Astra Ultrafast is live; Sol follows
Codex Cloud, Review, Security Cloud Scans and diffs are objects, not chat

Facts from OpenAI’s recap and the developer-community digest. The Decisions sample is the contract you should lock, not an unpublished wire schema.

DevDay added faster finite decisions and agents that can drive a UI. The layers did not move.

The official recap is a developer resource list. Three items matter for a JSON workflow. First, the Decisions API uses Luna to classify, route, or pick a next step from a finite set of predefined answers. Limited preview, then a wider roll-out. Second, the Agents API stays in public beta and now adds Computer Use, plus Tool Search and context compaction. Third, GPT-6.1 Sol is aimed at coding and computer use, with standard token prices about one-fifth of Astra; Ultrafast is a paid speed tier. OpenAI reports up to 8× token generation in Codex and 6× in the API. Astra Ultrafast is available now; Sol is coming. Codex also gained cloud tasks that run with the laptop closed, a CLI /agents view, desktop Code Review, and Security Cloud scans of a repo.

  • Decisions: the answer set is a finite enum. The model picks lookup. It does not look up the order.
  • Agents / Computer Use: driving a UI is still a tool call. The host runs allowed actions and writes results back.
  • Compaction and Tool Search: context shrinks; tool defs load on demand. State must be replayable. A chat window is not enough.

How the Agents API public-beta objects connect: OpenAI Agents API and JSON tool calling. Why Schema is a gate: Why AI needs JSON Schema. The older on-site piece DevDay 2026 predictions was written before the keynote. This text uses only the 29 September official list. It does not rewrite that prediction.

Decisions: lock the answer set, then call the preview

Official wording: give Luna a finite set of predefined answers; context may be text or images; the returned answer classifies, routes, or chooses the next agent step. Wire field names follow the docs when they land. What you can lock today is the contract. Fictional order — no real secrets:

{
  "task": "route_order",
  "question": "What should the host do next for this order?",
  "answers": ["lookup", "hold", "escalate"],
  "context": {
    "order_id": "A-1042",
    "status": "paid",
    "note": "demo-pass"
  }
}

answers must be an enum. A wide string invites invented verbs. The host only runs names on the list: lookup calls lookup_order; hold stops; escalate goes to a person. This is a gate, not “please output JSON.”

Agents API: tool JSON did not change. Computer Use still needs a host.

A lookup is still a function call. The model fills A-1042. This is not a Decisions enum and not MCP tools/call:

{
  "type": "function_call",
  "call_id": "call_3c91",
  "name": "lookup_order",
  "arguments": "{\"order_id\":\"A-1042\"}"
}

The host checks shape, runs the tool, and writes back on the same call_id. Failures are objects too:

{
  "type": "function_call_output",
  "call_id": "call_3c91",
  "output": "{\"order_id\":\"A-1042\",\"status\":\"paid\"}"
}

OpenAI wrote Tool Search and automatic compaction into the Agents API. Tool tables can load on demand; long context is shortened. How the loop stacks: Agent harness and JSON state. Session state still has to name the last decision and the pending tool:

{
  "api": "agents",
  "model": "gpt-6-astra",
  "session": "sess_7f2a",
  "last_decision": "lookup",
  "pending_tool": "lookup_order",
  "tools_loaded": ["lookup_order"],
  "compacted": false
}

Four new objects. Do not glue them into “another agent.”

Wire them apart, as the official list does. Do not pour a Decisions enum into the Agents tool table:

Ship What the host should do
Decisions API Limited preview. Lock the enum. Map it to an existing tool or a human. Do not treat it as chat.
Agents API Computer Use A public-beta add-on. UI actions still run on the host. Permissions and screenshot write-back stay.
GPT-6.1 Sol / Ultrafast Swap model IDs and speed tiers. Sol’s standard price is about 1/5 of Astra. Ultrafast is paid; Astra is live.
Codex Cloud / Review / Security Cloud jobs, diff review, repo scans. Land results as checkable objects, not a prose summary.

The recap also lists Bedrock Managed Agents, Private Intelligence ZDR, and collaboration Dots / Space. Those do not change tool JSON in your repo. This piece does not cover subscription SKUs or consumer Dots.

Five steps to land DevDay on the JSON loop you already have

Do not start from “turn on Ultrafast, then talk Schema.” Write objects:

  1. Make a ship table. What is GA, public beta, or preview. Decisions is preview. Agents is still beta.
  2. Give Decisions an enum gate. additionalProperties: false. Reject answers off the list.
  3. Keep the Agents tool table narrow. A lookup must not carry refund fields. Authorize Computer Use separately from lookup_order.
  4. Treat compaction as an event. Record which tools Tool Search loaded and whether the session was compacted.
  5. Treat Codex diffs as objects. Review and scan output should be comparable. “Looks safe” is not a result.

How Schema is a gate: Agents API + JSON Schema. How another vendor’s model swap still fills tool JSON: Claude Opus 5.5 and tool JSON.

To replay a route, spread four JSON objects

Most failures are a mismatched enum, tool argument, call_id, or compact flag — not “Sol is not fast enough.”

  • format the answer set and the actual return, then Schema validate whether it landed in lookup|hold|escalate.
  • Use JSONPath extract for $.order_id, $.call_id, $.last_decision.
  • JSON Diff the session before and after compaction. Fix state fields before you rewrite the prompt.
  • Check that call_3c91 is the same id on the call and the write-back.
  • Do not paste orders, tokens, or repo paths into a public formatter. JSONSort runs in the browser.

If those four objects rebuild against Schema, you have the DevDay developer increment — not a keynote quote.

Common traps

  • Treating the prediction piece as the ship list. The old article guessed at Structured Outputs. This one only uses objects in the 29 September recap.
  • Treating Decisions as a new Agents API. One picks a finite answer. The other runs a tool loop. Mixed fields turn routing into a side effect.
  • Reading Computer Use as the model owning the OS. The host still executes. Do not enable it without a permission table.
  • Using Ultrafast instead of Schema. Faster tokens do not block invented keys. The gate stays.
  • Treating compaction as a no-op. The recap writes automatic compaction. Early tool results can be summarized away.
  • Writing Dots / Pro 500 as an API tutorial. Those are product and billing. The developer loop is still JSON.

FAQ

Did the Agents API launch today?

No. Public beta was 10 September. DevDay added Computer Use and brought Codex-side Tool Search, compaction, and multi-agent into the API.

What are the official Decisions API field names?

The public recap only states finite predefined answers plus text or image context. The sample here is the contract you should lock first. Wire names follow the docs. Do not copy sample keys into production.

Is GPT-6.1 Sol Ultrafast live in the API?

The recap: Astra Ultrafast is available now; Sol Ultrafast is coming. Do not write “coming” as “shipped.”

Is Computer Use the same as lookup_order?

No. A lookup is a function call. Computer Use drives a software UI. Two tool tables, two permission gates.

Should I rewrite an existing Responses workflow?

Not first. Official docs still split Responses, the Agents SDK, and the Agents API. Add a Decisions enum gate, then decide which loop takes Computer Use.

Conclusion

DevDay 2026 gave developers faster finite decisions, an Agents API that can drive a UI, cheaper Sol, and paid Ultrafast. The layers did not move: the model fills JSON or picks an enum; the host checks the gate, then runs.

Write down whether A-1042 enters a Decisions answer set or lookup_order. If you can point at the enum, the call_id, and the compact flag, you have landed the 29 September list.

Further reading

Changelog: First published