Skip to content

igeng/MARS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

56 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿš€ MARS - Multi-Agent Research System

ๅคšๆ™บ่ƒฝไฝ“ๅญฆๆœฏๆ–‡็Œฎๆ™บ่ƒฝๆฃ€็ดขไธŽๅˆ†ๆž็ณป็ปŸ

MARS is an automated academic literature search and deep analysis system built on a multi-agent architecture. It leverages cutting-edge Chinese LLMs and the CrewAI framework to orchestrate specialized AI agents that collaborate to deliver comprehensive research intelligenceโ€”from journal recommendations and paper retrieval to deep analysis, relationship mapping, and literature review generation.


๐Ÿ“ Architecture Overview

MARS ้‡‡็”จๅ››ๅฑ‚ๅˆ†ๅฑ‚ๆžถๆž„๏ผŒไปŽ็”จๆˆทๆŽฅๅฃๅˆฐๅบ•ๅฑ‚ๅทฅๅ…ทๅ•ๅ‘ไพ่ต–๏ผŒๆธ…ๆ™ฐ่งฃ่€ฆ๏ผš

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                  ็”จๆˆทๆŽฅๅฃๅฑ‚ (Interface Layer)                  โ”‚
โ”‚                                                               โ”‚
โ”‚   CLI (Typer + Rich)          REST API (FastAPI + Uvicorn)   โ”‚
โ”‚   mars search/analyze/...     /search /analyze /full-researchโ”‚
โ”‚   python main.py              Swagger UI: /docs              โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                         โ”‚  ่ฐƒ็”จๅทฅไฝœๆตๅ…ฅๅฃๅ‡ฝๆ•ฐ run_*()
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚               ๅทฅไฝœๆต็ผ–ๆŽ’ๅฑ‚ (Crew / Orchestration Layer)        โ”‚
โ”‚                                                               โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚  SearchCrew  โ”‚  โ”‚ AnalysisCrew โ”‚  โ”‚  FullResearchCrew  โ”‚  โ”‚
โ”‚  โ”‚  4 Tasks     โ”‚  โ”‚  2 Tasks     โ”‚  โ”‚  8 Tasks           โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ”‚          โ†‘ Sequential Process (CrewAI)                        โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                                           โ”‚
โ”‚  โ”‚ ConnectionCrew โ”‚  ไปปๅŠกๅฎšไน‰้›†ไธญไบŽ mars/tasks/task_definitionsโ”‚
โ”‚  โ”‚  3 Tasks       โ”‚                                           โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                                           โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                         โ”‚  ๅˆ†้… Agent + Task
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                   ๆ™บ่ƒฝไฝ“ๅฑ‚ (Agent Layer)                       โ”‚
โ”‚                                                               โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”          โ”‚
โ”‚  โ”‚ Researcher  โ”‚  โ”‚  Searcher   โ”‚  โ”‚  Analyzer   โ”‚          โ”‚
โ”‚  โ”‚  (Qwen)     โ”‚  โ”‚   (Qwen)    โ”‚  โ”‚   (Qwen)    โ”‚          โ”‚
โ”‚  โ”‚  ้ข†ๅŸŸๅˆ†ๆž   โ”‚  โ”‚  ่ฎบๆ–‡ๆฃ€็ดข   โ”‚  โ”‚  ๆทฑๅบฆ่งฃๆž   โ”‚          โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜          โ”‚
โ”‚                                                               โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”          โ”‚
โ”‚  โ”‚  Connector  โ”‚  โ”‚ Summarizer  โ”‚  โ”‚  Evaluator  โ”‚          โ”‚
โ”‚  โ”‚  (Qwen)     โ”‚  โ”‚   (Qwen)    โ”‚  โ”‚   (Kimi)    โ”‚          โ”‚
โ”‚  โ”‚  ๅ…ณ่”ๅˆ†ๆž   โ”‚  โ”‚  ๅŒ่ฏญ็ปผ่ฟฐ   โ”‚  โ”‚  ่ดจ้‡่ฏ„ไผฐ   โ”‚          โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜          โ”‚
โ”‚          โ†‘ LLM ็ฝ‘ๅ…ณ llm_gateway.py ็ปŸไธ€็ฎก็†ไพ›ๅบ”ๅ•†ไธŽ้™็บง         โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                         โ”‚  ่ฐƒ็”จๅทฅๅ…ท
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                  ๅทฅๅ…ทไธŽๆœๅŠกๅฑ‚ (Tools / Services Layer)         โ”‚
โ”‚                                                               โ”‚
โ”‚  ๅญฆๆœฏๆ•ฐๆฎๆบ                    PDF & ๆ–‡ๆœฌๅค„็†                  โ”‚
โ”‚  โ”œโ”€ DBLP API                  โ”œโ”€ PDF Parser (PyMuPDF/PyPDF2) โ”‚
โ”‚  โ”œโ”€ Semantic Scholar API      โ””โ”€ Keyword Expander (LLM)      โ”‚
โ”‚  โ”œโ”€ arXiv API                                                 โ”‚
โ”‚  โ””โ”€ CCF Database (ๅ†…็ฝฎ)       ็ฝ‘็ปœๅˆ†ๆž & ๅญ˜ๅ‚จ                  โ”‚
โ”‚                               โ”œโ”€ Citation Network (NetworkX) โ”‚
โ”‚  LLM ไพ›ๅบ”ๅ•†๏ผˆ้€š่ฟ‡ LiteLLM๏ผ‰    โ”œโ”€ File Manager                โ”‚
โ”‚  โ”œโ”€ Qwen (DashScope)          โ””โ”€ SQLite Database             โ”‚
โ”‚  โ”œโ”€ DeepSeek                                                  โ”‚
โ”‚  โ”œโ”€ Kimi (Moonshot)                                           โ”‚
โ”‚  โ””โ”€ GLM (Zhipu)                                               โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

