经 AI Skill Hub 精选评估,FinSight 获评「推荐使用」。这款Agent工作流在功能完整性、社区活跃度和易用性方面表现出色,AI 评分 7.5 分,适合有一定技术背景的用户使用。
Multi-agent会话式金融研究平台,提供专业智能体和实时流式响应
FinSight 是一套完整的 AI Agent 自动化工作流方案。通过可视化的节点编排,将复杂的多步骤任务拆解为清晰的自动化流程,实现全程无人值守的智能处理。支持与数百种外部服务和 API 无缝集成,适合构建数据处理管线、业务自动化和 AI 辅助决策系统。
Multi-agent会话式金融研究平台,提供专业智能体和实时流式响应
FinSight 是一套完整的 AI Agent 自动化工作流方案。通过可视化的节点编排,将复杂的多步骤任务拆解为清晰的自动化流程,实现全程无人值守的智能处理。支持与数百种外部服务和 API 无缝集成,适合构建数据处理管线、业务自动化和 AI 辅助决策系统。
# 方式一:pip 安装(推荐)
pip install finsight
# 方式二:虚拟环境安装(推荐生产环境)
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install finsight
# 方式三:从源码安装(获取最新功能)
git clone https://github.com/kkkano/FinSight
cd FinSight
pip install -e .
# 验证安装
python -c "import finsight; print('安装成功')"
# 命令行使用
finsight --help
# 基本用法
finsight input_file -o output_file
# Python 代码中调用
import finsight
# 示例
result = finsight.process("input")
print(result)
# finsight 配置文件示例(config.yml) app: name: "finsight" debug: false log_level: "INFO" # 运行时指定配置文件 finsight --config config.yml # 或通过环境变量配置 export FINSIGHT_API_KEY="your-key" export FINSIGHT_OUTPUT_DIR="./output"
<p align="center"> <img src="frontend/public/logo.svg" alt="FinSight AI Logo" width="80" height="80" /> </p>
<p align="center"> <strong>Multi-Agent Financial Research Platform powered by LangGraph</strong> </p>
<p align="center"> <a href="./README.md">English</a> | <a href="./readme_cn.md">中文</a> | <a href="./docs/DOCS_INDEX.md">Docs Index</a> </p>
<p align="center"> 🌐 <strong>Live Demo:</strong> <a href="https://finsight-ai.chat">https://finsight-ai.chat</a> </p>
---
FinSight AI is a production-grade, multi-agent financial research system built on LangGraph. It unifies conversational AI analysis, a professional dashboard with 6 analytical tabs, autonomous task execution (Workbench), and proactive email alerts into one coherent platform.
7 Research Agents (autonomous, multi-tool) · 1 Synthesize Node (conflict detection + hallucination guard) · 5 Dashboard Scorers (per-tab AI cards) | Hybrid RAG (bge-m3) | Real-time ECharts | LLM-driven Smart Charts | Conflict detection across 8 agent pairs | Email subscription alerts
---
Composite AI analysis with ScoreRing, Fear & Greed Gauge, Agent Coverage Matrix, Dimension Radar, Risk Metrics, Highlights, and Analyst Target Price.

