| name | wideseek-r1-exploring-width-scaling |
| description | Decompose broad information-seeking tasks into parallel subtasks using a lead-agent-subagent pattern with isolated contexts and result aggregation. Use when: 'research multiple competitors and build a comparison table', 'gather information about all X and summarize', 'find and compare pricing across providers', 'collect attributes for a list of items', 'build a structured overview from many sources', 'search for multiple things in parallel'. |
WideSeek-R1: Width-Scaled Multi-Agent Orchestration for Broad Information Seeking
This skill enables Claude to tackle broad information-gathering tasks -- those requiring data about many entities, attributes, or sources -- by decomposing the work into parallel subtasks assigned to independent subagents. Instead of sequentially searching for each piece of information (depth scaling), Claude acts as a lead agent that identifies the full scope of needed information, crafts targeted subtask prompts for parallel subagents, then aggregates their findings into a structured result. This is the core insight of the WideSeek-R1 paper: width scaling through parallel subagents consistently outperforms deeper single-agent reasoning for tasks that are broad rather than deep.
When to Use
- When the user asks to research and compare multiple entities (e.g., "Compare the pricing, features, and limits of the top 5 cloud storage providers")
- When the user needs a structured table or matrix synthesized from information scattered across many sources
- When a task requires gathering the same set of attributes for a list of items (e.g., "For each of these 12 libraries, find the license, last release date, and GitHub stars")
- When the user asks to search for or collect broad information that naturally decomposes into independent parallel queries
- When a single-pass search would miss items because the task scope exceeds what one query can cover
- When building competitive analyses, market surveys, feature matrices, or compliance checklists that span many targets
Do not use for single-entity deep research, step-by-step debugging, or tasks where each step depends on the previous step's output.
Key Technique
Width Scaling vs. Depth Scaling
Traditional agentic approaches use depth scaling: a single agent reasons across many turns, accumulating context as it searches, reads, and synthesizes. This works well for deep, focused problems but hits a bottleneck on broad tasks -- those requiring information about many independent entities or attributes. Context windows fill with irrelevant prior searches, accuracy degrades, and parallelism is impossible.
WideSeek-R1 flips this by introducing width scaling: a lead agent decomposes the broad task into independent subtasks, each handled by a subagent with an isolated context. Subagents never see each other's search results, preventing context pollution. The lead agent receives only the final condensed outputs from each subagent (thinking/scratchpad content is stripped), keeping its aggregation context clean. The key finding is that performance scales consistently with the number of parallel subagents -- a 4B parameter model with 10 subagents matches a 671B single-agent model.
The Orchestration Protocol
The lead agent has exactly one tool: call_subagent. It cannot search directly -- its sole job is decomposition and aggregation. Each subagent gets a focused, self-contained prompt and operates with search/retrieval tools independently. This strict separation prevents the lead agent from getting distracted by raw search results and forces it to produce clear, well-scoped subtask definitions. After all subagents complete, the lead agent receives their condensed outputs and synthesizes the final structured answer.
Step-by-Step Workflow
-
Analyze the breadth of the request. Identify the independent dimensions: How many entities? How many attributes per entity? Can information for entity A be gathered independently of entity B? If yes, this is a width-scaling candidate.
-
Define the output schema. Before decomposing, establish what the final output looks like -- typically a table with rows (entities) and columns (attributes). This schema guides subtask design and ensures subagents collect compatible information.
-
Decompose into parallel subtasks. Write one subtask prompt per independent unit of work. Each prompt must be self-contained: it should include the specific entity/entities to research, the exact attributes to find, and the expected output format. Aim for subtasks that are roughly equal in scope.
-
Launch subagents with isolated contexts. Use the Task tool to spawn one agent per subtask. Each agent gets only its subtask prompt -- no shared context from other subtasks. Run all subagents in parallel using concurrent Task tool calls in a single message.
-
Enforce tool discipline in subtask prompts. Instruct each subagent to use search/retrieval tools (web search, grep, file reads) and return structured findings. Subagents should make up to 3-5 targeted searches per subtask rather than one broad search.
-
Collect and condense subagent outputs. When subagents return, extract only the factual findings -- discard reasoning traces, search queries, and intermediate steps. This prevents context bloat during aggregation.
-
Aggregate into the target schema. Map each subagent's findings into the predefined output schema. Flag any cells where subagents returned conflicting or missing information.
-
Validate completeness and consistency. Check: Are all rows populated? Are there obvious contradictions between subagents? If gaps exist, spawn targeted follow-up subagents for just the missing cells rather than re-running the entire task.
-
Format and present the final structured output. Render the aggregated result as a markdown table, JSON, or whatever format the user requested. Include source attribution where available.
Concrete Examples
Example 1: Competitive Feature Matrix
User: "Compare React, Vue, Svelte, and Angular on bundle size, learning curve,
TypeScript support, SSR framework, and GitHub stars."
Approach:
1. Identify 4 entities (frameworks) x 5 attributes = 20 data points.
Each framework's attributes are independent -- perfect for width scaling.
2. Define schema:
| Framework | Bundle Size | Learning Curve | TS Support | SSR Framework | GitHub Stars |
3. Spawn 4 parallel subagents, one per framework. Each subtask prompt:
"Research [Framework]. Find: (a) minimum production bundle size in KB,
(b) learning curve rating from community consensus, (c) TypeScript support
level (native/plugin/none), (d) primary SSR framework name,
(e) current GitHub star count. Return as a single-row markdown table."
4. Collect 4 single-row tables from subagents.
5. Merge into final table, resolving any format inconsistencies.
Output:
| Framework | Bundle Size | Learning Curve | TS Support | SSR Framework | Stars |
|-----------|------------|----------------|------------|---------------|-------|
| React | ~6 KB | Moderate | Via @types | Next.js | 234k |
| Vue | ~16 KB | Easy | Native 3.x | Nuxt | 210k |
| Svelte | ~2 KB | Easy | Native | SvelteKit | 82k |
| Angular | ~45 KB | Steep | Native | Angular SSR | 98k |
Example 2: Codebase Audit Across Multiple Modules
User: "Audit our monorepo for deprecated API usage. Check packages/auth,
packages/billing, packages/notifications, and packages/analytics."
Approach:
1. Four independent packages to audit -- no cross-dependencies for this task.
2. Define schema: package name, deprecated APIs found, file locations, severity.
3. Spawn 4 parallel subagents. Each prompt:
"Search packages/[name] for usage of deprecated APIs. Look for:
(a) deprecated Node.js APIs (Buffer(), url.parse, etc.),
(b) deprecated library methods from package.json dependencies,
(c) any @deprecated JSDoc annotations in internal code.
Return a list of findings with file path, line number, and what to replace."
4. Collect findings from each subagent.
5. Aggregate into a unified audit report sorted by severity.
Output:
## Deprecated API Audit Report
### packages/auth (3 issues)
- `src/token.ts:45` - `new Buffer()` -> `Buffer.from()` [HIGH]
- `src/oauth.ts:112` - `url.parse()` -> `new URL()` [MEDIUM]
- `src/session.ts:78` - `@deprecated validateLegacy()` internal [LOW]
### packages/billing (1 issue)
- `src/stripe.ts:23` - `stripe.charges.create()` -> Payment Intents API [HIGH]
### packages/notifications (0 issues)
No deprecated API usage found.
### packages/analytics (2 issues)
- `src/track.ts:91` - `querystring.stringify()` -> `URLSearchParams` [LOW]
- `src/report.ts:34` - deprecated moment.js -> date-fns suggested [MEDIUM]
Example 3: Multi-Source Data Collection
User: "I need a table of all AWS regions with their region code, location,
number of availability zones, and year launched. Cover all current regions."
Approach:
1. There are 30+ AWS regions. A single-agent sequential approach would
require many searches and risk losing earlier results from context.
2. Group regions into batches of 5-6 per subagent to balance parallelism
and per-agent workload. Spawn 6 subagents.
3. Each subtask prompt:
"Find the following for AWS regions [list of 5-6 region codes]:
region code, geographic location, number of AZs, and launch year.
Return as markdown table rows."
4. Collect 6 partial tables and merge into one complete table.
5. Validate: check total count against known AWS region count.
If any are missing, spawn one targeted follow-up subagent.
Output:
| Region Code | Location | AZs | Year |
|------------------|-----------------------|-----|------|
| us-east-1 | N. Virginia | 6 | 2006 |
| us-east-2 | Ohio | 3 | 2016 |
| us-west-1 | N. California | 2 | 2009 |
| ... (full table with all 30+ regions) ...
Best Practices
Do:
- Write self-contained subtask prompts that a subagent can execute without needing context from other subtasks. Include the entity name, the attributes to find, and the output format in every prompt.
- Pre-define the output schema before decomposition. This ensures all subagents return compatible data structures that can be cleanly merged.
- Strip reasoning traces from subagent outputs before aggregation. Only pass factual findings to the aggregation step to keep context clean.
- Use targeted follow-up subagents for gaps rather than re-running everything. If 2 out of 20 cells are missing, spawn 2 small subagents, not 20.
Avoid:
- Spawning subagents for tasks that are inherently sequential or have step-to-step dependencies. Width scaling only helps when subtasks are independent.
- Giving the lead agent direct search capabilities. The lead agent's job is decomposition and aggregation -- mixing in raw search results degrades both.
- Creating too many tiny subtasks. Each subagent has overhead; batch related items (e.g., 5 entities per subagent) when individual items require little research.
- Sharing context between subagents. The entire point of isolated contexts is preventing information pollution. If subagent B needs subagent A's output, that's a sequential dependency -- handle it in a second wave, not in parallel.
Error Handling
| Problem | Solution |
|---|
| A subagent returns empty or irrelevant results | Retry with a more specific prompt. Add example output format and explicit search terms. |
| Subagent outputs have incompatible formats | Normalize during aggregation. The lead agent should map free-text responses into the predefined schema columns. |
| Too many subtasks exceed available parallelism | Batch subtasks into waves. Run the first wave in parallel, collect results, then run the next wave. |
| Conflicting data across subagents | Flag the conflict in the output. If both subagents researched overlapping entities, prefer the one with a cited source. |
| Subtask decomposition misses entities | After aggregation, validate completeness against the original request. Spawn a "gap-filling" subagent for any missing items. |
| One subagent is dramatically slower than others | Set timeouts. Design subtasks to be roughly equal in scope so no single agent becomes a bottleneck. |
Limitations
- Sequential dependencies defeat width scaling. If step N requires the output of step N-1, this approach provides no benefit. Use standard depth-scaling (single-agent multi-turn) instead.
- Diminishing returns past ~10 subagents. The paper shows consistent gains up to 10 parallel subagents, but coordination overhead grows. Batch into groups if you have more than 10 independent subtasks.
- Aggregation quality depends on subtask prompt clarity. Vague subtask prompts produce inconsistent outputs that are hard to merge. The lead agent's decomposition quality is the primary bottleneck.
- Not suitable for tasks requiring holistic understanding. If the answer depends on seeing all the data together (e.g., "what trend do these 20 data points show?"), a single agent with full context is better. Width scaling excels at collection, not synthesis.
- Context isolation means no cross-referencing. Subagent A cannot fact-check against subagent B's findings. Cross-validation requires a second pass after aggregation.
Reference
Paper: WideSeek-R1: Exploring Width Scaling for Broad Information Seeking via Multi-Agent Reinforcement Learning (Xu et al., 2026)
Key takeaway: A small model (4B) with 10 parallel width-scaled subagents matches a single 671B model on broad information tasks. Look for: the lead-agent-subagent architecture (Section 3), the MARL training with dual-level reweighting (Section 4), and the width scaling curves in Figure 4 showing consistent gains with more subagents.