ๅ…ณ้”ฎ่ฎพ่ฎกๅ†ณ็ญ–

ๅ†ณ็ญ– ๅŽŸๅ› 
ไฝฟ็”จ CrewAI ไฝœไธบ Multi-Agent ๆก†ๆžถ ๅ†…็ฝฎ Agent/Task/Crew ๆŠฝ่ฑกใ€ๅทฅๅ…ท่ฐƒ็”จใ€่ฏฆ็ป†ๆ‰ง่กŒๆ—ฅๅฟ—๏ผŒๅฟซ้€Ÿๆญๅปบๅฏ่ง‚ๆต‹็š„ๅคšๆ™บ่ƒฝไฝ“ๆต็จ‹
ๅ…จ้ƒจไฝฟ็”จ OpenAI ๅ…ผๅฎน API ้€š่ฟ‡ LiteLLM ็ปŸไธ€ๆŽฅๅ…ฅ 4 ไธชๅ›ฝๅ†… LLM๏ผŒๆ–ฐๅขžไพ›ๅบ”ๅ•†ๅช้œ€ไธ€่กŒ้…็ฝฎ
้กบๅบๆ‰ง่กŒ๏ผˆSequential Process๏ผ‰ ๅญฆๆœฏ็ ”็ฉถๅ„ๆญฅ้ชคๅญ˜ๅœจไพ่ต–ๅ…ณ็ณป๏ผˆๆฃ€็ดขโ†’ๅˆ†ๆžโ†’็ปผ่ฟฐ๏ผ‰๏ผŒ้กบๅบๆ‰ง่กŒไฟ่ฏไธŠไธ‹ๆ–‡ๅฎŒๆ•ดไผ ้€’
ๆฏๆฌก่ฟ่กŒ็‹ฌ็ซ‹ๆ—ถ้—ดๆˆณ็›ฎๅฝ• ้ฟๅ…ๅคšๆฌก่ฟ่กŒไบ’็›ธ่ฆ†็›–๏ผŒๅฎŒๆ•ดไฟๅญ˜ๆฏๆฌก็ ”็ฉถ่ฟ‡็จ‹๏ผŒไพฟไบŽๅค็Žฐๅ’Œๅฏนๆฏ”
Pydantic Settings ็ฎก็†้…็ฝฎ ็ฑปๅž‹ๅฎ‰ๅ…จใ€่‡ชๅŠจไปŽ .env ๅŠ ่ฝฝใ€ๅผ€็ฎฑๅณ็”จ็š„ๅญ—ๆฎตๆ ก้ชŒ

๐Ÿค– Agents

