在金融领域引入多代理系统(Multi-Agent System)已成为量化交易平台的重要演进方向。开源项目 ai-hedge-fund 展示了一种完整的多代理量化交易架构设计,该系统包含 19 个专业化代理,覆盖从投资理念生成、因子分析到风险控制的全链路决策流程。本文将从角色分工、数据流编排与策略执行三个工程维度,剖析这一架构的核心设计原则与可落地参数。

角色分工:三层代理体系的职责边界

该系统将 19 个代理划分为三个层级,形成明确的职责边界。第一层为投资理念代理,包含 13 个基于知名投资者风格的 archetype 代理:Aswath Damodaran 代理专注估值与叙事分析、Ben Graham 代理遵循价值投资的安全边际原则、Bill Ackman 代理扮演激进维权投资者角色、Cathie Wood 代理代表成长股投资流派、Charlie Munger 代理践行优质企业合理价格买入、Michael Burry 代理聚焦反向深度价值挖掘、Mohnish Pabrai 代理遵循 Dhandho 低风险高回报策略、Nassim Taleb 代理负责黑天鹅风险与反脆弱性分析、Peter Lynch 代理寻找日常业务中的十倍股、Phil Fisher 代理通过深度调研获取增长信息、Rakesh Jhunjhunwala 代理代表印度市场的多头视角、Stanley Druckenmiller 代理关注宏观对冲与非对称机会、Warren Buffett 代理坚持优质公司合理价格的核心原则。

第二层为分析代理,包含四个专项能力单元:Valuation Agent 计算股票内在价值并生成交易信号、Sentiment Agent 分析市场情绪并输出情绪指标、Fundamentals Agent 解析基本面数据包括财务指标与盈利预测、Technicals Agent 处理技术面指标如均线、RSI 与 MACD 等趋势信号。

第三层为决策代理,这是整个系统的控制中枢:Risk Manager 计算风险度量指标并设定持仓限额、Portfolio Manager 汇总所有代理的输出做出最终交易决策并生成订单。这种三层划分确保了分析逻辑与风险控制的解耦,同时通过 Portfolio Manager 保留了集中式决策的完整性。

在工程实践中,代理数量并非越多越好。建议初始配置为 4 到 6 个代理组成的最小可行集合,例如 ValueAgent、GrowthAgent、MomentumAgent 与 RiskAgent,通过模块化设计支持后续扩展。每增加一个代理维度,应评估其信号独立性 —— 如果新代理的输出与现有代理高度相关(相关系数超过 0.7),则该代理提供的增量信息有限,应考虑合并或重新定义其分析范围。

数据流编排:集中式状态管理与串并联混合调度

多代理系统的核心挑战在于协调多个独立代理之间的数据流。该架构采用 hub-and-spoke(中心辐射)模式,构建了一个中央共享状态存储,保存所有代理的观察结果、信号输出与元数据。每个代理读取当前状态、贡献自身分析结果并写回更新后的状态,这种设计实现了跨代理的上下文传递与可扩展的组合能力。

数据流采用串并联混合的调度策略。第一阶段为并行执行:所有 13 个投资理念代理同时运行,每个代理基于相同的输入数据(股票代码、时间范围、历史价格、基本面数据)独立生成分析观点。这一阶段的设计要点在于并行度管理 —— 由于代理之间不存在数据依赖,理论上可以无限扩展代理数量,但实际工程中需要控制并发请求数量以避免下游 API 速率限制或服务过载。建议将并发代理数量控制在 5 到 8 个之间,采用信号量或令牌桶机制进行流量整形。

第二阶段为串行聚合:分析代理按固定顺序依次执行,Valuation、Sentiment、Fundamentals、Technicals 四个代理顺序产生因子信号。这一阶段采用串行的原因在于某些分析代理可能依赖前序代理的输出作为输入 —— 例如情绪因子可能影响技术面信号的有效性评估。串行执行的顺序应遵循数据依赖关系与计算成本排序:计算成本低且独立性强的代理优先执行,计算成本高或依赖上游结果的代理后置执行。

第三阶段为决策汇聚:Risk Manager 首先基于投资组合风险预算与波动率约束对所有信号进行风险校验,随后 Portfolio Manager 综合风险校验结果生成最终交易指令。在状态管理层面,建议采用版本化的共享内存结构,每次代理写入时增加版本号并记录时间戳,这支持了信号的可追溯性与审计需求。状态存储可选用 Redis 集群实现分布式共享,或使用本地文件配合锁机制实现单机部署。

策略执行:信号聚合机制与风控门禁

代理输出的信号聚合是策略执行的关键环节。该系统中,每个代理返回的信号包含方向(买入、卖出、持有)、置信度评分与备注说明。Portfolio Manager 需要将这些异构信号转化为统一的风险敞口建议。推荐的聚合算法采用加权投票机制:每个代理的信号根据其历史准确率进行动态加权,置信度评分作为二次调整因子,最终通过 Softmax 归一化得到各方向的概率分布。当某一方向的概率超过阈值(例如 0.65)时,系统生成对应方向的交易信号。

风控门禁是策略执行的强制环节。Risk Manager 在信号汇聚后执行三层校验:第一层为头寸限制校验,确保单一标的持仓不超过投资组合总值的 15%、单一行业敞口不超过 30%;第二层为波动率约束,基于历史波动率与当前波动率比率动态调整目标仓位;第三层为回撤熔断,当组合回撤超过预设阈值(如 8%)时自动触发仓位的系统性缩减。风控参数应支持运行时配置,建议将关键阈值存储于配置中心而非硬编码,以便在市场环境变化时快速调整。

策略执行的输出并非直接下单,而是生成交易计划文档,包含标的代码、方向、数量、价格区间与执行时效。该设计将策略生成与执行解耦,为后续对接真实券商 API 或回测系统提供了灵活的适配层。项目明确声明系统不会进行实际交易,仅用于教育与研究目的,这一设计选择规避了合规风险但在工程上预留了扩展接口。

架构可扩展性与工程落地要点

该多代理架构的核心价值在于其可扩展性。添加新代理只需实现标准的接口规范(输入数据模式、输出信号格式),并将代理注册到编排器的任务列表中。编排器支持有向无环图(DAG)式的任务依赖声明,新代理可以根据分析需求声明对其他代理输出的依赖关系,系统自动解析依赖拓扑并生成执行顺序。

在工程落地层面,需关注以下要点。首先是 API 成本控制:每个代理调用大语言模型都会产生费用,建议为不同层级的代理配置差异化的模型策略 —— 投资理念代理可以使用较小参数模型(如 gpt-4o-mini)进行快速筛选,分析代理使用中等参数模型(如 gpt-4o)进行深度分析,决策代理使用较大参数模型进行最终推理。其次是响应时间预算:全系统延迟目标应控制在 30 秒以内,这要求在代理层面设置超时阈值(建议每个代理 5 秒)与重试策略(最多 2 次退避重试)。最后是观测性建设:每个代理的输入输出应记录至日志系统,建议使用结构化日志(JSON 格式)包含代理名称、输入摘要、输出信号、执行时长与版本戳,这为后续的信号归因与系统调优提供了数据基础。

该多代理架构展示了将投资决策流程分解为专业化代理并通过集中式状态管理进行协调的工程路径。其三层代理体系、串并联混合调度与强制风控门禁的设计,为构建类似系统提供了可参照的架构模板。


资料来源