Ask for tools
Use when a new task starts or execution is stuck and the agent suspects a missing tool is the real blocker. First self-check whether the tool already exists; if not, explain the reason, alternatives, and fallback/stop options to the user.From its SKILL.md
npx -y skills add xiehuacheng/skills --skill ask-for-toolsAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
5.2 KB, ~1.1k tokens by cl100k_base, as published. Nobody here has run it
Ask for Tools
When the agent is limited by tool boundaries rather than reasoning ability, proactively ask the user for tools instead of brute-forcing it.
What it can do:
- Identify the categories of tools the task may need (MCP server, CLI tools, Python/Node packages, API keys, permissions, local files).
- Self-check whether a tool already exists, is loaded, or is configured before asking for it.
- Make the request in a structured way: what is missing, why, what happens without it, and alternatives.
- Give the user options: provide the tool / try a fallback / stop the task.
- Remember the user's choice in the current conversation.
What it cannot do (without explicit authorization):
- Install system-level software or modify global configuration.
- Create or modify persistent configuration files outside the current task context.
- Assume the user has authorized a tool just because it was used before.
- Bypass explicit approval to obtain API keys, tokens, credentials, or elevated permissions.
Default behavior:
- Ask before installing. The agent can check whether a tool exists, but will not automatically install system-affecting tools without approval.
- When the user refuses to provide a tool, offer fallback or stop options instead of silently failing or repeatedly hitting the same dead end.
- Keep each request concise; related tools can be grouped.
- Explain why the tool is needed in plain language.
Trigger Conditions
- At the start of a new task — the task clearly requires tools the agent may not have.
- When execution is stuck — errors, timeouts, or abnormal output strongly suggest a missing tool.
- When the user says — "missing tool", "install a tool", "do I lack a tool", "what tools can you use", "ask for tools".
When Not to Trigger
- The current toolset can obviously complete the task.
- The failure is a bug in existing code, not a missing tool.
- The user has already explicitly refused to provide a tool for the current task.
Tool Categories and Self-Checks
| Category | Examples | Self-Check Method |
|---|---|---|
| CLI tools | gh, kubectl, ffmpeg, pandoc | which <tool> or <tool> --version |
| Python packages | requests, pandas, numpy | python3 -c "import <pkg>" |
| Node packages | cheerio, axios | node -e "require('<pkg>')" |
| MCP server | GitHub, browser, database | Check loaded MCP tools or server configuration |
| API keys / tokens | OpenAI, GitHub, maps | Check environment variables or ask the user |
| System permissions | File writes, network, sudo | Judge from error messages or ask the user |
| Local files / data | Configs, credentials, reference docs | ls, find, or ask the user |
Request Format
I may need [tool name] to continue this task.
Reason: [one-sentence explanation of why current tools are insufficient]
Checked: [whether it already exists / whether low-risk acquisition was attempted]
If missing: [what will happen, or why it cannot continue]
Alternative: [if any, whether existing tools can do a passable job]
Options:
1. Provide [tool name] — I will continue with the best plan.
2. Try fallback — I will do my best with existing tools, but results may be limited.
3. Stop the task — Come back to me when you have this tool.
Workflow
Pre-check at Task Start
- Summarize the task in one sentence.
- Determine: which tool is the agent most likely missing?
- If a candidate tool is identified, self-check whether it exists first.
- If it exists, use it directly; if not, make the request using the request format.
- Do not block the entire task over minor uncertainty; only pause for high-confidence missing tools.
Rescue During Execution
- When an error or abnormal output occurs, diagnose whether it is caused by a missing tool.
- First rule out code bugs and bad input.
- If a tool is missing, self-check whether it exists first.
- If it exists but is unavailable, report the actual failure; if it does not exist, make the request using the request format.
- Provide fallback or stop options.
Handling User Responses
- User provides the tool: confirm, verify it works, and continue.
- User chooses fallback: record the limitation, try alternatives, and keep the user informed.
- User chooses stop: summarize what has been completed and what is blocked.
- User does not respond: follow up once, then default to trying a fallback.
Error Handling
| Issue | Handling |
|---|---|
| Self-check command fails | Report the failure and ask the user directly. |
| User provides the wrong tool | Explain the mismatch, re-ask, or offer a fallback. |
| Tool exists but does not work | Treat it as a tool failure, not a missing tool. |
| User refuses multiple times | Stop asking for the same tool; fallback or stop. |
Resources
references/tool-categories.md— quick reference for common tool categories and self-check commands.
What ships with it: 1 file
1.9 KB alongside SKILL.md
references/
- tool-categories.md1.9 KB