FinnewsHunter Financial Intelligence
A self-hosted system that turns financial news into searchable sentiment analysis and investment research signals.
- Source repo
- DemonDamon/FinnewsHunter
- Stars
- ★ 1.5k
- Last updated
- 1d ago
- License
- Apache-2.0
- Primary language
- Python
- FA score
- 29/100 · Major gaps
At a glance
- How it runs
- Works with
- Portable with changesOpenAI API
- Cost
- Free software; you pay for model usage
- Setup effort
- High · needs real infrastructure
- You'll need
- Typical use
- A quantitative research team needs to ingest recent finance news from sources such as Sina Finance, Tencent Finance, and East Money into one searchable database.
- Not a fit if
- Individuals wanting one-command use without running PostgreSQL, Redis, and Milvus
- Developers unwilling to depend on AgenticX and a local editable install
- Source review
- 29/100 · Major gaps 8 safety controls not found
What does this agent do, and when should you use it?
FinnewsHunter is a self-hosted financial-news analysis platform built on AgenticX for Chinese market research workflows. Its FastAPI backend exposes news, analysis, model-configuration, and stock-data APIs, while a React and TypeScript frontend provides news browsing, search, batch actions, and K-line charts. Celery Beat schedules crawling and Celery workers process the jobs; PostgreSQL stores application records, Redis supports caching, and Milvus stores embeddings. The NewsAnalyst agent analyzes news with a configured model provider and sends embedding work to the background. The repository also documents a bull-bear investment debate workflow involving BullResearcher, BearResearcher, SearchAnalyst, and InvestmentManager.
The application crawls financial news from 10 configured sources, deduplicates by URL, retains news within 24 hours, and applies stock-keyword filtering. It stores news in PostgreSQL and exposes it through endpoints including /api/v1/news/latest and /api/v1/news/sources; the UI searches titles, content, stock codes, and sources and supports batch deletion and analysis. POST /api/v1/analysis/news/{id} invokes NewsAnalyst to produce sentiment, sentiment score, confidence, and an analysis result. EmbeddingService uses BailianEmbeddingProvider to embed text, while VectorStorage uses MilvusStorage for vector persistence and similarity search. Stock views retrieve AkShare data for daily and 60m, 30m, 15m, 5m, and 1m K-lines, and the debate workflow can request data from AkShare, BochaAI, browser search, or the knowledge base before InvestmentManager produces an investment-rating report.
- A quantitative research team needs to ingest recent finance news from sources such as Sina Finance, Tencent Finance, and East Money into one searchable database.
- An equity analyst wants to run a chosen configured model on one article or a selected batch and review sentiment, confidence, and market-impact analysis.
- An A-share researcher needs fuzzy stock lookup across more than 5,000 preloaded records and wants to inspect multi-period K-line data.
- An investment team wants a structured bull-versus-bear discussion for a stock, with on-demand requests for financial metrics, fund flows, or current news.
- A self-hosting team needs a Docker Compose-operated stack for PostgreSQL, Redis, Milvus, and Celery while running the API and frontend as development services.
How do you install or deploy this agent?
Prerequisites are Python 3.11+, Docker, and Docker Compose; frontend development also requires Node.js 18+. Install AgenticX first:
cd /Users/damon/myWork/AgenticXpip install -e .
Install backend dependencies and prepare configuration:
cd FinnewsHunter/backend
pip install -r requirements.txt
cp env.example .envConfigure at least one model-provider key. For example, Bailian:
DASHSCOPE_API_KEY=sk-your-dashscope-key
DASHSCOPE_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
BAILIAN_MODELS=qwen-plus,qwen-max,qwen-turboStart infrastructure and initialize the database:
cd FinnewsHunter
docker compose -f deploy/docker-compose.dev.yml up -d postgres redis milvus-etcd milvus-minio milvus-standalone
cd backend
python init_db.pyOptionally load stock data:
python -m app.scripts.init_stocksStart the API:
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000In separate terminals, start the scheduler and frontend:
cd FinnewsHunter
docker compose -f deploy/docker-compose.dev.yml up -d celery-worker celery-beat
cd frontend
npm install
npm run devHow do you use this agent?
After startup, the frontend is at http://localhost:3000 and API documentation is at http://localhost:8000/docs. A first crawl invocation for Sina Finance is:
curl -X POST http://localhost:8000/api/v1/news/crawl -H "Content-Type: application/json" -d '{"source": "sina", "start_page": 1, "end_page": 1}'Retrieve news:
curl "http://localhost:8000/api/v1/news/latest?limit=200"Analyze news record 1:
curl -X POST http://localhost:8000/api/v1/analysis/news/1Run batch analysis with a selected model:
curl -X POST "http://localhost:8000/api/v1/analysis/batch" -H "Content-Type: application/json" -d '{"news_ids": [1, 2, 3], "provider": "bailian", "model": "qwen-plus"}'Request stock K-line data:
curl "http://localhost:8000/api/v1/stocks/SH600519/kline?period=daily&limit=180"What are this agent's strengths and limitations?
- It documents an end-to-end self-hosted workflow spanning crawling, scheduling, analysis, vector storage, APIs, and a React interface.
- It supports five listed model-provider families—Bailian, OpenAI, DeepSeek, Kimi, and Zhipu—with frontend model switching.
- Celery Beat and Celery workers automate crawling across 10 finance-news sources, with documented URL deduplication, time filtering, and operational checks.
- The product combines news sentiment analysis, Milvus-backed embeddings, stock K-lines, and a data-seeking bull-bear debate flow.
- Both the user interface and API document batch selection, deletion, and analysis of news items.
- It depends on AgenticX; the installation instructions require an editable install from a specific local path and do not provide a standalone AgenticX versioning procedure.
- A full deployment carries a substantial operational footprint: PostgreSQL, Redis, Milvus, Docker Compose, Celery, Python, and Node.js.
- News ingestion depends on third-party websites; the documentation notes that changed site URLs can cause 404 failures and require crawler configuration edits.
- At least one external model-provider API key is required, and model availability and access conditions remain provider-dependent.
- WebSocket live updates and agent execution-trace visualization are still marked in progress; knowledge graphs, agent memory, and self-evolution features are planned rather than delivered.
How does this agent compare with similar options?
Key facts side by side with the most closely related agents.
| Agent | Source review | Form / cost | Stars | Updated | Language | Full support on |
|---|---|---|---|---|---|---|
| FinnewsHunter Financial Intelligence This agent | 29 · Major gaps | Self-hosted serviceFree + model costs | ★ 1.5k | 1d ago | Python | OpenAI API |
| Agentic Company Researcher | Insufficient evidence | Self-hosted serviceFree + model costs | ★ 2.3k | 10d ago | Python | OpenAI API |
| Vibe-Research: Personal AI Investment Research Dashboard | 59 · Major gaps | Self-hosted serviceFree + model costs | ★ 3.5k | 8d ago | TypeScript | Codex · Claude Code · OpenAI API · Claude API |
| MindSearch Deep Search | 42 · Major gaps | Self-hosted serviceFree + model costs | ★ 6.9k | 1y ago | JavaScript | — |
How does FollowAgents rate this agent?
Why each dimension lost points
Evidence shows: the repository provides no permission model, user confirmation mechanism, data flow transparency, sensitive data handling policy, dependency security audit, external impact assessment, rollback mechanism, or source attribution. All trust criteria lack evidence, hence all 0.
Evidence shows: README describes system architecture and features, but no verifiable test results or runtime evidence. Self-consistency: features described align with code structure, but test coverage is missing. Dependency availability: dependencies listed but no version pinning or mirrors. Failure messages: log viewing commands provided, but no error handling documentation. Hence each scored 1.
Evidence shows: README identifies target users (quantitative traders) and use cases (financial news analysis), but capability boundaries are not explicit. Trigger precision: API and frontend operations described, but precise trigger conditions not defined. Environment fit: Docker Compose deployment provided, but configuration differences across environments not explained. Hence each scored 1-2.
Evidence shows: README provides detailed project structure, installation steps, usage guide, but lacks known limitations and version changelog. License is Apache-2.0, but maintenance responsibility not stated. Hence each scored 0-2.
Evidence shows: README describes outputs as analysis reports and K-line charts, but no actual output examples or user feedback. Marginal value: emphasizes multi-agent collaboration and real-time analysis, but no comparison with existing solutions. Cost-benefit: no performance or cost data. Hence each scored 1-2.
Evidence shows: feature claims in README lack verifiable test results or independent validation. Cross-source corroboration: no external references. Fact-inference separation: no distinction between facts and inferences. Hence each scored 0-1.
- Not found in source: least-privilege scopingGrant only what the task needs: a dedicated account or read-only token, scoped to specific directories and repos.
- Not found in source: confirmation before actingTurn on (or add) a confirmation step before it acts, and try it in a sandbox or test environment before real data.
- Not found in source: data-flow disclosureWatch which external services it contacts (proxy or firewall logs) and keep sensitive data out until you know where it goes.
- Not found in source: sensitive-data handlingUse dedicated, low-privilege, revocable API keys — never production credentials — and keep secrets out of logs.
- Not found in source: dependency securityPin versions and run a dependency audit (npm audit, pip-audit) before installing; prefer running it in a container.
- Not found in source: disclosed external effectsEstablish which external systems it writes to, sends to or changes, and verify with test accounts or repos before production.
- Not found in source: rollback or recovery pathBack up first, or work on a git branch or snapshot, so its changes can be undone.
- Not found in source: verifiable attributionInstall from the official repo or registry and check the publisher and URL to avoid look-alike packages.
- The repository provides no security audit or permission control documentation; assess risks before deployment.
- Feature claims in README lack test evidence; verify actual behavior yourself.
- Dependencies are not version-pinned, posing supply chain risks.
- No known limitations or changelog provided, raising maintenance concerns.