EvoQuant README

The project's README from github.com/CamusGIT/EvoQuant. As one markdown file: README.md.

EvoQuant

An autonomous research agent for quantitative science.

EvoQuant is a self-evolving AI research agent specialized in quantitative investment research. It runs the full research loop autonomously — digesting research reports into structured knowledge, navigating a local papers library, generating and ranking research ideas, and executing real factor experiments on offline market data with rigorous IC-style evaluation.

Where general-purpose "AI scientist" frameworks target broad academic discovery, EvoQuant is purpose-built for the quant research workflow: alpha factor research, alpha generation methodology, and portfolio strategy research, with reproducible experiment runtimes and quantitative metrics (IC / ICIR / RANKIC / coverage) as first-class citizens.

🎯 Why EvoQuant?

Most autonomous research agents assume an open ecosystem — public papers with reference implementations on GitHub. Quantitative research rarely works that way: much of the field's methodology lives in broker research reports (研报) — unstructured PDFs that almost never ship with open-source code.

EvoQuant is designed for exactly this gap:

✨ Features

🏗️ Architecture

EvoQuant is built on a DeepAgents / LangGraph core: a main agent orchestrates specialized sub-agents, middleware and tools around a persistent state graph.

flowchart TB
    subgraph Surfaces["🎛️ Surfaces"]
        CLI["CLI / TUI"]
        WEB["WebUI"]
        CH["Channels<br/>(Telegram · Slack · Feishu · …)"]
        CRON["Scheduler<br/>(cron-style tasks)"]
    end

    subgraph Core["🧠 Agent Core (LangGraph gateway)"]
        MAIN["Main Agent<br/>plan · orchestrate · summarize"]
        SUB["Sub-Agents<br/>research · code · debug · analyze · write"]
        MEM["Memory<br/>observation graph<br/>(distill · link · recall)"]
        MW["Middleware<br/>context editing · adaptive tools"]
    end

    subgraph Capabilities["⚙️ Capabilities"]
        SKILLS["Skills<br/>(SKILL.md knowledge packs)"]
        TOOLS["Tools + MCP"]
        LLM["LLM Providers<br/>(multi-provider registry)"]
    end

    subgraph Workspace["📁 Research Workspace (workdir)"]
        KB["knowledge base<br/>(markdown papers · JSONL)"]
        EXP["experiments/<br/>(panels · artifacts · results)"]
        CODE["code-repo/<br/>(offline data packages)"]
    end

    Surfaces --> Core
    MAIN --> SUB
    MAIN <--> MEM
    MW --> MAIN
    Core --> Capabilities
    SKILLS --> Workspace
    SUB --> Workspace

Key ideas

Layer Role
Surfaces (CLI/TUI, WebUI, channels, scheduler) One agent session, many frontends — all routed through a UI-agnostic LangGraph gateway.
Main agent + sub-agents The main agent plans and delegates; sub-agents own focused tasks (literature work, coding, debugging, analysis, writing).
Skills Installable knowledge packs (skills/<name>/SKILL.md + references/assets/scripts) that give the agent domain procedures — loaded on demand when a query matches.
Memory Cross-cycle research memory: feasible/unsuccessful directions, distilled strategies, linked observations.
Research workspace A per-cycle workdir holding the local knowledge base, experiment outputs, and the offline code-repo data packages the runtime discovers at run time.

The quant research loop

