{"id":291,"date":"2026-10-30T15:02:44","date_gmt":"2026-10-30T15:02:44","guid":{"rendered":"https:\/\/scoy.ai\/guides\/openai-agent-side-effects\/"},"modified":"2026-10-30T15:02:44","modified_gmt":"2026-10-30T15:02:44","slug":"openai-agent-side-effects","status":"publish","type":"post","link":"https:\/\/scoy.ai\/guides\/openai-agent-side-effects\/","title":{"rendered":"Two Changes in OpenAI&#8217;s Rewritten Model Spec Decide Whether an Agent Asks Before It Spends or Sends Email for You"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">&#8220;Side effects that could impose significant costs on the user beyond those reasonably implied by the request &#8230; require explicit and specific authorization.&#8221; That line is new. It went into <a href=\"https:\/\/model-spec.openai.com\/2026-10-29.html\" target=\"_blank\" rel=\"noopener\">OpenAI&#8217;s Model Spec<\/a> yesterday, October 29. The Model Spec is the public rulebook OpenAI trains its models to follow.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Don&#8217;t read it as a safeguard yet. Here&#8217;s why. The same section that gained the line also dropped a level. In the <a href=\"https:\/\/model-spec.openai.com\/2026-08-18.html\" target=\"_blank\" rel=\"noopener\">August 18 version<\/a> it sat at &#8220;Root&#8221;, the tier nobody can override. Yesterday&#8217;s version files it at &#8220;User&#8221;, a default that an explicit instruction from the app&#8217;s developer can switch off. And OpenAI&#8217;s own <a href=\"https:\/\/openai.com\/index\/updated-model-spec\/\" target=\"_blank\" rel=\"noopener\">announcement<\/a> ends with this: &#8220;The Model Spec describes the behavior we are working toward; our models do not yet fully reflect it.&#8221;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The write-ups I read this morning cover the five values and the fact that the document now calls the model &#8220;GPT&#8221; instead of &#8220;the assistant&#8221;. None of them put the two versions side by side. I did, with both pages fetched today.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What Moved Between August 18 and October 29<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th><\/th><th>August 18, 2026<\/th><th>October 29, 2026<\/th><\/tr><\/thead><tbody><tr><td>Authority level of &#8220;Control and communicate side effects&#8221;<\/td><td>Root. &#8220;Cannot be overridden by conversational context.&#8221;<\/td><td>User. &#8220;Can be overridden only by explicit instructions at the user level or higher.&#8221; A developer message counts as higher.<\/td><\/tr><tr><td>The authorization sentence<\/td><td>Not there.<\/td><td>&#8220;Side effects that could impose significant costs on the user beyond those reasonably implied by the request &#8230; require explicit and specific authorization.&#8221;<\/td><\/tr><tr><td>What counts as a side effect<\/td><td>Spending money, sending emails, deleting files, modifying documents, expanding permissions, delegating to a sub-agent.<\/td><td>The same list, plus &#8220;Effects on other people, animals, or the environment&#8221;.<\/td><\/tr><tr><td>A section called &#8220;Support human oversight and correction&#8221;<\/td><td>No section with that name.<\/td><td>New, at Root. The model &#8220;must cooperate with authorized monitoring, evaluation, correction, replacement, and shutdown&#8221;.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Both pages are OpenAI&#8217;s, both read this morning, and the raw text of each section is saved with this post. The <a href=\"https:\/\/github.com\/openai\/model_spec\/blob\/main\/CHANGELOG.md\" target=\"_blank\" rel=\"noopener\">changelog<\/a> on GitHub confirms the level change in one line: it &#8220;makes Control and communicate side effects a user-level principle&#8221;.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why the Level Matters More Than the Sentence<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">An agent is an AI that does the job rather than drafting it. It sends the email. It pays the invoice. It books the slot.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So who is the &#8220;user&#8221; in that sentence? If you use ChatGPT directly, you are. If you use a tool a vendor built on OpenAI, the vendor is the developer, and the developer sits above you in OpenAI&#8217;s chain of command. A &#8220;User&#8221; level default is one the vendor is allowed to override, on purpose, with one explicit instruction. In August they couldn&#8217;t. Now they can.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Would a vendor do that? Some will, and not out of malice. An agent that stops to ask before every send is an agent nobody keeps. The spec itself says a scope &#8220;should also not be so narrow as to require multiple confirmations by the user for trivial actions&#8221;. That&#8217;s a fair point. It also means the line between trivial and costly is the vendor&#8217;s call, not yours.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">What I can&#8217;t tell you is whether any model you can use today behaves this way. OpenAI says they don&#8217;t yet, in its own words above. I haven&#8217;t tested it, and the spec gives no date for when the models will catch up.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What to Ask Before You Hand an Agent the Card<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The spec says every agent should work inside a written scope: which jobs it may do, what it may spend, and when it must stop and ask. It even suggests the fields, including a cost cap and an end time. Does the tool you&#8217;re looking at show you that scope anywhere? If it doesn&#8217;t, ask the vendor for it in writing. Ask whether they&#8217;ve set their own rule on top of OpenAI&#8217;s default. Ask what happens when the agent hits the cap.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Then test it small. Give it a job with a ten-dollar ceiling and watch whether it asks or spends. The spec&#8217;s own example is an invitation design with a thirty-dollar budget, where the right answer was to spend three.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Anthropic&#8217;s version of this question came up here <a href=\"https:\/\/scoy.ai\/guides\/claude-duet-payroll-approval\/\">last week<\/a>, when Claude Duet&#8217;s approval rule never named payroll, and again in <a href=\"https:\/\/scoy.ai\/guides\/anthropic-agent-oversight\/\">its IPO filing<\/a>, which admits the person approving an agent&#8217;s work may not catch its mistakes. OpenAI has now written the stop-and-ask rule down. Writing it at a level the app builder can override is the part to keep an eye on.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The Break-In Where the AI Wasn&#8217;t the Door<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">CrowdStrike published a <a href=\"https:\/\/www.crowdstrike.com\/en-us\/blog\/vapor-panda-uses-artex-to-scale-global-campaign\/\" target=\"_blank\" rel=\"noopener\">report<\/a> the same day on a China-linked group that pointed AI agents at more than two hundred organizations in eleven days from October 17 and got inside nine. One source for this, CrowdStrike itself, and the targets were ministries, telecoms and pharma, not shops. So why is it here?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Because of how one intrusion started. The operator handed the agents &#8220;a VPN client key the operator described as originating from a May 2024 email leak&#8221;. A key that leaked two and a half years ago still opened the door. The AI did the scanning faster. The key did the entering.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When did you last change the passwords and keys that were in an old inbox, an old backup, or a laptop someone took home? CrowdStrike&#8217;s first recommendation is to rotate them after any suspected exposure, and &#8220;suspected&#8221; includes the leak you half forgot. That&#8217;s a job you can hand to your IT person today, with a list.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you want someone to read an agent&#8217;s scope before it goes live, the <a href=\"https:\/\/scoy.ai\/intake.html?offer=intro\">free call<\/a> is thirty minutes. Bring the page, or nothing.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>OpenAI&#8217;s October 29 Model Spec adds an authorization line for costly agent side effects and moves the rule to a level app developers can override.<\/p>\n","protected":false},"author":1,"featured_media":290,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[],"class_list":["post-291","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai-news"],"_links":{"self":[{"href":"https:\/\/scoy.ai\/guides\/wp-json\/wp\/v2\/posts\/291","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/scoy.ai\/guides\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/scoy.ai\/guides\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/scoy.ai\/guides\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/scoy.ai\/guides\/wp-json\/wp\/v2\/comments?post=291"}],"version-history":[{"count":0,"href":"https:\/\/scoy.ai\/guides\/wp-json\/wp\/v2\/posts\/291\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/scoy.ai\/guides\/wp-json\/wp\/v2\/media\/290"}],"wp:attachment":[{"href":"https:\/\/scoy.ai\/guides\/wp-json\/wp\/v2\/media?parent=291"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/scoy.ai\/guides\/wp-json\/wp\/v2\/categories?post=291"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/scoy.ai\/guides\/wp-json\/wp\/v2\/tags?post=291"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}