Skip to main content
Deep research workflows orchestrate multiple retriever executions, enrichment passes, and synthesis steps to answer complex questions. Mixpeek’s stage catalog—filter, sort, reduce, apply, enrich—gives you the primitives to build these flows without bespoke infrastructure.

Building Blocks

StageExamplesUse in Research
Search (filter)feature_search, query_expandGather candidate documents across modalities; expand queries for recall
Narrow (filter)attribute_filter, llm_filterRestrict to relevant time ranges, entities, or sentiment
Web (apply)external_web_search, web_scrapePull public sources from the open web
Enrichdocument_enrich, taxonomy_enrich, llm_enrichAttach related docs, taxonomy tags, or LLM-extracted facts
Synthesize (reduce)summarizeAggregate results into a single synthesized brief with citations
Compose (apply)api_call, cross_compareCall external services (e.g., fact-check APIs) or compare across collections

Common Patterns

Literature Review

  1. Seed search using feature_search to retrieve recent papers across text and figures.
  2. Narrow by publication date and venue with attribute_filter.
  3. Classify by research area with taxonomy_enrich.
  4. Synthesize findings with citations using summarize.
  5. Store summaries alongside feature_id references for auditability.

Competitive Intelligence

  1. Use external_web_search + web_scrape stages to pull public announcements.
  2. Join with internal product docs via document_enrich to compare specs.
  3. Apply an attribute_filter to spotlight price or feature gaps.
  4. Generate a briefing memo with the summarize stage.

Incident Investigation

  1. Collect relevant runbooks/logs via feature_search over internal collections.
  2. Use attribute_filter to isolate the incident window.
  3. Enrich with taxonomy-based tags (taxonomy_enrich) for impacted systems.
  4. Summarize timeline and root cause via summarize, keeping citations.

Orchestrating Multi-Retriever Flows

Leverage the document_enrich stage to call a sub-retriever based on previous stage output:
{
  "stage_name": "retriever",
  "stage_type": "enrich",
  "config": {
    "stage_id": "document_enrich",
    "parameters": {
      "retriever_id": "ret_internal_logs",
      "input_mappings": {
        "query_text": "{{INPUT.primary_question}}",
        "time_range": "{{STAGE.filter.time_range}}"
      },
      "merge_strategy": "append"
    }
  }
}
This pattern lets you create macro retrievers that orchestrate domain-specific sub-searches, enabling modular reuse.

Capturing Feedback

  • Record user signals with the Interactions API (click, long_view, positive_feedback, etc.).
  • Feed interactions back into auto-tuning or attribute_filter stages (“hide documents seen in this session”).
  • Use Observability to optimize parameter choices (e.g., increase a feature_search stage’s final_top_k if users often tap beyond the top 10).

Operational Tips

  1. Persist execution IDs – each execute response includes an execution id; link it to your research session for audit trails.
  2. Monitor stage telemetrystage_statistics identifies bottlenecks (e.g., LLM stages dominating latency).
  3. Budget controls – set budget_limits on retrievers to cap time or spend for exploratory workflows.
  4. Cache intermediate results – cache expensive discovery steps, especially when analysts reiterate queries.
  5. Leverage tasks – schedule enrichment batches (clusters, taxonomies) ahead of time so research pipelines stay low-latency.

Suggested Architecture

Orchestration App
 ├─ Calls macro retriever (with document_enrich compose stages)
 ├─ Logs execution IDs + user prompts
 ├─ Stores generated summaries & citations
 └─ Sends interactions back to Mixpeek
Behind the scenes, Mixpeek handles stage execution, caching, and lineage tracking. You focus on stitching together the right stages and presenting the synthesized output.

Next Steps