Data & Analysis deep-researchweb-searchweb-scrapingbenchmark-evaluatione2b-sandboxtrace-collectionlong-context-reasoning

MiroThinker

A deployable deep-research agent for complex web research, evidence gathering, and prediction tasks.

FollowAgents review · FARS-2.1
Not recommended
27/ 100 5-point scale 1.4 / 5
1 2 3 4 5 6
Per-dimension scores and reasoning
1Trust0 / 29 · 0.0/5

Evidence shows no documentation on permission management, user confirmation, data flow transparency, sensitive data handling, dependency security, external effects, rollback, or source attribution. All trust criteria are unsupported, hence score 0.

2Reliability3 / 14 · 1.1/5

Self-consistency: README has inconsistent performance numbers (e.g., 88.2 in description vs 74.0 in table) and versioning confusion, score 1. Dependency availability: Relies on external HuggingFace resources without version pinning or mirrors, score 1. Failure messages: No documentation on error handling or failure messages, score 0.

3Adaptability6 / 18 · 1.7/5

Audience and scenarios: Clearly targets research tasks with multiple model sizes, score 2. Capability boundaries: Mentions max context and tool calls but lacks explicit limitations, score 1. Trigger precision: No trigger mechanism defined, score 0. Environment fit: Provides deployment options but lacks detailed environment requirements, score 1.

4Convention10 / 18 · 2.8/5

Information architecture: README is well-structured with TOC and sections, score 2. Install notes: Provides quick start link but lacks detailed installation steps, score 1. Naming stability: Model names have version numbers but inconsistencies exist, score 2. Examples and FAQ: Provides FAQ link but no specific content, score 2. Known limitations: Not explicitly listed, score 1. License: Apache-2.0, score 2. Versioning and changelog: Has news updates but no formal changelog, score 2. Maintenance responsibility: No clear maintainer, score 1.

5Effectiveness6 / 13 · 2.3/5

Output usability: No output format or examples provided, score 1. Marginal value: Offers multiple model sizes and benchmarks but lacks comparison with existing solutions, score 2. Cost-benefit: No cost information, score 1.

6Verifiability2 / 8 · 1.3/5

Claim traceability: Performance claims have benchmark links but no reproduction details, score 1. Cross-source corroboration: Relies solely on self-reported results without independent verification, score 1. Fact-inference separation: No distinction between facts and inferences, score 0.

Evidence confidence: Low Reviewed Aug 09, 2026 Reviewed revision 1c4253f6774b
Safety controls not found in source: least-privilege scoping, confirmation before acting, data-flow disclosure, sensitive-data handling, dependency security, disclosed external effects, rollback or recovery path, verifiable attribution
Before you use it
  • Inconsistent performance numbers need verification.
  • No security or privacy documentation provided.
  • Reliance on external resources may affect availability.
Review evidence [1][2][3]
See the full review method →

What does this agent do, and when should you use it?

MiroThinker is an open-source deep-research agent project whose main runtime lives in apps/miroflow-agent and executes multi-step work through tool calls. The current 1.7 family has 30B and 235B variants with 256K context; its recommended single-agent configurations allow 200 or 300 turns while retaining the five most recent tool results. Its documented minimal stack combines Google search, webpage scraping and extraction, and E2B-based code execution and file operations. The repository also includes multi-run evaluation and progress-monitoring scripts for benchmarks including GAIA, BrowseComp, HLE, and FutureX, plus trace-collection scripts. Adoption requires operating or connecting to a model server and supplying several third-party API credentials.

From apps/miroflow-agent, a user launches main.py with llm, agent, and llm.base_url settings. Under mirothinker_1.7_keep5_max200, the main agent can use google_search from search_and_scrape_webpage, scrape_and_extract_info from jina_scrape_llm_summary, and tool-python functions including create_sandbox, run_command, run_python_code, and file upload/download operations. It searches the web, extracts information, runs code when needed, and returns an answer with sources. The keep_tool_result: 5 setting retains only the latest five tool responses while preserving the full thought-and-action sequence. Benchmark jobs run through scripts/run_evaluate_multiple_runs_*.sh and their logs can be inspected with scripts in benchmarks/check_progress/.

  1. A research analyst investigating a question across web sources can use the 1.7 single-agent configuration to search, extract evidence, and run supporting code.
  2. A research team reproducing agent results can launch the supplied multi-run evaluations for GAIA, BrowseComp, HLE, XBench-DeepSearch, or FutureX.
  3. A team with a self-hosted MiroThinker endpoint can serve a model through SGLang and pass that endpoint through llm.base_url.
  4. An engineering team comparing research workflows can run an initial task in the same framework with the documented Claude 3.7 or GPT-5 configurations.
  5. A developer preparing interaction data for SFT or DPO can run the corresponding trace-collection scripts under apps/collect-trace.

