OpenAI Agents empty tool arguments: Sume no-argument tools

Agents SDK 0.22.1 fails closed on empty tool arguments. Sume's no-argument tools take {}, while paid tools need idempotency_key and cannot run empty.

4 min readSume
All posts

Sume has tools that legitimately take no arguments, and they accept an empty JSON object {}. Paid tools cannot run empty: they require idempotency_key, so an empty or missing arguments payload cannot submit paid work.

OpenAI Agents Python 0.22.1 (2026-09-08) lists "fix(core): fail closed on empty tool arguments (#4545)". The release notes give no more detail, so this post does not guess what the SDK counts as empty. Sume side: MCP tools and gates and the MCP server code, read 2026-10-01.

Which Sume tools take no arguments?

In the server code, a shared empty schema (an object with no properties and none required) backs the read tools below. Discover the current set in a session with tools_list, and fetch one contract with tools_schema.

Tools registered with the empty input schema in the MCP server code for Sume, read 2026-10-01
ToolPurpose
mcp_healthEndpoint readiness, auth source and safety posture
tools_listList every tool visible in the session
account_meAccount read
balance_getBalance read
catalog_listCatalog read
health_service, health_v1Health reads
image-models_list, video-router_modelsModel list reads

Does {} count as a valid payload for them?

Yes by schema: an object with no required keys is satisfied by {}. Object schemas also set additionalProperties: false, so the contract does not allow extra keys on a no-argument tool. If your SDK treats an empty string or missing arguments as a failure, send the literal {} for these tools.

What stops an empty call from spending money?

The gate table in the docs lists idempotency_key as required on write and paid tools: a stable key for transport and dedup, not human approval. A paid call with empty arguments has no key, so it fails validation instead of submitting. dry_run=true previews admission and cost without submitting, and max_spend_usd is enforced only when provided.

How do I test this in an agent?

Call tools_schema with name set to a tool you want to inspect, then run one no-argument read such as mcp_health with {} and one paid tool without a key, and confirm the second fails. For approval flows on top of validated arguments, see OpenAI Agents Python conditional approval with Sume dry run.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume