能力标签
⚙️
Agent工作流

FinSight

基于 Python · 无代码搭建完整 AI 自动化流程
⭐ 31 Stars 🍴 5 Forks 💻 Python 📄 MIT 🏷 AI 7.5分
7.5AI 综合评分
workflowai-agentsfinancial-analysis
✦ AI Skill Hub 推荐

经 AI Skill Hub 精选评估,FinSight 获评「推荐使用」。这款Agent工作流在功能完整性、社区活跃度和易用性方面表现出色,AI 评分 7.5 分,适合有一定技术背景的用户使用。

📚 深度解析
FinSight 是一套完整的 AI Agent 自动化工作流方案。随着 AI 能力的不断提升,基于 Agent 的自动化工作流正在成为提升个人和团队效率的核心方式。区别于传统的 RPA 自动化(模拟鼠标键盘操作),AI Agent 工作流通过理解任务意图、动态规划执行路径,能够处理更复杂的非结构化任务。

FinSight 工作流的设计遵循"最小配置,最大复用"原则:核心逻辑已经封装好,用户只需配置自己的 API Key 和业务参数即可快速上手。工作流内置错误处理和重试机制,在网络波动或 API 限速等情况下仍能稳定运行,适合作为生产环境的自动化基础设施。

在实际部署时,建议先在测试环境中运行 3-5 次,验证各个环节的输出结果符合预期,再部署到生产环境。AI Skill Hub 评分 7.5 分,是同类 Agent 工作流中的精选推荐。
📋 工具概览

Multi-agent会话式金融研究平台,提供专业智能体和实时流式响应

FinSight 是一套完整的 AI Agent 自动化工作流方案。通过可视化的节点编排,将复杂的多步骤任务拆解为清晰的自动化流程,实现全程无人值守的智能处理。支持与数百种外部服务和 API 无缝集成,适合构建数据处理管线、业务自动化和 AI 辅助决策系统。

GitHub Stars
⭐ 31
开发语言
Python
支持平台
Windows / macOS / Linux
维护状态
轻量级项目,按需更新
开源协议
MIT
AI 综合评分
7.5 分
工具类型
Agent工作流
Forks
5
📖 中文文档
以下内容由 AI Skill Hub 根据项目信息自动整理,如需查看完整原始文档请访问底部「原始来源」。

Multi-agent会话式金融研究平台,提供专业智能体和实时流式响应

FinSight 是一套完整的 AI Agent 自动化工作流方案。通过可视化的节点编排,将复杂的多步骤任务拆解为清晰的自动化流程,实现全程无人值守的智能处理。支持与数百种外部服务和 API 无缝集成,适合构建数据处理管线、业务自动化和 AI 辅助决策系统。

📌 核心特色
  • 可视化 Agent 工作流编排,无需编写复杂代码
  • 支持多步骤自动化任务链,实现全流程无人值守
  • 与外部 API、数据库和第三方服务无缝集成
  • 内置错误处理与自动重试机制,保障稳定运行
  • 提供可复用的自动化模板,快速在同类场景部署
🎯 主要使用场景
  • 自动化日常重复性工作,将精力集中于创造性任务
  • 构建数据采集 → 处理 → 输出的完整自动化管线
  • 实现跨平台、跨系统的数据流转和业务协同
以下安装命令基于项目开发语言和类型自动生成,实际以官方 README 为准。
安装命令
# 方式一: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('安装成功')"
📋 安装步骤说明
  1. 访问 GitHub 仓库获取工作流文件
  2. 在对应平台(Dify / Flowise / Make 等)中找到「导入工作流」功能
  3. 上传工作流文件
  4. 按照提示配置必要的环境变量和 API Key
  5. 运行测试确认流程正常后投入使用
以下用法示例由 AI Skill Hub 整理,涵盖最常见的使用场景。
常用命令 / 代码示例
# 命令行使用
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"
📑 README 深度解析 真实文档 完整度 75/100 含工作流图 查看 GitHub 原文 →
以下内容由系统直接从 GitHub README 解析整理,保留代码块、表格与列表结构。

简介

<p align="center"> <img src="frontend/public/logo.svg" alt="FinSight AI Logo" width="80" height="80" /> </p>

FinSight AI

<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

---

Overview Tab

