79 79
80### Split conversation and backend instructions80### Split conversation and backend instructions
81 81
82Move conversation style and delegation guidance into `session.instructions`. Move business rules and tool-use instructions into `delegation.responses.instructions`. For a backend you run yourself, keep those rules in its existing prompt.82When migrating a Realtime assistant to GPT-Live, start with your existing prompt. Move speaking style and turn-taking instructions into the Live prompt, and add rules for when to delegate. Keep task instructions and tool-use procedures in the backend prompt.
83 83
84**Before: one Realtime prompt**84If you're adding voice to a text agent, [reuse its existing backend prompt](https://developers.openai.com/api/docs/guides/live-delegation#start-with-your-existing-backend-prompt) and write a Live prompt for the spoken interaction.
85
86#### Keep the experience consistent
87
88Keep your assistant’s role, audience, and purpose, and preserve the details that shape the conversation:
89
90- Greetings, introductions, and spoken disclosures, including any required wording or order.
91- Language and pronunciation requirements, such as “Speak English.”
92- Personality, warmth, empathy, formality, and pacing.
93- The level of detail in spoken answers and examples that show the intended style.
94- How it acknowledges the user, pauses to listen, and responds to interruptions.
95
96A short Live prompt can still ask for detailed spoken answers.
97
98#### Write the Live prompt
99
100Use the [recommended prompt structure](https://developers.openai.com/api/docs/guides/live-prompting#recommended-prompt-structure) for the assistant's identity, speaking style, and conversational behavior. Keep `Backchannel policy` and `Interruption policy` to describe listening acknowledgments and how the assistant responds when someone speaks over it.
101
102Live needs to know what the backend can do so it can delegate accurately. Describe those capabilities in plain language. Function names and tool schemas belong in the backend, which handles tool calls.
103
104Under `Delegation policy`, adapt these sections to your application:
105
106- **`Backend tools`:** List the capabilities your application supports, using the same terms as your existing prompt. For example: “Check appointment availability and schedule callbacks.”
107- **`Delegate to the backend when`:** State when to use those capabilities, such as “Delegate when the user asks to schedule a callback.” Include corrections, confirmations, and new details needed for work already in progress.
108- **`Do not delegate to the backend when`:** Describe what Live can handle directly, such as a greeting, a brief clarification, or repeating information from the conversation or a still-current backend result.
109
110Describe how Live should communicate progress, ask the backend's next question, or relay a verified result.
111
112If your assistant ends calls, give Live instructions for the farewell and for delegating the end-call request. Put the actual end-call tool and sequence in the backend. For example, a procedure might require the application to finish playing the farewell, disconnect, cancel pending calculations, and block further saves. Live handles the farewell and delegation; the backend and application handle those remaining steps.
113
114#### Adapt your backend prompt
115
116Use your original prompt as the starting point. Keep its wording, order, examples, and structure wherever they still apply. If it mainly describes tasks, most of it can stay as written.
117
118Keep instructions here for:
119
120- Interpreting the user's request, applying corrections, collecting missing information, and tracking task progress.
121- Using domain facts, checking eligibility, and consulting the records or services that establish the answer.
122- Following procedures for searches, updates, confirmations, routing, transfers, callbacks, and other supported actions.
123- Applying safety, privacy, and authorization rules, handling failures, and restricting actions after a transfer or call end.
124- Preparing accurate facts, task status, and the next question for Live to communicate.
125
126Move instructions for voice, greetings, turn-taking, and when to delegate into the Live prompt. Adapt instructions that assume the backend speaks directly to the user so it returns information for Live instead. Keep safety and privacy limits in both prompts wherever they affect what that model may say, ask, or do.
127
128Keep function names, argument requirements, and tool-use procedures in backend instructions. Put tool definitions in your backend's tool configuration. Your application executes its tools and enforces permissions, argument validation, and required confirmations against the current task state.
129
130Use the backend model to understand requests, corrections, and confirmations from the conversation. Regular expressions, keyword lists, and exact-phrase rules miss meaning that depends on earlier speech or a correction. For example, “yes” may confirm a slot, acknowledge a question, or refer to an earlier suggestion.
131
132Preserve the rules for work already running when the caller interrupts or the call is transferred or ended. Stopping speech leaves backend work running. If the caller asks to cancel, the backend and application need to handle that cancellation and report its outcome to Live.
133
134#### Resolve conflicting instructions
135
136Review the original prompt and both new prompts for instructions that disagree. Combine repeated instructions, and keep specific conditions and exceptions alongside the rules they qualify. Check permissions, question limits, confirmations, and what may happen after a call ends.
137
138Separate what the user wants from what has happened. If a caller changes Friday to Thursday, the latest request tells the backend to work on Thursday. The booking record tells it whether Friday was already booked. Your existing confirmation and authorization rules determine which changes it can make next.
139
140Resolve product choices with the people responsible for them before using the prompts. For example, if one instruction says to continue a booking and another says to stop all work when the caller interrupts, decide which behavior the application should provide. Record the agreed behavior in the prompts and the application logic that enforces it.
141
142Check that each required action has an implementation. Ending a call requires an end-call capability; a spoken goodbye alone leaves the connection open. If a capability is missing, decide whether to implement it or agree on a supported alternative with the team that owns the workflow.
143
144#### Review both prompts
145
146Compare both prompts with the original and check that every required behavior has a place:
147
148- The Live prompt preserves the assistant's identity, vocabulary, speaking style, disclosures, and interruption behavior.
149- The backend prompt preserves the task procedures, facts, conditions, examples, permissions, and failure handling.
150- Delegation covers new requests, corrections, confirmations, and requests that combine conversation with task information.
151- The two prompts agree on question limits, when an action is confirmed, and how to handle continuing work, cancellation, transfers, and call ending.
152
153Put the Live prompt in `session.instructions`. For Responses delegation, put the backend prompt in `session.delegation.responses.instructions`; for client delegation, keep it in your existing agent's configuration. Keep tool definitions with the backend. See [Delegation and tools](https://developers.openai.com/api/docs/guides/live-delegation) for configuration and result handling.
154
155<details>
156<summary>Example: split an appointment prompt</summary>
157
158This appointment assistant already has `check_availability` and `book_appointment` tools. Its original prompt combines speaking style with a booking procedure. The split keeps the same greeting, confirmation requirements, and correction handling.
159
160**Original prompt**
85 161
86```text162```text
87Help callers book appointments. Speak briefly. Check availability with the tool,163You are Rowan, the appointment assistant for Northstar Repairs.
88ask the caller to confirm a slot, then book it. Never claim an unverified booking.164Speak English, calmly and briefly. Greet the caller once with:
165"Hello, this is Rowan from Northstar Repairs. How can I help?"
166Use brief listening acknowledgments. Stop speaking when interrupted.
167
168Help callers find and book appointments. Ask for the preferred date
169and time zone if missing, then use check_availability.
170Offer only returned slots. Ask the caller to confirm the exact slot
171before calling book_appointment.
172If the caller changes the date, time zone, or slot, discard the earlier
173confirmation and check availability again.
174Report a booking only after the tool confirms success. If the outcome
175is unclear, say it is unconfirmed and do not retry automatically.
89```176```
90 177
91**After: GPT-Live conversation instructions**178**Live prompt**
92 179
93```text180```text
94Help callers book appointments. Keep spoken replies brief. Delegate availability181You are Rowan, the appointment assistant for Northstar Repairs.
95checks and booking requests. Ask the caller to confirm the proposed slot.182Speak English, calmly and briefly. Greet the caller once with:
96Only announce a booking when the backend reports that it succeeded.183"Hello, this is Rowan from Northstar Repairs. How can I help?"
184
185Backchannel policy: Use brief listening acknowledgments.
186
187Interruption policy: Stop speaking when interrupted and listen.
188
189Delegation policy:
190Backend tools:
191- Appointments: check available times and book appointments.
192
193Delegate to the backend when:
194- The caller wants to find or book an appointment.
195- The caller supplies or corrects a date, time zone, or slot, or
196 answers a booking question, including confirming a slot.
197
198Do not delegate to the backend when:
199- The caller greets you or asks you to repeat a still-current result.
200- You need a brief clarification to understand what they are asking.
201
202Relay the backend's questions and results. Offer only slots it returns.
203Do not claim a booking is complete until the backend confirms success.
204If the backend reports an unclear outcome, say it is unconfirmed.
97```205```
98 206
99**After: backend instructions**207**Backend prompt**
100 208
101```text209```text
102Use the appointment tools to check current availability. Before booking, verify210Help callers find and book appointments for Northstar Repairs.
103that the caller confirmed the exact slot and still has permission to book it.211Ask for the preferred date and time zone if missing, then use
104Apply the latest correction. Return verified availability, booking, or failure212check_availability. Offer only returned slots.
105status with the date, time, and time zone.213Ask the caller to confirm the exact slot before calling book_appointment.
214If the caller changes the date, time zone, or slot, discard the earlier
215confirmation and check availability again.
216Report a booking only after the tool confirms success. If the outcome
217is unclear, report it as unconfirmed and do not retry automatically.
218
219Return the available slots, booking outcome, or next question for the
220voice assistant to communicate. Interpret the caller's latest answers
221and corrections using the conversation and current task state.
106```222```
107 223
108Enforce confirmation and permission checks in your application before executing a tool. Prompt instructions guide the models; they do not enforce those checks. See [Prompting voice models](https://developers.openai.com/api/docs/guides/live-prompting) for prompt design.224</details>
109 225
110### Adapt your function handlers226### Adapt your function handlers
111 227