flowchart LR
    A["📄 quant-paper-extractor<br/>PDF → markdown → JSONL"] --> B["📚 local-paper-navigator<br/>paper search · reading"]
    B --> C["💡 research-ideation<br/>literature tree · ELO tournament"]
    C --> D["🧪 quant-experiment-runtime<br/>panel · entry point · IC metrics"]
    D --> E["🧠 memory<br/>(what worked / what failed)"]
    E -.-> C
  1. Ingest — quant-paper-extractor converts quant research report PDFs into structured JSONL records (strategy, method, experiment, result) for the local knowledge base.
  2. Ground — local-paper-navigator searches the papers library by keyword/abstract/full-text, disambiguates queries, and reads papers with an L1/L2/L3 strategy.
  3. Ideate — research-ideation builds challenge-insight trees, generates anchor-first ideas, refines them in persona-driven tracks, and ranks them with an ELO tournament (Final = Novelty + Relevance + Clarity − Difficulty).
  4. Execute — quant-experiment-runtime discovers offline datasets under code-repo/, builds panels, runs a Research Artifact through its Python entry point, and evaluates IC / ICIR / RANKIC / coverage.
  5. Evolve — outcomes feed persistent memory, so the next cycle starts from what worked and avoids known dead ends.

📄 Feeding the knowledge base

The papers library lives at the repo root papers/ — mounted at /papers/, served through the paper_search / paper_read / paper_section tools:

papers/
  raw/{paperId}.pdf       ← drop research report PDFs here (any filename)
  markdown/{paperId}.md   ← auto-created: full-text markdown per report
  cards/{paperId}.jsonl   ← auto-created: structured JSONL knowledge records
  context_brief.md / index.jsonl / manifest.jsonl

Three steps: drop PDFs into papers/raw/ → tell the agent 「入库」 → start a new session (the paper tools mount at agent startup). The CLI prints a hint at startup whenever papers/raw/ holds PDFs that have not been ingested yet.

📦 Skills

All skills live under EvoQuant/skills/ and are self-contained (SKILL.md + references/ + assets/ + scripts/).

Quant Research Core

Skill Description
quant-paper-extractor Convert quant research report PDFs to markdown and structured JSONL records
local-paper-navigator Search and read papers from a local papers library with ranked retrieval
research-ideation Quant-focused ideation: scope selection → literature grounding → ELO-ranked proposals
quant-experiment-runtime Experiment executor: dataset discovery, panel build, IC/ICIR/RANKIC evaluation
research-survey Structured literature survey synthesis from collected papers
paper-graph Genealogical lineage map of a research field as Mermaid diagrams

Research Workflow

Skill Description
experiment-pipeline Structured 4-stage experiment execution with attempt budgets
experiment-craft Experiment debugging, logging and iteration
experiment-iterative-coder Iterative code refinement (plan → code → evaluate → refine)
paper-planning Research paper planning and outline generation
paper-writing Section-by-section paper drafting
paper-review Adversarial self-review before submission
paper-rebuttal Rebuttal writing after peer review
academic-slides Academic presentation and research talk creation
evo-memory Persistent research memory and self-evolution
evomath-tao Rigorous proof and grading workflow for mathematical claims

Productivity & Tooling

Skill Description
paper-figures Publication-ready matplotlib figures
nano-banana AI-generated slides and illustrations via Gemini image generation
find-skills Discover agent skills from the open ecosystem
skill-creator Create, improve and evaluate skills

📦 Installation

Requires Python 3.11+ (< 3.14). We recommend uv.

# Install uv (if you don't have it)
curl -LsSf https://astral.sh/uv/install.sh | sh

# Clone and run from source
git clone https://github.com/CamusGIT/EvoQuant.git
cd EvoQuant
uv sync
uv run evoquant

Or install as a tool from git:

uv tool install "git+https://github.com/CamusGIT/EvoQuant"
evoquant
🐳 Docker
docker compose up

🔑 Configuration

cp .env.example .env

Pick one LLM provider and fill in your key (Anthropic, OpenAI, Google, MiniMax, NVIDIA, OpenRouter, …). See .env.example for all options, including optional web search and channel credentials.

⚡ Quick Start

uv run evoquant

Drop quant research report PDFs into papers/raw/ to feed the knowledge base (see Feeding the knowledge base) — the CLI reminds you at startup until they are ingested. Then, in a session:

"入库 / ingest the new PDFs in papers/raw/."                  # quant-paper-extractor
"Find papers about cross-sectional momentum."                # local-paper-navigator
"I want a research direction in alpha factor research."      # research-ideation
"Run the proposed factor on the offline dataset and report IC/ICIR."  # quant-experiment-runtime

Skills load automatically when your request matches their descriptions. Install more with /install-skill, browse with the skill browser, or ask the agent directly.

🗺️ Roadmap

🤝 Contributing

Contributions are welcome — see CONTRIBUTING.md. The fastest way to extend EvoQuant is usually a new skill; see EvoQuant/skills/README.md for the skill anatomy and authoring guide.

📜 License

This project is licensed under the Apache License 2.0 — see LICENSE.

🙏 Acknowledgments

EvoQuant was built with reference to EvoScientist — an open-source multi-agent evolving AI scientist framework for end-to-end scientific discovery. EvoQuant reuses its agent core architecture (DeepAgents/LangGraph multi-agent runtime, memory, channels and skill system) and extends it into a domain-specific platform for autonomous quantitative research, with a rewritten skill suite for the quant research pipeline.

We thank the EvoScientist team for open-sourcing their work. The companion skill repository EvoSkills informed the design of several research-workflow skills included here.

If you use EvoQuant in your work, please also cite the original project it builds upon:

@article{evoscientist2026,
  title={EvoScientist: Towards Multi-Agent Evolving AI Scientists for End-to-End Scientific Discovery},
  author={Lyu, Yougang and Zhang, Xi and Yi, Xinhao and Zhao, Yuyue and Guo, Shuyu and Hu, Wenxiang and Piotrowski, Jan and Kaliski, Jakub and Urbani, Jacopo and Meng, Zaiqiao and Zhou, Lun and Yan, Xiaohui},
  journal={arXiv preprint arXiv:2603.08127},
  year={2026}
}

EvoQuant (CamusGIT/EvoQuant)

Searching Database…

What is this?EvoQuant is a self-evolving AI research agent built specifically for quantitative investment research, automating the full loop from digesting research reports to running real factor experiments on market data.
Is this a general AI-scientist framework or something more specific?It's purpose-built for quant research rather than broad academic discovery: it focuses on alpha factor research, alpha generation methodology, and portfolio strategy, scored with IC/ICIR/RANKIC metrics instead of generic benchmarks.
How do I get it running?It requires Python 3.11+ (a Docker path is also provided); you drop research report PDFs into papers/raw/, set an LLM provider key, then start a CLI/TUI session.
Which LLM providers can I use, and do I need my own API key?You bring your own key for one of Anthropic, OpenAI, Google, MiniMax, or NVIDIA (OpenRouter also supported); pick one provider and fill it in via .env.example.
Does it rely on papers with public reference code, like other AI-scientist tools do?No — it's built for the opposite case: broker research reports (研报) are unstructured PDFs that almost never ship with open-source code, so EvoQuant re-implements the described methods from scratch under strict no-fabrication rules and validates them itself.
How does the multi-agent team actually work?EvoQuant runs 6 specialized sub-agents (plan, research, code, debug, analyze, write) coordinated by a main agent on a DeepAgents/LangGraph state graph, each owning a focused slice of the research loop.
What happens to research findings between sessions?Observations are auto-distilled each turn into a self-linked knowledge graph (evo-memory), so later research cycles build on what worked before and avoid known dead ends.
Can I use it outside the terminal?Yes — besides CLI/TUI and a WebUI launched with --ui webui, the same agent session can run through Telegram, Slack, Feishu, WeChat or Discord.
How does it decide which research ideas are actually worth running?New ideas must inherit at least 70% of an anchor report's method with a focused innovation delta of at most 30%, then compete in an ELO tournament scored as Novelty + Relevance + Clarity minus Difficulty.
Creator
CamusGIT
Size
2.3 MB
Stars
141
Updated
CommitSep 02
Age
2mo
Commits · 90 Days