Composite AI analysis with ScoreRing, Fear & Greed Gauge, Agent Coverage Matrix, Dimension Radar, Risk Metrics, Highlights, and Analyst Target Price.

Overview

💬 "Ask About This" (问这条)

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.

sequenceDiagram participant User participant Card as NewsCard / AiInsightCard participant Store as dashboardStore participant Chat as MiniChat participant API as Backend SSE User->>Card: Click "问这条" button Card->>Store: setActiveSelection(SelectionItem) Store->>Chat: MiniChat reads activeSelection Chat->>Chat: Auto-populate context pill User->>Chat: Type follow-up question Chat->>API: POST /api/chat with selection_context API->>API: LangGraph pipeline processes with context API-->>Chat: SSE stream response

✨ Key Features

CategoryHighlights
**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 Keys (Required vs Optional)

API KeyRequired?PurposeIf 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_KEYOptionalAlternative LLM providersOpenAI-compatible endpoint is used
FMP_API_KEY⭐ RecommendedFinancial data (earnings, ratios)Falls back to yfinance
FINNHUB_API_KEYOptionalReal-time quotes, newsFalls back to other sources
TAVILY_API_KEYOptionalWeb searchFalls back to DuckDuckGo
FRED_API_KEYOptionalMacro economic dataLimited macro features
ALPHA_VANTAGE_API_KEYOptionalAdditional price dataUses other price sources
Minimum Setup: configure OPENAI_COMPATIBLE_API_KEY in .env.server. All other APIs have automatic fallbacks.

2. Install dependencies

pip install -r requirements.txt

🚀 Getting Started

Frontend Setup

```bash cd frontend pnpm install pnpm dev

2. Configure environment

cp .env.server.example .env.server

Edit .env.server with your real API keys (see "API Keys" section below)

1. Create virtual environment

python -m venv .venv

3. Configure environment

copy .env.server.example .env.server

Edit .env.server with your API keys:

Optional: PostgreSQL for RAG

```bash

Set environment variable to enable PostgreSQL backend

Optional: Email Alerts

