diff --git a/python/sglang/srt/entrypoints/openai/serving_chat.py b/python/sglang/srt/entrypoints/openai/serving_chat.py index 0a928e16c..d7eea9d7b 100644 --- a/python/sglang/srt/entrypoints/openai/serving_chat.py +++ b/python/sglang/srt/entrypoints/openai/serving_chat.py @@ -293,6 +293,10 @@ class OpenAIServingChat(OpenAIServingBase): ) messages = request.messages messages = [msg.model_dump() for msg in messages] + + if messages[0]["role"] != "system": + # insert an empty system prompt to help render tool system prompt + messages.insert(0, {"role": "system", "content": ""}) if request.tools: messages[0]["tools"] = [tool.model_dump() for tool in request.tools] real_input = encode_messages(messages, thinking_mode=thinking_mode)