passdrill
AI & LLM Engineering · Prompt Engineering · Card 039/039 hard

A team building on OpenAI's newer reasoning models (the o-series and later) via the Chat Completions or Responses API wants to know how the older 'system' role relates to the newer 'developer' role, and where each level of instruction sits in OpenAI's documented instruction-following hierarchy. Per OpenAI's Model Spec and API guidance, which best describes this?

  1. The 'system' and 'developer' roles are two independent, co-equal channels with no defined precedence between them, so a conflict between a system message and a developer message is resolved arbitrarily by the model at random
  2. The 'developer' role sits below the 'user' role in authority, meaning any instruction a user provides during the conversation can always override an instruction given via the developer role
  3. For the newer models, the 'developer' role takes over the position the 'system' role used to occupy for API callers, sitting above the 'user' role in OpenAI's documented chain-of-command (platform-level instructions rank above developer instructions, which in turn rank above user instructions, with assistant and tool messages carrying no independent authority)
  4. The 'system' role was retired entirely with no replacement, and any instruction that used to go in a system message must now be passed only through the per-request `instructions` parameter, with no message-role equivalent available at all
Next card → Shuffle