金融行业 Multi-Agent 落地实践:智能投顾与风险监控的协同架构设计
金融行业 Multi-Agent 落地实践:智能投顾与风险监控的协同架构设计
副标题:从零搭建端到端、可解释、合规可控的Agent协作平台
第一部分:引言与基础
1. 摘要/引言
问题陈述
在强监管、高风险、强时效性、高专业性的金融服务领域,传统的单Agent或单模型智能系统暴露出了越来越多的局限性:
- 专业性覆盖不足:金融服务是横跨「宏观分析」「微观投研」「组合优化」「合规审查」「实时风控」「用户交互」「运营支撑」等10+专业领域的复杂场景,单个通用大模型(LLM)/ 垂直微调大模型(VLFM)难以同时精通所有环节,且无法处理多模态(研报PDF、财报Word、股票行情K线、新闻文本)、实时性(毫秒级风控)、强约束(证监会、银保监会合规条款)的混合任务;
- 合规与可解释性缺失:金融决策(尤其是涉及用户资金的投顾推荐、触发大额风险预警的操作)必须满足《证券投资顾问业务暂行规定》《商业银行理财业务监督管理办法》等法规的「可解释性要求」——监管机构需要明确决策的「输入依据」「推理逻辑」「责任人/责任模块」,用户需要知道「为什么推荐这只股票/理财」「为什么触发了我的账户风险预警」;但单Agent的「黑箱推理」(即使做了思维链CoT,也是LLM内部的、难以形式化验证的逻辑)根本无法满足这一核心需求;
- 任务拆解与执行效率低:单Agent处理复杂金融任务时(例如「为风险承受能力为R3的35岁男性,配置一份月定投5000元、投资期限3年、预期年化收益率6%-8%、最大回撤不超过5%的基金组合」),通常会尝试「一次性生成所有结果」,或者用简单的多轮对话拆解,但拆解的粒度很难控制——要么太粗,无法保证合规与专业性;要么太细,LLM的上下文窗口(Context Window)、推理成本(Token Cost)、推理延迟(Latency)都会急剧上升,无法满足金融服务的高并发、低延迟需求;
- 实时性与静态性冲突:单Agent的知识边界通常是「静态预训练知识库 + 有限的RAG检索知识库」,无法实时获取A股/美股/港股的实时行情、宏观经济指标(GDP、CPI、PMI的最新发布数据)、上市公司的实时公告/新闻舆情、监管政策的实时更新;即使接入了实时数据接口,单Agent也无法同时处理「投研分析的异步长任务」和「实时风控的同步毫秒级任务」——两种任务的调度策略、优先级、资源分配完全不同。
核心方案
本文提出了一种端到端、可解释、合规可控、双优先级调度的金融行业Multi-Agent协同架构设计,分为「智能投顾子系统(异步长任务子系统)」和「实时风控子系统(同步毫秒级任务子系统)」两个核心部分,通过「Agent协作总线(Agent Collaboration Bus, ACB)」和「共享知识引擎(Shared Knowledge Engine, SKE)」实现跨子系统、跨Agent的协作,同时通过「合规与可解释性引擎(Compliance & Interpretability Engine, CIE)」保证所有决策的合规性、可解释性、可追溯性。
在技术选型上,我们采用:
- 多模态大语言模型基座(Multi-Modal LLM Base):通义千问4-Vision/Qwen-VL-Max(中文金融多模态能力强、官方合规接口支持好)+ Claude 3.5 Sonnet(英文研报/宏观数据处理能力强)作为双基座,通过基座路由Agent动态选择;
- Agent框架:LangGraph(适合构建复杂的、有状态的、可循环的Agent协作流程,支持多分支、条件判断、循环重试、记忆管理)作为智能投顾子系统的Agent协作框架,基于Netty自研轻量级、高并发的实时风控Agent协作框架;
- 实时数据:东方财富Choice金融终端API(实时行情、财报、公告、研报)+ Wind资讯API(宏观经济指标、监管政策)+ 新浪财经舆情API(实时新闻、股吧评论、社交媒体舆情)作为实时数据源;
- 向量数据库:Milvus 2.4(支持多模态向量检索、大规模数据存储、高并发查询、可扩展集群)作为共享知识引擎的核心组件;
- 关系型数据库:PostgreSQL 16 + TimescaleDB(时序数据库插件,适合存储实时行情、实时风控日志、合规审计日志)作为结构化数据存储组件;
- 任务调度引擎:Celery 5.4 + Redis 7.2(作为消息队列和结果存储)作为异步长任务的调度引擎;
- 双优先级调度器:自研的基于「时间片轮转 + 优先级抢占」的调度器,保证实时风控子系统的同步毫秒级任务永远优先于智能投顾子系统的异步长任务;
- API网关:Kong 3.8(支持限流、熔断、认证、授权、日志记录)作为外部服务(如APP、WEB端、第三方金融机构)和内部系统的统一入口。
主要成果/价值
读者读完本文后,能够:
- 理解金融行业Multi-Agent系统的核心设计原则:包括「专业性分工」「合规与可解释性优先」「双优先级调度」「状态一致性」「可扩展性」「容错性」;
- 掌握金融行业Multi-Agent系统的核心组件设计:包括「智能投顾子系统」「实时风控子系统」「Agent协作总线」「共享知识引擎」「合规与可解释性引擎」「双优先级调度器」;
- 从零搭建一个可运行的简化版金融Multi-Agent系统:包括环境安装、数据准备、核心Agent实现、协作流程设计、合规与可解释性验证、结果展示;
- 了解金融行业Multi-Agent系统的最佳实践与常见问题:包括「如何选择合适的LLM/VLFM」「如何设计合规的思维链CoT」「如何优化实时风控的延迟」「如何处理Agent协作的状态一致性问题」「如何控制Token成本」;
- 了解金融行业Multi-Agent系统的未来发展趋势:包括「Agent自我进化」「多模态Agent协作的深度融合」「联邦学习+Multi-Agent的隐私保护」「量子计算+Multi-Agent的高并发/低延迟优化」。
文章导览
本文分为四个部分,共16个章节:
- 第一部分:引言与基础:介绍问题背景、核心方案、主要成果、目标读者、前置知识、文章目录;
- 第二部分:核心内容:介绍金融行业Multi-Agent系统的核心设计原则、核心概念与理论基础、环境准备、核心组件的分步实现(包括智能投顾子系统、实时风控子系统、Agent协作总线、共享知识引擎、合规与可解释性引擎、双优先级调度器)、关键代码解析与深度剖析;
- 第三部分:验证与扩展:展示简化版系统的运行结果、性能测试数据、最佳实践、常见问题与解决方案、未来展望;
- 第四部分:总结与附录:总结文章的核心要点、参考资料、附录(包括完整的源代码链接、完整的配置文件、合规审计日志示例、可解释性报告示例)。
2. 目标读者与前置知识
目标读者
本文适合以下几类读者:
- 金融科技公司的技术负责人/架构师:负责设计、搭建金融行业的智能系统,需要了解Multi-Agent技术在金融场景的落地实践;
- 金融行业的算法工程师/AI工程师:负责开发智能投顾、风险监控、合规审查等金融AI应用,需要掌握Multi-Agent系统的核心组件设计与实现;
- 有一定基础的AI爱好者/学生:对金融AI和Multi-Agent技术感兴趣,希望从零搭建一个可运行的简化版金融Multi-Agent系统;
- 金融行业的产品经理/业务负责人:负责规划金融AI产品,需要了解Multi-Agent技术的能力边界和应用场景。
前置知识
阅读本文前,读者需要具备以下基础知识或技能:
- Python编程:熟练掌握Python 3.10+的语法,了解异步编程(asyncio)、多线程/多进程编程;
- 机器学习/深度学习基础:了解大语言模型(LLM)的基本原理、向量嵌入(Embedding)的基本原理、向量检索的基本原理;
- 金融基础知识:了解证券投资顾问业务的基本流程、风险承受能力评估(R1-R5)的基本方法、基金组合优化的基本原理、实时风控的基本规则(如单笔交易金额阈值、单日累计交易金额阈值、持仓集中度阈值、VaR风险价值阈值);
- 数据库基础:了解关系型数据库(PostgreSQL)的基本操作、向量数据库(Milvus)的基本操作、时序数据库(TimescaleDB)的基本操作;
- 消息队列基础:了解Redis的基本操作、Celery的基本原理;
- API开发基础:了解FastAPI的基本操作、RESTful API的设计原则;
- Docker基础(可选但推荐):了解Docker的基本操作、Docker Compose的基本原理,方便快速搭建环境。
3. 文章目录
第一部分:引言与基础
- 摘要/引言
- 目标读者与前置知识
- 文章目录
第二部分:核心内容
- 金融行业Multi-Agent系统的核心设计原则
- 核心概念与理论基础
5.1 金融行业的核心业务场景拆解
5.2 Multi-Agent系统的核心概念
5.3 金融Multi-Agent系统的核心概念结构与ER实体关系图
5.4 金融Multi-Agent系统的核心算法基础
5.4.1 风险承受能力评估算法
5.4.2 基金组合优化算法(马科维茨均值-方差模型、Black-Litterman模型)
5.4.3 实时风控算法(VaR风险价值模型、蒙特卡洛模拟、压力测试)
5.4.4 合规审查算法(规则引擎+LLM/VLFM混合审查) - 环境准备
6.1 软件与库的版本清单
6.2 Docker Compose一键部署环境
6.3 手动安装环境
6.4 数据准备(结构化数据、非结构化数据、多模态数据) - 智能投顾子系统的分步实现
7.1 智能投顾子系统的业务流程设计
7.2 智能投顾子系统的核心Agent设计
7.2.1 用户交互Agent(User Interaction Agent, UIA)
7.2.2 风险承受能力评估Agent(Risk Tolerance Assessment Agent, RTAA)
7.2.3 需求拆解与任务分配Agent(Requirement Decomposition & Task Allocation Agent, RDTAA)
7.2.4 宏观分析Agent(Macroeconomic Analysis Agent, MAA)
7.2.5 微观投研Agent(Micro Investment Research Agent, MIRA)
7.2.6 组合优化Agent(Portfolio Optimization Agent, POA)
7.2.7 合规审查Agent(投顾方向,Compliance Review Agent - Investment Advisory, CRA-IA)
7.2.8 可解释性报告生成Agent(投顾方向,Interpretability Report Generation Agent - Investment Advisory, IRGA-IA)
7.3 基于LangGraph的智能投顾子系统协作流程实现
7.4 智能投顾子系统的API接口设计 - 实时风控子系统的分步实现
8.1 实时风控子系统的业务流程设计
8.2 实时风控子系统的核心Agent设计
8.2.1 交易数据采集Agent(Transaction Data Collection Agent, TDCA)
8.2.2 实时行情采集Agent(Real-time Market Data Collection Agent, RMDCA)
8.2.3 规则引擎Agent(Rule Engine Agent, REA)
8.2.4 VaR计算Agent(VaR Calculation Agent, VCA)
8.2.5 合规审查Agent(风控方向,Compliance Review Agent - Risk Control, CRA-RC)
8.2.6 风险预警Agent(Risk Alert Agent, RAA)
8.2.7 可解释性报告生成Agent(风控方向,Interpretability Report Generation Agent - Risk Control, IRGA-RC)
8.3 基于Netty的实时风控Agent协作框架实现
8.4 实时风控子系统的API接口设计 - Agent协作总线(ACB)的分步实现
9.1 ACB的核心功能设计
9.2 ACB的消息协议设计
9.3 ACB的核心实现源代码 - 共享知识引擎(SKE)的分步实现
10.1 SKE的核心组件设计
10.1.1 多模态向量嵌入模块(Multi-Modal Embedding Module, MMEM)
10.1.2 向量检索模块(Vector Retrieval Module, VRM)
10.1.3 结构化数据查询模块(Structured Data Query Module, SDQM)
10.1.4 知识更新模块(Knowledge Update Module, KUM)
10.2 SKE的核心实现源代码 - 合规与可解释性引擎(CIE)的分步实现
11.1 CIE的核心功能设计
11.2 合规审查规则库的设计与实现
11.3 可解释性报告的设计与实现
11.4 CIE的核心实现源代码 - 双优先级调度器的分步实现
12.1 双优先级调度器的核心算法设计
12.2 双优先级调度器的核心实现源代码 - 关键代码解析与深度剖析
13.1 基于LangGraph的智能投顾子系统协作流程解析
13.2 基于Netty的实时风控Agent协作框架解析
13.3 多模态向量检索的优化解析
13.4 双优先级调度器的性能权衡解析
13.5 Token成本控制的策略解析
第三部分:验证与扩展
- 结果展示与验证
14.1 简化版系统的运行环境
14.2 智能投顾子系统的运行结果展示与验证
14.3 实时风控子系统的运行结果展示与验证
14.4 合规与可解释性报告的展示与验证
14.5 性能测试数据展示 - 性能优化与最佳实践
15.1 智能投顾子系统的性能优化
15.2 实时风控子系统的性能优化
15.3 共享知识引擎的性能优化
15.4 金融行业Multi-Agent系统的最佳实践 - 常见问题与解决方案
16.1 技术类常见问题
16.2 业务类常见问题
16.3 合规类常见问题 - 未来展望与扩展方向
17.1 金融行业Multi-Agent系统的未来发展趋势(附问题演变发展历史的Markdown表格)
17.2 当前简化版系统的扩展方向
第四部分:总结与附录
- 总结
- 参考资料
- 附录
20.1 完整的源代码链接(GitHub)
20.2 完整的Docker Compose配置文件
20.3 完整的requirements.txt文件
20.4 合规审计日志示例
20.5 可解释性报告示例(投顾方向、风控方向)
20.6 性能测试脚本
第二部分:核心内容
4. 金融行业Multi-Agent系统的核心设计原则
金融行业是强监管、高风险、强时效性、高专业性的行业,因此金融行业Multi-Agent系统的设计原则与其他行业(如电商、教育、医疗)有很大的不同——合规与可解释性优先,然后才是专业性、时效性、可扩展性、容错性。
本文提出的金融行业Multi-Agent系统的核心设计原则如下:
4.1 专业性分工原则(Professional Division of Labor Principle)
金融服务是横跨10+专业领域的复杂场景,单个Agent无法同时精通所有环节,因此必须将复杂的金融任务拆解为多个粒度合适的、专业性强的子任务,然后为每个子任务设计专门的、精通该领域的Agent。
例如,将「为风险承受能力为R3的35岁男性,配置一份月定投5000元、投资期限3年、预期年化收益率6%-8%、最大回撤不超过5%的基金组合」这个复杂任务拆解为以下子任务:
- 用户需求确认子任务:由用户交互Agent负责,与用户进行多轮对话,确认用户的风险承受能力、投资金额、投资期限、预期收益、最大回撤等核心需求;
- 风险承受能力复核子任务:由风险承受能力评估Agent负责,根据用户的历史交易数据、历史持仓数据、用户填写的风险承受能力问卷、用户的年龄、职业、收入、家庭资产负债情况等,对用户的风险承受能力进行形式化验证的复核,而不是仅仅依赖用户填写的问卷;
- 宏观分析子任务:由宏观分析Agent负责,检索最新的宏观经济指标(GDP、CPI、PMI、M2、利率、汇率)、监管政策、全球经济形势,分析当前的宏观经济环境,给出「大类资产配置建议」(如股票型基金占比30%、债券型基金占比50%、货币型基金占比10%、商品型基金占比10%);
- 微观投研子任务:由微观投研Agent负责,根据宏观分析Agent给出的大类资产配置建议,检索最新的基金数据(基金净值、基金规模、基金经理、基金持仓、基金历史业绩、基金评级、基金最大回撤、基金夏普比率、基金索提诺比率)、上市公司财报、上市公司公告、研报、新闻舆情,筛选出符合要求的「候选基金池」(如从10000+只基金中筛选出100只符合要求的候选基金);
- 组合优化子任务:由组合优化Agent负责,根据候选基金池、用户的风险承受能力、投资金额、投资期限、预期收益、最大回撤等,使用马科维茨均值-方差模型或Black-Litterman模型,生成「最优基金组合」;
- 合规审查子任务(投顾方向):由合规审查Agent(投顾方向)负责,根据《证券投资顾问业务暂行规定》《公开募集证券投资基金销售机构监督管理办法》等法规,对最优基金组合进行规则引擎+LLM/VLFM混合审查,确保组合中没有违规的基金(如风险等级超过用户风险承受能力的基金、基金经理管理规模过大的基金、基金历史业绩造假的基金),确保组合的推荐理由符合法规要求(如不能承诺收益、不能夸大历史业绩、不能贬低其他基金);
- 可解释性报告生成子任务(投顾方向):由可解释性报告生成Agent(投顾方向)负责,根据用户的需求确认过程、风险承受能力复核过程、宏观分析过程、微观投研过程、组合优化过程、合规审查过程,生成形式化的、可追溯的、符合法规要求的可解释性报告;
- 组合推荐子任务:由用户交互Agent负责,将最优基金组合和可解释性报告一起推荐给用户,并解答用户的疑问。
4.2 合规与可解释性优先原则(Compliance & Interpretability First Principle)
金融决策必须满足「可解释性要求」——监管机构需要明确决策的「输入依据」「推理逻辑」「责任人/责任模块」,用户需要知道「为什么推荐这只股票/理财」「为什么触发了我的账户风险预警」;同时,金融决策必须满足「合规要求」——不能违反任何监管法规。
因此,金融行业Multi-Agent系统的设计必须遵循「合规与可解释性优先,然后才是其他原则」的原则,具体措施如下:
- 所有Agent的推理过程必须形式化记录:每个Agent的推理过程(包括输入数据、调用的工具、执行的步骤、中间结果、最终结果)必须以结构化的JSON格式记录到TimescaleDB的「Agent推理日志表」中,同时生成可追溯的唯一ID(Trace ID),方便监管机构和用户查询;
- 所有Agent的决策必须经过合规审查:智能投顾子系统的最优基金组合必须经过合规审查Agent(投顾方向)的审查,实时风控子系统的风险预警必须经过合规审查Agent(风控方向)的审查,只有审查通过的决策才能执行;
- 所有决策必须生成形式化的可解释性报告:智能投顾子系统的最优基金组合必须生成「可解释性报告(投顾方向)」,实时风控子系统的风险预警必须生成「可解释性报告(风控方向)」,报告必须包含「输入依据」「推理逻辑」「责任人/责任模块」「合规审查结果」等核心内容;
- 合规审查规则库必须可配置、可版本控制:合规审查规则库(包括规则引擎的规则和LLM/VLFM的提示词模板)必须存储在PostgreSQL的「合规审查规则库表」中,同时支持可配置、可版本控制、可回滚,方便根据监管政策的实时更新进行调整;
- 禁止使用LLM/VLFM的黑箱推理作为唯一决策依据:所有金融决策必须结合「规则引擎的规则」「形式化的算法」和「LLM/VLFM的推理」,其中「规则引擎的规则」和「形式化的算法」是决策的主要依据,「LLM/VLFM的推理」是决策的辅助依据——LLM/VLFM主要负责「多模态数据的理解」「自然语言的生成」「复杂问题的初步拆解」等工作,而不是直接做出金融决策。
4.3 双优先级调度原则(Dual Priority Scheduling Principle)
金融行业的任务可以分为两类:
- 同步毫秒级任务(Synchronous Millisecond-level Task):例如实时风控任务——单笔交易的合规审查、实时VaR计算、风险预警,这类任务的优先级最高,必须在毫秒级(通常要求≤100ms)内完成,否则会影响用户的交易体验,甚至造成用户的资金损失;
- 异步长任务(Asynchronous Long Task):例如智能投顾任务——宏观分析、微观投研、组合优化、可解释性报告生成,这类任务的优先级较低,可以在秒级或分钟级内完成,对用户的交易体验影响较小。
因此,金融行业Multi-Agent系统的调度器必须遵循「双优先级调度原则」——保证同步毫秒级任务永远优先于异步长任务,具体措施如下:
- 任务分类与优先级标记:所有进入系统的任务必须首先进行「分类与优先级标记」——同步毫秒级任务标记为「P0优先级」,异步长任务标记为「P1优先级」;
- 双队列设计:调度器内部维护两个队列——「P0队列」(用于存储同步毫秒级任务)和「P1队列」(用于存储异步长任务);
- 时间片轮转 + 优先级抢占:调度器采用「时间片轮转 + 优先级抢占」的调度算法——
- 首先检查「P0队列」是否为空,如果不为空,则优先处理「P0队列」中的任务,直到「P0队列」为空;
- 如果「P0队列为空」,则检查「P1队列」是否为空,如果不为空,则使用「时间片轮转算法」处理「P1队列」中的任务,每个任务的时间片为100ms;
- 在处理「P1队列」中的任务时,如果「P0队列」中有新的任务进入,则立即抢占当前正在处理的「P1任务」的CPU资源,优先处理「P0队列」中的任务,直到「P0队列」为空,然后再继续处理被抢占的「P1任务」。
4.4 状态一致性原则(State Consistency Principle)
金融行业Multi-Agent系统是一个有状态的分布式系统——多个Agent需要共享「用户状态」「任务状态」「知识库状态」等核心状态,因此必须保证「状态一致性」,否则会出现「用户的风险承受能力被重复评估」「组合优化的结果与微观投研的候选基金池不一致」「风险预警的结果与实时行情不一致」等问题。
因此,金融行业Multi-Agent系统的设计必须遵循「状态一致性原则」,具体措施如下:
- 共享知识引擎(SKE)作为唯一的状态存储中心:所有Agent需要访问的核心状态(包括用户状态、任务状态、知识库状态)必须存储在「共享知识引擎(SKE)」中,而不是存储在单个Agent的本地内存中——SKE内部的关系型数据库(PostgreSQL)存储结构化的状态(如用户ID、用户风险承受能力、任务ID、任务状态、候选基金池),向量数据库(Milvus)存储非结构化的状态(如研报的向量嵌入、财报的向量嵌入、新闻舆情的向量嵌入),时序数据库(TimescaleDB)存储时序的状态(如实时行情、实时VaR、Agent推理日志、合规审计日志);
- 使用分布式锁保证状态的并发安全:当多个Agent需要同时修改同一个状态时(如多个微观投研Agent同时修改候选基金池),必须使用「分布式锁」(Redis Redlock)保证状态的并发安全;
- 使用状态机管理任务状态:所有任务的状态(如「待处理」「处理中」「已完成」「已失败」「已重试」「已暂停」)必须使用「状态机」(LangGraph内置的状态机或自研的状态机)进行管理,禁止直接修改任务状态——状态机的状态转移必须是「原子的」「可追溯的」。
4.5 可扩展性原则(Scalability Principle)
金融行业的业务量(如用户数、交易量、实时行情数据量)是不断增长的,因此金融行业Multi-Agent系统的设计必须遵循「可扩展性原则」——支持「水平扩展」和「垂直扩展」,具体措施如下:
- 微服务架构设计:将金融行业Multi-Agent系统拆解为多个独立的微服务(如智能投顾微服务、实时风控微服务、Agent协作总线微服务、共享知识引擎微服务、合规与可解释性引擎微服务、API网关微服务),每个微服务可以独立部署、独立扩展、独立升级;
- 无状态Agent设计:所有Agent的设计必须是「无状态的」——Agent的本地内存中不存储任何核心状态,所有核心状态都存储在「共享知识引擎(SKE)」中,这样可以方便地对Agent进行「水平扩展」(如增加微观投研Agent的数量、增加VaR计算Agent的数量);
- 可扩展的向量数据库集群设计:使用Milvus 2.4的「分布式集群模式」(包括Proxy节点、Query节点、Index节点、Data节点、Etcd元数据存储节点、MinIO对象存储节点),可以根据数据量的增长和查询并发量的增长,独立扩展各个节点的数量;
- 可扩展的消息队列集群设计:使用Redis 7.2的「哨兵模式」或「集群模式」作为Celery的消息队列和结果存储,可以根据异步长任务的数量增长,独立扩展Redis节点的数量;
- 可扩展的规则引擎集群设计:使用Drools的「分布式集群模式」作为规则引擎,可以根据规则数量的增长和规则查询并发量的增长,独立扩展Drools节点的数量。
4.6 容错性原则(Fault Tolerance Principle)
金融行业的业务是24小时不间断的,因此金融行业Multi-Agent系统的设计必须遵循「容错性原则」——支持「故障自动检测」「故障自动恢复」「故障自动转移」,具体措施如下:
- 多副本部署设计:所有微服务(包括智能投顾微服务、实时风控微服务、Agent协作总线微服务、共享知识引擎微服务、合规与可解释性引擎微服务、API网关微服务)都必须采用「多副本部署设计」,每个微服务至少部署2个副本,这样当某个副本发生故障时,其他副本可以立即接管工作;
- 健康检查设计:所有微服务都必须提供「健康检查接口」(如HTTP GET /health),API网关(Kong)会定期(如每10秒)调用各个微服务的健康检查接口,如果某个微服务的健康检查接口连续3次返回失败,则API网关会将该微服务的副本从「负载均衡池」中移除,同时发送告警通知;
- 任务重试设计:所有异步长任务都必须支持「任务重试设计」——当某个异步长任务发生故障时(如微观投研Agent调用东方财富Choice金融终端API失败),Celery会根据「重试策略」(如重试次数最多3次、重试间隔为指数增长:1s、2s、4s)自动重试该任务,直到任务成功或重试次数用完;
- 分布式事务设计:当多个微服务需要同时修改多个状态时(如智能投顾微服务生成最优基金组合后,需要同时修改「用户状态表」「任务状态表」「候选基金池表」「最优基金组合表」),必须使用「分布式事务」(如Seata AT模式)保证状态的一致性;
- 数据备份与恢复设计:所有数据(包括PostgreSQL的结构化数据、Milvus的向量数据、TimescaleDB的时序数据、MinIO的对象存储数据)都必须支持「数据备份与恢复设计」——定期(如每天凌晨2点)进行全量备份,每小时进行增量备份,同时支持「异地备份」,方便在发生数据灾难时进行恢复。
5. 核心概念与理论基础
5.1 金融行业的核心业务场景拆解
为了更好地设计金融行业Multi-Agent系统,我们首先需要对金融行业的核心业务场景进行深入拆解——本文主要聚焦于「智能投顾业务场景」和「实时风控业务场景」,这两个场景是金融科技公司最核心、最常用的AI应用场景。
5.1.1 智能投顾业务场景拆解
智能投顾(Robo-Advisor)是指「基于人工智能技术,为用户提供自动化的、个性化的基金/股票/理财组合推荐服务」,其核心业务流程如下(如图5-1所示):
- 用户注册与登录:用户通过APP、WEB端或第三方金融机构的接口注册并登录系统;
- 风险承受能力评估:用户填写风险承受能力问卷,系统根据用户的历史交易数据、历史持仓数据、用户填写的风险承受能力问卷、用户的年龄、职业、收入、家庭资产负债情况等,对用户的风险承受能力进行评估(R1-R5,R1为最低风险承受能力,R5为最高风险承受能力);
- 用户需求确认:用户通过自然语言或表单的方式提交自己的投资需求(如投资金额、投资期限、预期收益、最大回撤、投资偏好);
- 宏观分析:系统检索最新的宏观经济指标、监管政策、全球经济形势,分析当前的宏观经济环境,给出大类资产配置建议;
- 微观投研:系统根据宏观分析给出的大类资产配置建议,检索最新的基金/股票/理财数据、上市公司财报、上市公司公告、研报、新闻舆情,筛选出符合要求的候选标的池;
- 组合优化:系统根据候选标的池、用户的风险承受能力、投资金额、投资期限、预期收益、最大回撤等,使用马科维茨均值-方差模型或Black-Litterman模型,生成最优标的组合;
- 合规审查:系统根据监管法规,对最优标的组合进行合规审查,确保组合中没有违规的标的,确保组合的推荐理由符合法规要求;
- 可解释性报告生成:系统根据用户的需求确认过程、风险承受能力评估过程、宏观分析过程、微观投研过程、组合优化过程、合规审查过程,生成形式化的、可追溯的、符合法规要求的可解释性报告;
- 组合推荐与答疑:系统将最优标的组合和可解释性报告一起推荐给用户,并解答用户的疑问;
- 组合调优建议:系统定期(如每周、每月)或根据实时行情、实时新闻舆情、监管政策的实时更新,为用户提供组合调优建议;
- 交易执行:用户确认组合或组合调优建议后,系统自动执行交易(买入、卖出、定投)。
图5-1:智能投顾业务场景流程图
5.1.2 实时风控业务场景拆解
实时风控(Real-time Risk Control)是指「基于实时数据,对用户的交易行为、账户状态、持仓状态进行实时监控,及时发现并预警风险」,其核心业务流程如下(如图5-2所示):
- 实时数据采集:系统实时采集用户的交易数据、实时行情数据、实时新闻舆情数据、监管政策的实时更新数据;
- 实时数据清洗与预处理:系统对采集到的实时数据进行清洗与预处理(如去除噪声、统一格式、填充缺失值);
- 规则引擎审查:系统根据预设的风控规则(如单笔交易金额阈值、单日累计交易金额阈值、持仓集中度阈值、单只标的持仓时间阈值),对用户的交易行为、账户状态、持仓状态进行实时审查;
- VaR计算:系统根据用户的持仓数据、实时行情数据,使用VaR风险价值模型(如历史模拟法、蒙特卡洛模拟法、参数法),实时计算用户的账户VaR;
- 压力测试:系统根据预设的压力测试场景(如股市暴跌30%、利率上升200BP、汇率暴跌10%),对用户的账户进行实时压力测试;
- 合规审查:系统根据监管法规,对风险预警的触发条件、预警级别、预警内容进行合规审查;
- 风险预警:系统根据规则引擎审查的结果、VaR计算的结果、压力测试的结果、合规审查的结果,生成风险预警(预警级别分为「蓝色预警」「黄色预警」「橙色预警」「红色预警」);
- 可解释性报告生成:系统根据实时数据采集过程、实时数据清洗与预处理过程、规则引擎审查过程、VaR计算过程、压力测试过程、合规审查过程,生成形式化的、可追溯的、符合法规要求的可解释性报告;
- 风险预警发送:系统将风险预警和可解释性报告一起发送给用户(如APP推送、短信、邮件)、风控人员(如内部OA系统、短信、邮件)、监管机构(如合规审计系统);
- 风险处置:风控人员根据风险预警和可解释性报告,对用户的账户进行风险处置(如限制交易、强制平仓、调整持仓);
- 风险处置记录与审计:系统对风险处置的过程进行记录,并生成合规审计日志。
图5-2:实时风控业务场景流程图
5.2 Multi-Agent系统的核心概念
在进入金融行业Multi-Agent系统的设计与实现之前,我们首先需要对Multi-Agent系统的核心概念有一个统一的认知。
5.2.1 什么是Agent?
Agent(智能体)是指「能够感知环境、能够做出决策、能够执行动作、能够与其他Agent进行交互的自治实体」,其核心特征如下(如图5-3所示):
- 自治性(Autonomy):Agent能够在没有人类或其他Agent的直接干预下,自主地做出决策和执行动作;
- 感知能力(Perception):Agent能够通过传感器(如API接口、数据库查询接口、消息队列订阅接口)感知环境的变化;
- 决策能力(Decision Making):Agent能够根据感知到的环境信息、内部状态、预设的目标,做出决策;
- 执行能力(Action):Agent能够通过执行器(如API接口、数据库写入接口、消息队列发布接口)执行动作,改变环境的状态;
- 交互能力(Interaction):Agent能够通过Agent协作总线与其他Agent进行交互(如发送消息、接收消息、协商、协作);
- 学习能力(Learning)(可选):Agent能够根据环境的变化和执行动作的结果,不断学习和优化自己的决策能力。
图5-3:Agent的核心架构图
5.2.2 什么是Multi-Agent系统?
Multi-Agent系统(多智能体系统,MAS)是指「由多个Agent组成的、能够通过Agent协作总线进行交互和协作的分布式系统」,其核心特征如下:
- 分布式(Distributed):Multi-Agent系统中的多个Agent可以部署在不同的服务器上,通过网络进行连接;
- 异构性(Heterogeneous)(可选):Multi-Agent系统中的多个Agent可以是不同类型的(如基于规则的Agent、基于LLM/VLFM的Agent、基于形式化算法的Agent);
- 协作性(Cooperation):Multi-Agent系统中的多个Agent可以为了实现共同的目标(如为用户配置最优基金组合、为用户的账户进行实时风控),进行协作;
- 协商性(Negotiation)(可选):Multi-Agent系统中的多个Agent可以在存在利益冲突的情况下,进行协商,达成一致;
- 竞争性(Competition)(可选):Multi-Agent系统中的多个Agent可以为了实现各自的目标,进行竞争;
- 涌现性(Emergence):Multi-Agent系统中的多个Agent通过简单的交互和协作,可以产生单个Agent无法产生的复杂行为和结果。
5.2.3 Multi-Agent系统的分类
根据Agent之间的关系,Multi-Agent系统可以分为以下几类:
- 协作型Multi-Agent系统(Cooperative MAS):Agent之间的关系是协作的,所有Agent都为了实现共同的目标而努力——本文提出的金融行业Multi-Agent系统就是典型的协作型Multi-Agent系统;
- 竞争型Multi-Agent系统(Competitive MAS):Agent之间的关系是竞争的,每个Agent都为了实现自己的目标而努力,甚至会损害其他Agent的利益——例如股票交易市场中的多个量化交易Agent;
- 混合型Multi-Agent系统(Hybrid MAS):Agent之间的关系是混合的,既有协作的关系,也有竞争的关系——例如电商平台中的多个商家Agent和多个用户Agent。
根据Agent的决策方式,Multi-Agent系统可以分为以下几类:
- 集中式Multi-Agent系统(Centralized MAS):有一个中央控制器(Central Controller)负责所有Agent的决策和任务分配——这种系统的优点是控制简单、状态一致性容易保证,缺点是可扩展性差、容错性差(中央控制器发生故障时,整个系统都会瘫痪);
- 分布式Multi-Agent系统(Decentralized MAS):没有中央控制器,所有Agent都是自治的,能够自主地做出决策和任务分配——这种系统的优点是可扩展性好、容错性好,缺点是控制复杂、状态一致性难以保证;
- 混合式Multi-Agent系统(Hybrid MAS):既有中央控制器负责全局的决策和任务分配,也有自治的Agent负责局部的决策和任务分配——本文提出的金融行业Multi-Agent系统就是典型的混合式Multi-Agent系统:需求拆解与任务分配Agent(RDTAA)负责全局的决策和任务分配,其他Agent负责局部的决策和任务执行。
5.3 金融Multi-Agent系统的核心概念结构与ER实体关系图
5.3.1 金融Multi-Agent系统的核心概念结构
本文提出的金融行业Multi-Agent系统的核心概念结构如下(如图5-4所示):
- 用户(User):使用金融服务的个人或机构;
- 任务(Task):用户提交的或系统自动触发的金融任务(如智能投顾任务、实时风控任务);
- Agent(智能体):负责执行任务的自治实体(如用户交互Agent、风险承受能力评估Agent、宏观分析Agent、微观投研Agent、组合优化Agent、合规审查Agent、可解释性报告生成Agent、交易数据采集Agent、实时行情采集Agent、规则引擎Agent、VaR计算Agent、压力测试Agent、风险预警Agent);
- 共享知识引擎(SKE):存储所有核心状态的唯一中心(包括用户状态、任务状态、知识库状态);
- Agent协作总线(ACB):负责Agent之间的消息传递和协作的中间件;
- 合规与可解释性引擎(CIE):负责所有决策的合规审查和可解释性报告生成的核心组件;
- 双优先级调度器(DPS):负责任务的分类、优先级标记、调度的核心组件;
- 环境(Environment):包括外部数据源(如东方财富Choice金融终端API、Wind资讯API、新浪财经舆情API)、外部系统(如APP、WEB端、第三方金融机构、内部OA系统、合规审计系统)、金融市场(如A股、美股、港股、债券市场、商品市场)。
更多推荐
所有评论(0)