| name | fs-researcher-scaling |
| title | FS-Researcher: Test-Time Scaling for Long-Horizon Research Tasks |
| version | 0.0.2 |
| engine | skillxiv-v0.0.2-claude-opus-4.6 |
| license | MIT |
| url | https://arxiv.org/abs/2602.01566 |
| keywords | ["Test-Time Scaling","External Memory","Multi-Agent","Long-Horizon Reasoning","Knowledge Accumulation"] |
| description | Scale research agent capability using persistent filesystem as external memory. Dual-agent architecture with context builder accumulating knowledge and report writer composing outputs enables computation scaling beyond context windows. |
FS-Researcher: Test-Time Scaling via External Memory
Problem
Research tasks require accumulating knowledge far exceeding model context windows. Deep research needs iterative refinement, synthesis across sources, and integration with external findings.
Single-pass generation cannot match quality of human iterative research. Standard scaling approaches hit context limits.
Core Concept
FS-Researcher uses the filesystem as durable external memory and coordination medium. A Context Builder agent accumulates knowledge by web browsing and extracting information; a Report Writer composes final output using the persistent knowledge base.
Allocating more computation rounds to the Context Builder directly improves downstream report quality, demonstrating effective test-time scaling.
Architecture Overview
- Context Builder Agent: Web browsing, information extraction, hierarchical knowledge base construction
- Report Writer Agent: Section-by-section composition using persistent knowledge base
- Filesystem Coordination: Shared external memory enabling cross-session persistence
- Hierarchical Storage: Organize findings into nested structures
- Iterative Refinement: Multiple rounds of context building improve knowledge base quality
- Section-by-Section Writing: Incremental report composition with knowledge base lookups
Implementation
Step 1: Build Knowledge Base Storage
Create hierarchical filesystem structure for knowledge accumulation.
import os
import json
from pathlib import Path
class KnowledgeBaseStorage:
def __init__(self, base_path):
self.base_path = Path(base_path)
self.base_path.mkdir(parents=True, exist_ok=True)
def add_finding(self, topic, finding_text, source_url, metadata=None):
"""Store a research finding."""
topic_path = .base_path / topic.replace(, )
topic_path.mkdir(parents=, exist_ok=)
finding = {
: finding_text,
: source_url,
: datetime.now().isoformat(),
: metadata {}
}
findings_file = topic_path /
(findings_file, ) f:
f.write(json.dumps(finding) + )
():
topic_path = .base_path / topic.replace(, )
findings_file = topic_path /
findings_file.exists():
[]
results = []
(findings_file, ) f:
line f:
finding = json.loads(line)
query.lower() finding[].lower():
results.append(finding)
results
():
topic_path = .base_path / topic.replace(, )
findings_file = topic_path /
findings_file.exists():
[]
findings = []
(findings_file, ) f:
line f:
findings.append(json.loads(line))
findings