FinnewsHunter Financial Intelligence
A self-hosted system that turns financial news into searchable sentiment analysis and investment research signals.
Per-dimension scores and reasoning
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.
- 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.
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.
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 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"