A context-aware follow-up feature allowing users to ask AI about any specific news item, AI insight, or risk warning directly from the dashboard.
| Category | Highlights |
|---|---|
| **Multi-Agent Orchestration** | 7 specialized research agents (Price, News, Fundamental, Technical, Macro, Risk, DeepSearch) running in parallel execution groups |
| **LangGraph Pipeline** | Stateful LangGraph runtime for GPT-like chat, alerts, URL/article analysis, quick market answers, and explicit report generation. Ordinary chat uses the LLM conversation router before planning; only the report button enters the structured report template path. |
| **Professional Dashboard** | 6 analytical tabs (Overview, Financial, Technical, News, Research, Peers) with ECharts visualization |
| **AI-Powered Insights** | 5 Dashboard Scorers generate real-time AI analysis cards for each tab via single LLM call + deterministic fallback (1-3s each) |
| **Hybrid RAG Engine** | bge-m3 (1024-dim Dense + Sparse) with bge-reranker-v2-m3 cross-encoder reranking |
| **Smart Charts** | Dual-mode LLM-driven charts: <chart> (inline data) + <chart_ref> (real data reference) |
| **Conflict Detection** | Automatic cross-agent conflict analysis across 8 comparable dimension pairs |
| **Proactive Alerts** | 3 alert schedulers (Price, News, Risk) with email notification via SMTP |
| **Workbench** | Autonomous task execution, portfolio rebalancing with LLM enhancement, SSE streaming progress, report timeline, and quick analysis bar |
| **"Ask About This"** | Context-aware follow-up on any news, insight, or risk item via MiniChat integration |
| **ThinkingBubble** | Three-layer execution display: thinking bubble (typewriter effect) → agent summary cards → detailed timeline |
| **Morning Brief Pipeline** | One-click portfolio morning brief via LangGraph Pipeline with deterministic synthesis (zero LLM cost) |
| **Rebalance LLM Enhancement** | Agent-backed LLM priority refinement for rebalance suggestions with evidence snapshots |
| **Hallucination Defense** | Multi-layer scrubbing: regex pattern matching + evidence cross-validation on LLM outputs |
| **Conversational Price Alerts** | Chat-driven alert setup — say "alert me when AAPL drops below $180" → auto-extracted, persisted, and triggered by scheduler (Phase 1) |
| **Stock Screener** | Natural-language stock screening with multi-condition filters; capability_note boundary hints for CN/HK coverage (Phase 2) |
| **A-Share Market Data** | Northbound/Southbound capital flow, sector heat maps, concept board rankings for CN & HK markets (Phase 3) |
| **Strategy Backtesting** | SMA crossover, MACD, RSI strategies with T+1 settlement, cost/slippage modeling, and look-ahead bias prevention (Phase 4) |
---
| API Key | Required? | Purpose | If Not Configured |
|---|---|---|---|
OPENAI_COMPATIBLE_API_KEY | ✅ **Required** | Default OpenAI-compatible LLM endpoint (mimo-v2.5-pro service) | App won't function |
OPENAI_COMPATIBLE_API_BASE | ✅ **Required** | OpenAI-compatible base URL (https://token-plan-cn.xiaomimimo.com/v1 by default) | Uses the code default |
OPENAI_COMPATIBLE_MODEL | ✅ **Required** | Default model ID (mimo-v2.5-pro by default) | Uses the code default |
GEMINI_PROXY_API_KEY or OPENAI_API_KEY | Optional | Alternative LLM providers | OpenAI-compatible endpoint is used |
FMP_API_KEY | ⭐ Recommended | Financial data (earnings, ratios) | Falls back to yfinance |
FINNHUB_API_KEY | Optional | Real-time quotes, news | Falls back to other sources |
TAVILY_API_KEY | Optional | Web search | Falls back to DuckDuckGo |
FRED_API_KEY | Optional | Macro economic data | Limited macro features |
ALPHA_VANTAGE_API_KEY | Optional | Additional price data | Uses other price sources |
Minimum Setup: configureOPENAI_COMPATIBLE_API_KEYin.env.server. All other APIs have automatic fallbacks.
pip install -r requirements.txt
```bash
```bash cd frontend pnpm install pnpm dev
cp .env.server.example .env.server
python -m venv .venv
copy .env.server.example .env.server
```bash
```bash
| API | Usage |
|---|---|
langgraph.graph.MessagesState | Base state with add_messages reducer for conversation history |
langgraph.checkpoint.sqlite.SqliteSaver | Persistent conversation checkpoints (SQLite backend) |
langgraph.checkpoint.postgres.PostgresSaver | Optional PostgreSQL checkpoint backend |
langgraph.types.interrupt() | Human-in-the-loop pause at confirmation_gate |
langgraph.types.Command(resume=) | Resume execution after HITL approval |
langchain_core.messages.HumanMessage / SystemMessage / RemoveMessage | Message type construction |
langchain_core.messages.trim_messages | Context window management — trim old messages |
langfuse.decorators.langfuse_observe | Distributed tracing integration with Langfuse |
---
The FinSight chat runtime is a LangGraph stateful graph. The current path is prepare_context -> chat_respond -> understand_request: chat_respond only short-circuits pure social turns, while ordinary chat, follow-ups, non-financial boundaries, URL/page requests, alerts, market questions, and report requests go through the LLM conversation router inside understand_request.
The router decides whether the turn should be answered directly, clarified, turned into an alert, or planned as research. Research turns produce understanding, tasks[], blocked_tasks[], and a compatibility projection for the existing policy/planner/executor boundary. URL/page/article work is exposed as the planner/agent tool fetch_url_content; the request-understanding layer does not pre-fetch URLs.
understand_request also writes a structured ReplyContract so downstream nodes do not infer UX intent from raw keywords again. The current lanes are:
| Lane | Trigger | Output rule |
|---|---|---|
chat_answer | Default for ordinary explanations, follow-ups, corrections, and "no news / no links / direct answer" turns | Natural conversational answer; no forced news lookup and no report scaffold |
source_grounded_answer | Explicit news, links, URL/article reading, real-time quote, citation, or data-evidence request | Use source-capable tools; cite usable URLs or disclose that a usable source was unavailable |
report_generation | Report button, output_mode=investment_report, or explicit "generate report / research report" request | Use report structure and report citation policy |
Evidence is split from tool diagnostics. EvidenceItem/evidence_pool is reserved for usable source material. Tool failures such as 403, rejected, empty, timeout, or other failed outputs are recorded as ToolError rows in artifacts.tool_diagnostics and must not be rendered as news, sources, or conclusions.
The implementation and acceptance spec are tracked in docs/plans/2026-05-03_request_understanding_task_graph_spec.md. The current full chat UX acceptance run is docs/qa/chat-router-100-final100-current-state.md with JSON next to it: 100/100 PASS, including 95 hard red-line cases across context continuity, session isolation, report follow-ups, URL/news/quote source grounding, no-news correction, and tool-error evidence boundaries. The older 40-query run remains as legacy regression evidence in docs/qa/chat-ux-40-query-final40-post-context-binding.md.
Dashboard Scorers are served by /api/dashboard/insights and are not graph nodes in the chat pipeline.
Conversation UX is now split deliberately: the frontend keeps the active browser runtime in localStorage, while /api/conversations owns backend thread lifecycle and a lightweight server snapshot store for messages, title, pinned, and archive metadata. Creating, switching, renaming, and deleting conversations go through the backend API; deletion clears session context, report/citation index rows, thread RAG memory/working-set collections, and matching RAG observability runs. Stream stop uses AbortController plus backend cancellation events and executor/agent cancellation tokens, preserving partial answers instead of treating cancellation as an error.
Memory is scoped before routing. Durable user preferences and historical focus are loaded for personalization, but only current_thread_focus and current_report from the active thread_id can bind deictic follow-ups such as "that report" or "the third point". Legacy user-level last_report, last_focus, and recent_focuses are kept as historical memory and are not exposed to the conversation router as current referents.
Runtime preferences are passed with chat options as agent_preferences. timeoutSeconds=0 means system default; positive values are clamped to 30-1200 seconds and applied to chat, planner, synthesis, and both sync/stream graph execution budgets.
report_builder and hallucination/evidence checks are implementation helpers inside the graph runtime, not separate graph nodes in backend/graph/runner.py.
FinSight uses a production-grade hybrid retrieval pipeline replacing the legacy SHA1 hash-based pseudo-embeddings.
| Component | File | Model / Algorithm |
|---|---|---|
| **Embedder** | rag/embedder.py | BAAI/bge-m3 — 1024-dim Dense + Sparse (lexical weights) |
| **Hybrid Search** | rag/hybrid_service.py | RRF fusion with scope boosting: persistent +0.15, medium_ttl +0.05 |
| **Reranker** | rag/reranker.py | BAAI/bge-reranker-v2-m3 Cross-Encoder, Top-30 → Top-8 |
| **Router** | rag/rag_router.py | Rule-based: SKIP (realtime quotes) / PRIMARY (historical) / PARALLEL (deep research) |
| **Chunker** | rag/chunker.py | Per-doc-type strategy: news (no split) / filings (1000/200) / transcripts (800/100) |
| **Store** | rag/hybrid_service.py | In-Memory or PostgreSQL (pgvector VECTOR(1024) + tsvector) |
Scheduler → Rule Engine → Alert Created →
HTML Template (Jinja2) → SMTP Send →
Delivery Tracking (transient vs permanent errors) →
Auto-disable after 3 permanent failures
```bash
FinSight是一个开源的AI工作流平台,提供多种智能体和实时流式响应功能,适合金融研究和投资组合监控,但需要进一步优化和完善
AI Skill Hub 为第三方内容聚合平台,本页面信息基于公开数据整理,不对工具功能和质量作任何法律背书。
建议在沙箱或测试环境中充分验证后,再部署至生产环境,并做好必要的安全评估。
✅ MIT 协议 — 最宽松的开源协议之一,可自由商用、修改、分发,仅需保留版权声明。
AI Skill Hub 点评:FinSight 的核心功能完整,质量良好。对于自动化工程师和运维人员来说,这是一个值得纳入个人工具库的选择。建议先在非生产环境试用,再逐步推广。
| 原始名称 | FinSight |
| 原始描述 | 开源AI工作流:Multi-agent会话式金融研究平台。提供专业智能体(价格分析、新闻追踪、宏观经济、深度研究),支持实时流式响应、自动生成8章节投资报告和投资组合监控。采用。⭐31 · Python |
| Topics | workflowai-agentsfinancial-analysis |
| GitHub | https://github.com/kkkano/FinSight |
| License | MIT |
| 语言 | Python |
收录时间:2026-05-22 · 更新时间:2026-05-23 · License:MIT · AI Skill Hub 不对第三方内容的准确性作法律背书。
选择 Agent 类型,复制安装指令后粘贴到对应客户端