ask_openrouter
Configure and send prompts to OpenRouter models as a subagent, with reasoning controls, temperature, and optional multi-model Fusion synthesis.
Instructions
Ask an OpenRouter model as a subagent. ONE tool for everything: model defaults to 'openrouter/fusion' (a panel of models answers in parallel and a judge fuses them), or pass any OpenRouter model id. Write instructions (its system prompt). Any model's reasoning level can be set: reasoning_effort (none/minimal/low/medium/high/xhigh/max, auto-translated to each model's native scheme) or reasoning_max_tokens (exact budget; not both), plus reasoning_enabled / reasoning_exclude. Optional temperature (0-2) where the model supports it. For Fusion you may set analysis_models (panel, 1-8) and judge_model (synthesizer). Use a single fast model + the worker-orchestrator pattern for concrete code work; use 'openrouter/fusion' or a strong model + reasoning_effort 'high' + the two-layer-cross-model-expert pattern for hard reasoning / architecture / security review. Note: a Fusion call bills for every panel model + the judge. Call list_patterns / get_pattern first for non-trivial work. If a call fails, retry it as-is first; if it keeps failing, report the error and ask — do NOT downgrade or change the user's chosen model/reasoning/temperature config without their direct say-so.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | OpenRouter model id. Defaults to 'openrouter/fusion' (multi-model synthesis). Any valid OpenRouter id is accepted, e.g. 'anthropic/claude-opus-latest', 'openai/gpt-latest', or a fast, cheap model for worker tasks. | openrouter/fusion |
| prompt | Yes | The task or question for the model. | |
| context | No | Code snippets, error messages, stack traces, constraints, or other relevant context. | |
| judge_model | No | Fusion judge/synthesis model id. Only valid when model is 'openrouter/fusion'. | |
| temperature | No | Sampling temperature, 0-2 (lower = more deterministic, higher = more varied/creative). Omit to use the model's default. Applied when the model supports it; OpenRouter drops it for models that don't (e.g. some reasoning-only models). | |
| instructions | Yes | System instructions for the model (required): its role and how to respond. Write these for the task at hand — e.g. a coding-subagent prompt for worker-style work, or a reviewer/architect prompt for analysis. | |
| analysis_models | No | Fusion panel: 1-8 OpenRouter model ids that answer in parallel. Only valid when model is 'openrouter/fusion'. | |
| reasoning_effort | No | Named reasoning level, lowest to highest: none, minimal, low, medium, high, xhigh, max. OpenRouter normalizes this across providers (OpenAI/Grok take it natively; Anthropic gets a proportional thinking budget; Gemini a thinkingLevel); an unsupported level is mapped to the nearest one the model offers, never a hard error. 'none' disables reasoning where the model allows it (some models' reasoning is mandatory and 'none' is ignored). Use 'high' or above for deep audits / architecture review. Mutually exclusive with reasoning_max_tokens. | |
| reasoning_enabled | No | Enable reasoning at the model's default strength without picking a level or budget (true = default reasoning on; false = off). Prefer reasoning_effort when you care how much. | |
| reasoning_exclude | No | When true the model still reasons but the reasoning tokens are not returned in the response (saves context; you still pay for them). | |
| reasoning_max_tokens | No | Explicit reasoning token budget (Anthropic/Gemini/Qwen-style budget_tokens) for fine-grained control instead of a named level. Providers clamp to their own limits (e.g. Anthropic [1024, 128000]). Mutually exclusive with reasoning_effort. |