Agent Role LLM Key Tools
Researcher ้ข†ๅŸŸๅˆ†ๆžๅธˆ โ€“ identifies research domain, recommends CCF-ranked venues Qwen (qwen3.5-flash) ccf_database_query, keyword_expander
Searcher ่ฎบๆ–‡ๆฃ€็ดขๅธˆ โ€“ queries academic databases and ranks results Qwen (qwen3.5-flash) dblp_search, semantic_scholar_search, arxiv_search, keyword_expander, file_writer
Analyzer ๆทฑๅบฆๅˆ†ๆžๅธˆ โ€“ downloads PDFs, extracts contributions & experiments Qwen (qwen3.5-flash) arxiv_search, pdf_parser, semantic_scholar_search, file_writer
Connector ๅ…ณ่”ๅˆ†ๆžๅธˆ โ€“ builds citation networks, identifies clusters & trends Qwen (qwen3.5-flash) citation_network_builder, semantic_scholar_search, file_writer
Summarizer ็ปผ่ฟฐ็”Ÿๆˆๅธˆ โ€“ generates bilingual (EN + ZH) literature reviews Qwen (qwen3.5-flash) file_writer
Evaluator ่ดจ้‡่ฏ„ไผฐๅธˆ โ€“ scores papers on novelty, depth, validity, writing Kimi (kimi-k2.5) semantic_scholar_search, file_writer

๐Ÿ”„ Workflows

1. Basic Search (ๅŸบ็ก€ๆฃ€็ดข)

User topic โ†’ Researcher (domain analysis) โ†’ Searcher (50 papers)
          โ†’ Summarizer (English review โ‰ฅ 3000 words โ†’ Chinese translation)
          โ†’ Output: paper_search.json + review_en.md + review_zh.md

2. Deep Analysis (ๆทฑๅบฆๅˆ†ๆž)

Paper list โ†’ Analyzer (top 20 papers) โ†’ Evaluator โ†’ Analysis report + Quality scores

3. Connection Analysis (ๅ…ณ่”ๅˆ†ๆž)

Multiple papers โ†’ Connector (citation network) โ†’ Summarizer
               โ†’ Network analysis + Bilingual review (EN + ZH)

4. Full Research (ๅฎŒๆ•ด็ ”็ฉถๆต็จ‹)

User topic
  โ†’ Researcher (domain analysis)
  โ†’ Searcher (50 papers)
  โ†’ Analyzer (top 20) + Connector (all 50) + Evaluator (top 20)
  โ†’ Summarizer (English review โ‰ฅ 3000 words โ†’ Chinese translation)
  โ†’ Summarizer (full synthesis report)
  โ†’ Output: 8+ files including bilingual comprehensive review + synthesis report

๐ŸŽฏ Design Philosophy๏ผˆ่ฎพ่ฎก็†ๅฟต๏ผ‰

MARS ็š„่ฎพ่ฎก้ตๅพชไปฅไธ‹ๆ ธๅฟƒๅŽŸๅˆ™๏ผš

1. ไธ“ไธšๅŒ–ๆ™บ่ƒฝไฝ“ๅไฝœ๏ผˆSpecialized Agent Collaboration๏ผ‰

MARS ๆ‘’ๅผƒ"ไธ‡่ƒฝๅ•ไธ€่ฐƒ็”จ"ๆ€่ทฏ๏ผŒ่ฝฌ่€Œ้‡‡็”จ"ๅˆ†ๅทฅๆ˜Ž็กฎใ€ๅ„ๅธๅ…ถ่Œ"็š„ๅคšๆ™บ่ƒฝไฝ“ๅไฝœๆจกๅผ๏ผš6 ไธชไธ“ไธšๆ™บ่ƒฝไฝ“ๅˆ†ๅˆซ่ดŸ่ดฃ้ข†ๅŸŸๅˆ†ๆžใ€ๆ–‡็Œฎๆฃ€็ดขใ€ๆทฑๅบฆ่งฃๆžใ€ๅ…ณ่”ๅˆ†ๆžใ€็ปผ่ฟฐ็”Ÿๆˆๅ’Œ่ดจ้‡่ฏ„ไผฐใ€‚ๆฏไธช Agent ่ขซ่ต‹ไบˆ็ฒพๅ‡†็š„่ง’่‰ฒๅฎšไน‰ใ€ๅทฅๅ…ทๆƒ้™ๅ’Œ่พ“ๅ‡บๆ ผๅผ่ฆๆฑ‚๏ผŒ็›ธไบ’ๅไฝœๅฎŒๆˆๅฎŒๆ•ด็š„ๅญฆๆœฏ็ ”็ฉถๆต็จ‹๏ผŒไธŽ็œŸๅฎž็ ”็ฉถๅ›ข้˜Ÿ็š„ๅไฝœๆ–นๅผ้ซ˜ๅบฆๅปๅˆใ€‚

