
1. 为什么价值投资需要一群“互相不说话的智能体”有朋友跟我聊起多智能体投研时第一反应往往是价值投资这么依赖经验和判断力的事情交给一堆模型投票是不是有点哗众取宠我一开始也有这个疑虑直到自己动手把一个多智能体决策框架搭起来、跑过几轮回测之后想法才彻底改变。先说结论价值投资恰恰是多智能体系统最容易出效果的场景之一。原因在于它的决策信息结构和量化高频完全不同。高频交易面对的是毫秒级的价格序列数据同源、信号明确单模型加执行优化就能解决大部分问题。而价值投资面对的是慢变量——行业格局、管理层能力、财报质量、市场预期差、治理风险这些变量频率低、噪声大、互相纠缠。一个人或者一个单模型很难同时把这么多维度都吃透就算硬塞进去也会出现“一个方面判断失误整体结论跟着崩”的情况。所以一个非常自然的架构思路就出现了把投研拆成多个智能体每个智能体只负责一个相对独立的维度各自看各自的数据、各自做各自的判断最后通过投票机制聚合出决策。这里最关键的一个词是“各自”。它们不能互相看对方的中间结论否则就退化成几个模型商量着给出同一个答案。投票的价值恰恰来自每个智能体保持独立判断然后由架构师设计一套规则把分歧和共识转化成可执行的买卖决策。我当时搭建的框架里定义了五个虚拟分析师角色宏观与行业景气度分析师、财务质量分析师、相对估值分析师、预期差分析师、治理与合规风险分析师。五个智能体输入的数据源互相隔离输出的是对同一只标的的三档判断推荐、观望、回避。架构师要解的题目是五个判断出来之后怎么合成一个决策这就是投票机制设计的起点。把这个问题想清楚你会发现投票机制在价值投资场景里不是搞“少数服从多数的民主”而是要解决一个更底层的问题——在信号不一致的时候如何让系统不会因为单个智能体的盲区而误判也不会因为多数票的抱团而漏掉真正重要的反对意见。2. 投票机制的三种基准方案多数、加权与排序投票机制听起来简单但真正动手设计时会发现每个方案背后都藏着不同的问题。我先把三种最基础的方案摆出来对比再讲它们各自在投研场景里的适用边界。投票方案实现逻辑核心优点在投研场景里的短板简单多数超过一半智能体推荐则买入逻辑透明、容易被解释忽略每个智能体的专业深度五票对五票时直接僵持加权投票按历史准确率或专业权重加权汇总反映不同分析维度的可信度差异权重设置容易过拟合强者恒强会压制新信号排序投票Borda计数每个智能体对多个候选标的排序按位次计分适合处理“多个标的中选哪个”的场景单标的买入决策用不上排序实现和理解成本高简单多数的问题最容易看出来。五个智能体里财务质量分析师发现报表有异常其他四个都觉得估值便宜、行业景气结果四比一通过买入。这个决策大概率是错的。因为价值投资里有些信号天然是“否决型”的——财务造假嫌疑、治理结构重大缺陷、未披露诉讼风险这些维度不该跟“估值便宜”这种信号平权投票。所以架构师首先要做的不是选一种投票公式而是给不同信号划分不同的决策通道。加权投票比简单多数合理一些。我当时给五个智能体分配的初始权重是宏观与行业0.25、财务质量0.25、估值0.2、预期差0.15、治理与合规0.15。推荐阈值设在0.6。也就是说加权推荐分超过0.6才触发买入候选区。这个设计的意图是任何单个智能体都不可能单独推动买入但财务质量和治理两个维度只要给出回避加权分就会明显下滑接近否决效果。但加权投票也有一个隐蔽的问题它给了强者恒强的正反馈。历史准确率高的智能体权重越调越高其他智能体的声音越来越弱。到后期系统会事实退化成“两个智能体说了算”投票机制名存实亡。这个问题我在后面第4章会专门讲怎么修。Borda计数在单标的决策里用得少但如果你把一个投资组合里的几十只候选股同时丢给智能体排序这个方案就很实用了。每个智能体给出一个完整排序按第一名得N分、第二名得N-1分的规则汇总。它的好处是能同时输出“买哪些”和“优先级”缺点是智能体数量少的时候排序稳定性很差个别智能体的极端排序会明显扭曲总分。聊到这里你已经能感觉到投票机制不是一个孤立的算法选择而是要和“什么信号有多重要”这个业务判断绑在一起设计的。没有哪个公式天然正确架构师的工作是搞清楚每一种投票方案在替谁说话。3. 否决权与调解投票之外的第二层决策闸门我在第2章提到有些信号天然是否决型的。如果你把所有信号都放进同一个投票池哪怕用了加权也很难阻止个别关键风险被多数票淹没。所以我在设计里加了两层结构第一层是主投票通道第二层是风险否决通道。主投票通道负责“要不要买、买多少”的常规决策。五个智能体各自输出三档判断和置信度按加权规则汇总超过0.6进入买入候选区低于0.4进入回避区中间是观望区。这套逻辑覆盖了大部分正常情况比如宏观弱但个股强、估值贵但景气高互相抵消后落在观望区系统就不会做出激进操作。风险否决通道管的是“绝对不能碰”的红线。它不参与加权而是独立触发。当时定义了四条硬性触发规则财务质量分析师识别出疑似收入虚构信号比如应收账款增速连续两期显著高于营收增速且无法合理解释审计意见为非标准无保留意见或关键审计事项涉及持续经营重大不确定性治理与合规分析师发现未披露的重大诉讼、股权冻结、实控人高比例质押且存在平仓风险财务数据存在重大会计差错更正且更正方向“由盈转亏”。这四条规则任何一条触发系统直接输出否决主投票通道的结果作废不进入人工复核流程。设计原则很简单投票机制是用来处理“不确定性”的但上面这类信号代表的是“确定性风险”不值得用概率去赌。除了否决通道还需要一个调解机制来处理分票僵局。加权投票最尴尬的情况是推荐分在0.55到0.6之间差一点就进入买入候选区。这时候如果直接认定为观望可能会错过机会如果强行拉升到买入又违背了机制设计。我的做法是当推荐分落在0.5到0.6的临界区间时自动触发一次“反方质询”。系统要求投出回避票的智能体生成一段不超过200字的理由说明连同它的关键数据依据一起推送给投研人员手动复核。这个机制的价值不在于让机器做最后决定而在于强迫系统把“分歧”显性化。人工复核只需要看少数派的反对理由是否成立这比从头看完整研报高效得多。实际跑下来反方质询触发比例大约占全部决策的15%左右。乍一看挺高但它确实过滤出了一些主投票通道差点放过的标的——有两三个案例是治理与合规分析师因为关联交易披露不完整给出回避而估值和行业分析师都觉得便宜最终人工复核采纳了否决意见。如果没有这个调解机制那些标的会直接进入买入候选区。4. 从众投票、权重漂移与少数派信号机制失效的三种修法投票机制上线之后真正考验架构师的不是选公式而是处理各种“机制失效”的场面。我总结下来最常见的状态有三种每一种都有对应的修法。4.1 从众投票表面五票实际一票多智能体系统最容易犯的隐性错误是智能体之间并不真正独立。它们可能用的是同一个底层数据服务商、同一套文本向量模型、甚至同一份财报解析结果只是外层包装了不同的提示词和输出格式。这时候五个智能体的投票看似五花八门实际高度相关系统等于只有一个智能体在投票。我当时怎么发现的跑了一百多个历史案例回放之后统计了每两个智能体之间对同一标的三档判断的相关性。结果发现财务质量分析师和治理与合规分析师的相关性高达0.82——原因很快定位了它们输入的原始数据有超过一半来自同一份公告解析文件只是各自做了不同的后处理。修法有两步。第一步是数据源隔离不同智能体使用不同层级的原始材料比如财务质量分析师直接读财报数字治理与合规分析师读公告全文和诉讼库记录预期差分析师读卖方研报和电话会纪要。第二步是相关性监控每个季度计算一次智能体两两判断的相关性矩阵超过0.7就对数据源做进一步隔离或做信号正交化处理。这一步不能省否则后面所有投票机制都建立在虚假的“独立假设”上。4.2 权重漂移去年的准确率不代表今年有用加权投票的权重一旦确定就很容易被当成固定参数。但市场风格是会漂移的一个在震荡市里判断极准的智能体到了单边行情里可能持续误判。权重如果更新不及时系统会一直把高票数送给一个已经失灵的分析师。我当时采用的修法是滚动校准每三个月做一次回测用最近半年的案例重新计算每个智能体的准确率再平滑调整权重单次调整幅度不超过正负0.05。为什么不直接按最新准确率重算因为样本量太小一个季度的数据可能只有三四十个案例波动极大直接重算会让权重来回乱跳。加上0.05的调整上限既保留了适应能力又避免了过拟合。这里我的经验是不要把权重调整做成一个简单的“准确率越高权重越大”的线性规则还要惩罚冗余。两个高度相关的智能体即使单个准确率都很高同时调高权重也会导致同一份信号被重复计算。更合理的做法是先做相关性惩罚再按穿透后的边际贡献分配权重。4.3 少数派信号价值投资里最该被保护的声音在投票机制里少数派天生吃亏。五个智能体里四个说“推荐”一个说“回避”最终的决策大概率是买入。但价值投资历史上很多正确的决策恰恰来自少数派——当市场一致看好时反而是风险最大的时候。所以我在机制里加了一个“少数派保护”设计当某个智能体给出回避、而其他多数给出推荐时它的反对意见不会被忽略而是被强制写入决策记录并在交易执行后持续跟踪。系统会在后续每次财报发布时自动检查少数派当初提出的风险点是否出现。如果出现了这条记录会直接触发一次投后复盘无论当时的买入决策是否已经盈利。这个设计的实际价值在于它先承认了投票机制本身是保守的是偏向共识的然后专门开了一条通道去保留“反共识信号”。价值投资赚的就是预期差的钱预期差往往藏在少数派的反对意见里。投票决定的是“做不做”少数派记录决定的是“做错了能不能及时知道”。如果只是把投票结果当成最终答案不做少数派信号的跟踪这个系统的决策质量会在不知不觉中下降。因为大多数情况下市场会给共识投票正确反馈但真正带来超额收益的偏偏是那些共识之外的判断。5. 冷启动与验证体系的落地细节投票机制设计得再周密落到工程和运营层面还有一堆坑。这一章讲三件容易被忽略的事初始权重怎么定、回测要看哪些指标、上线之前怎么验证。5.1 初始权重从等权重开始别拍脑袋新系统没有历史投票记录权重怎么设我的建议是老老实实从等权重开始每个智能体0.2。然后拿过去三到五年的真实股票案例做盲测回放只喂给智能体截止到当时为止的数据记录它们的判断再跟实际结果对比统计每个维度的单独准确率。这轮回放跑完之后才基于准确率做第一版权重调整。这里要特别提醒别直接参考外部研报或者某个投资经理的个人偏好来拍权重。外部研报的分析框架和市场风格很可能跟你的智能体输入数据不匹配拍脑袋出来的权重会在回测阶段给你一堆虚假信号后面再去调代价很大。5.2 回测指标除了胜率还要看分歧度很多人做多智能体投票回测只看买入胜率和收益率这其实是远远不够的。我额外关注两个指标一个叫分歧度一个叫否决触发率。分歧度的计算方式是每次投票中最高票档位的票数占比的均值然后用1减去这个值。如果所有案例都是五票一致分歧度是0说明智能体之间根本没有独立判断投票机制形同虚设。我自己的框架里分歧度稳定在0.25到0.4之间比较健康低于0.2就要回去查数据源隔离是不是失效了。否决触发率看的是风险通道的灵敏度。触发率太高比如超过三成的案例都触发否决说明你的红线阈值设得太宽系统会变得过于保守触发率太低比如半年一次都没触发说明红线形同虚设。大概5%到10%比较合理。5.3 模拟盘双轨验证先跑六个月再说所有回测都有过拟合嫌疑尤其是你用历史数据调过权重之后再拿同一段历史去验证结果天然是偏乐观的。真正靠谱的做法是回测通过之后开一个模拟盘跟实盘信号并行跑。模拟盘使用实时数据、真实的下单逻辑和同样的投票机制但资金是虚拟的。我当时跑了六个月的模拟盘才切换部分实盘资金。这六个月里发现的问题不少比如财务质量分析师和预期差分析师偶尔会因为时间窗数据不一致而给出矛盾判断——一个用的是最新季报另一个已经看到了最新的电话会纪要。这类时间错位问题回测阶段很难发现只有实时数据跑起来才会暴露。所以我建议模拟盘期间重点盯的不是收益而是信号质量、触发延迟、数据对齐这三类工程问题。还有一个部署经验每个智能体的模型更新频率必须统一管理。我当时早期犯过一个错情绪类智能体每天更新基本面智能体季度更新结果每次基本面模型更新之后历史投票记录全部对不上复盘时完全没法追溯。后来改成全部按周统一发布模型版本投票日志里记录每个智能体当时的模型版本号才解决了这个问题。投后复盘的时候日志里必须能查得到五个智能体各自的原始输出、权重调整记录、否决触发原因、反方质询的200字说明。没有这些记录投票机制做得好不好就永远只能凭感觉没法定位问题。我在实际项目中最大的体会是投票机制设计这件事难的不是数学而是让一群智能体真正保持独立并且让系统有能力保护那些少数派的反对声音。多票通过很容易独立判断很难大多数时候系统会顺着共识走但架构师的工作恰恰是要给“另类信号”留一席之地。每次复盘翻回到少数派的那段200字反对理由时我都会重新确认一遍——当初把这个机制放在架构里是对的。