AI agents often need to make critical decisions, but sometimes these choices require direct user input. To address this, a new AI agent skill named ask-user offers a reusable pattern for gating decisions. This tool is designed to present explicit choices, halt execution, and wait for the user to respond before proceeding. It serves as a reliable mechanism across any platform where AI agents operate, ensuring that important workflows are guided by clear user intent.
How ask-user Functions
When invoked, ask-user presents a question alongside 2-4 explicit options. These options can be formatted as numbered lists or inline buttons, depending on the platform – supporting common interfaces like Telegram, Discord, and Slack. Crucially, it always includes an escape hatch, such as 'Skip' or 'Cancel', providing users with a way out of the decision. Upon presenting these choices, the skill halts the agent's turn entirely. It performs no preemptive actions; it simply waits. The user's response then initiates the next turn, allowing the calling skill to branch its logic based on the explicit choice made. This ensures that the agent's subsequent actions are directly aligned with user input.
For effective communication, ask-user emphasizes clear labels for each option. For instance, an option might be labeled 'Merge — combine with existing page', potentially enhanced with emoji prefixes for better readability. For some agents, it also integrates with a clarify tool, aiding in understanding complex choices.
When to Use and Avoid This Skill
The ask-user skill is specifically designed for situations that demand explicit user confirmation or direction. Its primary triggers include needs to 'present options', 'ask before proceeding', implement a 'choice gate', or require a direct 'user decision'. It is ideal for scenarios where the implications of proceeding are significant, and the user must be fully aware of the chosen path. This makes it a foundational component for building robust and user-centric AI agent workflows.
However, it is equally important to understand when not to use this tool. ask-user is not suited for unambiguous requests where the user's intent is clear, nor for low-stakes choices where a wrong decision has minimal impact. It should also be avoided in time-critical operations where halting execution would cause delays, or when the user has already explicitly stated a preference that the agent should follow directly. Furthermore, the skill has structural limitations: it does not stack multiple questions, ensuring a focused interaction, and it offers no more than four options to prevent decision fatigue and maintain clarity.
Practical Application Example
Consider an AI agent assisting with document management. A user asks the agent to import a new document that shares a similar name with an existing file. The agent recognizes this potential conflict and uses ask-user to resolve it:
Agent: "A document with a similar name already exists. How would you like to proceed?"
- Merge — combine with existing page
- Replace — overwrite the old version
- Keep Both — save as a new document with a version suffix
- Cancel — abort this import
The agent then pauses. If the user selects "2. Replace", the agent proceeds to overwrite the old document. If the user chooses "4. Cancel", the import process stops. This example demonstrates how ask-user gates a critical operation, ensuring the user's explicit preference dictates the outcome rather than the agent making an assumption.
FAQ
Q: How many options does ask-user support? A: It supports between 2 and 4 explicit choices, along with an escape option.
Q: Does ask-user take preemptive action while waiting for a response? A: No, it stops the turn entirely, waiting for the user's input to start the next turn.
Q: Can this skill be used for simple confirmations like 'Yes/No'? A: While technically possible, it is not recommended for low-stakes or unambiguous requests; it is designed for significant gating decisions.
Implementing ask-user ensures agents respect user intent at critical junctures. This provides a clear, reliable method for integrating explicit user decisions into automated workflows.