2. LLM ๆไพ›ๅ•†ๅคšๆ ทๆ€งไธŽ่‡ชๅŠจ้™็บง๏ผˆMulti-Provider & Graceful Fallback๏ผ‰

ไธบ้ฟๅ…ๅ•ไธ€ไพ›ๅบ”ๅ•†ไพ่ต–๏ผŒMARS ้€š่ฟ‡็ปŸไธ€็š„ LLM ็ฝ‘ๅ…ณ๏ผˆllm_gateway.py๏ผ‰ๆ”ฏๆŒ 4 ไธชๅ›ฝๅ†…ไธปๆตๅคงๆจกๅž‹๏ผˆQwenใ€DeepSeekใ€Kimiใ€GLM๏ผ‰๏ผŒๅนถๆŒ‰ไปปๅŠก็‰นๆ€งๆ™บ่ƒฝๅŒน้…ๆœ€ๅˆ้€‚็š„ๆจกๅž‹ใ€‚ๅฝ“ๆŸไธชไพ›ๅบ”ๅ•†้‡ๅˆฐ้™ๆตๆˆ–ไธๅฏ็”จๆ—ถ๏ผŒ็ณป็ปŸ่‡ชๅŠจไปฅๆŒ‡ๆ•ฐ้€€้ฟ็ญ–็•ฅ้‡่ฏ•๏ผŒๅนถ่‡ชๅŠจๅˆ‡ๆขๅˆฐๅค‡็”จไพ›ๅบ”ๅ•†๏ผŒไฟ้šœ็ณป็ปŸๆŒ็ปญๅฏ็”จใ€‚

3. ๅ…ณๆณจ็‚นไธฅๆ ผๅˆ†็ฆป๏ผˆStrict Separation of Concerns๏ผ‰

ไปฃ็ ๅบ“ๆŒ‰่Œ่ดฃๅˆ’ๅˆ†ไธบๆธ…ๆ™ฐ็š„ๅ››ๅฑ‚ๆžถๆž„๏ผŒๅ„ๅฑ‚้—ดๅ•ๅ‘ไพ่ต–๏ผŒไบ’ไธ่€ฆๅˆ๏ผš

ๅฑ‚ๆฌก ่Œ่ดฃ ๅ…ณ้”ฎๆจกๅ—
ๅทฅๅ…ทๅฑ‚๏ผˆTools๏ผ‰ ๆ— ็Šถๆ€็š„ๅค–้ƒจ API ๅฐ่ฃ…๏ผŒๆฏไธชๅทฅๅ…ทๅชๅšไธ€ไปถไบ‹ mars/tools/
ๆ™บ่ƒฝไฝ“ๅฑ‚๏ผˆAgents๏ผ‰ ๅ…ทๅค‡่ง’่‰ฒๅฎšไน‰ไธŽๅทฅๅ…ทๆƒ้™็š„ LLM ๅฎžไฝ“ mars/agents/
ไปปๅŠกๅฑ‚๏ผˆTasks๏ผ‰ ๆ่ฟฐ้œ€่ฆๅฎŒๆˆ็š„ๅ…ทไฝ“ๅทฅไฝœๅŠๆœŸๆœ›่พ“ๅ‡บ mars/tasks/
ๅทฅไฝœๆตๅฑ‚๏ผˆCrews๏ผ‰ ็ป„ๅˆ Agent ไธŽ Task๏ผŒ็ผ–ๆŽ’ๅฎŒๆ•ดๆต็จ‹ mars/crews/

