最近这几天,Codex 几乎占领了我的信息流。最开始我没打算动手,直到看到“一个人干完一个投研小组的活”这种说法,心里那根职业弦才算被拨了一下——我在买方和卖方都做过投研支持,太清楚一个小组每天在忙什么:宏观数据跟踪、财报拆解、估值建模、同业对比、纪要输出,这些活分散在宏观、行业、数据、基金几个角色身上,多数时候靠人力和Excel硬扛。
于是我用一个周末搭了一套 Codex 金融Skills,把投研小组的日常流程拆成Agent任务,从安装环境、配置Skills,到连续跑完宏观、财报、估值、纪要四类任务,做了一次全真模拟。这篇文章会把整个过程、评分和翻车点都放出来,给抱着同样想法的朋友当参考。
先放结论:如果“干活”指的是把数据整理成表格、把财报拆出结构、把纪要改成模板,那确实干得完;如果指的是独立产出带投资判断的完整研报,目前还差得远。下面讲清楚我是怎么测的,以及每一步到底哪里靠谱、哪里离谱。
1. 一个投研小组的日常工作量,到底被低估在哪
1.1 表面是四个人,实际是四条流水线
多数人以为投研小组四个人就是“四个聪明脑袋在开会”,实际远不是这样。团队里通常有宏观分析师、行业研究员、数据分析师和投研助理,他们每天在做的事是四条高度标准化却又相当耗人的流水线。
宏观分析师早晨第一件事是过数据:隔夜利率、资金面、通胀和增长指标,然后判断当前处在什么样的政策环境。行业研究员要读公告、拆财报、盯上下游价格,把一家公司的收入、成本、毛利率拆到能解释月度变化。数据分析师在维护估值表和同业对比模型,DCF(现金流折现)模型的每一个参数更新都意味着全表联动。助理全天候在写纪要、整理日报、汇总各类数据。这些工作表面上叫“研究”,实际上有一半是结构化整理。
让我用一家消费类公司的季度跟踪举个例子:研究员要把营收按产品线拆开,要看费用率的变化,要对比过去5年同期的增速,还要把毛利率变动归因到成本端还是价格端。这一步听起来不难,但光是把公告原文、附注、管理层讨论三处口径对齐,就得花半天。四个人四个岗位各有各的流水线,真正坐下来做深度判断的时间反而被挤占。
1.2 为什么“一个人顶一组”以前是伪命题
过去几年,自动化工具一直在尝试消灭这些流水线。我试过用爬虫抓公告、用Python脚本计算同环比、用模板生成日报,但问题在于工具与工具之间是断裂的:数据抓下来没人清洗,财报口径没人统一,格式转换和逻辑判断被当作两件事分开处理。于是投研组依旧需要人海战术,因为每个中间环节都需要一个人盯着。
Codex这一类Agent工具真正改变的不是“自动执行某一步”,而是把“完整流程”写成了可执行的自然语言。它能把抓数据、写分析、算模型、出纪要串在同一条任务链里,这让我决定做一次认真的实测:如果连宏观跟踪、财报拆解、估值建模、纪要输出都能在同一个Agent工作流里完成,理论上一个人确实可以覆盖一个小组的执行层工作量。
但“理论上”三个字很关键。工具能把流程串起来,不代表数字一定对,也不代表判断一定成立。所以我搭建这套测试时,刻意没有给它“喂答案”,只想看它在无人干预的情况下能走多远。
2. 实测前夜的装备战:从装好Codex到金融Skills落地
2.1 Codex安装三步走,以及三个容易卡壳的地方
Codex 的安装本身不复杂,核心步骤就两步:安装CLI、登录账号。我在一台macOS机器上用的命令是npm install -g @openai/codex,装完直接执行codex login按提示完成认证,然后跑一句codex验证版本。整个过程五分钟内能完成,但网上搜“codex安装教程”“codex使用教程”时常有人卡住,我把真实遇到的三个问题放在一起说。
第一,Node.js 版本太旧会直接导致安装中断。如果你npm install时报各种语法错误,大概率是 Node 低于官方要求的最低版本,先node -v检查,建议直接升级到当前 LTS 版本。第二,安装提示成功但 shell 找不到codex命令,这不是没装好,而是 npm 全局 bin 目录没进 PATH,把输出里的路径加进.zshrc或.bashrc即可。第三,登录完成后第一次发起会话,模型信息加载可能比较慢,如果长时间卡在初始化界面,多数是网络波动,退出重试即可。
这三点都是环境层面的小坑,不涉及任何复杂配置。对我这种只想赶紧跑业务的人来说,最怕的不是安装报错,而是报错信息指向不明确。所以我把整个环境搭建写进了本地的初始化脚本,避免后面测试时反复折腾。
2.2 切换自定义端点时的本地链路报错:一次排错记录
测试之前我还装了社区里常用的 Codex 配置切换工具,用来在不同 API 入口之间切换。结果第一次切换完,启动 Codex 后调用/responses接口就报了本地连接异常,大意是“本地链路切换失败,无法处理该端点”。这个报错在近期的相关问答里出镜率很高,我记录一下我的排查路径,不一定适用所有人,但思路可以参考。
我当时先查了三件事:配置里填写的接口地址是否完整,是不是漏了路径前缀;配置文件的读写权限是否正常,Codex 进程能不能读到切换后的内容;切换工具写入配置后,是否真的重新加载到了运行中的会话。结果是第三点出了问题——工具切完之后可以正常打开配置界面,但新的配置只在下一个新会话中才生效,我用的还是旧的会话进程,自然报错。处理办法很简单:完全退出终端,重新加载配置,再发起新会话。
这里给一个更稳妥的建议:如果只是个人使用,不一定要依赖第三方切换工具,直接编辑 Codex 的本地配置文件,把接口地址和模型标识写明,反而少一层中间环节。工具的便利性值得认可,但每多一层封装,就多一个排查点。
2.3 金融Skills怎么写:把投研流程翻译成Agent能读的指令
Codex 支持自定义 Skills,本质上是把一套提示词、脚本和规则打包进固定目录,让 Agent 在执行任务时自动加载。我在本地建了一个finance-assistant技能目录,结构是这样的:
~/.codex/skills/finance-assistant/ ├── SKILL.md └── scripts/ ├── extract_financials.py ├── valuation_helpers.py └── format_report.py核心文件是SKILL.md,它相当于岗位说明书。我给它写了四块内容:第一,数据来源规则,所有数字必须标注提取时间和来源;第二,财报分析标准,要求按资产负债表、利润表、现金流量表三个维度拆,并且明确区分归母净利润与净利润;第三,估值方法要求,DCF 必须列出所有假设参数,可比估值必须注明选的是哪几家同业;第四,输出模板,研报、纪要、日报分别使用不同格式。
写 Skills 其实并不神秘,它就是把资深分析师的判断习惯固化成文字。比如我专门在SKILL.md里写了一条:当数据不足以支撑结论时,必须直接说“数据不足”,不能猜。这一条在后面实测里救了命——它至少阻止了一部分幻觉。把这个技能目录建好,Codex 在后续所有会话里都会自动遵守,相当于给Agent立了一套团队规矩。
3. 实测全程回放:让Codex一个人跑一整套投研日活
3.1 宏观数据岗:表格漂亮,时效性被打脸
我给它下达的第一个任务是跟踪最新三个月的 CPI、PPI 和 10 年期国债收益率,整理趋势并标出异常波动。任务本身贴近宏观分析师早晨的第一项工作。
Codex 很快给出了一张结构相当规整的表格:分月列出三组数据,做了环比变化标注,还自己加了一栏“解读”,把通胀回落和利率下行的逻辑说通了。阅读体验上,这个初稿可以直接丢给基金经理看。但我习惯性地检查了每组数据的时间戳,发现问题来了——它使用的某个公开数据源更新比官方发布晚了大约三个工作日,导致表格里最新一个月的数据其实是上一期的。我追问了一句,它承认“数据源未更新”,但并不会主动提示。
这给我的教训是:宏观数据岗的活,格式和逻辑容易干,但“时效性”必须靠规则约束。我在SKILL.md里补了一条“每个数据必须带提取时间,时间超过一个工作日就高亮提示”,后面再跑就稳多了。
3.2 财报分析岗:口径混淆,差点被骗
第二个任务是我从一家消费类上市公司的年报里截取了几段核心附注文本,让 Codex 按SKILL.md里的四维框架拆财务表现:营收、毛利率、费用率、现金流。
这一次的表现比宏观任务更惊艳。它准确算出了营收同比增速,指出毛利率改善来自成本端下行,还注意到财务费用率比去年同期高了几个百分点,甚至主动关联到公司在建项目说明里的资本开支。这些拆解放在一个刚入行一年的研究员身上,也是拿得出手的。
但我在复核其中一个关键比率时发现:它把“归母净利润”和“净利润”当成同一个口径用了,逻辑链条完全自洽,数字却失真了。如果不是我恰好看过原始报表,这个错误会被当成正确结论直接写进简报。这比算错更危险——它错得很有条理。后来我查阅了模型记录,发现问题出在我给它的年报文本里同时包含两种口径的表述,而 Agent 没有预设“优先使用归母净利润”的规则。
这是个值得警惕的环节。财报分析的任务复杂度在四个任务里排第二,却是最需要人工复核的一环。
3.3 估值建模岗:逻辑自洽,假设靠猜
第三个任务我给它设置了约束条件:无风险利率 2.0%、股权风险溢价 6%、beta 1.1,要求利用这些参数搭建一个 DCF 模型,并和同业可比公司做相对估值。输入只有一段公司历史财务摘要和三家同业公司的数据点。
Codex 的公式处理能力超出了我的预期。它给出了完整的 WACC 计算过程,列出了未来五年收入增长的阶梯假设,把终值计算写得明明白白,还生成了一个可用于二次计算的表格。这些都是标准动作,完成度很高。
真正让我皱眉的是“假设生成”这个过程。我明明没有给它未来增速的依据,它却在提示词里写了一个“参考行业历史中枢”的增速假设,然后一本正经地解释这个假设为什么合理。模型算得再漂亮,模型的第一块砖是 Agent 自己拍脑袋加的,这让整条结论链都变得可疑。估值建模最大的难点从来不是计算,而是假设的严格性。工具能帮你把假设算出结果,但它不会因为假设站不住脚就停下来。
3.4 纪要撰写岗:最强功能的诞生
最后一个任务是我把一段模拟会议录音转写文本发给它,要求按“结论先行、风险点、待办事项、分歧点”四个板块输出会议纪要。这一段简直是它的统治区。
转写文本里信息密度低、口语化严重、话题来回跳,Codex 只用了不到一分钟就整理出结构清晰的一页纪要,把参会者讨论的三个分歧点单独提炼出来,对应的待办事项和负责人也列得清清楚楚。我拿给当过投研助理的朋友看,他说这份纪要水平已经超过大多数刚入行的助理,唯一的问题是有些口语表达虽然意思对,但术语不够准确。这种输出风格也许和具体模型能力有关,但从我的实测来看,纪要撰写是这套流程里最先能替代人工的环节。
4. 实测结果全览:哪些环节真能顶岗,哪些环节差点翻车
4.1 真能顶岗的三个环节
四个任务跑下来,Codex 真正让我放心“无人值守”的环节有三个。
第一是格式化整理。无论是把宏观数据变成表格,还是把会议录音变成纪要,它都能一步到位生成格式正确、层级分明的初稿,这部分内容可以被团队成员直接留用。第二是差异识别。让它在财报文本里找“异常项”,比如费用率突然上升、现金流与利润背离,它的命中率很高,这能明显加速研究员的排雷过程。第三是代码辅助计算。DCF 模型的计算脚本、测算表格的转置和重算,它都能以代码方式完成,并且代码逻辑容易复核。这些环节的共同特点是:有明确规则、有标准答案、语义空间窄,正好是Agent的舒适区。
4.2 差点翻车的三个环节
与之对应的三个危险环节,我必须拉出来单讲。
最危险的是数值幻觉。前面的财报测试中,它把归母净利润与净利润混用,这种错误不会以“这块我不会”的形式暴露,而是以完整逻辑链呈现出来,复核成本反而更高。其次是数据时效性。宏观数据更新滞后三天,它只会闷头继续算,不会主动提醒数据源过期。如果不是人工盯住时间戳,最终结论必然带上旧数据偏差。第三是合规缺失。它生成的报告初稿完全没有署名、日期、免责声明,在真正的机构环境里,这种内容不可能直接对外发布,必须有持牌人员复核签字。
这让“一个人干完小组的活”这个命题出现了一个裂缝:执行层它干得完,但责任层仍然需要人。
4.3 产出物的可用性分级
为了让你更直观地判断这套流程能不能直接进生产环境,我把实测产出物按可用性做了分级:
| 产出物 | 实测评分 | 主要问题 | 能否直接使用 |
|---|---|---|---|
| 会议纪要初稿 | 4.5/5 | 术语准确性不足 | 复核后可直接使用 |
| 宏观数据表格 | 4/5 | 数据源时效性滞后 | 增加时间戳检查后可用 |
| 财报四项拆解 | 3.5/5 | 存在口径混用风险 | 必须逐项复核数字 |
| DCF与可比估值表 | 3/5 | 假设来源不透明 | 仅作初稿参考,重新核对假设 |
| 完整研报终稿 | 2/5 | 缺少合规要素,判断依据存疑 | 不可直接外发 |
这套分级就是我对“一个人干完一个投研小组”最诚实的回答:能干完的是过程,干不完的是责任。
5. 一个人+一个AI的投研工作流:落地建议
5.1 把任务拆成两类:AI干执行,人守判断
如果要把这套实测落地为日常工作流,首要原则是给任务分类,不要眉毛胡子一把抓。我建议把所有任务拆成“可标准化执行”和“需要判断结论”两类。
可标准化执行的任务直接交给 Codex:抓取数据、格式化输出、计算表格、生成纪要、同类对比。这些任务的特点是输错能看出来,所以可以放手。需要判断结论的任务必须留在自己手里:比如行业景气度结论是否成立、某个增速假设是否合理、估值折溢价该给多少。这些任务的特征是没有标准答案,错了也不容易发现,交给Agent就等于交出判断权。
我在实测里吃过亏的地方,全是把两类任务混在同一个指令里。比如我说“分析这家公司”,它就自己完成了“拆数据”和“下结论”两部分,而下结论恰恰是最危险的。改成“只拆数据,不下结论”之后,风险骤降。
5.2 给Codex立三条硬规矩(AGENTS.md 配置示例)
为了让 Agent 长期保持可靠,我在项目目录里加了一个AGENTS.md文件,把三条硬规矩固化进去。如果你要复刻这套流程,可以直接参考:
# 金融分析硬规矩 1. 所有财务数字必须区分“归母净利润”与“净利润”,二选一不可混用。 2. 每个数据点必须标注来源类型和提取时间;若数据可能滞后,必须高亮提示。 3. 禁止直接输出买入/卖出等投资建议;如被要求输出,必须附加“未经持牌人员复核,不可作为投资依据”提示。这三条规矩是在实测翻车后逐步加的,效果非常明显。第1条直接解决了财报口径混用问题;第2条让宏观数据时效性问题浮出水面而不是被隐藏;第3条从机制上阻止了Agent在无人监督时输出带立场结论。建议做金融相关实测的人把这三条作为底线,可以省掉大量复核成本。
5.3 喂数据的姿势比提示词更重要
很多人把Agent的准确性问题都归因于“提示词写得不好”,但我的实测感受是:喂数据的姿势比提示词更关键。
第一次跑财报任务时,我给了它一整段年报附注原文,结果它提取口径出错。后来我做了两步调整:把文本先按科目拆成小块,并明确标注哪些字段属于归母口径、哪些属于合并口径;把数值单位统一写清楚,避免“万元”和“亿元”混用。同样一个模型,喂数据方式调整后,财报拆解的准确率肉眼可见地提升。
这里还涉及一个现实问题:成本。长文本反复对话的 token 消耗不小,与其把几万字年报整段丢进去,不如只截取关键附注和核心报表。你要把 Agent 当成一个实习生:给它的材料和你的问题范围越聚焦,它的产出越靠谱,token 越省。这是实测中可操作性最强的一条经验。
6. 什么情况下“一个人干完一个投研小组”才成立
回到标题这个问题,我的答案可以拆成两句话。
如果你说的“投研小组的活”是每天的数据表格、会议纪要、财报初拆、估值计算,那确实可以。这次实测里,我独自完成的投研日活覆盖了宏观数据岗、财报分析岗、估值建模岗和纪要撰写岗的绝大部分执行层工作,还留出了大量时间去验证数据、修正口径、判断假设。一个过去需要四个人支撑的信息处理底座,现在一个人加一个 Agent 就能跑起来。
但如果你说的“投研小组的活”是指真正带投资判断的研究链条——判断一家公司未来三年的增长中枢,判断某项政策对行业的影响方向,判断估值应该给多少倍——那就不成立。Agent 可以把假设计算成模型,却无法为假设负责;可以写出逻辑通顺的观点,却无法为自己的观点承担合规责任。它速度快、格式好、逻辑不差,但它不知道什么是“不能错”。
这次实测之后,我反而没有产生“要被AI替代”的焦虑。原因很简单:我把大量机械工作时间压缩掉以后,终于有空去盯那些以前来不及盯的问题——为什么这个数据源滞后了三天,为什么这家公司的毛利率和同行走势背离,为什么财报口径在前后两页会出现不一致。这些追根问底式的检查,才是投研工作里真正有价值的部分。
如果你也想搭一套类似的流程,我的建议很直接:先复刻我的金融Skills框架,从纪要撰写和日报生成这两个低风险环节跑起,跑顺了再逐步往财报分析和估值建模延伸。最后一个实测小技巧是,给 Codex 喂一份你过去人工完成的优秀研报作为示例,它的输出质量会直接拔高一大截。所谓“一个人干完一个小组”,本质不是把人换掉,而是把你从流水线上解放出来,去干人该干的事。