What are this agent's strengths and limitations?

Pros
  • The 1.7 configurations combine a 256K context window with up to 300 tool interactions, which is specifically suited to long research trajectories.
  • Its minimal setup clearly defines the research toolchain: Serper search, Jina scraping and extraction, plus an E2B code and file sandbox.
  • The repository supplies runnable multi-benchmark evaluations, progress checks, and documented anti-contamination measures for evaluation trajectories.
  • The same framework documents runs with self-hosted MiroThinker as well as Claude 3.7 and GPT-5 configurations.
Limitations
  • The minimal deployment depends on Serper, Jina, E2B, and a summary-model endpoint, creating multiple credential, quota, and network dependencies.
  • Running MiroThinker-1.7 requires supplying a model server; the documented SGLang example uses four GPUs.
  • Benchmark evaluation adds an OpenAI API dependency, and GAIA multimodal tasks use GPT-4o to convert media into text.
  • The documented primary workflow is CLI- and YAML-driven; the supplied material does not document a stable end-user HTTP service API.

How do you install or deploy this agent?

Prerequisites are Python 3.10+, uv, and the minimal configuration credentials: SERPER_API_KEY, JINA_API_KEY, E2B_API_KEY, SUMMARY_LLM_BASE_URL, SUMMARY_LLM_MODEL_NAME, and SUMMARY_LLM_API_KEY. Run:

git clone https://github.com/MiroMindAI/MiroThinker
cd MiroThinker/apps/miroflow-agent
uv sync
cp .env.example .env

Then populate .env with those values. Benchmark evaluation additionally requires OPENAI_API_KEY; the repository documents its use for LLM-as-a-Judge and GAIA multimodal preprocessing.

How do you use this agent?

Start a model server first. The documented MiroThinker-1.7-mini SGLang example is:

NUM_GPUS=4
PORT=61002
AGENT_PATH=miromind-ai/MiroThinker-1.7-mini
python3 -m sglang.launch_server --model-path $AGENT_PATH --tp $NUM_GPUS --dp 1 --host 0.0.0.0 --port $PORT --trust-remote-code

Then, from apps/miroflow-agent, run:

uv run python main.py llm=qwen-3 agent=mirothinker_1.7_keep5_max200 llm.base_url=http://localhost:61002/v1

Edit task_description on line 32 of main.py to change the default question. For BrowseComp and BrowseComp-ZH evaluations, use mirothinker_1.7_keep5_max300; use the max200 configuration for the other listed 1.7 benchmarks.

How does this agent compare with similar options?

The project documents Claude 3.7 and GPT-5 as alternative model configurations in the same MiroFlow workflow, whereas MiroThinker 1.7 runs through a self-hosted model server and its research-oriented tool configuration. Its README also places older benchmark results alongside reported results for OpenAI Deep Research, Gemini Deep Research, and Kimi-Researcher, but does not provide interchangeable deployment implementations for those alternatives.

FAQ

Which external services are required for the minimal setup?
Serper provides Google search, Jina provides webpage scraping and extraction, E2B provides the code and file sandbox, and a summary LLM endpoint handles content summarization.
Can I run the 30B model instead of the 235B model?
Yes. MiroThinker-1.7-mini is the 30B variant and is the model used in the documented SGLang example; MiroThinker-1.7 is the 235B variant.
Why are there max200 and max300 configurations for 1.7?
max200 is recommended for most tasks and the listed non-BrowseComp 1.7 benchmarks. The reproduction instructions specify max300 for BrowseComp and BrowseComp-ZH.
What should I check when an evaluation fails?
Confirm that you are in apps/miroflow-agent, have run uv sync, configured the required .env variables, and reviewed logs/ plus the relevant check_progress script.

Related agents