ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

多智能体辩论式AI:让AI互相质证,挖掘A股深度分析价值

多智能体辩论式AI:让AI互相质证,挖掘A股深度分析价值 搞投资的朋友都知道分析一家公司有多痛苦财报、公告、研报、舆情信息量大到爆炸而且观点互相打架。看多看空都各有理由普通人根本不知道信谁。这个项目的出发点很简单既然AI大模型能读文档、能做推理那能不能让多个AI像辩论赛一样围绕一家A股公司互相质证把多空逻辑都摊开最后给出一份更像样的分析我把这套东西叫作“会辩论的AI”跑了几个月实话说效果超出预期也踩了不少坑下面把完整思路和实现细节都摊开讲。先明确一点这套AI工具不是荐股软件它做的是信息整理和逻辑对抗输出的是研究素材而不构成投资建议。但它解决了一个真实问题——单一模型直接问“这只股票怎么样”得到的基本是模棱两可的废话或者一本正经的幻觉。而让多个AI互相辩论、交叉验证之后结论质量会有肉眼可见的提升。如果你也在做AI应用开发、量化研究或者对多Agent架构感兴趣这篇内容应该能帮你省不少弯路。1. 这个项目到底在解决什么问题1.1 A股信息过载与观点撕裂的痛点做A股研究的人都有体会同一个消息有人解读成大利好有人解读成利空出尽。比如某公司发布一份业绩预增公告基本面派会说“增速亮眼”技术派会说“利好兑现可能回调”风险派会质疑“是否靠一次性收益撑起来的”。信息本身是客观的但解读永远是主观的这就是投资分析最难的地方。我最早尝试过几种常规AI用法。第一种是直接问大模型“分析一下这家公司”模型会把公开资料梳理一遍输出一篇四平八稳的综述看似全面实则没有立场也没有真正的风险提醒。第二种是让AI写研报模板把财务指标填进去这比第一种好一点但依然是单向输出模型只按照它“以为正确”的逻辑走不会自我反驳更不会因为另一个角度的质疑而修正判断。问题根子在于单一大模型本质上是一个“惯性思维者”它给出的答案高度依赖训练数据和Prompt的暗示方向。你问“这公司有什么优势”它给你列一堆优势你问“有什么风险”它又能列一堆风险。可现实问题恰恰是“优势”和“风险”同时存在哪个才是决定性的这就需要对抗式的信息碰撞而不是单向的罗列。1.2 多Agent辩论为什么能出效果让多个AI辩论本质上是把“一个人憋大招”改成“一个团队开评审会”。每个Agent被设定为不同的立场和角色比如一个专挑毛病的空方一个专门挖掘亮点的多方还有一个负责中立仲裁的判官。立场不同它们聚焦的维度就不同查证的资料方向也不同自然会把单一模型漏掉的东西给翻出来。举个很直观的例子。问单一大模型“某消费公司渠道改革进展如何”它通常只回答渠道改革的大方向、历史沿革、可能的受益点不会主动去查经销商库存、同行竞争、线上分流这些反向因素。但在辩论框架里空方Agent会主动搜索负面信息和同业对比数据它会追问“渠道改革喊了三年为什么应收账款还在涨”这个问题一出来多方就得正面回应而不是自说自话。一来一回分析深度就上去了。辩论还有一个隐性价值就是“对抗幻觉”。幻觉是单模型回答里最难防的坑但在辩论场景下一个Agent虚构了某个数据另一个Agent很容易因为逻辑矛盾而发起质疑质疑后系统会触发一个校验动作去查原始来源。说白了让AI去抓AI的错比人去抓AI的错靠谱得多。1.3 技术与成本上的取舍可能有人会问为什么不直接用一个大模型多问几次、把结果合并一下这个我也试过。多问几次的本质是“采样”模型输出有随机性采几次能拿到不同表述但拿不到真正对立的立场。因为同一个模型在同一个Prompt框架下思维惯性是一致的。要让观点真正对立必须给不同的角色不同的指令、不同的工具权限、不同的关注维度迫使它们从相反的路径逼近同一个问题。成本方面也要说实话。多Agent架构的Token消耗是单次问答的好几倍一次完整辩论可能烧掉几万Token。我的做法是分场景降级简单问题走单模型快速问答只有复杂标的、重大争议话题才启动完整辩论流程。另外用轻量级模型做前置筛选把明显不值得辩论的问题过滤掉也能省不少钱。具体怎么控成本后面章节会详细说。2. 系统整体设计与辩论框架2.1 整体的多智能体架构法官、检察官、辩护人这套系统的角色设计借鉴了英美法系的开庭逻辑。三个固定角色加一个动态角色多方Agent负责构建看多逻辑空方Agent负责挖掘看空证据法务Agent负责查证数据真伪和违规风险审判Agent负责主持流程和输出最终裁决。动态角色是根据标的类型临时生成的比如科技公司会加一个技术专家Agent消费公司会加一个渠道调研Agent。每个Agent拿着不同的“任务说明书”说明书里写清楚了它的立场、它需要重点关注的指标、它可以调用的工具以及绝对不能触碰的红线。最核心的一点是多方Agent不允许使用空方的论据空方Agent也不允许多方话术逼迫它们从各自角度寻找信息。如果多方说“这家公司毛利率提升”空方就必须去查“毛利率提升是因为产品涨价还是成本下降可持续吗”而不是跟着附和。Agent之间的通信用的是结构化消息。每一轮辩论每个Agent输出一段“论点-证据-置信度”结构化的内容审判Agent负责汇总和推进流程。整个会话有一个全局记忆记录下的论点和证据会累积后续轮次的新论点不能重复已有内容只能补充或反驳——这个设计是为了避免辩论变成复读机。2.2 数据管道财报、公告、舆情怎么喂进去辩论不是凭空辩论得有弹药。弹药就是数据。整个数据管道分三层基础财务层、公告事件层、舆情情绪层。基础财务层的数据源是公开财报和业绩预告我做了定时爬取和解析把关键的财务指标抽取到结构化表里包括营收、净利润、毛利率、净利率、资产负债率、经营性现金流、应收账款、存货周转天数等。注意不是所有指标都要而是预先定义了一个指标池每家公司根据行业从池子里挑。为什么要挑给AI塞一万个指标它消化不了反而会稀释重点。公告事件层抓的是公司公告和监管文件包括定期报告、重大合同、股权变动、诉讼仲裁、问询函等。这个层级的核心是“事件化”把一段公告文字拆成“时间主体事件影响”比如“2024年8月16日公司收到交易所问询函关注商誉减值问题”这样才能被Agent的检索工具快速命中。舆情情绪层包括新闻、股吧和社交平台的讨论这个层的可靠性最低但情绪信号价值很高。做法是用一个情绪打分模型把海量帖子压成一个情绪分数和几个高频话题词。情绪分只作为辩论的辅助论据不允许作为证据引用因为舆论很容易被操纵这是原则性问题。2.3 辩论流程设计三轮制与仲裁机制辩论不是无休止的嘴炮必须有个终止机制。我设计的是三轮制第一轮开篇立论多方和空方各自拿出最核心的三个论点第二轮自由辩论双方针对对方的论点逐条反驳第三轮总结陈词双方给出最终判断和置信度打分。三轮结束后审判Agent输出研究报告。仲裁机制是整场辩论的灵魂。审判Agent不是一个简单的和事佬它有两个专有权限第一可以要求双方提供证据来源第二可以打断重复发言和无效辩论。任何论点如果被审判Agent判定为“没有证据支撑”或“与已讨论话题重复”会被标记为无效并从记录里删除。这个机制能逼着Agent认真找证据而不是一本正经地胡说。还有一个独特的“价值回归”机制辩论接近尾声时审判Agent会被要求单独计算一个“安全边际指数”就是把多方最乐观的预测和空方最悲观的预测同时纳入算出一个估值区间带。这个区间的下沿如果低于当前价格意味着市场已经在定价悲观预期如果上沿仍低于当前价格审判Agent必须重点标注“谨慎”信号。后面我会用一个案例说明这个机制的实战效果。3. 核心环节的实现细节3.1 角色化Prompt模板的设计要点角色化Prompt是整个系统的地基。写Prompt没写好的话Agent演什么角色都像同一个人的不同马甲。我踩过坑总结出一个还比较管用的模板结构角色设定、立场声明、分析框架、工具边界、输出格式、禁例。以空方Agent为例角色设定是“一名以挑剔著称的独立分析师擅长找问题”立场声明是“你的任务只有一个找出当前标的中可能被高估或忽视的风险点”分析框架会列举它重点关注的维度比如财务造假嫌疑、毛利异常、应收账款激增、商誉减值、大股东减持、行业替代风险工具边界是“你可以调用新闻搜索、财务指标计算、公告解析但不得使用行情预测类工具”输出格式要求它每条论点带“证据链ID”禁例是“不得输出看多建议不得用‘可能’‘或许’等模糊词汇掩盖证据不足”。我贴一个简化的空方Prompt模板读者可以直接参考role_prompt { role: 空方分析师, standpoint: 你只关注风险与缺陷通常你会对公司的财务数据、商业模式、治理结构提出尖锐质疑。, framework: [ 1. 财务异常应收账款增速是否显著高于营收增速, 2. 盈利质量净利润是否依赖非经常性损益, 3. 治理风险是否存在频繁质押、减持、关联交易, 4. 行业格局是否存在替代技术或更强竞争对手 ], tools: [search_news, calc_finance_ratio, parse_announcement], response_format: 论点: 一句话说明风险\n证据: 引用具体数据或新闻来源\n置信度: 0-100的数字\n证据链接ID: 数据管道中对应ID, forbidden: [ 不得输出任何看多观点, 不得做出投资建议, 不得使用模糊措辞替代事实 ] }这套Prompt的重点在于“禁例”和“框架”两部分。禁例限制模型的行为边界框架划定注意力范围。缺少禁例的模型很容易“跳戏”写着写着空方开始写优点那辩论就废了。3.2 工具链搜索、财务计算、公告解析仅靠模型内部知识是完全不够的模型训练数据有截止日期而A股信息瞬息万变。所以每个Agent背后挂了一套工具API按需调用。工具链有三个主力新闻搜索工具、财务计算工具、公告解析工具。新闻搜索工具封装了多个公开新闻源的检索接口返回按时间排序的新闻列表支持按公司名和关键词过滤。这个工具空方和多方都会用但两手搜索策略完全不同多方搜“增长、突破、中标、扩产”空方搜“诉讼、问询、下滑、异常、警示”。两方拿到的信息集合是有交集的但在各自立场下解读角度不一样。这个设计是辩论质量的核心保障。财务计算工具更有意思。它不对模型开放完整数据表而是只开放一个查询接口模型必须输入标准化的参数才能拿到计算结果。比如空方想验证应收账款增速它不能直接问“应收账款增速是多少”而是必须发起一个调用参数为应收账款与营收增速对比。这样做的好处是强制模型建立“数据引用习惯”减少凭空捏造的概率。实测下来加上工具链约束后幻觉率下降了六成以上。公告解析工具负责处理非结构化文本核心功能是结构化提取和风险触雷检测。它内置了一个“风险关键词库”比如质押比例激增、变更募集资金用途、年报被出具非标意见等关键词一旦命中工具会自动在结果里加一个“关注”标记。这种标记在辩论中会被审判Agent用来作为关键论据。工具返回的数据格式统一是JSON里面包含原始文本摘要、来源URL、发布时间。Agent引用数据时必须在论点中附上证据链接ID审判Agent核查时会直接穿透到这个JSON原始记录里防止模型伪造来源。3.3 审计裁决生成与风险条件标注辩论结束后审判Agent要做的是把双方论据转化为可读的分析报告。报告模板分四个部分核心结论、多空论点摘要、关键证据时间线、风险预警。核心结论不能是一句模棱两可的话它必须包含方向判断、置信度和安全边际区间。风险预警部分我做了硬性条件标注逻辑当出现以下情况时自动触发“风险预警”大字标注经营性现金流连续三年为负但净利润为正、应收账款增速连续两年超过营收增速一倍以上、审计意见为非标、大股东质押比例超过50%、商誉占净资产比例超过30%。这些条件是用代码硬编码的不允许AI凭感觉判断因为AI很容易被情绪带偏。裁决生成还有一个细节要求审判Agent输出“争议点清单”。这个清单记录双方在哪些问题上没有达成一致比如“多方认为渠道下沉空间大空方认为增速边际递减双方证据均不充分”。为什么保留争议点而不强行给出最终结论因为在投资研究里不确定的事情就应该标明不确定强行下结论反而害人。这也是这套系统区别于其他AI分析工具的地方。4. 实跑案例拆解一场关于消费公司的辩论实录拿一个熟悉的案例类型来拆解——一家以线下渠道为主的消费类公司近期刚发布年报营收增长15%净利润增长8%看起来岁月静好。我把该公司作为标的扔进系统完整跑了一轮辩论过程相当有代表性。开篇立论阶段多方给出的核心论点是消费复苏带来同店增长、公司品牌护城河稳固、现金分红比例提升值得肯定。空方开局就和稀泥的常规思路不一样它直接指出一个数据矛盾营收增长15%应收账款增长了31%这个增速差非常异常说明收入的确认质量可能存在问题渠道压货迹象明显。自由辩论阶段最精彩。多方试图反驳说应收账款增长是因为公司扩大了经销商授信额度属于主动经营策略。空方立刻调用公告解析工具查到公司经营现金流增速只有3%低于净利润增速随即追问“如果销售真的这么好为什么收不回现金”这一问把多方逼到了墙角。多方只能转向强调公司的品牌价值和长期份额提升逻辑但审判Agent已经对这个论点的置信度打了折扣因为空方攻击的是当期盈利质量多方无法用远期逻辑来直接回应当期数据矛盾。总结陈词时双方的置信度也说明问题。多方给看多判断打了65分空方给看空判断打了58分。看起来相差不大但审判Agent的安全边际计算给出了关键信息基于多方乐观预测合理估值区间的下沿接近当前股价基于空方悲观预测下行空间约20%。审判Agent结合应收账款异常和经营现金流背离最终把谨慎度调高了一档结论是“中性偏谨慎核心变量是应收账款和渠道库存的去化速度”。这个案例最有价值的不是结论本身而是辩论过程暴露了传统AI分析根本不会注意到的一个财务异常点。用单一大模型分析这家公司八成以上的概率只会顺着财报数字说好话因为财报文本的叙事结构天然偏向正面。而空方Agent的存在把隐藏在附注里、分布在现金流量表里、需要交叉计算才能发现的信号给挖了出来这就是对抗式结构的价值。当然也要说不好的地方。整场辩论跑了大约6分钟Token消耗接近4万调用工具9次。时间偏长成本偏高这对于需要覆盖几十只股票的批量研究场景来说是不小的负担。后面实盘使用时我加了分级流程普通关注标的只跑两轮简版辩论重大标才跑完整版。5. 踩坑实录与排查技巧5.1 AI幻觉和数据验证防不胜防但可以堵多Agent辩论一个无法回避的问题是Agent为了让自己的论点更“有理”会倾向于编数据。最典型的是空方想说明问题严重把“营收增长15%”悄悄说成“营收增长近20%”把“应收账款增长31%”说成“占营收比重超过40%”两个单独看都像样合在一起就是扭曲。解决思路是强制证据结构化引用。所有Agent在输出论点时必须附带证据来源ID且证据中的关键数字必须直接从工具返回的JSON里复制不允许“根据回忆”改写。如果Agent输出的数字和JSON原始记录不一致审判Agent会直接判该论点无效。这套机制能挡掉大部分幻觉但防不住最后剩下的那点——就是模型在解读时故意往自己的立场上带节奏这没法用系统规则完全消灭。实操上我还加了一个“双人复核”的小技巧在审判Agent生成报告前把关键证据给另一个独立Agent做“校验师”它的任务就是逐条检查审判Agent引用的数据和原文是否一致。虽然多花一点Token但能让报告里的错误明显减少。我的经验是凡是涉及具体数字的引用宁可多一次校验也不要在输出的报告里出现数据错误否则用户对整个系统的信任会瞬间崩塌。5.2 辩论趋同和太极话术输出变得味同嚼蜡跑多了以后会发现一个严重问题辩论到第二轮、第三轮多方和空方经常开始“趋同”口径越来越接近最终变成互相附和的答辩会。这是多Agent系统最隐蔽的坑。为什么会趋同底层原因是大模型的隐空间里对同一公司的表征是相近的不同Prompt引导出的方向有限如果没有强力约束模型的输出会朝语义中心收敛。从这个角度说角色Prompt里的“禁例”和“立场声明”不是摆设而是对抗趋同的强制约束。还有一类输出的质量问题是“太极话术”。比如空方质疑公司毛利率下滑多方不正面回应而是说“公司通过产品结构升级有望提升长期毛利率”——这话没问题但它回避了当期毛利率下滑的事实。审判Agent必须有能力识别这种回避行为强制要求多方给出当期数据解释解释不了就按失分处理。我给审判Agent加了一条明确的评判规则任何论点如果使用了“未来”“有望”“可能”“长期来看”之类的词就不能回避对当期数据的解释。用远期愿景掩盖当期问题判为无效论点。加了这条规则之后辩论质量有了显著变化。5.3 成本和延迟的优化策略多Agent辩论是Token消耗大户跑一轮完整辩论的开销够我跑二十次普通问答。成本控制我用了三层策略。第一层是问题分级。简单问题直接走单模型快答比如查个基础财务指标完全没有必要让两个Agent吵一架。只有复杂分析类问题才触发辩论。我在系统入口做了一个分类器根据问题类型匹配不同的处理流程这一步能过滤掉大约七成不必要的高成本请求。第二层是Agent数量动态调整。不是所有公司都需要三方角色齐全。对于一些高确定性公司我关掉空方Agent只保留多方法务和审判辩论变成了质询模式对于争议性强的公司才启动完整对抗模式。这种弹性设计不牺牲理解深度但能大幅降低成本。第三层是模型分级。不是所有Agent都要用最强、最贵的大模型这种方式浪费严重。我的经验是多方和空方用中端模型完全够用它们的主要工作是搜集论据和输出结构审判Agent必须用最强模型因为它要从全局视角判断论点质量和矛盾。数据校验Agent用低端模型即可任务是纯匹配比对对推理能力要求不高。三层分级下来成本能压缩到原来的40%左右。5.4 常见问题与排查速查表这几个月遇到的问题不少整理成一张速查表方便大家对照排查。现象可能原因解决方案多方空方结论完全一致立场Prompt约束不足模型收敛到语义中心强化禁例增加“禁止引用对方立场”条件Agent编造新闻来源搜索工具返回结果为空模型被迫补全搜索结果为空时禁止Agent引用该方向论据标记“无法验证”辩论跑题开始讨论行业宏观分析框架Prompt写得太虚没有具体指标清单在framework里列出该Agent必须关注的5个具体财务指标报告里数字与原文不一致模型输出时对数据做了“记忆重构”强制数字引用走证据链接ID输出前用校验Agent比对辩论轮次太多时间过长没有设置轮次上限或内容重复未拦截启用重复论点检测设置最大三轮第三轮直接进总结敏感信息被带进报告Prompt边界不严Agent引用了小道消息舆情数据只允许情绪分进入不允许具体帖子内容被直接引用模型突然无响应或报错单次请求Token超限或工具调用超时对长文本做截断摘要工具调用设3秒超时并做降级这个表里的问题基本都是真实跑过的尤其是“编造新闻来源”这个坑在早期版本非常严重。当时新闻搜索工具没做“空结果处理”Agent搜不到内容时模型往往会“合理想象”一个新闻源凑数。后来改成空结果即禁止引用这个问题基本解决了。6. 这套辩论式AI还能往哪个方向扩展做完这套系统之后我回头审视觉得它不仅能用于A股分析底层这套“对抗论证”的框架其实是可以复制到很多领域的。最直接的方向是信用风险评估。中小企业信贷审批里客户经理写的报告往往偏向乐观因为弱企业很难找到强证据。如果把多方换成一个“包装企业形象”的角色空方换成“怀疑一切”的角色再挂一条企业工商数据、司法数据、税务数据的管道一套企业尽调辩论系统就出来了而且比人工审报告要快得多。另一个方向是技术方案选型。我在公司内部试用过把“要不要引入某个新技术栈”作为辩题多方负责论证技术收益空方负责拆解维护成本、兼容性风险、团队学习成本。效果意外地好因为这个场景天然具有多目标冲突短期效率、长期可维护性、团队能力、供应商风险单个人很难全面权衡但多个Agent各守一个立场时反而能梳理清楚。还有一个我比较看好的方向是政策与合规风险评估。企业在做业务决策前把方案丢进辩论系统一个Agent专门找合规风险一个Agent专门找业务机会审判Agent做权衡输出。这套逻辑放在任何需要谨慎权衡的场景都好使。这些扩展方向有一个共同点都有一个明确的对立项、一堆公开或半公开的结构化数据源、以及一个相对可评判的结论标准。如果你也想把自己的项目往这个方向延伸不妨把这几个条件当作评估标准。最后说点我的个人体会。做这个项目的过程中最深刻的感受是单一AI的“博学”和“偏见”是硬币的两面。博学让它能回答五花八门的问题偏见让它在复杂问题上总是给出不完整的答案。而辩论框架的价值不在于让AI变得更“聪明”而在于让它变得更“周全”。它逼着AI去面对自己不愿意面对的视角这一点恰恰是人在做决策时最稀缺的品质。如果你也在做AI相关的应用不妨试试给你的模型安排一个“反对派”你会发现很多意想不到的东西。
返回列表