่ฟ™ไธ€่ฎพ่ฎกไฝฟๅพ—ๆทปๅŠ ๆ–ฐๅทฅๅ…ทๅช้œ€ๅฎž็Žฐไธ€ไธชๅธฆๆœ‰ _run() ๆ–นๆณ•็š„็ฑป๏ผŒๆทปๅŠ ๆ–ฐๅทฅไฝœๆตๅช้œ€ๅฎšไน‰ไปปๅŠกๅนถ็ป„่ฃ… Crew๏ผŒๆ‰ฉๅฑ•ๆˆๆœฌๆžไฝŽใ€‚

4. ๅฏ่ง‚ๆต‹ๆ€งไธŽๅฏ้‡็Žฐๆ€ง๏ผˆObservability & Reproducibility๏ผ‰

ๆฏๆฌก่ฟ่กŒ่‡ชๅŠจๅˆ›ๅปบๅธฆๆ—ถ้—ดๆˆณ็š„็‹ฌ็ซ‹่พ“ๅ‡บ็›ฎๅฝ•๏ผˆoutput/<workflow>_<timestamp>/๏ผ‰๏ผŒๅ…ถไธญๅŒ…ๅซ๏ผšๅŽŸๅง‹่พ“ๅ…ฅ๏ผˆprompt.txt๏ผ‰ใ€ๅฎŒๆ•ด่ฟ่กŒๆ—ฅๅฟ—๏ผˆrun.log๏ผ‰ใ€ๆ‰€ๆœ‰ไธญ้—ดไธŽๆœ€็ปˆ่พ“ๅ‡บๆ–‡ไปถใ€‚ไปปไฝ•ไธ€ๆฌก็ ”็ฉถ่ฟ‡็จ‹้ƒฝๅฏๅฎŒๆ•ด่ฟฝๆบฏๅ’Œๅค็Žฐ๏ผŒๆ— ้œ€ๆ‰‹ๅŠจ้‡ๅฎšๅ‘ๆ—ฅๅฟ—ใ€‚

5. ๆธ่ฟ›ๅผ้™็บง๏ผˆProgressive Degradation๏ผ‰

ๅ…ณ้”ฎไพ่ต–ๅ‡่ฎพๆœ‰ๅ›ž้€€ๆœบๅˆถ๏ผšPDF ่งฃๆžไผ˜ๅ…ˆไฝฟ็”จ PyMuPDF๏ผŒๅคฑ่ดฅๅˆ™่‡ชๅŠจๅ›ž้€€ๅˆฐ PyPDF2๏ผ›LLM ไพ›ๅบ”ๅ•†ๅœจ้™ๆตๆ—ถ่‡ชๅŠจๅˆ‡ๆข๏ผ›ๅญฆๆœฏๆœ็ดขๅทฅๅ…ทๅœจๅ•ไธ€ API ไธๅฏ็”จๆ—ถไปๅฏ้€š่ฟ‡ๅ…ถไป–ๆ•ฐๆฎๆบ่ฟ”ๅ›ž็ป“ๆžœใ€‚็ณป็ปŸๅœจ้ƒจๅˆ†็ป„ไปถ็ผบๅคฑ็š„ๆƒ…ๅ†ตไธ‹ไพ็„ถ่ƒฝๅคŸๅฎŒๆˆๆ ธๅฟƒๅŠŸ่ƒฝใ€‚

6. ๅผ€ๆ”พๆ ‡ๅ‡†ๅ…ผๅฎน๏ผˆOpenAI-Compatible API Alignment๏ผ‰

ๆ‰€ๆœ‰ LLM ไพ›ๅบ”ๅ•†ๅ‡้€š่ฟ‡ OpenAI ๅ…ผๅฎนๆŽฅๅฃ๏ผˆvia LiteLLM๏ผ‰็ปŸไธ€ๆŽฅๅ…ฅ๏ผŒไฝฟๅพ—ๆœชๆฅๆŽฅๅ…ฅๆ–ฐไพ›ๅบ”ๅ•†ๅช้œ€ๆทปๅŠ ไธ€็ป„้…็ฝฎ๏ผŒๆ— ้œ€ไฟฎๆ”นไธšๅŠก้€ป่พ‘ไปฃ็ ใ€‚


