Skip to content

Repository files navigation

FinAgent

面向个人投资者的只读金融 AI 投研原型。项目以可核验数据为基础,将行情、财务、机构共识和市场信息组织为轻量研究结论,并通过受约束的 Agent 流程完成解释。

FinAgent 产品预览

当前能力

  • 单标的投前研究:证券消歧、行情快照、历史价格、财务指标、分析师共识和资讯线索。
  • 市场雷达:主要指数代理、板块表现以及 3/5 日主力资金动向。
  • Evidence 证据链:保留来源、数据时间、计算区间和确定性指标口径。
  • 受约束 AI 解读:LLM 只解释结构化事实,不负责金融数值计算,也不执行交易。
  • 响应式界面:围绕“结论 → 依据 → 证据详情”组织桌面端和移动端信息。

Agent 闭环

用户问题
  → 意图识别与标的消歧
  → 受控 Skill 调用
  → Futu OpenAPI / 本地缓存
  → Python 确定性指标计算
  → Evidence 上下文构建
  → LLM 选择并解释关键信号
  → 输出校验与 data_only 降级

系统限制单次任务调用次数,并在模型不可用、数据过期或证据不足时降级为只展示可核验数据。

技术栈

  • Backend:Python、FastAPI、Pydantic、SQLite
  • Data:Futu OpenAPI、OpenD Gateway;保留 Tushare A 股 Adapter
  • AI:GLM-4.7-Flash、结构化 Prompt、Context Builder、Output Validator
  • Frontend:React、Next.js、TypeScript、Vinext
  • Quality:Pytest、Node Test、ESLint

数据与模型边界

Futu SDK 只存在于 Provider Adapter 内,业务层使用统一领域模型。收益率、波动率、最大回撤、财务增速和资金强度均由 Python 确定性计算;模型只能基于白名单上下文进行归纳,不允许补全缺失的新闻正文或编造数据。

资金流强度采用“主力净流入 ÷ 成交额”的统一口径,用于观察交易资金方向,不等同于 ETF 申购赎回或真实基金净流入。

本地运行

1. 后端

要求 Python 3.11+,并在本机启动 Futu OpenD。

python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
python -m finagent.cli serve-api --port 8000

根据自己的账户配置 .env。不要提交 .env、SQLite 数据库或 OpenD 登录信息。

2. 前端

要求 Node.js 22.13+。

cd web
npm install
cp .env.example .env.local
npm run dev

默认访问 http://localhost:3001,后端接口文档位于 http://127.0.0.1:8000/docs

测试

pytest -q
cd web && npm test

当前项目已覆盖数据标准化、缓存、异常边界、指标计算、Skill 输出、API 合约和前端渲染测试。

项目文档

当前阶段

本项目是金融 AIPM 作品集和可运行 MVP,不是生产投资顾问服务。当前仅提供只读研究辅助,不连接交易账户,不给出收益承诺,也不构成投资建议。

About

可核验数据驱动的只读金融 AI 投研助手:Futu OpenAPI、确定性金融指标与受约束 Agent 工作流

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages