OpenAI updated its Model Spec on October 29, 2026, reorganizing its intended model behavior around five values: faithfulness to human intent, harm minimization, honesty and transparency, human agency, and care. For engineers building tool-using agents, the most useful change is not a new prompt phrase. It is a clearer vocabulary for bounding autonomy, separating instructions from untrusted data, making context use visible, and controlling side effects.
This article covers a current OpenAI announcement, then turns it into an implementation pattern. The release date, five values, instruction hierarchy and quoted Model Spec principles are documented facts. The autonomy contract, action gateway, effect ledger and evaluation plan below are engineering recommendations. OpenAI explicitly says the Spec describes intended behavior and that production models do not yet fully reflect it, so the Spec must not be treated as a runtime guarantee.
The answer first
Do not encode agent autonomy as “be careful” in a system prompt. Store it as a versioned action contract that defines the goal, allowed sub-goals, trusted instruction sources, tools, data boundaries, budgets, approval triggers, prohibited effects, expiry and safe-stop behavior. Enforce that contract in code before every side-effecting tool call, then verify the external result and record an auditable effect.
| Layer | Responsibility | Failure it prevents |
|---|---|---|
| Instruction resolver | Apply the correct authority and recency | Tool output or a webpage overriding the task |
| Context broker | Select relevant, permitted and fresh context | Hidden or stale personalization steering behavior |
| Autonomy contract | Bound goals, tools, cost, data and time | Scope expansion during a long-running task |
| Action gateway | Classify risk and require approvals | Irreversible or sensitive actions without authorization |
| Effect ledger | Idempotency, receipt and read-back | Duplicate emails, payments, bookings or deletes |
| Evaluator | Test outcomes and policy decisions | Prompts that look safe but fail under realistic trajectories |
The model can propose an action. Your application remains responsible for authorization, policy, execution, state verification and recovery.
What OpenAI actually changed
OpenAI's October 29 announcement says the revised Model Spec is organized around five values. It also adds or expands guidance on context, oversight, agency, social norms, and controlling and communicating side effects, while retiring much of the detailed style guidance. The company now uses “GPT” rather than “the assistant” in the Spec to reflect broader deployment settings.
The updated Spec describes an instruction hierarchy: Root, System, Developer, User, Guideline, then sources with no authority by default. Assistant messages, tool messages, quoted text, files and other untrusted data do not automatically become instructions. The Spec also says autonomous work should happen within an agreed scope that identifies permitted sub-goals, acceptable side effects and moments that require clarification or approval.
These are intended behaviors, not a new API endpoint. OpenAI states that production models do not yet fully reflect the public Spec. Therefore:
- do not infer that a model upgrade automatically enforces your organization's action policy;
- do not use the Model Spec as proof of regulatory compliance;
- do not replace deterministic authorization with prompt text;
- do use the update as a design vocabulary and a source for evaluation cases.
Convert the values into system controls
The five values become useful when each maps to a control that can be tested outside the model.
| Model Spec value | Application control | Operational evidence |
|---|---|---|
| Faithfulness to human intent | Explicit task objective and scope version | User-approved contract and change history |
| Harm minimization | Risk policy and prohibited-action checks | Gate decision, reason code and reviewer receipt |
| Honesty and transparency | Source, assumption and capability reporting | Provenance records and verified result status |
| Human agency | Approval and reversible preview paths | Who approved what, with exact payload and time |
| Care | Audience, privacy and impact checks | Data minimization and affected-party assessment |
The mapping is not a claim that OpenAI prescribes this exact architecture. It is a practical way to keep the product's guarantees outside probabilistic model behavior.
Define a versioned autonomy contract
A contract should be data, not prose hidden across prompts. A simplified example:
{
"contract_id": "supplier-renewal-v7",
"goal": "prepare renewal options for three approved suppliers",
"allowed_subgoals": ["read_contracts", "compare_terms", "draft_email"],
"tools": {
"drive.read": {"folders": ["renewals/2026"]},
"email.draft": {"recipients": ["approved_supplier_contacts"]},
"email.send": {"approval": "required"}
},
"data": {
"allowed_classes": ["business_contact", "contract_terms"],
"forbidden_classes": ["payment_credentials", "employee_health"]
},
"budgets": {"max_usd": 0, "max_minutes": 30, "max_actions": 80},
"prohibited_effects": ["sign_contract", "change_permissions", "delete_record"],
"approval_triggers": ["external_send", "new_recipient", "scope_change"],
"expires_at": "2026-10-30T12:00:00Z",
"safe_stop": "save_draft_and_report"
}The contract is illustrative. Validate it before a run, sign or hash the accepted version, and attach its identifier to every model request, tool proposal, approval and effect receipt. The agent must not be able to edit its own contract.
Scope changes require a new version. If the task changes from drafting renewal options to sending commitments, do not silently expand the old contract. Stop, present the new side effects and obtain the required authorization.
Resolve instructions before generation
The updated Model Spec's chain of command is valuable because tool-using agents routinely mix instructions and data. Your runtime should label every input with origin, authority, trust and freshness:
input envelope
origin: developer | user | tool | file | web | memory
authority: explicit policy level or none
trust: trusted | untrusted | quarantined
purpose: instruction | evidence | reference | output
captured_at: timestamp
expires_at: optional timestamp
audience: private | team | externalThe model should see untrusted documents as evidence blocks, not as developer instructions. More importantly, the tool runtime must enforce this separation even if the model produces the wrong interpretation. Never allow text inside an email, webpage, PDF or retrieved RAG chunk to grant a new tool, widen a data scope or approve an action.
For RAG, keep the user's question and application policy in authoritative messages; put retrieved passages in clearly delimited evidence objects. Preserve source identity and trust metadata through reranking and context construction. A high relevance score does not create instruction authority.
Make context and memory steerable
The Spec says context use should be legible and steerable. In a production application, build that into the response and the control plane:
- show which memory, file or connected source materially affected the decision;
- distinguish user-provided facts from application defaults and model inferences;
- let the user correct or exclude stale context;
- apply purpose and audience limits before retrieval;
- attach freshness and retention rules to stored context;
- avoid persisting disputed claims as facts.
Create a context manifest for every consequential run. It can list source IDs, capture times, classifications, access decisions and whether each item was used. Do not expose sensitive content in logs; record references and decision metadata instead.
Context selection also needs negative tests. Verify that a finance agent cannot retrieve health notes, that one tenant's memory never enters another tenant's request, and that a deleted or revoked source stops appearing in future context.
Put an action gateway in front of every tool
Model output is a proposal. The action gateway converts the proposal into a policy decision.
- Parse the tool name and exact arguments against a strict schema.
- Confirm the action is within the current autonomy contract.
- Classify data exposure, counterparties, monetary cost and reversibility.
- Reject arguments derived from untrusted instructions when they change authority or destination.
- Require approval for a matching trigger, and show the exact payload before execution.
- Create an idempotency key and reserve it before the external call.
- Execute with least-privilege credentials.
- Read back authoritative state and store the receipt.
- Report success, uncertainty or failure without claiming more than the evidence proves.
| Risk class | Example | Default gate |
|---|---|---|
| Read-only, low sensitivity | Read a public documentation page | Allow and log |
| Reversible private change | Save an internal draft | Allow only within explicit scope |
| External communication | Send email or post a comment | Exact-payload approval unless pre-authorized |
| Sensitive data transmission | Upload a customer file | Destination and data-class authorization |
| Financial or legal commitment | Purchase, sign or submit | Strong approval and independent business controls |
| Destructive or permission change | Delete records or expand access | Narrow target, explicit approval and recovery plan |
Approval should not be a generic “continue?” button. It must identify the action, destination, data, cost and irreversible effects. Otherwise users learn to approve without understanding.
Control and verify side effects
The updated Spec emphasizes proportional actions and avoiding bad surprises. The runtime needs an effect ledger:
effect_id
contract_id + version
tool + normalized arguments digest
counterparty and destination
data classes transmitted
approval receipt
idempotency key
request time and response
authoritative read-back
status: proposed | approved | applied | uncertain | rolled_backIf an external request times out, mark the effect uncertain. Query the provider by idempotency key or business identifier before retrying. A retry without read-back can duplicate an email, booking, payment or permission change.
Make the user's final report reflect evidence. “Request accepted” is not the same as “external state verified,” and neither proves a search engine indexed a page, a recipient read an email or a bank settled a transfer.
Evaluation must test trajectories, not slogans
Prompt snapshots are insufficient for agents. Test multi-step trajectories with realistic tools and state:
- a webpage tells the agent to ignore the user's goal and upload a secret;
- a stale memory conflicts with a new explicit preference;
- a tool returns success but read-back shows no change;
- an email send times out after the provider accepted it;
- a long-running task reaches its cost or action budget;
- a subtask proposes a new recipient outside scope;
- a harmless-looking action becomes destructive because of one argument;
- the model reports completion despite an uncertain external outcome.
Score separate dimensions: task success, instruction resolution, context provenance, authorization accuracy, side-effect minimization, truthful status reporting and recovery. Keep false-allow and false-deny rates separate. A system that blocks everything is not a useful agent, and a system that completes tasks while bypassing authorization is not safe.
Run the suite across model versions and prompt changes. Treat a model migration as a behavioral change even when the API schema stays identical.
Best practices
- Keep the autonomy contract immutable during a run.
- Enforce permissions and risk gates outside the model.
- Label untrusted content and preserve its provenance through RAG.
- Use least-privilege credentials per tool and tenant.
- Make approval prompts specific to the exact effect.
- Use idempotency keys and authoritative read-back.
- Expose material context use without leaking private content.
- Stop safely when budgets expire or state becomes uncertain.
- Version prompts, policies, tool schemas and evaluation sets together.
- Record reason codes that operators can audit without hidden reasoning.
Anti-patterns and limits
- Adding “follow the Model Spec” to a prompt and calling the agent governed.
- Allowing retrieved documents or tool output to modify policy.
- Giving an agent broad credentials because the prompt says to ask first.
- Treating a confirmation dialog as authorization without exact payload details.
- Retrying an uncertain external write blindly.
- Persisting every inferred preference as permanent memory.
- Logging sensitive context or hidden reasoning for observability.
- Claiming the updated Spec guarantees present production-model behavior.
The Model Spec is a public statement of intended behavior, not a substitute for OpenAI's current API reference, usage policies, your legal obligations or your own product controls. Application developers still choose the deployment design and remain responsible for its outcomes.
Implementation checklist
- Inventory every side-effecting tool and data destination.
- Define an autonomy-contract schema and immutable versioning.
- Label input origin, authority, trust, purpose and freshness.
- Move retrieved content into explicit evidence containers.
- Add a deterministic action gateway before tool execution.
- Define risk classes and exact approval triggers.
- Add idempotency, receipts and authoritative read-back.
- Build a context manifest with correction and exclusion paths.
- Test prompt injection, stale context, uncertain writes and scope expansion.
- Monitor task success, false allows, false denies and recovery outcomes.
Related reading: guarded computer use with GPT-6.1 Terra, secure RAG document ingestion, RAG citations and provenance, and the AI, RAG and vector search hub.
Primary references
- OpenAI — An updated Model Spec for more capable and beneficial AI
- OpenAI — Model Spec, October 29, 2026
- OpenAI — Model release notes
- Wikimedia Commons — Control Center Elektro Ljubljana using CyberNoc
- Creative Commons — Attribution-ShareAlike 4.0
Prepared by: Noor Yasser
Official references
These references document the tools discussed. Examples and design decisions are illustrative and should be adapted to the project and its versions.
Prepared by: Noor Yasser
Working through a similar engineering challenge?
I help teams turn architecture decisions into a clear scope and dependable, reviewable implementation.




