Multi-model orchestrator-worker extension for OpenCode that decomposes complex tasks into sub-tasks and routes each to specialized worker models
Critical gaps across naming, descriptions, and schemas. Tool names lack action verbs (orchestrate, orchestrator_status are vague). Most parameter descriptions are present but generic. Input schemas visible for 9/11 tools but lack detail. No output schemas documented. Error handling absent. Tool descriptions range 50-400 chars but lack WHEN/WHY guidance. The 'orchestrate' tool description is misleading, it claims to decompose tasks but the actual implementation is opaque. No tool annotations (readOnlyHint/destructiveHint). STDIO transport caps protocol score.
Configure the orchestrator model itself: change the planning model, provider, or context window.
Configure a worker role: change its model, provider, temperature, context window, or enable/disable it.
Embed a query and a list of documents, return the top-k most similar. Uses cosine similarity to rank documents against the query. Returns a formatted string with the top matches.
Open the orchestrator dashboard in the browser. Launches the web UI at http://localhost:7432 where you can: - See all worker roles with their assigned models - Change models for each role via dropdown (auto-populated from Ollama) - Adjust temperature, context window, and enable/disable per role - Configure the orchestrator model and provider - Monitor VRAM usage and loaded models - Run orchestration tasks with live streaming output Call this whenever the user wants to configure models, view roles, or manage the orchestrator visually.
IMPORTANT: Use this tool for ANY request that involves research, multi-step analysis, or combining different skills (research + code, research + summarization, etc.). This tool decomposes the prompt into sub-tasks and routes each to a specialized worker model running on Ollama. It has access to: - SearXNG web search (for deep_research tasks) - Ollama embedding models (for local_rag tasks) - Code-specialized models (for code_gen tasks) - Math/reasoning models (for math_reasoning tasks) - Summarization models (for summarizer tasks) - Creative writing models (for creative tasks) ALWAYS use this instead of trying to do research, web scraping, or multi-step tasks yourself. This tool has its own SearXNG search engine and specialized models.
Tool names lack action verbs. 'orchestrate' and 'orchestrator_status' are vague; should be 'decompose_and_execute' and 'get_orchestrator_status'. LLMs cannot infer intent from ambiguous names.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields. E.g., orchestrate returns what? A job ID? Full results? Status?
No tool annotations (readOnlyHint/destructiveHint/idempotentHint). Agents cannot distinguish safe reads from destructive writes. configure_worker, reset_workers, set_vram_budget are marked WRITE but lack destructiveHint annotation.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | <=2025-11-25 | v2 |
Show the Multi-Model Orchestrator status: loaded models, VRAM, and worker role config. Use this when the user asks about orchestrator status, what models are assigned to what roles, or wants to see the current configuration.
Free all VRAM except the orchestrator model. Unloads all worker models from memory.
Set the maximum number of worker models that can run in parallel. Higher values use more VRAM.
Set the VRAM budget (in GB) for the local model pool. The system enforces this ceiling.
Fetch a URL's text content (via requests, not a browser).
Search the web via SearXNG and return formatted results. Returns a markdown-formatted list of results with title, URL, and snippet.
Parameter descriptions are generic. E.g., 'role' in configure_worker says 'Worker role name (e.g. deep_research, code_gen)' but does not enumerate valid values or explain consequences of invalid input. Should be an enum.
No error handling guidance. Tools return no recovery hints. E.g., if orchestrate fails, what should the agent do? Retry? Call a different tool? No guidance.