OpenAI's Agents API Can Now Review Your Agent's Actions. Off Is Still the Default, and So Is an Unlimited Budget

November 1, 2026
7 min read

November 1, 2026
7 min read
Two days after OpenAI published a Model Spec asking agents to stay within an agreed scope, its Python SDK shipped a setting that moves part of that job into the platform. Version 3.42.0, released on 31 October 2026, lets you switch on automatic review of an agent's actions in the Agents API. It also lets you choose how the agent's context is compacted, and gives it an experimental sense of time. None of this made headlines. For founders running agents on that API, the most useful part is not the new features but the reference's plain statement of what each one does when you leave it out.
This article is based on the openai-python 3.42.0 release and the API reference shipped with it, read in full for the Agents API session and agent settings; the quotations are from that reference. The Agents API is in beta. The reading from section 3 onward is mine.
The release lists ten features. Three of them change how an agent session behaves:
review setting with two values, none and auto_review.compaction setting that chooses between background and blocking compaction.experimental.time_awareness flag that gives the model "periodic current-time reminders".The same release also adds organisation-level external key management and per-request API key scoping, which matter to security teams but do not change how an agent behaves. A fourth setting relevant here is older: spend_control, a session spending limit in US cents.
The reference describes the two review modes in one line each. none will "Keep the existing execution behavior without automatic action review." auto_review will "Review eligible actions automatically. Deny manual approval fallbacks."
Three details matter. First, if you omit the field, you get none. Second, you can change the session's review mode later, but the change is the "Default action review for new root turns. Existing turns and their subagents keep their review mode." A turn already running, and every subagent it started, carries on as before. Third, the session object reports the mode back, and omits it when the mode is none.
The reference does not say which actions are "eligible", what the reviewer checks them against, which model does the reviewing, or whether reviewing costs anything. Today, the only approval request a session can send back to your application is a computer-use request, such as letting a browser open a new origin or sign in. As I read "deny manual approval fallbacks", turning on auto_review means an action that would otherwise wait for your application to approve it is denied instead. That is a sensible default for an unattended agent. It is also a change in behaviour your users will notice, so test it before you rely on it.
The new setting decides who reviews your agent's actions. Leaving it out decides too: nobody but your own code.
Every long agent run eventually exceeds its context window, and the harness summarises older context to continue. In September we wrote about models writing instructions into those summaries. Now you can choose when the summarising happens.
Background compaction is the default, and the reference attaches one warning to it: "Background compaction may increase token usage." Set async to false and compaction blocks instead. The reference does not quantify the extra tokens. If you bill customers per task or run on thin margins, measure it on your own workloads before accepting the default.
Time awareness is off by default and labelled experimental: "These features may change." It addresses a real problem. An agent running for hours, or resumed the next day, has no idea how much time has passed unless something tells it. If your agent works with deadlines, business hours or any latest_time in its scope, this flag is worth testing. Until it leaves the experimental label, keep checking deadlines in your own code too.
The pattern is the same for all four: set each value explicitly when you create the session, then read the effective values back from the session object and log them with the run. Every field name below is from the 3.42.0 reference; the model name and instructions are placeholders.
from openai import OpenAI
client = OpenAI()
session = client.beta.agents.sessions.create(
environment={"type": "none"},
agent={
"model": "YOUR_MODEL",
"instructions": "Chase overdue invoices. Never change payment details.",
"compaction": {"async_": False},
"experimental": {"time_awareness": True},
},
review="auto_review",
spend_control={"limit": 500}, # USD cents
metadata={"workflow": "invoice-chasing"},
input="Chase this week's overdue invoices.",
)
effective = {
"review": session.review or "none",
"spend_limit_cents": session.spend_control.limit if session.spend_control else None,
"compaction_async": session.agent.compaction.async_ if session.agent.compaction else None,
"time_awareness": session.agent.experimental.time_awareness if session.agent.experimental else None,
}
assert effective["review"] == "auto_review"
assert effective["spend_limit_cents"] == 500
Never rely on an omitted field. The reference is explicit: omit review and you get none, omit spend_control and the session is unlimited. Write both down in code, even when the value you want is the default.
Log what the session reports. The values that matter are the ones the API says are in effect, not the ones you meant to send. Store them with the run, so an incident review starts from facts.
Decide who handles a denial. With auto_review, some actions will be refused rather than sent to you. Your product needs a clear message for the user and a way to re-run the step with a person's approval.
Change settings between turns. A new review mode applies to new root turns only. To tighten a running agent, stop the turn, update the session, and start again.
The spending limit is the one I would set first. The budget example in the Model Spec shows OpenAI treats a budget as a ceiling. The Agents API gives you a field to enforce one, and an unlimited session if you leave it out.
Earlier pieces that connect
On Friday we covered the Model Spec's scope of autonomy: allowed tools, a deadline and a budget, enforced by your harness. In September we explained what the Agents API runs for you and what it does not, including where it is available. The settings in this release are the first platform controls that map onto that scope.
That auto_review makes an agent safe. The reference does not say what the reviewer checks. Treat it as one extra layer, not as a replacement for your own limits on tools, recipients and money.
That blocking compaction is always the better choice. The only stated trade-off is that background compaction "may increase token usage". Measure it before you change a default.
That time awareness is ready for production. It is labelled experimental, and the reference says these features may change.
That these settings exist outside the Agents API. They belong to OpenAI's managed agent sessions, which are still in beta. If you run your own harness on another API or model, you build the same controls yourself.
OpenAI's Python SDK 3.42.0 added three settings to the Agents API: an automatic action review mode that denies manual approval fallbacks, a choice between background and blocking context compaction, and an experimental time-awareness flag. Left out, they give you no automatic review, background compaction that may use more tokens, and no time reminders. Next to them, an older field gives you an unlimited budget unless you set one.
None of that is hidden; the reference says it plainly. The risk is not that OpenAI chose bad defaults. It is that a team that never set these fields cannot say what its agents are allowed to do.
This week, open the code that creates your agent sessions and state all four settings explicitly. Then log the values the session reports back, and check them against what you thought you were running.
Sources: OpenAI, openai-python 3.42.0 release notes (31 October 2026) — the list of features, including agent context compaction settings, agent session review and tool settings, experimental agent time awareness, organisation external key management and per-request API key scoping; and the API reference shipped with that release — the review modes and their descriptions, the rule that a new review mode applies to new root turns, the compaction setting and its token-usage warning, the experimental.time_awareness flag and its default, the spend_control default of an unlimited session, and the computer-use approval requests. The code in section 4 is my illustration using field names from that reference, and the reading in sections 3 to 5 is mine.
IdeaToMVP Academy
4-week live cohort for founders. Learn to ship AI agents, scope MVPs, and automate your business — taught by the same team that writes these guides.