先说个让我印象很深的场景:我把同一只股票的公开资料丢给三个不同的AI,让它们各自写一份简短分析。三个模型给出的结论方向几乎一样,连理由的措辞都像同一个模子里刻出来的。那一刻我意识到,如果AI只是把市场主流叙事复读一遍,那不叫辅助决策,那叫自我确认。所以我后来动手搞了一个会辩论的AI,专门用在A股投研复盘场景里——不是让AI给一个唯一结论,而是让AI自己拆成多头和空头,围绕同一个标的吵给我看。这篇文章就把这个项目的完整思路、搭建过程、实测结果和踩坑记录都摊开讲。
1. 先厘清需求:为什么投研场景需要"对抗性输出"
1.1 传统AI分析的死穴
投研场景里,最不缺的就是观点:每个标的都有人看多有人看空。问题在于主流AI大模型的训练目标天然倾向于"给出一个确定性结论",它会用流畅的逻辑把某一种可能性讲得像事实。你问它"某板块有没有机会",它大概率会先复述一遍行业空间、需求增量,然后给出一个模糊但正向的结论。这种输出有用吗?对新手可能有用,但对真正要靠决策吃饭的人,反而危险。
危险在哪?在于它把决策的"反面"藏起来了。市场定价从来不是单一逻辑在推动的,任何一个看多逻辑背后,都有对应的风险变量;任何一个看空理由,也都有被证伪的可能性。如果你只看到AI给的单边结论,就会不自觉地忽略反面证据,这在行为金融学里叫确认偏误。散户亏钱的大部分原因,不是不懂基本面,而是只看自己想看的那部分信息。让AI打一架,本质上就是用对抗性输出来对冲这种认知偏见。
1.2 "辩论"是给结论做压力测试
我当时想做的是:让AI自己跟自己吵。整套系统里至少有多个Agent,一个负责搜集和构建看多逻辑,一个负责找漏洞看空,还有一个当裁判。它们共享同一批输入资料,但被强制要求站在对立立场上,分别给出有数据支撑的论证。最终由裁决模块把两边的论据摊平、打分、输出一个带风险提示的综合研判。
这个思路在信息安全领域叫"红队测试":没法保证一次设计百分之百正确,那就派一帮人专门想办法攻破它。投研判断也一样,与其等着市场来打脸,不如让AI先替你把看空逻辑完整地推演一遍。这也是为什么我认为这个项目的核心不是"多几个AI跑几个答案",而是把一个单点判断变成一个压力测试流程。
这里需要强调:AI辩论不是抬杠。随便让两个模型互怼,最后就是车轱辘话来回转。关键是辩论结构、立场约束、论据校验和裁决标准,这些都要在系统层面对齐。后面我会逐个展开。
2. 系统架构:数据层、辩论层、裁决层三层怎么分工
2.1 三层架构的整体链路
先说整体链路。整个系统分三层:
- 数据层:负责从公开渠道采集个股或板块相关的行情快照、公告、新闻、券商研报摘要、资金流向等,统一清洗后写入临时知识库。
- 辩论层:包含多个大模型Agent,在共享知识库基础上做检索增强,按角色的立场要求生成观点,并允许它们互相质疑、回应。
- 裁决层:将两边论点结构化提取,做事实校验与逻辑评分,结合风险标签输出综合报告和置信度。
我用这个链路跑下来的感觉很直观:数据层决定辩论素材的真实性,辩论层决定表达质量,裁决层决定最后落在纸面上的结论有没有参考价值。三层缺一不可。
2.2 数据源选择:宁可少,不可脏
A股相关的公开数据源其实很丰富,但很多源不能直接喂给模型。行情接口拿到的原始数据是数字表格,公告原文又太长,新闻标题噪音很大。我的做法是分三类处理。
第一类是结构性数据,比如近30日涨跌幅、成交量、市盈率、市净率、净利润同比增速等,直接按指标名和数值存成结构化字段,供Agent引用。第二类是公告和研报摘要,先用拆段摘要模型压成每段不超过200字的事实卡片,保留时间、主体、数字,丢掉形容词。第三类是新闻资讯,只提取事件要素,比如"某公司发布新产品""某行业出口数据超预期",每条标注事件时间和来源。
这里有一个很重要的原则:宁可数据少,不可数据脏。如果知识库里混进了错误的时间或者未经证实的传闻,再好的辩论框架也会被带偏。所以我每天清算一次数据源,把重复新闻、水军稿、带明显荐股倾向的软文全部过滤掉。数据量少一点没关系,辩论会变短,但至少不会凭空跑偏。
2.3 模型选型:API驱动快速验证,本地化部署做正式环境
模型选择上,第一阶段用市面上主流的开源大模型配合API跑通流程;第二阶段,因为涉及频繁的上下文检索和角色扮演,我用量化后的开源模型在本地部署。这么做有几个好处:数据不用离开内网、推理成本可控、prompt调整可以随时测试。
具体怎么选?我的经验是:辩论Agent对长文本理解的要求比写作要求更高,所以模型至少要支持8K以上上下文;裁决模块要做结构化输出,模型需要稳定地输出JSON格式。如果模型经常在长对话中忘记自己的立场,那基本不能用。我自己测试下来,中文分析场景里开源模型的表现已经足够撑起这套系统,关键是上下文窗口和指令遵循能力。
关于算力,如果只是个人研究用,一张消费级显卡就能跑7B到14B参数量模型,整个辩论流程控制在分钟级;如果是团队正式用,再考虑更大的模型或多卡推理服务。这个项目的算力门槛并不高,真正的瓶颈反而是提示词设计和数据清洗。
3. 提示词设计:怎么让AI认真吵架,而不是各说各话
3.1 多空角色的约束条件
提示词是整个项目里最需要反复调的部分。我给每个Agent写了一段角色说明书,里面不是简单写"你是一个看多的人",而是明确约束信息偏好和输出结构。
例如多头Agent的约束大致是:
- 优先关注需求增长、盈利改善、估值修复、市场情绪回暖等正向信号;
- 每一条论点必须引用知识库中的事实和数字,不允许用"可能""或许"堆砌;
- 当空头提出质疑时,必须正面回应,并说明反驳的充分条件。
空头Agent的约束则相反:更关注估值透支、增速放缓、技术迭代不确定性、资金面松动等反向信号,同样要求引用事实;面对多方反驳时,不允许回避,必须指出对方论证中最脆弱的一环。
这里的关键在于"约束理由",而不是"约束结论"。我不告诉AI对某个标的一定要看多,而是告诉它"你在本轮扮演一名风险偏好较低的策略师,你需要优先关注基本面中的隐患"。这样即使面对一只基本面确实优秀的标的,空方也能找到"增速预期是否已过度定价"这类真问题,而不是为了唱空而编造理由。
| 维度 | 多方Agent | 空方Agent |
|---|---|---|
| 信息偏好 | 盈利增长、需求增量、估值修复 | 估值透支、增速放缓、替代风险 |
| 引用要求 | 每条论点必须有数据来源 | 每条论点必须有数据来源 |
| 面对质疑 | 正面回应,说明反驳的充分条件 | 指出对方论证中最脆弱的一环 |
| 底线 | 不得编造未提供的利好 | 不得编造未提供的利空 |
下面给一个简化版角色提示词供参考:
你是一名A股策略研究员,当前被指派为"空方"。 你需要围绕给定的标的,从估值、盈利、行业竞争、资金面等维度, 找出看空或防守的理由。要求: 1. 所有理由必须基于提供的知识库内容,引用数据时标注来源; 2. 至少提出3条独立论据,并指出多方论证中最容易被证伪的一个假设; 3. 不使用预测性断言,不编造未提供的新信息。3.2 用检索增强保证论据时效
大模型自身知识截止时间是一个先天短板。A股市场的很多信息是高度时效性的,比如某家公司发了最新季报、某行业出口数据突然变化,模型不可能知道。如果辩论内容停留在训练数据里,那结论基本上就没有参考价值。
所以系统里做了检索增强生成(RAG):每次辩论前,先把标的相关的最新结构化数据、公告卡片、新闻事件抽取结果拼装成一个"本轮知识包",Agent只能基于知识包里的内容回答,越界引用会被拦截。同时给每条引用加时间戳,确保多方和空方用的是同一版数据。这一步非常关键,因为很多"AI分析不靠谱"的情况,不是模型不行,而是输入数据本身就是过时的。
3.3 裁决器:不投票,按论证质量打分
双方辩完以后,裁决模块负责输出最终结论。这个模块我做了两层:第一层是做结构化提取,把两边的论点拆成"论据、数据来源、逻辑链、风险点"四个字段;第二层是打分,重点看三条标准。
第一,论据是否有可验证的数据支撑,而不是空泛表态。第二,逻辑链是否闭环,有没有偷换概念或跳跃推导。第三,是否主动识别出对方观点的风险变量,且回应得是否具体。三个分数加权求和后,再叠加上一轮"共识度"判断:如果两方在最核心的变量上一致,比如都认为短期增速会回落,那这个共识会被标记为高置信度信号;如果两方在核心变量上分歧极大,则输出低置信度警告。
裁决器输出的不是"多头赢了"或"空头赢了",而是把胜负拆成几个维度。这对投研来说才是真正有用的信息:很多时候你看好一个标的,但空方提出的某一条论据确实有道理,那这条论据就应该变成你的风控指标。
4. 复盘一次实际运行:某新能源标的的AI辩论全记录
4.1 输入样本与知识包
说再多架构,不如看一次真实的运行记录。这里用一个去偏移后的案例:某新能源材料类标的,系统抓取了过去60个交易日行情、最近一期财报摘要、三条行业新闻和两条券商研报摘要,组成本轮辩论的知识包。
基本背景是:标的过去一年涨幅不小,近期出现回调;财报显示营收和净利润仍在增长,但同比增速出现下滑;行业层面有新技术路线讨论,目前尚未规模化。
4.2 多空两方的核心论点
多头Agent的核心论点有三条:第一,从盈利数据看,公司净利润绝对值和毛利率仍处于高位,说明核心业务没有恶化;第二,行业需求端仍有增量,短期回调更多是情绪面扰动;第三,从估值看,经过回调之后市盈率已经从前高明显回落,安全边际提高。
空方Agent给出的回应则是:第一,增速下滑是最值得警惕的信号,市场买的是边际变化,不是绝对值;第二,知识包里提到的新技术路线虽然尚未规模化,但一旦被验证,现有产能的价值可能被重新定价;第三,资金面数据显示近期主力资金净流出,说明机构可能正在调仓。
随后多空又各有一次追问。空方追问多头:"如果下一季财报增速进一步下滑到零附近,你的估值安全边际假设是否还能成立?"多头回应称,毛利率高位的条件下,增速下滑存在周期原因,若能确认周期底部,当前估值可以消化;但也承认如果周期判断错误,安全边际假设会失效。
4.3 裁决结果与事后验证
裁决模块给出的结论是:中性偏谨慎,置信度中等。逻辑在于:空方指出的两个风险变量,也就是增速边际变化和新路线替代,都有知识包内数据支持,且多方在回应时暴露出一处需要额外验证的假设——周期底部的判断。同时裁决器也给了多方一个肯定:核心盈利质量数据确实没有恶化,因此不应看空至"趋势反转"级别。
这个结论本身不算惊艳,惊艳的是它的结构性输出:系统把"决定最终态度的关键假设"单独列了出来。一周后,该标的又发了一份月度经营数据,增速继续小幅回落,股价随之下行。虽然我不建议把单次结果当作系统能力的证明,但至少这一次,AI通过辩论暴露出来的关键假设,和市场的后续反应是一致的。
5. 实测中的坑:三个最容易翻车的地方
5.1 模型会跟着输入情绪倒戈
第一个坑非常反直觉:明明设定好了角色,多头Agent却可能被新闻的负面标题带偏,开始自我怀疑。原因是新闻抽取后的文本本身带了浓烈的主观情绪,比如"某公司陷入前所未有困境",这种表述权重太高,模型就把情绪当成了事实。
解决方案是双重的。一方面,对输入文本做"情绪剥离"处理,把带有明确情绪色彩的词替换成中性描述;另一方面,给多方Agent注入一份独立的长期基本面摘要,让它有能力抵抗短期新闻带来的情绪干扰。这个坑提醒我:模型的"表演能力"会受上下文情绪影响,不能假设它完全忠于角色设定。
5.2 知识时效性导致的"用旧信息辩论"
第二个坑是数据新鲜度。有段时间系统抓取公告的接口出了故障,延迟了两天更新,结果辩论双方还在用旧季报数据争论,场面非常尴尬。A股的信息消化周期很短,一条重要信息两天不更新,结论基本就报废了。
我把这个问题上升到系统层面:知识包的生成时间会作为元数据写入,辩论开始时校验所有知识包的时间戳;如果关键数据超过24小时未更新,系统会直接拒绝生成辩论报告,并提示需要先刷新数据。强制失败比给出一个看似合理但实际上过期的结论好得多。
5.3 幻觉引用是最大隐患
第三个坑也是大模型的老毛病:幻觉引用。空方Agent一本正经地说"据某券商研究所报告指出,该技术路线成本下降30%",但知识包里根本没有这条报告。这种引用在单条AI回答里不容易被察觉,但放在辩论场景里,因为它听上去非常具体,会给裁决模块和读者带来虚假的确定感。
我的处理办法是:所有论点进入裁决层之前,先做一遍"引用回溯"校验,把论据中提到的数字和来源在知识包里做模糊匹配;匹配不到的直接打上"未验证引用"标签,并降低该论据的分数。经过这轮改造之后,幻觉引用明显下降,但还需要定期抽检,因为模型撒谎的方式会变。
6. 边界与扩展:这个系统到底该怎么用
6.1 它能做什么,不能做什么
先泼一盆冷水:这套系统不能预测明天涨跌,也不能保证选出牛股。它的定位是"投研辅助压力测试工具"。适合做三件事:对已有持仓的标的做多空复盘、对关注的板块做风险变量梳理、对计划中的投资逻辑找漏洞。它确实不适合做:荐股、高频交易信号、对突发事件的第一反应。
更重要的是,它输出的不是"最终答案",而是一份"需要人继续验证的清单"。比如空方提出了某个关键假设,你需要去查证那个假设是否成立,这个过程本身就是投研的价值。用惯了之后你会发现,真正让你改变决定的往往不是结论,而是辩论过程中被挖出来的某个反面变量。
6.2 把AI辩论嵌入每日复盘的三点建议
我目前的使用频率是每个交易日收盘后跑一次重点持仓标的的辩论,每次约十分钟。这里分享三个实操建议:
第一,不要每天换标的。持续对同一批标的做多空辩论,才能积累出连续的质量评估,发现模型遗漏的变量。
第二,关注裁决层的"共识"而不是立场。两方在某个风险点上达成一致时,那才是真正值得重视的信号。
第三,保留人工复核环节。AI辩论再严谨,也只是对已知信息的重组,无法覆盖真正的黑天鹅。至少每周抽检一次系统输出的引用来源,确认没有出现新的幻觉。
6.3 后续想扩展的方向
目前的想法是往两个方向扩展。一是把宏观指标加进来,让多空辩论不再局限于单一标的,而是结合利率、库存周期、产业政策等宏观变量做自上而下的推演。二是加入社交情绪数据,对舆情热度和讨论情绪做量化,再让辩论双方围绕情绪数据是否过度反应进行对抗。这两个方向还没有完全跑通,但技术路径是清晰的:数据越丰富,辩论的素材就越充分;约束越严格,结论就越经得起推敲。
最后聊一点个人感受。这套系统我用了几个月,最舒服的地方不是它偶尔给出的正确结论,而是它逼着我把以前懒得想的反面逻辑想完整。以前我复盘一个标的,总是习惯性地去找支持自己判断的证据;现在我会先看一眼空方AI列出的那三条风险变量,再回头审视自己的仓位和理由。很多次,系统没有让我改变观点,但让我把原来的判断加了一个"除非"。这个"除非",恰恰是市场里最贵也最难得的认知。