Back to skills
extension
Category: Development & EngineeringNo API key required

tool-selector

Before executing a task, analyze the available tool set (web search, code execution, file read/write, API calls, database queries, memory tools), select the optimal tools, plan execution order, and prevent unnecessary tool calls. Triggers on multi-step tasks, "which tool should I use", "plan the tools", or whenever multiple tools could apply.

personAuthor: jakexiaohubgithub

Tool Selector Protocol

Determine which tools are needed to solve the task, plan the most efficient sequence, and eliminate unnecessary calls before they happen.

Core principle: Every tool call costs time, tokens, and rate limits. The right tool, in the right order, called once.


Tool Catalog

| Tool | Cost | Side Effect | Best For | |------|------|-------------|----------| | Web search | Medium | None (read-only) | Current info, external sources | | Code execution | Medium | Environment-dependent | Computation, transformation, testing | | File read | Low | None | Local data, config, content | | File write | Medium | Persistent change | Saving output, updates | | API call | High | Rate limits, cost | External service integration | | Database query | Medium-High | Persistent on writes | Data read/write | | Memory/context | Low | None | Retrieve previous information |


Selection Algorithm

For each tool candidate, ask these questions in order:

1. Can this tool actually solve this task?           → No = eliminate
2. Can a cheaper/simpler tool do the same job?       → Yes = use that instead
3. Was this tool already called for this task?        → Yes = use cached result
4. Is this call actually needed right now?            → No = defer
5. Does this tool depend on another tool's output?    → Yes = add to sequence

Anti-Patterns — Block These

| Anti-Pattern | Problem | Solution | |---|---|---| | Reading the same file repeatedly | Each read costs tokens | Cache on first read | | Web search for known information | Unnecessary latency | Use existing knowledge | | Serial API calls (could be parallel) | Slow | Plan parallel calls | | Tool chain when one tool suffices | Extra steps | Consolidate | | Read before write (when unnecessary) | Extra call | Skip the read | | Loading memory every step | Token waste | Load once, reference |


Output Format

TOOL SELECTOR
Task    : [task summary]
Selected: N tools | Total calls: N | Blocked: N

## Tool Plan

| Step | Tool | Purpose | Depends On | Cached? |
|------|------|---------|------------|---------|
| 1 | [tool] | [why] | — | No |
| 2 | [tool] | [why] | #1 | Yes — use #1 output |

## Blocked Calls

| Blocked | Reason | Alternative |
|---------|--------|-------------|
| [tool call] | [rationale] | [what to do instead] |

## Optimization Notes
- [Parallel opportunities]
- [Cached outputs]
- [Rate limit warnings]

Approve? Proceed?

Tool Combination Guide

| Task Type | Typical Chain | Block | |-----------|---------------|-------| | Research & Report | Search → File read → Code (analyze) → File write | Searching same topic twice | | Data Processing | File read → Code → File write | Re-reading file each step | | API Integration | Memory (creds) → API → Code (parse) → DB write | Re-auth per request | | Code Development | File read → Code (test) → File write → Code (verify) | Full test suite on every change | | Database Operation | Memory (schema) → DB (SELECT) → Code (prepare) → DB (write) | Running same SELECT twice |


When to Skip

  • Single-tool task ("read this file")
  • User already specified which tool to use
  • Single-step, side-effect-free task

Guardrails

  • Never call an API when cached data suffices — always check cache first.
  • Prefer low-cost tools — file read over web search when local data exists.
  • Cross-skill: works with parallel-planner (parallel tool calls) and task-decomposer (tool needs per subtask).