Skip to main content

JARVIS Research OS - AI-Powered Systematic Literature Review Assistant

Project description

JARVIS Research OS

CI Python 3.10+ License: MIT

AI-Powered Research Operating System for Systematic Literature Reviews

JARVIS Research OS is a local-first, AI-powered research assistant that helps researchers conduct systematic literature reviews with evidence grading, citation analysis, and contradiction detection.

Release Status

  • Current release target: v1.0.0

✨ Features

Phase 1: Local-First Foundation

  • Hybrid Search: Sentence Transformers + BM25 with RRF fusion
  • Offline Mode: Network detection and graceful degradation
  • Free APIs: arXiv, Crossref, Unpaywall integration

Phase 2: Differentiation Features

  • Evidence Grading: CEBM evidence level classification (1a-5)
  • Citation Analysis: Support/Contrast/Mention stance classification
  • Contradiction Detection: Negation, antonym, and quantitative contradiction detection
  • PRISMA Diagrams: PRISMA 2020 flow diagram generation (Mermaid/SVG)
  • Paper Scoring: Comprehensive quality scoring with multiple signals
  • Active Learning: Efficient screening with uncertainty sampling

Phase 3: Ecosystem

  • MCP Hub: External search servers (PubMed/Semantic Scholar/OpenAlex)
  • Browser Agent: Safe browser automation with security policy
  • Skills System: Task-specific workflows via SKILL.md
  • Multi-Agent Orchestrator: Parallel agents + approval flow
  • Plugin System: Extensible architecture
  • Zotero Integration: Reference management
  • Export Formats: RIS, BibTeX, Markdown

🚀 Quick Start

Installation

# Clone repository
git clone https://github.com/kaneko-ai/jarvis-ml-pipeline.git
cd jarvis-ml-pipeline

# Install with uv (recommended)
uv sync

# Or with pip
pip install -e .

Basic Usage

from jarvis_core.evidence import grade_evidence
from jarvis_core.citation import extract_citation_contexts, classify_citation_stance
from jarvis_core.contradiction import Claim, ContradictionDetector

# Grade evidence level
grade = grade_evidence(
    title="A randomized controlled trial...",
    abstract="Methods: We conducted a double-blind RCT..."
)
print(f"Evidence Level: {grade.level.value} ({grade.level.description})")

# Analyze citations
contexts = extract_citation_contexts(text, paper_id="paper_A")
for ctx in contexts:
    stance = classify_citation_stance(ctx.get_full_context())
    print(f"Citation to {ctx.cited_paper_id}: {stance.stance.value}")

# Detect contradictions
detector = ContradictionDetector()
claim_a = Claim(claim_id="1", text="Drug X increases survival", paper_id="A")
claim_b = Claim(claim_id="2", text="Drug X decreases survival", paper_id="B")
result = detector.detect(claim_a, claim_b)
print(f"Contradiction: {result.is_contradictory}")

CLI Usage

# Search papers
jarvis search "machine learning cancer diagnosis"

# Run full pipeline
jarvis run --config pipeline.yaml

# Generate PRISMA diagram
jarvis prisma --output prisma_flow.svg

MCP Hub Example

# Register MCP servers and list tools
jarvis mcp list --config configs/mcp_config.json

# Invoke MCP tool
jarvis mcp invoke search_pubmed --params '{"query": "cancer immunotherapy"}'

Browser Agent Example

from jarvis_core.browser.subagent import BrowserSubagent
from jarvis_core.browser.schema import SecurityPolicy

policy = SecurityPolicy(url_allow_list=["pubmed.ncbi.nlm.nih.gov"])
agent = BrowserSubagent(security_policy=policy, headless=True)

Skills System Example

# List skills and show details
jarvis skills list
jarvis skills show MCP

📦 Core Modules

Module Description
embeddings/ Sentence Transformers, BM25, Hybrid search
network/ Network detection, offline mode
sources/ arXiv, Crossref, Unpaywall clients
evidence/ CEBM evidence grading
citation/ Citation context and stance analysis
contradiction/ Claim normalization and contradiction detection
prisma/ PRISMA 2020 flow diagram generation
paper_scoring/ Paper quality scoring
active_learning/ Active learning for efficient screening

🧪 Testing

# Run all tests
uv run pytest

# Run specific module tests
uv run pytest tests/test_evidence_grading.py -v

# Run with coverage
uv run pytest --cov=jarvis_core

📖 Documentation

🔧 Configuration

Create config.yaml:

search:
  default_sources:
    - pubmed
    - arxiv
  max_results: 100

embeddings:
  model: all-MiniLM-L6-v2
  device: auto

evidence:
  use_llm: false
  ensemble_strategy: weighted_average

offline:
  enabled: true
  sync_on_connect: true

📄 License

MIT License - see LICENSE for details.

🙏 Acknowledgments

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jarvis_research_os-1.0.0.tar.gz (1.4 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jarvis_research_os-1.0.0-py3-none-any.whl (1.3 MB view details)

Uploaded Python 3

File details

Details for the file jarvis_research_os-1.0.0.tar.gz.

File metadata

  • Download URL: jarvis_research_os-1.0.0.tar.gz
  • Upload date:
  • Size: 1.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for jarvis_research_os-1.0.0.tar.gz
Algorithm Hash digest
SHA256 327a3f019c26f7477369554a302a176a4eb2511cfc0a4f8992eaf232a0b3605a
MD5 cc5f1bae0dba4ece211f321927e007aa
BLAKE2b-256 fad4d4fb02034b75d28159fc71317bbd70f1d51873211bd5aa9b922eb94bbdef

See more details on using hashes here.

File details

Details for the file jarvis_research_os-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for jarvis_research_os-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 40e9f22ae01c92406f6e82869747e44efbeb63241cd5ee9448d0e7bf3e9104d4
MD5 6872f3c1cab847eeb6ccc8d1f5f0bb7d
BLAKE2b-256 d87b0bd65a0a4255974c643b1e17b1bef88df3ca8f4da5fa80d86fc34e291392

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page