FinSight AI AI Agent

by juanjuandog• 557•• Scanned•Claim this listing•Request removal
Research & Analysisai agentfinancial researchllm evaluationpgvectorpostgresql

AI equity research agent with resilient workflows, evidence-grounded RAG, versioned reports, and automated quality evaluation.

FinSight AI is an open-source ai agent by juanjuandog, written mainly in Java, with 557 GitHub stars and the MIT license. Its code was last updated Sep 2, 2026.

<p align="center"> <img src="backend/src/main/resources/static/brand-favicon.svg" width="72" alt="FinSight AI logo"> </p> <h1 align="center">FinSight AI</h1> <p align="center"> <strong>Evidence-grounded equity research with recoverable workflows, snapshot-bound reports, and hybrid RAG.</strong> </p> <p align="center"> Turn market data, financial metrics, filings, and company events into structured AI research that can be inspected and reproduced. </p> <p align="center"> <a href="https://github.com/juanjuandog/FinSight-AI/actions/workflows/ci.yml"><img src="https://img.shields.io/github/actions/workflow/status/juanjuandog/FinSight-AI/ci.yml?branch=master&amp;style=flat-square&amp;label=CI&amp;color=8A7350" alt="CI status"></a> <img src="https://img.shields.io/badge/Java-17-4B5563?style=flat-square&amp;logo=openjdk&amp;logoColor=white" alt="Java 17"> <img src="https://img.shields.io/badge/Spring_Boot-3.3.5-6B7280?style=flat-square&amp;logo=springboot&amp;logoColor=white" alt="Spring Boot 3.3.5"> <img src="https://img.shields.io/badge/PostgreSQL-pgvector-8A7350?style=flat-square&amp;logo=postgresql&amp;logoColor=white" alt="PostgreSQL and pgvector"> <a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-4B5563?style=flat-square" alt="MIT License"></a> </p> <p align="center"> <a href="README.zh-CN.md">简体中文</a> · <a href="docs/architecture.md">Architecture</a> · <a href="docs/api.md">API</a> · <a href="#quick-start">Quick Start</a> </p>

FinSight AI company research workspace

FinSight AI is an open-source A-share research workspace and a backend engineering reference for reliable AI agents. It does more than call a model: long-running research tasks are recoverable, duplicate executions are controlled, reports are bound to data snapshots, and generated conclusions retain an inspectable evidence path.

FinSight is a research aid, not an automated trading system. Its output is not investment advice.

A focused research workspace

The interface separates each research activity into a dedicated workspace instead of placing every diagnostic on one dashboard.

WorkspacePurpose
Company ResearchSearch an A-share company and inspect its quote, historical close-price curve, and key financial metrics
AI AnalysisGenerate a structured conclusion with confidence, supporting factors, and risk factors
EvidenceSearch filings, announcements, and structured metrics for verifiable source material
Recent EventsReview disclosures, metric changes, and risk signals on a company timeline
WatchlistKeep a concise list of companies for continued research

Why FinSight is different

Engineering problemFinSight approachImplementation
Long-running AI tasks fail halfwayRecoverable stages, explicit task states, retries, timeout takeover, and dead-letter handlingWorkflowOrchestrator
Identical requests amplify expensive workIdempotency keys plus a Redis Lua single-flight lease and fencing tokenRedisBackedWorkflowLeaseService
A cached report becomes stale when data changesdataSnapshotHash, contextHash, and reportVersion bind a report to its source stateStockAiAnalysisService
RAG answers are difficult to verifyFull-text and vector recall, reciprocal-rank fusion, reranking, evidence trace, and regression evaluationHybridRetrievalGateway
Model infrastructure changes independentlyEmbedding, reranking, and generation run behind a FastAPI sidecar with deterministic fallbacksai-service

From question to evidence

  1. A research request creates an idempotent task.
  2. RabbitMQ dispatches data ingestion, metric calculation, indexing, intelligence building, and report generation.
  3. Redis coordinates duplicate work while PostgreSQL/pgvector stores snapshots, vectors, evidence, and reports.
  4. Hybrid retrieval supplies reranked evidence to the AI sidecar.
  5. The final report preserves its version, snapshot hash, model source, and evidence trace.

FinSight AI evidence search workspace

Quick Start

Lightweight preview

Use this path to inspect the product and core flow with Java 17 and Maven. It runs with local in-memory adapters and does not require infrastructure services.

git clone https://github.com/juanjuandog/FinSight-AI.git
cd FinSight-AI/backend
mvn spring-boot:run

Open http://localhost:8080.

Full research stack

Use Docker Compose to run PostgreSQL/pgvector, Redis, RabbitMQ, the Spring Boot backend, and the FastAPI AI sidecar together.

git clone https://github.com/juanjuandog/FinSight-AI.git
cd FinSight-AI
docker compose up -d --build
./scripts/quick-demo.sh

The default demo requires no API key. Ollama is the default local provider, while the sidecar also has adapters for OpenAI-compatible APIs and Anthropic. If a selected model is unavailable or unconfigured, deterministic fallbacks keep the flow runnable. Allow roughly 8 GB of free memory for the complete Compose stack.

ModeBest forRuntime
LightweightUI review, code reading, and interview demosJava 17, Maven
Full stackWorkflow recovery, Redis coordination, pgvector retrieval, and AI sidecar integrationDocker Compose

For profiles, environment variables, service URLs, and recovery steps, see Troubleshooting.

Architecture