```bash

LangChain / LangGraph APIs Used

APIUsage
langgraph.graph.MessagesStateBase state with add_messages reducer for conversation history
langgraph.checkpoint.sqlite.SqliteSaverPersistent conversation checkpoints (SQLite backend)
langgraph.checkpoint.postgres.PostgresSaverOptional 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 / RemoveMessageMessage type construction
langchain_core.messages.trim_messagesContext window management — trim old messages
langfuse.decorators.langfuse_observeDistributed tracing integration with Langfuse

---

OPENAI_COMPATIBLE_API_KEY=sk-...

OPENAI_COMPATIBLE_API_BASE=https://token-plan-cn.xiaomimimo.com/v1

OPENAI_API_KEY=sk-...

GOOGLE_API_KEY=... (for Gemini)

FMP_API_KEY=... (Financial Modeling Prep)

FINNHUB_API_KEY=... (Finnhub)

FRED_API_KEY=... (FRED Economic Data)

🔄 LangGraph Pipeline (Conversational Runtime)

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:

LaneTriggerOutput rule
chat_answerDefault for ordinary explanations, follow-ups, corrections, and "no news / no links / direct answer" turnsNatural conversational answer; no forced news lookup and no report scaffold
source_grounded_answerExplicit news, links, URL/article reading, real-time quote, citation, or data-evidence requestUse source-capable tools; cite usable URLs or disclose that a usable source was unavailable
report_generationReport button, output_mode=investment_report, or explicit "generate report / research report" requestUse 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.

flowchart TD START((Start)) --> INIT["① build_initial_state
Parse input, load memory"] INIT --> MEMSCOPE["memory_scope
user profile + current thread only"] MEMSCOPE --> RESET["② reset_turn_state
Clear ephemeral fields + trace runtime"] RESET --> PREPARE["③ prepare_context
Bound history, summarize, normalize UI hints"] PREPARE --> CHATRESP["④ chat_respond
Pure social only"] CHATRESP -->|"pure greeting / thanks / bye"| END_CHAT((End)) CHATRESP -->|"all other turns"| UNDERSTAND{"⑤ understand_request
LLM router + tasks + trace"} UNDERSTAND -->|"direct / clarify / out_of_scope"| END_CHAT UNDERSTAND -->|"alert"| ALERT_EX["⑥ alert_extractor
Extract alert params"] ALERT_EX -->|"valid"| ALERT_ACT["⑥b alert_action
Save & schedule"] ALERT_EX -->|"invalid"| END_ALERT_INVALID((End)) ALERT_ACT --> END_ALERT((End)) UNDERSTAND -->|"research"| POLICY["⑦ policy_gate
Capability scoring + task tool union"] POLICY --> PLAN["⑧ planner
LLM Planner or Stub Fallback"] PLAN --> CONFIRM{"⑨ confirmation_gate
HITL approval?"} CONFIRM -->|"cancel"| END_CANCEL((End)) CONFIRM -->|"adjust"| PLAN CONFIRM -->|"confirm"| EXEC["⑩ execute_plan
Tools, agents, URL fetch"] EXEC --> SYNTH["⑪ synthesize
Merge outputs + conflict/evidence checks"] SYNTH --> RENDER["⑫ render
Chat or report output"] RENDER --> END((End)) subgraph "Execution Engine (⑩)" direction LR EG1["Group 1
price · news"] --> EG2["Group 2
fundamental · technical"] EG2 --> EG3["Group 3
macro · risk · deep_search"] end EXEC -.-> EG1 style RESET fill:#a855f7,color:#fff style SYNTH fill:#ff9800,color:#000 style POLICY fill:#2196f3,color:#fff

report_builder and hallucination/evidence checks are implementation helpers inside the graph runtime, not separate graph nodes in backend/graph/runner.py.

🔍 RAG Engine — Hybrid Search Pipeline

FinSight uses a production-grade hybrid retrieval pipeline replacing the legacy SHA1 hash-based pseudo-embeddings.

flowchart LR QUERY["User Query"] --> ROUTER["RAG Router
SKIP / SECONDARY / PRIMARY"] ROUTER -->|PRIMARY| EMBED["bge-m3 Encode
1024-dim Dense + Sparse lexical"] ROUTER -->|SKIP| LIVE["Live Tools Only"] EMBED --> DENSE["Dense Search
Cosine similarity"] EMBED --> SPARSE["Sparse Search
Lexical weight matching"] DENSE --> RRF["RRF Fusion
+ Scope Boost"] SPARSE --> RRF RRF --> RERANK["Cross-Encoder Rerank
bge-reranker-v2-m3
Top-30 → Top-8"] RERANK --> OUTPUT["rag_context
Injected into synthesize prompt"] style EMBED fill:#4caf50,color:#fff style RERANK fill:#ff9800,color:#000

Key Components

ComponentFileModel / Algorithm
**Embedder**rag/embedder.pyBAAI/bge-m3 — 1024-dim Dense + Sparse (lexical weights)
**Hybrid Search**rag/hybrid_service.pyRRF fusion with scope boosting: persistent +0.15, medium_ttl +0.05
**Reranker**rag/reranker.pyBAAI/bge-reranker-v2-m3 Cross-Encoder, Top-30 → Top-8
**Router**rag/rag_router.pyRule-based: SKIP (realtime quotes) / PRIMARY (historical) / PARALLEL (deep research)
**Chunker**rag/chunker.pyPer-doc-type strategy: news (no split) / filings (1000/200) / transcripts (800/100)
**Store**rag/hybrid_service.pyIn-Memory or PostgreSQL (pgvector VECTOR(1024) + tsvector)

Email Pipeline

Scheduler → Rule Engine → Alert Created →
HTML Template (Jinja2) → SMTP Send →
Delivery Tracking (transient vs permanent errors) →
Auto-disable after 3 permanent failures

Manual Setup (Alternative)

Prerequisites

  • Python 3.11+
  • Node.js 18+ with pnpm
  • At least one LLM API key (OpenAI / Gemini / DeepSeek)

Backend Setup

```bash

🎯 aiskill88 AI 点评 B 级 2026-05-23

FinSight是一个开源的AI工作流平台,提供多种智能体和实时流式响应功能,适合金融研究和投资组合监控,但需要进一步优化和完善

📚 实用指南(长尾问题)
适合谁
  • 构建多智能体协作系统的 Agent 开发者
  • 构建企业知识库 / RAG 检索应用的团队
最佳实践
  • 生产部署优先使用 Docker Compose 隔离依赖,并挂载 volume 持久化数据
  • 分块大小建议 256-512 tokens,向量库优选 pgvector 或 Qdrant
  • Agent 任务先做 dry-run 验证工具调用链,再开启自主执行
常见错误
  • API key 直接提交到 git 仓库(请用 .env 并加入 .gitignore)
  • 容器内无法访问宿主机 localhost — 使用 host.docker.internal
  • embedding 模型与查询模型不一致导致检索失效
  • Python 依赖冲突:建议用 venv / uv 隔离环境
部署方案
  • Docker:FinSight 提供官方镜像,docker compose up 一键启动
  • 云端托管:可放在 Vercel / Railway / Fly.io 等 PaaS 平台
相关搜索
FinSight 中文教程FinSight 安装报错怎么办FinSight Docker 部署FinSight Agent 工作流FinSight 与同类工具对比FinSight 最佳实践FinSight 适合谁用
⚡ 核心功能
👥 适合谁
  • 构建多智能体协作系统的 Agent 开发者
  • 构建企业知识库 / RAG 检索应用的团队
⭐ 最佳实践
  • 生产部署优先使用 Docker Compose 隔离依赖,并挂载 volume 持久化数据
  • 分块大小建议 256-512 tokens,向量库优选 pgvector 或 Qdrant
  • Agent 任务先做 dry-run 验证工具调用链,再开启自主执行
⚠️ 常见错误
  • API key 直接提交到 git 仓库(请用 .env 并加入 .gitignore)
  • 容器内无法访问宿主机 localhost — 使用 host.docker.internal
  • embedding 模型与查询模型不一致导致检索失效
  • Python 依赖冲突:建议用 venv / uv 隔离环境
👥 适合人群
自动化工程师和运维人员项目经理和业务分析师希望减少重复性工作的专业人士数字化转型团队
🎯 使用场景
  • 自动化日常重复性工作,将精力集中于创造性任务
  • 构建数据采集 → 处理 → 输出的完整自动化管线
  • 实现跨平台、跨系统的数据流转和业务协同
⚖️ 优点与不足
✅ 优点
  • +MIT 协议,可免费商用
  • +大幅减少重复性人工操作
  • +可视化流程,清晰直观
  • +可扩展性强,支持复杂场景
⚠️ 不足
  • 初始配置和调试需投入一定时间
  • 强依赖外部服务的稳定性
  • 复杂场景需具备一定技术基础
⚠️ 使用须知

AI Skill Hub 为第三方内容聚合平台,本页面信息基于公开数据整理,不对工具功能和质量作任何法律背书。

建议在沙箱或测试环境中充分验证后,再部署至生产环境,并做好必要的安全评估。

📄 License 说明

✅ MIT 协议 — 最宽松的开源协议之一,可自由商用、修改、分发,仅需保留版权声明。

🔗 相关工具推荐
📰 相关 AI 新闻
🍿 AI 圈相关吃瓜
🗺️ 相关解决方案
🧩 你可能还需要
基于当前 Skill 的能力图谱,自动补全的工具组合
❓ 常见问题 FAQ
解答
💡 AI Skill Hub 点评

AI Skill Hub 点评:FinSight 的核心功能完整,质量良好。对于自动化工程师和运维人员来说,这是一个值得纳入个人工具库的选择。建议先在非生产环境试用,再逐步推广。

⬇️ 获取与下载
⬇ 下载源码 ZIP

✅ MIT 协议 · 可免费商用 · 直接从 aiskill88 服务器下载,无需跳转 GitHub

📚 深入学习 FinSight
查看分步骤安装教程和完整使用指南,快速上手这款工具
🌐 原始信息
原始名称 FinSight
原始描述 开源AI工作流:Multi-agent会话式金融研究平台。提供专业智能体(价格分析、新闻追踪、宏观经济、深度研究),支持实时流式响应、自动生成8章节投资报告和投资组合监控。采用。⭐31 · Python
Topics workflowai-agentsfinancial-analysis
GitHub https://github.com/kkkano/FinSight
License MIT
语言 Python
🔗 原始来源
🐙 GitHub 仓库  https://github.com/kkkano/FinSight

收录时间:2026-05-22 · 更新时间:2026-05-23 · License:MIT · AI Skill Hub 不对第三方内容的准确性作法律背书。