๐Ÿ› ๏ธ Tech Stack

  • Multi-agent Framework: CrewAI
  • LLMs: Qwen (Alibaba Cloud) ยท DeepSeek ยท Kimi (Moonshot AI) ยท GLM (Zhipu AI)
  • LLM Routing: LiteLLM (provider fallback & OpenAI-compatible proxy)
  • Academic APIs: DBLP ยท Semantic Scholar ยท arXiv
  • PDF Processing: PyMuPDF (fitz) / PyPDF2
  • Network Analysis: NetworkX + PyVis
  • CLI: Typer + Rich
  • Language: Python 3.10+

โšก Quick Start

1. Install

# Clone the repository
git clone https://github.com/igeng/MARS.git
cd MARS

# Create virtual environment
python -m venv .venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt
# Or install as a package
pip install -e .

2. Configure API Keys

cp .env.example .env

Edit .env and fill in your API keys:

# Required: at least one LLM provider
DASHSCOPE_API_KEY=sk-xxxxxxxx       # Qwen (Alibaba Cloud)
DEEPSEEK_API_KEY=sk-xxxxxxxx        # DeepSeek
MOONSHOT_API_KEY=sk-xxxxxxxx        # Kimi (Moonshot AI)
ZHIPU_API_KEY=xxxxxxxx.xxxxxxxx     # GLM (Zhipu AI)

# Optional: increases Semantic Scholar rate limits
SEMANTIC_SCHOLAR_API_KEY=xxxxxxxx

# Customize defaults
DEFAULT_LLM_PROVIDER=qwen           # qwen | deepseek | kimi | glm
MAX_PAPERS_PER_SEARCH=50
MAX_PAPERS_FOR_ANALYSIS=20

# Optional: enable CrewAI memory (requires an OpenAI-compatible embedding key)
ENABLE_MEMORY=false

3. Run

CLI

# Basic search (outputs paper_search.json + bilingual reviews to output/<run>/)
mars search "federated learning with differential privacy"

# Deep analysis (provide paper titles/info)
mars analyze "Federated Learning: Challenges, Methods, and Future Directions | Communication-Efficient Learning of Deep Networks"

# Connection analysis
mars connect "paper1 | paper2 | paper3" --topic "federated learning"

# Full research workflow
mars full "่”้‚ฆๅญฆไน ้š็งไฟๆŠคๆŠ€ๆœฏ"

# Validate configuration (check API keys & provider availability)
mars check

Python API

from mars.crews.search_crew import run_search
from mars.crews.analysis_crew import run_analysis
from mars.crews.connection_crew import run_connection
from mars.crews.full_research_crew import run_full_research

# Basic search
result = run_search("graph neural network for recommendation")

# Full research
result = run_full_research("knowledge graph embedding methods")
print(result)

๐Ÿ“ Project Structure

