引子:一个分析师的大脑里住了几个人?

每天收盘后,我需要分析 A 股市场的整体状况,然后逐个诊断持仓组合中的每一只标的——是继续持有?减仓?还是果断止损?每一项决策都涉及大量数据:行情走势、技术指标、资金流向、板块轮动、消息面情绪、宏观环境……信息量远超一个人脑能实时处理的范围。

传统做法是:打开行情软件,翻 K 线,看指标,读新闻,然后靠经验拍脑袋。

但我是搞 AI Agent 的。我自然想问:能不能让 AI 替我做这件事? 不是简单地”生成一份报告”,而是模拟真实投资决策中的对抗式讨论——毕竟,最扎实的投资决策不是在 consensus 中诞生的,而是在 bull vs bear 的交锋中锤炼出来的。

这就是 多空辩论圆桌(Market Debate Roundtable) 的起源。


问题:为什么单 Agent 分析不够?

先看看市面上已有的”AI 股票分析”是什么画风。大多数工具的做法是:输入股票代码 → 调用 LLM → 输出一段分析文本。类似于这样:

1
2
📊 该股近期走势偏弱,MACD 死叉,RSI 处于弱势区,
建议观望。支撑位 XX,压力位 XX。

这种分析的问题在哪?

问题 表现
缺乏深度博弈 只给一个结论,没有展示”为什么不是相反方向”
确认偏误 模型一旦形成判断就倾向坚持,不会自我反驳
风险盲区 只分析有利因素,不利因素一笔带过
单一视角 像只有一个分析师在做决策,没有团队讨论的碰撞

现实中,任何靠谱的投资决策流程都包含多角色制衡:

1
2
3
4
5
6
7
8
9
┌─────────────┐
│ 研究团队 │ ← 收集数据,提出论据
├─────────────┤
│ 多头 vs 空头 │ ← 对抗式辩论,压力测试
├─────────────┤
│ 投资委员会 │ ← 综合裁决,形成决策
├─────────────┤
│ 风控团队 │ ← 检查风险敞口
└─────────────┘

本质问题:单 Agent 分析是一个人在唱独角戏,而投资决策需要一支队伍。


解决方案:三角色辩论圆桌

受到 TradingAgents 这篇论文的启发——它提出用多 LLM Agent 模拟交易团队——我设计了一套 三角色对抗式辩论框架,嵌入到每日收盘分析的工作流中。

角色设计

1
2
3
🐂 看多方(Bull)  — 寻找一切看多信号,给出强度评分(1-5)
🐻 看空方(Bear) — 寻找一切看空信号,给出强度评分(1-5)
⚖️ 裁判(Judge) — 综合双方论点,给出最终判定

每个角色独立输出,彼此不干扰,裁判在最后综合。

市场级辩论流程

第一步不是分析个股,而是先做 市场环境的多空辩论

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 伪代码:辩论圆桌的决策流程

# Step 1: 采集市场数据
market_data = {
"northbound_flow": get_northbound_flow(), # 北向资金
"limitup_tiers": get_limitup_tiers(), # 涨停梯队
"industry_flow": get_industry_fund_flow(), # 行业资金流向
"market_lhb": get_market_lhb(), # 龙虎榜
"hot_stocks": get_market_hot_stocks(), # 热点题材
"global_context": get_global_quotes(["DJI", "IXIC", "HSI"]),
}

# Step 2: 牛市论
bull_case = analyze_bull(market_data)
# 输出示例:{"signals": ["北向深股通净流入370亿", "封板率87%"],
# "strength": 3}

# Step 3: 熊市论
bear_case = analyze_bear(market_data)
# 输出示例:{"signals": ["科技股共振下跌", "两市缩量1685亿"],
# "strength": 4}

# Step 4: 裁判综合
judge_decision = synthesize(bull_case, bear_case)
# 输出示例:{"winner": "bear", "position_suggestion": "45%",
# "rationale": "市场处于科技修整+防御轮动的再平衡期"}

个股级辩论流程

有了市场大方向后,对持仓组合中的每个标的展开 独立的个股辩论

以 2026 年 7 月 17 日(周五)的军工 ETF(512660)为例,真实辩论过程如下:

🐂 看多方(强度 1/5):

  • 布林带跌破下轨,处于超卖区域
  • 美伊冲突升温理论上利好军工板块

🐻 看空方(强度 5/5):

  • MA5/10/20/60 全面空头排列
  • 今日再创阶段新低,连续 11 个交易日无任何企稳 K 线形态
  • RSI 32.8 弱势区无底背离
  • 量价齐跌,成交额放大

⚖️ 裁判综合:

1
2
3
4
5
6
🟢激进 → 超卖反弹可等 1-2 天
🟡中立 → 强烈建议止损,等右侧确认再回补
🔵保守 → 中期下行趋势明确,-5% 日跌幅非正常回调

