Welcome back! In the previous lesson, you learned how to use prompt chaining to connect multiple GPT-5 API calls in a linear sequence, breaking down complex tasks into manageable steps. This approach works well when you know exactly what sequence of operations is needed.
However, real-world applications often face unpredictable requests that require different types of expertise. Instead of building separate chains for every possible request, routing workflows use GPT-5 to analyze incoming requests and intelligently direct them to the right specialist — such as a math expert, a writing expert, or a code expert.
This lesson will show you how to build a flexible routing system that maintains high-quality responses by leveraging specialized instruction prompts for each domain.
The routing workflow follows a clean two-step pattern that's more dynamic than the linear chains you've used before. When a user submits a request, your system first sends it to a router — a GPT-5 instance with a specialized instruction prompt designed to classify the request type. The router analyzes the content and returns a decision about which specialist should handle it.
Once you have the routing decision, you send the original user request to a second GPT-5 instance configured with the appropriate specialist instruction prompt. This specialist focuses entirely on providing the best possible response within their domain of expertise, whether that's solving equations, crafting stories, or debugging code.
The key insight here is that you're using the same OpenAI API and the same GPT-5 model for both calls, but with completely different instruction prompts that give each instance a distinct role and expertise. The router acts as a classifier, while the specialist acts as a domain expert. This separation of concerns makes your system both more reliable and easier to extend with new specialist types.
The router prompt is the critical component that determines how accurately your system classifies incoming requests. Unlike the open-ended prompts you might use for creative tasks, router prompts need to be strict and constrained to ensure reliable, parseable output.
Your router instruction prompt should establish GPT-5's role as a decision-maker and provide clear, unambiguous options. Here's an effective approach that limits the router to exactly three choices:
The phrase Respond with ONLY is crucial because it prevents GPT-5 from adding explanatory text or reasoning that would complicate parsing the response. You want exactly one of three possible strings, nothing more. The explicit list of specialist names with their descriptions helps GPT-5 understand the boundaries between categories and reduces ambiguous classifications.
Notice how each specialist description focuses on clear, distinct domains. Mathematical problems are clearly different from creative writing, which is clearly different from programming tasks. This separation reduces edge cases where the router might struggle to choose between specialists.
Each specialist needs a focused instruction prompt that establishes their expertise and approach. Unlike general-purpose prompts, specialist prompts should be concise and role-specific to maximize performance within their domain.
Your math specialist prompt should emphasize precision and clarity in mathematical communication:
The writing specialist focuses on creativity and engaging communication:
The code specialist emphasizes technical accuracy and practical implementation:
These prompts are intentionally brief because they need to work with a wide variety of requests within their domain. A math specialist might handle anything from basic arithmetic to complex calculus, so the prompt focuses on the general approach rather than specific techniques. This specialization improves both quality and consistency compared to using a generic "helpful assistant" prompt for all request types.
The beauty of this approach is reusability. Once you've crafted effective specialist prompts, you can use them across different projects and routing systems. They become reliable building blocks for more complex AI workflows.
To begin the routing workflow, you first prepare the user request and send it to the router. The router is a GPT-5 instance configured with a strict instruction prompt to classify the request.
Here, you set up the OpenAI client, specify the model, and construct the message payload. The instructions parameter contains your router prompt that tells GPT-5 how to classify requests, while the input parameter contains the actual user message to be classified. The reasoning parameter is set to "minimal" since classification is a straightforward task that doesn't require complex logical analysis. The store=False prevents persisting the conversation for later retrieval; we’ll keep context locally
After receiving the router's response, you need to extract the specialist decision and prepare it for use in the next step of the workflow.
The output_text field contains the text response from GPT-5, and the .strip() method removes any leading or trailing whitespace to ensure clean string matching. The print statement is useful for debugging and verifying that the router is making the correct classification. For the example request "Write me a short story about robots", you should see:
This confirms that the router correctly identified the request as a creative writing task.
Once you have the router's decision, you need to map it to the appropriate specialist instruction prompt. This ensures that the user request is handled by the expert best suited for the task.
The if-elif-else structure provides a clean way to map router decisions to specialist prompts. Each condition checks for an exact string match with the expected specialist names from your router prompt. This approach is straightforward and easy to debug when routing decisions don't match expectations.
The else clause provides a crucial fallback mechanism. If the router returns an unexpected response — perhaps due to a prompt engineering issue or an edge case you didn't anticipate — the system defaults to a generic helpful assistant prompt rather than crashing. This graceful degradation keeps your system functional even when routing doesn't work perfectly.
After selecting the correct specialist prompt, you send the original user request to the chosen specialist. The specialist uses their domain expertise to generate the final response.
Notice that you send the original user_request to the specialist, not the router's response. The router's job is purely classification; the specialist needs to see the actual user question to provide a helpful answer. This separation keeps the workflow clean and ensures the specialist has all the context needed to respond effectively.
The instructions parameter now contains the specialist prompt you selected in the previous step, which configures GPT-5 with the appropriate domain expertise. The input parameter contains the original user request formatted as a message.
Finally, extract the specialist's response and display it. This is the answer that will be returned to the user.
The output_text field contains the complete response generated by the specialist. When you run this code with the robot story request, you should see output like:
This demonstrates that the writing specialist correctly understood the creative writing request and produced an engaging story opening rather than trying to solve it as a math problem or write code.
You've successfully learned to implement intelligent task routing that uses GPT-5 to classify requests and direct them to specialized instruction prompts optimized for specific domains. Your routing workflow follows a clean two-step pattern: analyze the request with a router prompt to get a classification decision, then send the original request to the appropriate specialist for the final response.
The key components of this workflow are the router instruction prompt that constrains GPT-5 to return only specialist names, the specialist instruction prompts that configure domain expertise, and the two-call pattern that separates classification from response generation. By using the instructions parameter with different prompts for each call, you can give the same model different roles and capabilities.
The routing patterns you've learned here form the foundation for much more sophisticated AI workflows. As you continue through this course, you'll see how these routing concepts extend to dynamic workflows and complex agent behaviors that can handle real-world business problems with multiple types of expertise working together.
