| name | flash-searcher-dag-parallel-agents |
| title | Flash-Searcher: DAG-Based Parallel Execution for LLM Web Agents |
| version | 0.0.2 |
| engine | skillxiv-v0.0.2-claude-opus-4.6 |
| license | MIT |
| url | https://arxiv.org/abs/2509.25301 |
| keywords | ["agent-orchestration","parallel-execution","DAG","web-agents","efficiency"] |
| description | Reduce agent execution steps by 35% and latency by parallelizing sequential tool calls through task dependency graphs (DAGs). Use when deploying information-retrieval agents where tool execution ordering is flexible. |
Flash-Searcher: DAG-Based Parallel Execution for LLM Web Agents
Flash-Searcher replaces sequential agent reasoning with concurrent subtask execution via dependency-aware directed acyclic graphs (DAGs). This framework decomposes complex agent tasks into independent execution paths while maintaining logical coherence, reducing steps by 35% and improving overall latency.
Core Architecture
- DAG decomposition: Analyzes task dependencies to identify independent subtasks
- Dynamic workflow optimization: Adjusts parallelization strategy based on runtime execution
- Dependency tracking: Ensures downstream tasks receive upstream results appropriately
- Lightweight fine-tuning: Adaptable to smaller models (8B parameters)
Implementation Steps
Setup DAG-based agent execution framework:
from flash_searcher import DAGAgentExecutor, DependencyAnalyzer
executor = DAGAgentExecutor(
model=your_llm,
max_parallel_tasks=4,
task_timeout=30,
execution_strategy="dynamic"
)
analyzer = DependencyAnalyzer(
llm=your_llm,
tool_catalog=web_tools
)
Execute task decomposition and parallel execution:
task = "Find the top 3 restaurants in NYC with highest ratings, then check their hours"
dag = analyzer.decompose(
task=task,
tools=["search", "get_info", "check_hours"]
)
results = executor.execute(
dag=dag,
max_parallel=4,
dynamic_optimization=True
)
()