文章
宏观报告生成为什么不能让 LLM 自由发挥
从真实企业项目经验出发,讨论金融和宏观报告生成为什么需要数据节奏、来源追溯、共识分歧、结构约束和拒绝幻觉。
做宏观报告生成时,最危险的方案不是模型能力不够,而是把它当成一个更会写作的编辑:把研报、新闻、指标说明塞进一个开放式提示词,然后让 LLM “综合分析一下”。
这种方式很容易在 Demo 里显得流畅。问题是,金融和宏观报告不是流畅文本比赛。读报告的人关心的是:这个判断来自哪里,哪些信号是真变化,哪些只是单日噪声,市场共识和分歧分别是什么,以及当证据不足时系统会不会停下来。
在真实企业项目里,我更倾向于把宏观报告生成拆成一条受约束的生产线,而不是一次开放式生成。
先处理数据节奏,而不是每天重写一切
宏观数据不是同一种频率。GDP、PMI、通胀、就业、央行操作、财政政策、行业新闻和研究观点,各自有不同的发布周期和有效期。
如果系统每天把所有主题都重新跑一遍,表面上很勤奋,实际上会制造两个问题。
第一,很多数据当天没有新信息。模型会为了完成任务去复述旧内容,甚至把旧结论写得像新变化。
第二,真正的新增信号会被大量无变化内容稀释。报告看起来很完整,但读者很难判断今天到底发生了什么。
所以报告生成的第一层约束应该是数据节奏:哪些内容按事件触发,哪些按数据发布窗口更新,哪些只在有足够新证据时重算。LLM 不应该决定“今天该分析什么”,系统应该先把这个问题回答清楚。
来源追溯不是装饰,是金融文本的底线
宏观报告里最容易出问题的句子,往往不是事实性数字,而是判断句。
例如“政策边际转向宽松”“市场对通胀回落形成共识”“风险偏好正在修复”。这些句子听起来像分析,但如果没有来源,它们也可能只是模型根据语气拼出来的顺口话。
我通常会把来源追溯前置到生成链路里:原始资料先被解析、标注主题、保留发布日期和出处;中间层洞察也要带回引用关系;最终报告只能使用已经进入证据池的材料。
这会让系统少一些“文学性”,但多很多可复盘性。报告里某个判断被质疑时,团队可以回到原始研报、新闻或数据说明,而不是去猜模型当时为什么这么写。
共识和分歧要显式分开
宏观分析不是投票求平均。
同一天里,可能同时出现看多和看空的解释。温和观点可能数量很多,极端观点可能数量很少,但后者对资产价格和风险提示更关键。如果直接让模型“总结市场观点”,它很容易写成两边都对的中性段落。
更稳的做法是让系统在生成前先整理信号结构:
- 哪些观点构成共识
- 哪些观点存在明显分歧
- 分歧来自数据解释、政策预期,还是资产定价假设
- 哪些信号只是局部样本,不能外推到整体判断
最终报告可以写得简洁,但中间过程不能偷懒。只有把共识和分歧分开,资产配置类建议才不会变成“长期看好,短期谨慎”这种谁都无法执行的话。
结构约束比开放式提示词更重要
开放式提示词的问题在于,它把太多责任交给了模型:选主题、定权重、排版、平衡观点、控制语气、避免幻觉。
在宏观报告里,这些事情应该尽量由系统约束。
例如,资产类别可以要求固定的正反逻辑结构;政策判断可以要求先给证据,再给方向,再给不确定性;宏观指标解读可以要求拆成当前状态、变化原因、后续观察点。每一段都应该知道自己在报告里的职责。
结构约束不是为了把文章写死,而是为了让报告每天可比较。读者形成阅读习惯以后,才知道今天和昨天的差异在哪里。
拒绝幻觉要写进产品规则
金融报告生成最容易被低估的一点是:系统必须会拒绝。
没有足够来源时,应该说证据不足。数据未更新时,应该沿用上一期结论并说明原因。检索不到材料时,应该停止生成相关判断。多个来源冲突时,应该暴露冲突,而不是强行给出一个漂亮结论。
这不是提示词里加一句“不要编造”就能解决的。拒绝机制需要数据层、检索层、生成层一起配合:证据池为空不能生成,引用缺失不能进入最终报告,结构化字段缺失不能假装完整。
LLM 可以写分析,但它不应该被允许填补关键证据空白。
我的判断
宏观报告生成真正的工程难点,不是让 LLM 写出一篇像人的文章,而是让它在可控边界内写。
一个可用的系统至少要回答五个问题:
- 今天哪些数据真的应该更新
- 每个判断能追溯到哪些来源
- 市场共识和分歧分别是什么
- 报告结构是否稳定、可比较
- 证据不足时系统会不会拒绝生成
如果这些问题没有被系统化处理,再强的模型也只是在做开放式写作。它可能看起来专业,但很难被研究、投顾和风控流程长期信任。
如果你正在做企业 RAG、知识库、AI 客服或 Agent 工作流,可以通过页面下方微信二维码或邮件沟通,邮箱:contact@aildnc.com。