如果把 Agent 投资系统理解成“让 Agent 写研报”,这个系统很快会停在漂亮文字上。研报适合给人读,却不一定适合被系统追踪。它可以写得很顺,也可以引用很多材料,但后面市场给出反馈时,很难知道到底是哪一个判断被验证,哪一个判断只是碰巧撞上。
系统该保存的,是一个可执行、可评估、可复盘的投资决策对象。
研报可以存在,但它只是解释层。下面这些字段才是系统要继续处理的对象:
asset:
horizon:
thesis:
evidence:
counter_evidence:
valuation:
scenario:
invalidation:
watchlist:
position_rule:
risk:
confidence:
decision:这些字段看起来比文章粗糙,却更适合被市场和后续事实检查。
生成器
生成器负责把一个投资问题变成决策对象。
它不是直接回答“买不买”,而是先把问题拆开:
- 这家公司到底靠什么赚钱?
- 当前价格在定价什么?
- 支持这个判断的事实有哪些?
- 哪些反向证据正在削弱这个判断?
- 这个判断需要多长时间验证?
- 什么情况出现时,原判断必须失效?
- 如果判断错了,最多愿意付出多大代价?
生成器可以产出一篇可读报告,同时要产出机器能继续处理的对象。每一个结论都要落到字段里。没有证伪条件的判断,不进入决策对象;没有来源的事实,不进入证据字段;没有期限的预测,不能算预测。
以后回看时,不再只问“这篇文章写得怎么样”,而是逐字段检查当时的判断。
评估器
市场每天都在变化,但价格不是直接答案。
如果某个标的买完后涨了,不能立刻说生成器做对了。可能是市场风格切换,可能是行业一起上涨,也可能只是流动性推高估值。反过来,短期下跌也不一定说明原假设错了。
评估器要把反馈拆成几类。
事实评估
财报、公告、经营数据、行业数据和管理层指引,用来检查报告里的事实判断。
- 收入是否符合原来的区间?
- 毛利率、费用率、现金流有没有按预期变化?
- 用户、订单、库存、价格、成本有没有改变?
- 原来认为稳定的业务变量是否出现了裂缝?
事实评估不等价格确认。关键事实变了,市场暂时没反应,也要更新判断。
市场评估
价格只在比较中才有意义。
- 它是绝对上涨,还是相对行业上涨?
- 它是公司自己的变化,还是大盘和行业一起变化?
- 估值变了,盈利预期有没有变?
- 波动变大,是因为新事实,还是因为风险偏好下降?
- 成交量和持仓结构有没有说明市场参与者变了?
市场评估的任务不是追涨杀跌。它要识别市场正在重新定价哪一部分假设。
过程评估
过程评估看的是生成器当时有没有偷懒。
- 有没有把叙事当事实?
- 有没有遗漏已经公开的重要反证?
- 有没有只找支持材料,不找反面材料?
- 有没有写清楚期限和证伪条件?
- 有没有把估值区间写成一个看起来精确的目标价?
这部分很像代码里的测试失败。不是结果错了才有问题,输入和检查条件写得含糊,本身就是问题。
校准评估
如果生成器说某个判断有 70% 把握,长期看,类似判断应该大约命中 70%。
单次投资看不出来,十次、二十次以后可以看出来。一个总是把 55% 写成 80% 的系统,会让仓位过大;一个总是把 80% 写成 50% 的系统,会让好机会留不住。
校准评估不追求每次都准,它追求置信度不要长期失真。
优化器
优化器不应该直接优化“下次推荐的股票要涨”。
这个目标太危险。市场噪声太大,短期结果太容易诱导系统学坏。它可能学会迎合热门叙事,学会写更激进的结论,学会把运气包装成能力。
优化器真正该改的是生成器的工作方式:
- 修改研究模板;
- 增加必须检查的数据源;
- 增加反证搜索步骤;
- 调整估值情景里的默认参数;
- 改写仓位规则;
- 增加风险检查清单;
- 把失败案例加入反例库;
- 对某类行业使用不同的分析框架。
如果一次失败只留下“市场不可预测”,系统没有进步。
如果一次失败让下一次研究多检查一个字段、少相信一种叙事、提前写清一个退出条件,这次失败才进入了系统。
量化场景
如果做量化,Agent 的位置会更靠近执行,但仍然不应该让大模型临场下单。
更稳的分工是:
Research Agent
↓
Strategy Object
↓
Backtest Engine
↓
Risk Engine
↓
Execution Engine
↓
Audit AgentResearch Agent 生成策略假设。Strategy Object 把假设写成可回测规则。Backtest Engine 用确定性程序跑数据。Risk Engine 检查回撤、杠杆、流动性、相关性和容量。Execution Engine 只执行通过规则的订单。Audit Agent 记录每一步为什么发生,后来哪里偏离了原计划。
在这里,Agent 可以参与很多事情:
- 提出因子假设;
- 写回测实验;
- 检查数据异常;
- 解释策略失效;
- 生成盘后复盘;
- 比较不同版本策略的变化;
- 把执行日志整理成下一轮改进建议。
但下单动作最好交给确定性系统。投资里最怕的不是系统保守,而是人在看不懂系统为什么动作时,还继续相信它。
第一版系统
第一版不用自动交易,也不用一开始就接很多数据源。
先让每一次判断都留下一个决策对象:
id:
asset:
date:
horizon:
thesis:
evidence:
counter_evidence:
valuation:
scenario:
invalidation:
watchlist:
position_rule:
risk:
confidence:
decision:
review_schedule:然后让评估器在固定时间回看:
- 哪些事实已经更新?
- 哪些假设被加强?
- 哪些假设被削弱?
- 哪些证伪条件被触发?
- 价格变化来自公司、行业、大盘,还是估值?
- 当初的置信度是否过高?
- 下一次生成器要改哪个字段?
这个系统最初不需要聪明。它只要做到一件事:让每一次投资判断都能被后来的人和 Agent 重新打开。
等积累了几十个决策对象,再谈优化才有意义。那时优化器面对的不是一堆情绪化复盘,而是一组有字段、有期限、有证据、有失败痕迹的训练样本。
这才可能让 Agent 投资系统从“会写报告”,慢慢变成“会改进自己的研究方式”。