MARS/
โ”œโ”€โ”€ main.py                    # Entry point
โ”œโ”€โ”€ requirements.txt           # Dependencies
โ”œโ”€โ”€ pyproject.toml             # Build config
โ”œโ”€โ”€ .env.example               # Environment variable template
โ”‚
โ”œโ”€โ”€ mars/
โ”‚   โ”œโ”€โ”€ config/
โ”‚   โ”‚   โ””โ”€โ”€ settings.py        # Configuration from environment variables
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ agents/
โ”‚   โ”‚   โ”œโ”€โ”€ researcher.py      # Researcher Agent (domain analysis)
โ”‚   โ”‚   โ”œโ”€โ”€ searcher.py        # Searcher Agent (paper retrieval)
โ”‚   โ”‚   โ”œโ”€โ”€ analyzer.py        # Analyzer Agent (deep analysis)
โ”‚   โ”‚   โ”œโ”€โ”€ connector.py       # Connector Agent (relationship analysis)
โ”‚   โ”‚   โ”œโ”€โ”€ summarizer.py      # Summarizer Agent (bilingual review)
โ”‚   โ”‚   โ””โ”€โ”€ evaluator.py       # Evaluator Agent (quality assessment)
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ tools/
โ”‚   โ”‚   โ”œโ”€โ”€ ccf_database.py    # CCF ranking database
โ”‚   โ”‚   โ”œโ”€โ”€ dblp_search.py     # DBLP API search
โ”‚   โ”‚   โ”œโ”€โ”€ semantic_scholar.py # Semantic Scholar API
โ”‚   โ”‚   โ”œโ”€โ”€ arxiv_api.py       # arXiv API
โ”‚   โ”‚   โ”œโ”€โ”€ pdf_parser.py      # PDF download & text extraction
โ”‚   โ”‚   โ”œโ”€โ”€ keyword_expander.py # LLM-powered keyword expansion
โ”‚   โ”‚   โ”œโ”€โ”€ citation_network.py # Citation network builder
โ”‚   โ”‚   โ””โ”€โ”€ file_manager.py    # File I/O utilities
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ tasks/
โ”‚   โ”‚   โ””โ”€โ”€ task_definitions.py # 8 task factory functions
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ crews/
โ”‚   โ”‚   โ”œโ”€โ”€ search_crew.py     # Workflow 1: Basic search (4 tasks)
โ”‚   โ”‚   โ”œโ”€โ”€ analysis_crew.py   # Workflow 2: Deep analysis
โ”‚   โ”‚   โ”œโ”€โ”€ connection_crew.py # Workflow 3: Connection analysis
โ”‚   โ”‚   โ””โ”€โ”€ full_research_crew.py # Workflow 4: Full research (8 tasks)
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ database/
โ”‚   โ”‚   โ””โ”€โ”€ models.py          # SQLAlchemy models (CCFVenue, Paper)
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ services/
โ”‚   โ”‚   โ””โ”€โ”€ llm_gateway.py     # LLM gateway (4 providers + fallback)
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ utils/
โ”‚   โ”‚   โ”œโ”€โ”€ llm_factory.py     # LLM instance factory (compatibility layer)
โ”‚   โ”‚   โ”œโ”€โ”€ logging_config.py  # Centralised logging setup
โ”‚   โ”‚   โ””โ”€โ”€ retry.py           # Retry decorator with exponential back-off
โ”‚   โ”‚
โ”‚   โ”œโ”€โ”€ api/
โ”‚   โ”‚   โ””โ”€โ”€ main.py            # FastAPI application
โ”‚   โ”‚
โ”‚   โ””โ”€โ”€ cli.py                 # CLI commands (Typer)
โ”‚
โ””โ”€โ”€ tests/
    โ”œโ”€โ”€ conftest.py            # Shared fixtures & mocks
    โ”œโ”€โ”€ test_basic.py          # Basic component tests
    โ”œโ”€โ”€ test_new_components.py # Settings, LLM gateway, DB, API tests
    โ””โ”€โ”€ test_usage_features.py # End-to-end usage feature tests

๐Ÿงช Testing

pip install -e ".[dev]"
pytest tests/ -v
# 114 tests total across 4 test files (all pass without API keys)

๐ŸŒ Supported LLM Providers

Provider Models API
Alibaba Cloud (Qwen) qwen3.5-flash, qwen-max, qwen-plus DashScope (OpenAI-compatible)
DeepSeek deepseek-chat, deepseek-coder DeepSeek Open API (OpenAI-compatible)
Moonshot AI (Kimi) kimi-k2.5, moonshot-v1-8k Moonshot API (OpenAI-compatible)
Zhipu AI (GLM) glm-4.7-flash, glm-4-plus, glm-4-air Zhipu Open Platform (OpenAI-compatible)

All providers are accessed via OpenAI-compatible APIs, making it easy to switch between them or add new providers.


๐Ÿ“– Documentation

Document Description
ๆŠ€ๆœฏๅผ€ๅ‘ๆ–‡ๆกฃ ็ณป็ปŸๆžถๆž„ใ€ๆจกๅ—่ฎพ่ฎกใ€API ๅ‚่€ƒใ€ๆ‰ฉๅฑ•ๆŒ‡ๅ—๏ผˆไธญๆ–‡๏ผ‰
Technical Development Guide System architecture, module design, API reference, extension guide (English)
ไฝฟ็”จๆ‰‹ๅ†Œ ้ƒจ็ฝฒ๏ผˆWindows 10 & Ubuntu๏ผ‰ใ€CLI/API ไฝฟ็”จใ€ๆ•…้šœๆŽ’้™ค๏ผˆไธญๆ–‡๏ผ‰
User Manual Deployment (Windows 10 & Ubuntu), CLI/API usage, troubleshooting (English)

๐Ÿ“ License

MIT License. See LICENSE for details.

About

MARS is an automated academic literature search and deep analysis system built on a multi-agent architecture.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages