Java 生态多智能体投研框架 —— 动态流水线编排 · 多专家对抗辩论 · 持续进化的决策记忆
一个基于 Spring AI 的多智能体金融分析系统。多个 AI 专家分工协作、对抗辩论,产出可执行的投研决策;系统每日自动复盘持仓、反思决策对错,把经验教训沉淀到向量记忆,让下一次分析更聪明。
- 动态分析流水线:分析阶段不再写死,流水线节点存于数据库,可在「流水线」页面可视化增删、排序、配置每个节点的模型与提示词。
- 多专家对抗辩论:多头 vs 空头研究员多轮辩论,由投资决策节点裁决;风控官独立审查;投资委员会(CIO)做最终研报。
- 投研顾问对话:独立的对话式 AI 顾问,支持多轮对话与 tool-calling,可实时查询 K 线、技术指标、财联社快讯、历史记忆与当前持仓。
- 持续进化的记忆(RAG):两层向量记忆——情境记忆(每次分析的市场快照)与教训记忆(事后反思)。召回时用当前市场情境动态生成 query,并支持跨股票迁移通用教训。
- 每日自动复盘:每个交易日收盘后自动评估持仓,用 LLM 判断决策对错、结论是否被推翻,自动生成反思并存入向量库。
- 模拟交易闭环:分析 → 决策 → 一键执行模拟交易 → 持仓复盘 → 反哺下次分析。
- 实时流式:SSE 推送每个节点的执行进度。
| 层级 | 技术 |
|---|---|
| 后端框架 | Spring Boot 3.4 + Java 21(Virtual Threads) |
| AI 框架 | Spring AI 1.0(Ollama 本地 + OpenAI 兼容 API) |
| 数据库 | TimescaleDB(PG16)+ PgVector 向量库 |
| 前端 | Vue 3 + Element Plus + ECharts + Vite |
| 数据源 | 东方财富 / 腾讯行情 / 财联社快讯(公开接口) |
默认流水线(可在「流水线」页面自定义):
[阶段1 · 研究 — 并行]
技术面 ─┐
消息面 ─┤── Virtual Threads 并行
情绪面 ─┤
基本面 ─┘
│
[阶段2 · 辩论 — 多轮]
多头研究员 ⇄ 空头研究员
│
[阶段3 · 结论]
辩论裁判(读取辩论历史裁决)
│
[阶段4 · 风控]
风控官(独立审查交易计划)
│
[阶段5 · 最终研报]
投资委员会 CIO(产出最终决策)
每个节点可单独配置模型源与模型名;同模型节点串行、不同模型节点并行执行。
docker compose up -d将 src/main/resources/db/ 下的 SQL 脚本按序号导入(01-init.sql 起)。
编辑 src/main/resources/application.yml:
- 本地模型:启动 Ollama 并拉取模型(如
qwen2.5:14b)。 - API 模型:在「系统设置」页面新增模型源(OpenAI 兼容 API),配置 Base URL 与 API Key 环境变量。
./mvnw spring-boot:runcd frontend && npm install && npm run dev| 页面 | 说明 |
|---|---|
| 智能分析 | 选择股票与节点,实时查看流水线执行进度与最终研报 |
| 行情数据 | 多级别 K 线、技术指标、市场情绪、财联社快讯 |
| 模拟交易 | 账户总览、持仓盈亏、买入卖出、一键执行分析决策 |
| 历史报告 | 分析报告归档、决策复盘与人工反思 |
| 流水线 | 可视化编辑分析流水线节点 |
| 经验库 | 查看向量记忆中的情境与教训 |
| 投研顾问 | 与 AI 顾问多轮对话,实时调用工具辅助决策 |
| 系统设置 | 模型源管理、全局默认模型、投研顾问模型配置 |
src/main/java/com/tradingagents/
├── core/ # 编排引擎(Graph + Node + State + Event + 动态流水线)
├── agent/ # Agent 实现与工具(tool-calling)
├── chat/ # 投研顾问对话(AdvisorAgent + Tools + SSE)
├── scheduler/ # 每日持仓复盘与反思
├── memory/ # 向量记忆(PgVector,两层 RAG)
├── model/ # 模型客户端动态解析
├── data/ # 数据层(Eastmoney/Tencent/CLS + 指标引擎 + JPA)
├── trading/ # 模拟交易
└── api/ # REST API + SSE
frontend/src/
├── views/ # 8 个功能页面
└── components/ # KlineChart 等组件
Apache 2.0