English | 简体中文
🚀 Live Demo (Free Lite Version): https://deepear.vercel.app/
An open-source Deep Research framework that transforms Public Opinion into actionable Investment Logic Chains with skills.
Click the preview below to see generated sample reports:
- When to Use
- Features
- Quick Start
- Agent Skill Integration
- Architecture
- Development Guide
- Roadmap
- Contributing
- License
DeepEar is designed for financial analysts, quantitative researchers, and individual investors who need to bridge the gap between unstructured information and actionable trading signals.
- Investment Research: Automate the collection and analysis of fragmented information from social media and news outlets to discover hidden investment opportunities.
- Market Monitoring: Real-time tracking of "hot topics" (e.g., policy shifts, industry breakthroughs) and their potential impact on specific sectors or stocks.
- Quantitative Analysis: Convert qualitative news into quantitative sentiment scores and signal indicators for backtesting or model input.
- Report Automation: Generate professional-grade investment reports with structured logic, charts, and references in seconds.
- Multi-Agent Collaboration: Specialized agents for Trend Spotting, Financial Analysis, and Report Writing working in concert.
- Agent Skill Ready: plug-and-play skill for AI agents (Antigravity, OpenCode), turning any chat assistant into a financial researcher.
- Interactive Fintech Dashboard: A modern React-based UI for real-time monitoring of agent workflows, logs, and structured results.
- Logic Evolution Tracking: Active tracking of how investment theses evolve as new market news and price data arrive.
- Signal-Based Comparison: Deep side-by-side analysis of signal changes, drift in sentiment, and logic updates between different runs.
- 15+ Data Sources: Comprehensive coverage including Weibo, Cailian Press, Wall Street News, and more via
NewsToolkit. - News-Aware Time-Series Model: Custom Kronos integration with a news-projection layer for predicting price shocks.
- Visualized Reports & Logic Graphs: High-fidelity HTML reports featuring interactive Draw.io diagrams for logic transmission.
- Hybrid RAG Engine: Combines BM25 (keyword) and Vector Search (semantic) for precise information retrieval.
- Python 3.12+
- uv (Recommended for fast package management)
-
Clone the repository
git clone https://github.com/RKiding/DeepEar.git cd DeepEar -
Install dependencies
uv sync
-
Setup Environment Variables Copy the example configuration file:
cp .env.example .env
-
Edit
.envOpen.envand fill in your API keys. DeepEar supports a wide range of providers:LLM_PROVIDER:openrouter,openai,ollama,deepseek, etc.REASONING_MODEL_ID: Model for complex analysis (e.g.,gpt-4o).TOOL_MODEL_ID: Model for tool usage (e.g.,qwen2.5).JINA_API_KEY: (Optional) Unified Jina API key for both web search (s.jina.ai) and content extraction (r.jina.ai).
Launch the modern web interface to monitor and control the agents visually:
# Initial the frontend (First time only)
cd dashboard/frontend
npm install
npm run build
# Start the server
uv run python -m dashboard.serverOpen http://localhost:8765 in your browser.
Note: For first-time access, you need to register an account. Use the default invitation code
DEEP-EAR-ADMINto get started. You can generate more invitation codes usinguv run scripts/generate_invitation.py.
Execute the main workflow directly:
uv run src/main_flow.py| Argument | Description | Default |
|---|---|---|
--query |
User query/intent (e.g., "A-share tech sector") | None |
--sources |
News sources: all, financial, social, tech, or a comma-separated list |
all |
--wide |
Number of news items to fetch per source | 10 |
--depth |
Report depth: auto (LLM decided) or an integer limit |
auto |
--template |
ISQ (Investment Signal Quality) scoring template ID | default_isq_v1 |
--concurrency |
Concurrency level for signal analysis (max workers) | 1 |
--resume |
Resume from the latest checkpoint | False |
--resume-from |
Checkpoint to resume from: report (reuse MD), analysis (rerender) |
report |
--update-from |
Update an existing run (provide base run ID) to track signal evolution | None |
The system will start the agent workflow: identifying intent -> fetching trends -> analyzing signals -> predictive modeling -> generating reports.
Artifacts will be saved in the reports/ directory.
DeepEar can be integrated into various AI agent frameworks (like Antigravity, OpenCode, Claude Code) as a specialized skill. For individual component skills (e.g., news fetchers, sentiment analyzers), please refer to Awesome-finance-skills.
-
Install the Skill Copy the
skills/deepeardirectory to your agent's skill folder:# Example for OpenCode/Claude Code mkdir -p ~/.config/opencode/skills/ cp -r skills/deepear ~/.config/opencode/skills/
-
Skill Installation Paths
| Framework | Scope | Installation Path |
|---|---|---|
| Antigravity | Workspace | <workspace>/.agent/skills/<skill>/ |
| Global | ~/.gemini/antigravity/global_skills/<skill>/ |
|
| OpenCode | Project | .opencode/skills/<skill>/ or .claude/skills/<skill>/ |
| Global | ~/.config/opencode/skills/<skill>/ |
|
| OpenClaw | Workspace | <workspace>/skills (highest priority) |
| Managed | ~/.openclaw/skills |
|
| Claude Code / Codex | Personal | ~/.claude/skills/ or ~/.codex/skills/ |
| Project | .claude/skills/ |
- Start the Skill Server
The agent can now use the
uv run skills/deepear/scripts/server.py
analyzetool to trigger the DeepEar workflow andstatusto check results.
DeepEar follows a layered architecture to decouple tools, agents, and workflow logic.
graph TD
User[User Query] --> Intent[Intent Agent]
Intent --> Trend[Trend Agent]
subgraph "Discovery Layer"
Trend --> |Fetch & Filter| Source["Data Sources"]
end
Trend --> |Raw Signals| Logic[Logic Filter]
Logic --> |Qualified Signals| Fin[Fin Agent]
subgraph "Analysis Layer"
Fin --> |Market Data| Stock[Stock Toolkit]
Fin --> |Deep Dive| Search[Search Toolkit]
Fin --> |Scoring| ISQ[ISQ Template]
end
Fin --> |Structured Analysis| Report[Report Agent]
subgraph "Prediction Layer"
Report --> Forecast[Forecast Agent]
Forecast --> |News Embeddings| NewsProj[News Projection Layer]
NewsProj --> Kronos[Kronos Model]
Forecast --> |Adjustment| LLM[LLM Refinement]
end
subgraph "Output Layer"
Report --> |Map-Reduce| Draft[Draft Sections]
Draft --> |Hybrid RAG| Edit[Unified Edit]
Edit --> Final[Final Report .md/.html]
end
- Workflow Layer (
main_flow.py): Orchestrates the global state and execution path, supporting checkpoints and resume. - Agent Layer (
src/agents/):TrendAgent: Scans for hot topics and performs initial sentiment analysis.FinAgent: Validates investment logic, checks stock data, and formulates transmission chains using ISQ templates.ForecastAgent: Integrates time-series models with LLM reasoning for price trend predictions.ReportAgent: Uses a Map-Reduce approach to plan, write, and refine professional reports with interactive charts.
- Infra & Tools (
src/tools/,src/utils/):- Toolkits: News, Stock, Sentiment, Search.
- Storage: SQLite for persistence, Vector DB for semantic search.
One of the core innovations in DeepEar is the integration of a few-shot news-projection layer into the Kronos foundation model. This allows the system to not just predict based on historical prices, but to understand the quantitative impact of news events.
- Projection Layer: A lightweight linear layer that maps SentenceTransformer embeddings to the hidden state of Kronos.
- Global Shift: The projected news bias is added to the hidden representation across all time steps, shifting the model's "latent expectation" before final prediction.
- Training: Fine-tuned on a synthetic dataset of historical news-shock pairs verified by LLM reasoning.
DeepEar/
├── config/ # Configuration profiles
├── docs/ # Documentation & Guides
├── reports/ # Generated reports
├── src/
│ ├── agents/ # AI Agents (Trend, Fin, Report, Intent)
│ ├── tools/ # Toolkits (News, Stock, Search)
│ ├── utils/ # Core utilities (LLM factory, DB, Sentiment)
│ └── main_flow.py # Entry point
├── .env.example # Environment template
└── pyproject.toml # Dependency management
- Create a new provider class in
src/tools/news_toolkit/providers/. - Register the provider in
NewsToolkit. - Ensure output format matches the standard
NewsItemschema.
Run the test suite using pytest:
uv run pytest src/tests/Derived from our internal plans:
- Semantic Visualization: Relation topology graphs and ISQ Radar charts.
- Interactive Dashboard: Real-time React-based fintech UI for run monitoring.
- Interactive Diagrams: Logic transmission chains via Draw.io.
- Time-Series Integration: Integrated Kronos for predictive K-line modeling.
- News-Aware Projection: Latent space news impact injection into foundation models.
- AI Forecasting: Multi-agent market impact refinement.
- Hybrid Search: Reciprocal Rank Fusion of BM25 and Vector Search.
- Logic Evolution Tracking: Active monitoring of investment thesis changes over time.
- Signal-Based Comparison: Visual diffing of signal sentiment and reasoning across runs.
- US Market Support: Add Alpha Vantage/Yahoo Finance adaptors.
- LangGraph Migration: Graph-based state management for complex loops.
- Polymarket Integration: Add prediction market data as a signal source.
Contributions are welcome! Please feel free to verify the docs/guide.md for architectural conformance before submitting a Pull Request.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Special thanks to the following projects and communities for their inspiration and core technologies:
- Agno: For providing the robust multi-agent framework.
- Kronos: For the high-performance time-series foundation model.
- NewsNow: For the comprehensive news collection capabilities.
- DeepFund: For the advanced financial analysis methodology and research.
If you find this project useful in your research or applications, please consider citing it:
@misc{deep_ear_2026,
author = {Runke Ruan},
title = {DeepEar: An Extensible Framework for Financial Signal Extraction and News-Aware Forecasting},
year = {2026},
publisher = {GitHub},
journal = {GitHub Repository},
howpublished = {\url{https://github.com/rkiding/DeepEar}}
}Distributed under the MIT License. See LICENSE for more information.
