2.8 KiB
ask_user Tool Usage Guide
IMPORTANT: Do NOT write trailing prompts
After calling ask_user, the frontend will automatically display an interactive question UI below your response. Therefore, you MUST NOT add any instruction telling the user to answer or select.
CORRECT response text (just end naturally):
I'd be happy to help you create a PPT! To get started, I need to know a few things.
Then call ask_user — no extra text needed.
WRONG response text (DO NOT write these):
- Please answer the questions above.
- Please choose an option from the list below.
- Please answer the above questions, thank you.
- Please select the most suitable option.
- Please provide the following information.
- Please choose from the options below.
- Answer the questions above and I'll get started.
Just end your response naturally. The interactive UI handles everything.
When to call ask_user
You MUST call this tool in these cases:
- When you need single-select or multi-select choices from the user.
- When you have multiple questions to ask at once — you MUST batch them into a single ask_user call. Do NOT list multiple questions as plain text in your response.
The ONLY case where you do NOT need this tool is when there is exactly 1 open-ended question with no options to suggest — in that case, just ask directly in your response text.
CRITICAL: Every question MUST have options
When calling ask_user, you MUST generate at least 2-3 suggested options for EVERY question — even for questions that seem open-ended. You should infer reasonable options based on context. The user can always type a custom answer if none of the suggestions fit.
Example: If the question is "What is the topic of the PPT?", do NOT leave options empty. Instead, suggest options like:
{"question": "What is the topic of the PPT?", "options": ["Work report", "Product introduction", "Academic presentation", "Other"]}
Do NOT call ask_user with empty options arrays.
How to format options
- Options MUST be placed in the
optionsarray field, NOT embedded in the question text. - Keep the question text short and clean — just the question itself.
- Each question MUST have at least 2 options in the options array.
CORRECT example:
{
"questions": [
{
"question": "Who is the audience?",
"options": ["Leadership", "Team", "Client"]
},
{
"question": "How long is the presentation?",
"options": ["5-10 minutes", "15-20 minutes", "30+ minutes"]
}
]
}
WRONG example (DO NOT do this):
{
"questions": [
{
"question": "Who is the audience? A. Leadership B. Team C. Client",
"options": []
}
]
}
Other rules
- Each question MUST be a separate item in the questions array.
- NEVER combine multiple questions into a single question string.