MiroThinker
A deployable deep-research agent for complex web research, evidence gathering, and prediction tasks.
Per-dimension scores and reasoning
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.
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.
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.
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.
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.
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.
- Inconsistent performance numbers need verification.
- No security or privacy documentation provided.
- Reliance on external resources may affect availability.
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/.
- 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.
- A research team reproducing agent results can launch the supplied multi-run evaluations for GAIA, BrowseComp, HLE, XBench-DeepSearch, or FutureX.
- A team with a self-hosted MiroThinker endpoint can serve a model through SGLang and pass that endpoint through llm.base_url.
- 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.
- 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?
- 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.
- 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 .envThen 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-codeThen, 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/v1Edit 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.