flowchart LR
    UI["Research Workspaces"] --> API["Spring Boot API"]
    API --> WF["Workflow Orchestrator"]
    WF --> MQ["RabbitMQ"]
    WF --> Lease["Redis Lease & Cache"]
    WF --> DB["PostgreSQL / pgvector"]

    API --> Retrieval["FTS + Vector + RRF"]
    Retrieval --> DB
    Retrieval --> Sidecar["FastAPI: Embed · Rerank · Generate"]
    Sidecar --> Providers["Provider adapters"]
    Providers -. default .-> Ollama["Ollama"]
    Providers -. optional .-> OpenAI["OpenAI-compatible"]
    Providers -. optional .-> Anthropic["Anthropic"]
    Sidecar --> Report["Snapshot-bound Report"]
    Report --> DB
    API --> Eval["RAG Evaluation"]
    Eval --> Retrieval

The Spring Boot service owns domain state and orchestration. The Python sidecar owns model-facing operations. This boundary keeps workflow recovery and report consistency independent from the chosen model runtime.

Read the architecture notes for the complete request, state, and data flows.

Technology

LayerStack
Core APIJava 17, Spring Boot 3.3.5, JDBC, Flyway
WorkflowRabbitMQ, task state machine, retry and dead-letter recovery
CoordinationRedis, Lua leases, fencing tokens, snapshot-aware cache
RetrievalPostgreSQL JSONB, full-text search, pgvector, RRF, reranking
AI runtimeFastAPI, sentence embeddings, cross-encoder reranking, Ollama/OpenAI-compatible/Anthropic adapters
Product UIResponsive HTML, CSS, and JavaScript served by Spring Boot
OperationsDocker Compose, Actuator, Prometheus, GitHub Actions

Repository map

backend/        Spring Boot API, workflow, retrieval, metrics, and static UI
ai-service/     FastAPI embedding, reranking, and generation sidecar
scripts/        Demo, verification, benchmark, and screenshot workflows
docs/           Architecture, API, benchmark, product, and interview notes
docker-compose.yml

Validation

CI protects the main branch with:

  • Maven unit and integration tests, including Testcontainers-backed infrastructure tests;
  • shell-script syntax checks;
  • Python service and benchmark-script syntax checks.

Run the backend suite locally:

cd backend
mvn test

Documentation

Scope

FinSight currently targets A-share research and local, production-like demonstrations, with email accounts, server-side sessions, and private watchlists. Team workspaces, regulated research workflows, trade execution, portfolio advice, and multi-market coverage remain outside the current scope.

Contributors

Thanks to everyone who has contributed to FinSight AI. This list is regenerated from the default branch after every push and once per day.

<!-- CONTRIBUTORS:START --> <!-- Automatically generated by scripts/update_contributors.py. Do not edit manually. --> <table> <tbody> <tr> <td align="center" width="110"> <a href="https://github.com/juanjuandog"> <img src="https://avatars.githubusercontent.com/u/212179655?v=4" width="72" height="72" alt="juanjuandog"><br> <sub><b>juanjuandog</b></sub><br> <sub>80 commits</sub> </a> </td> <td align="center" width="110"> <a href="https://github.com/liuzedongqq"> <img src="https://avatars.githubusercontent.com/u/42766899?v=4" width="72" height="72" alt="liuzedongqq"><br> <sub><b>liuzedongqq</b></sub><br> <sub>20 commits</sub> </a> </td> <td align="center" width="110"> <a href="https://github.com/Inference1"> <img src="https://avatars.githubusercontent.com/u/68734681?v=4" width="72" height="72" alt="Inference1"><br> <sub><b>Inference1</b></sub><br> <sub>5 commits</sub> </a> </td> <td align="center" width="110"> <a href="https://github.com/Neon549"> <img src="https://avatars.githubusercontent.com/u/222335687?v=4" width="72" height="72" alt="Neon549"><br> <sub><b>Neon549</b></sub><br> <sub>5 commits</sub> </a> </td> <td align="center" width="110"> <a href="https://github.com/4tj"> <img src="https://avatars.githubusercontent.com/u/1736244?v=4" width="72" height="72" alt="4tj"><br> <sub><b>4tj</b></sub><br> <sub>2 commits</sub> </a> </td> <td align="center" width="110"> <a href="https://github.com/faceWang753"> <img src="https://avatars.githubusercontent.com/u/44287435?v=4" width="72" height="72" alt="faceWang753"><br> <sub><b>faceWang753</b></sub><br> <sub>1 commit</sub> </a> </td> <td align="center" width="110"> <a href="https://github.com/Qhhhhhhhhhhhh"> <img src="https://avatars.githubusercontent.com/u/314590662?v=4" width="72" height="72" alt="Qhhhhhhhhhhhh"><br> <sub><b>Qhhhhhhhhhhhh</b></sub><br> <sub>1 commit</sub> </a> </td> <td align="center" width="110"> <a href="https://github.com/ShinyHero666"> <img src="https://avatars.githubusercontent.com/u/160204855?v=4" width="72" height="72" alt="ShinyHero666"><br> <sub><b>ShinyHero666</b></sub><br> <sub>1 commit</sub> </a> </td> </tr> </tbody> </table> <!-- CONTRIBUTORS:END -->

License

Released under the MIT License.

FinSight AI alternatives

View more →

Similar ai agents in Research & Analysis, ranked by GitHub stars. Compare licence, recent activity and scan status before you choose.

NameStarsLicenceLast updatedScan
FinSight AI (this page)
juanjuandog
557MITSep 2, 2026Scanned, no flagged issues
Hermes Agent
NousResearch
259kMITNov 1, 2026Scanned, no flagged issues
Anything LLM
Mintplex-Labs
68kMITOct 30, 2026Scanned, no flagged issues
Khazix Skills
KKKKhazix
22kMITOct 1, 2026Scanned, no flagged issues
Hermes Webui
nesquena
19kMITNov 1, 2026Scanned, no flagged issues
DocsGPT
arc53
18kMITNov 1, 2026Scanned, no flagged issues