最终判定:空方压倒性胜出
操作建议:止损或反弹至MA5减仓

对比一下,如果只用一个 Agent 做分析,大概率会说”超卖了,可能有反弹”,不会把论据的薄弱程度(强度 1/5)和双方的交锋过程呈现在你面前。而辩论框架让你看到决策的全貌——不再是一个黑盒结论,而是一个透明的思维过程。


效果:从声音到投票

我对该框架上线前后做了对比:

维度 单 Agent 分析 辩论圆桌 变化
决策说服力 让用户自己判断 双方论据清晰呈现 信任度大幅提升
风险暴露 容易忽略利空 空方必须全力找茬 风险识别更全面
操作纪律 靠感觉 有评分+止损线 执行更严格
覆盖率 看 K 线+新闻 7 维数据+全球语境 视角更广

更重要的是——用户说改变了他的行为。以前他套牢了容易”死扛”,现在看到他自己的 Agent 在辩论中给出”坚决止损”的结论(且空方强度 5/5),他更愿意执行止损。这才是 AI 投资分析真正该做的事:不是代替你做决策,而是帮你做出更好的决策。


技术要点:实现这个框架的 3 个关键决策

1. 角色分离比”角色扮演”更重要

最开始我尝试让一个 Agent 同时扮演多空两方——“你既是多头又是空头,先看多再看空”。效果很差:Agent 会在第二轮就忘记自己是多头,开始附和空头的论点。

解决方案:强制角色隔离——每一轮辩论中的每个角色都是一次独立的 LLM 调用,拥有独立的系统 prompt 和上下文。看多方看不到空方的输出,裁判则同时看到双方。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 伪代码:角色隔离
def market_debate(market_data):
# 独立调用,互不干扰
bull = llm_call(
system="你是一名看多分析师。找看多信号。",
data=market_data
)
bear = llm_call(
system="你是一名看空分析师。找看空信号。",
data=market_data
)
# 裁判同时看到双方
judge = llm_call(
system="你是裁判。综合多空双方论据。",
bull=bull, bear=bear
)
return bull, bear, judge

2. 评分标准化(强度 1-5)

每个角色必须为自己的论点给出 强度评分(1-5)。这个设计带来了两个好处:

  • 防止敷衍:不能只说”有利因素”,必须量化有多有利
  • 便于比较:空方 5/5 对多方 1/5 → 差距一目了然

我们把强度评分映射到可视化:🟢1-2 弱 / 🟡3 中 / 🔴4-5 强。在报告中,读者一眼就能看出哪方占优。

3. 三级裁判(激进/中立/保守)

最终裁判不是只有一个意见,而是分三个风险偏好:

1
2
3
4
5
judgments = {
"aggressive": "激进型 👉 继续持有,等反弹再加仓",
"neutral": "中立型 👉 5日线下方不减仓,反弹至MA5减1/3",
"conservative": "保守型 👉 明日若继续放量下跌,止损减半",
}

这模仿了真实投资委员会中不同风格委员的讨论。用户可以根据自己的风险承受能力选择听从哪个建议。


与 TradingAgents 的异同

TradingAgents 论文设计了一个完整的量化交易多 Agent 系统,包含 Fundamental Analyst、Sentiment Analyst、Technical Analyst、Trader、Risk Manager 等多个角色。我们的实践是它的 轻量化变体

维度 TradingAgents 我们的辩论圆桌
角色数 7+ 个角色 3 个角色(Bull/Bear/Judge)
输出 完整交易信号 分析报告+决策建议
部署 需要多 API Key 并行 单 Agent 串行调用
用途 高频量化交易 每日持仓诊断
实现成本 数千行代码 ~200 行 prompt + 流程编排

亮点:我们用更轻量的方式(200 行 prompt 设计),在生产环境跑出了可用的结果。对于大多数个人投资者来说,完整的 TradingAgents 架构过于重量级,而辩论圆桌模式可以在任何支持 LLM 调用的工具中复现。


总结

多空辩论圆桌不是什么高深的算法——它本质上是在模拟人类投资决策中最好的那部分实践:让不同观点充分碰撞,然后做出综合判断。

如果你也想在自己的分析流程中引入这个模式,可以从这三步开始:

  1. 设计三个角色:多头、空头、裁判。给每个人写一个系统 prompt,强调他们的立场
  2. 强制角色隔离:每个角色独立调用 LLM,裁判最后才看到双方论点
  3. 给论点打分:1-5 的强度评分让分析结果一目了然

一句话 Takeaway:最好的投资决策不是在 consensus 中诞生的,而是在 bull vs bear 的激烈交锋中锤炼出来的。让 AI 帮你开这场辩论赛。


附:相关资源

封面图:三位 AI 角色围坐辩论桌的抽象可视化,蓝色/紫色科技风