ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

Codex CLI Skills实测:一个人跑完金融投研全流程

2026/10/2 10:55:10 拓冰建站 浏览量
Codex CLI Skills实测:一个人跑完金融投研全流程 先交代一下背景我最近把OpenAI Codex CLI的Skills功能拉出来做了一轮实测场景选的是金融投研。起因很简单我认识一个小型私募的投研负责人他们组里三个人日常有一半时间花在拉数据、整理财务指标、凑图表和写研报底稿上。我心里一直有个问号如果把这套流程里能编码的部分全部交给Codex能不能真把一个人变成一支队伍这轮测试下来我的结论是一个人干完一个投研小组的活这个说法六成是真的但剩下四成需要人去兜底。这篇文章把我完整的设计思路、Skills搭建细节、实测执行记录和踩坑过程全部写出来。如果你正准备用Codex或者已经在用但没玩明白Skills这篇应该能帮你省下不少折腾时间。1. 先拆清楚投研小组的活儿到底卡在哪很多人一听到AI替代投研小组第一反应是AI要替代分析师做判断。这个理解从一开始就偏了。投研小组的日常产出最大的成本根本不在判断而在判断之前的那些脏活、累活、重复活。1.1 日复一日的数据苦力活我把一个典型的投研日拆开看大概是这么几块拉行情数据、下载财务报告、整理三张表、算同比环比、做同行业对比、找历史区间分位、画图、写文字摘要、最后汇总成一份研报底稿。这里面真正需要人脑做判断的环节可能只占20%。剩下80%都是标准化的数据处理流程——数据从哪取、字段怎么对齐、指标怎么算、图表怎么画、文字按什么结构写这些步骤完全可以写成确定性的规则。传统做法里这些活靠Excel模板、Wind函数、手工复制粘贴来完成。问题在于每一步之间需要人来当胶水。拿到数据后要看一眼有没有缺失值算完指标后要核对单位画完图后要调格式写完文字后要统一风格。投研小组的人实际上大部分时间都在当胶水。这正好是Codex这类编码智能体擅长的地方。它比Excel模板强在两点第一它能自己写代码来处理数据不用人手工录公式第二它的Skills机制可以把整套处理流程固化成可复用的技能包下次遇到同类任务直接调用。1.2 Skills机制的本质把工作方法变成代码资产Codex的Skills理解起来其实不玄乎。它本质上是把一套提示词模板、执行步骤、输出规范写进一个Markdown文档里放在项目目录下让Codex在对话时能自动读取并按照这套规范执行。我一开始以为是某种插件系统真正用下来才发现它更像岗位说明书。你把如何做财务摘要这个岗位的经验、流程、要点写成文档Codex就能在需要时上岗。这比每次对话都重新交代上天入地的背景信息要强得多因为经验被固化了。试想一下传统用法你每次让AI写研报都要重新描述我要什么格式、分几部分、图表放哪、语言风格是什么。而Skills的做法是把这些描述写一次存成技能文件以后只需要说一句用研报技能分析某某公司就行。它省掉的不只是打字时间更重要的是消除了每次输出的随机性——技能文件里定了规则AI每次生成结果都会向同一套标准收敛。这正是投研工作流里最需要的东西。因为研报的价值在于可对比、可追踪这周写的和上周写的必须采用同一套分析框架否则后面做跟踪复盘时就乱了。2. 金融Skills的搭建从0到1的拆解与设计动手之前我先想清楚了一件事不要把Skills设计成一个大而全的投研总技能。那会让Codex在具体执行时不知道怎么分配注意力输出反而变得平庸。正确做法是拆细让每个技能只负责一件事。2.1 技能边界怎么划我最后划分成四个技能技能名职责范围触发场景data_loader获取行情、财务数据并做标准化清洗输入公司代码输出干净的数据表fin_analyst财务指标计算、同行业对比、历史分位基于数据表生成指标分析chart_builder绘制K线、营收利润趋势、估值区间图生成符合研报规范的图表report_writer把数据和分析结果整理成研报底稿汇总输出Markdown研报这份工整的划分背后有一个避坑逻辑如果数据获取和分析判断混在一个技能里Codex很容易在数据还没验证时就急着下结论。分开之后每一步的输出都是下一步的输入数据在环节之间流动时可以被反复检查。这跟投研小组里董秘、分析师、写手分开干活是一个道理。有人可能会问为什么不直接让Codex一口气干完我在测试里试过。一口气干完的结果是它获取数据时用的接口不稳定导致后面所有分析全建立在坏数据上而且由于整个过程在单次对话里连贯执行它自己也意识不到错误在哪一步发生。分开之后每步产物肉眼可见排查成本低得多。2.2 技能文档里的关键要素每个技能文档我用的模板是这样的以fin_analyst为例# Skill: fin_analyst ## 适用场景 当用户提供标准化财务数据表并要求计算财务指标或做同业对比时启用。 ## 执行步骤 1. 读取输入数据确认包含的字段名。 2. 计算核心指标营收同比、毛利率、净利率、ROE、经营现金流/净利润比值。 3. 如果提供了行业对比公司列表用同一套公式批量计算。 4. 输出结果以表格呈现包含指标、数值、同比变化、一句话业务解读。 ## 注意事项 - 单位统一为亿元人民币百分比保留一位小数。 - 数据缺失时标注暂无不要用前值填充。 - 不输出投资建议只陈述数据事实与可能的业务含义。写技能文档时最容易忽略的是注意事项。如果你的技能文件里只有步骤没有约束AI就会自由发挥。比如有几次我没写单位统一规则结果同一张表里有的用万元、有的用亿元整个对比直接报废。约束条件才是技能的魂。2.3 数据源与合规边界金融AI实测绕不开数据源这个话题。我用的是公开数据接口行情和财务数据主要来自yfinance和akshare这两类公开数据源前者覆盖美股和部分全球市场后者覆盖国内市场数据。这些数据源免费、无需额外授权对个人实测来说足够用。但如果你把Skills用在真实投研环境里数据源问题一定要谨慎。免费接口有频率限制盘中实时数据延迟高而且字段定义可能与专业终端存在出入。我建议把数据获取层单独封装线上环境接专业数据源只替换接口不替换分析逻辑这样Skills里的分析部分不会因为换了数据源而失效。另外有一道红线必须反复强调这类工具只能做信息整理和辅助研究不能直接输出投资建议。投研决策涉及风险偏好、仓位管理、市场环境等无法编码的因素。我在技能文件里明确写了不输出投资建议既是合规要求也是让Codex把注意力集中在数据事实上的方法。3. 实测全过程记录一个人怎么跑完投研流程3.1 测试环境与准备我用的机器是一台普通的MacBook Pro本地装了Codex CLINode环境是20.x通过npm完成安装。整个流程跑在项目目录下我把四个技能文件放在.codex/skills/目录里这样Codex启动时能自动识别。安装步骤很简单官方流程走一遍即可npm install -g openai/codex codex --version然后配置模型服务的访问凭证。配置完成后在项目目录初始化一个workspace把技能文件放进去。我强烈建议每个测试任务单独建一个子目录因为Codex执行时会生成中间文件Python脚本、临时数据表、图表等如果不隔离后续任务会被前一个任务的残留文件干扰。这里有一个很容易踩的坑技能文件名的命名要避开特殊符号使用英文短横线或下划线。我第一次用中文文件名发现部分场景下解析有问题改成英文后一切正常。3.2 实测任务与执行记录我选了三家不同行业的上市公司做测试样本用代码代号表示一家消费电子AAA、一家新能源BBB、一家医药CCC。测试目标是生成三份结构统一的研报底稿包含行情概览、财务分析、同业对比、图表四部分。每份研报的执行过程大致是调用data_loader获取最近5年财务数据和近1年日线行情调用fin_analyst计算指标体系调用chart_builder生成三张图表最后调用report_writer汇总成稿。我全程作为质检员在关键节点查看产物不做任何代码修改。执行数据如下任务数据获取指标分析图表生成研报成稿总计耗时AAA消费电子4分32秒6分18秒3分05秒5分47秒19分42秒BBB新能源3分58秒5分52秒2分48秒5分30秒18分08秒CCC医药5分12秒7分04秒3分27秒6分15秒21分58秒对照我一位做投研的朋友给出的手工耗时估算光是把三家公司五年财报从PDF里人工录入并校验对齐就得花掉大半天算指标、做图表、写摘要又得两到三天。Codex的实际执行时间大约每份20分钟速度差距是两个数量级。需要说明的是这里的耗时包含了我作为质检员的逐环节检查时间。如果不检查端到端一条命令跑完大约10分钟但我不建议为了追求快而跳过检查。3.3 产出质量怎么验证速度快不等于能用。我做了三个层面的验证。第一层是数据准确性抽查。我随机抽取AAA公司最近一个报告期的营收与公开财报披露值做了比对。Codex取数和计算的结果是对的——营收同比增速的计算公式、毛利率口径、单位换算都没有问题。第二层是格式一致性检查。三份报告放在一起对比章节结构、表格字段、图表尺寸、语言风格完全一致。这是手工做研报最难保证的一点——人写东西总有状态波动AI按照技能文件执行则天然稳定。第三层是逻辑合理性检查。我重点看了报告中业务解读部分是否牵强附会。有两处地方Codex把营收下滑归因得过于简单只提了行业需求疲软没有结合公司业务结构进一步拆分。这说明它在数据层面可靠但在业务理解的深度上还达不到高级分析师的水平。整体评价是如果任务定义是生成研报底稿Codex已经完全合格能替代分析师的大部分基础工作。但如果任务定义是生成有洞察力的投资决策支持材料那还有明显差距。4. 实测中遇到的坑与排查心得4.1 常见问题速查表测试过程不是一帆风顺的我整理了五个出现频率最高的问题和对应的处理思路问题现象根因处理方式数据表字段对不上不同接口返回的字段命名不一致在data_loader里增加字段映射表统一标准化命名计算出来的指标有NaN源数据某季度缺失技能文件里明确缺失标暂无不填充避免污染后续计算图表中文字乱码中文字体缺失在chart_builder里指定Matplotlib中文字体路径报告结构不统一不同技能对研报模板描述不一致把研报模板单独抽成公共文件所有技能引用同一份单位混用源数据有的返回元、有的返回万元在data_loader末尾统一转成亿元后再输出这里我想重点展开图表中文字乱码这个问题。Codex生成的Python绘图脚本默认使用系统自带字体Mac上如果没有中文字体图表里所有中文标注会变成方块。我一开始以为是代码写错了排查半天发现是字体问题。在技能文件里加一条设置matplotlib rcParams字体为PingFang SC之后问题一次解决。4.2 提示词交互的细节技巧同一套技能文件不同的人用效果差异很大关键区别在交互方式上。第一个技巧是调用技能时把目标说具体不要只说分析AAA公司。我实测下来效果最稳的指令格式是用data_loader获取AAA公司2019到2024年财务数据和近250日日线行情输出到aaa_data.csv然后用fin_analyst分析这个文件生成指标表。指令里包含了输入文件、输出文件、处理范围Codex执行时几乎不会跑偏。第二个技巧是中途变更需求要开新任务。有一次我在fin_analyst跑完后临时要求多算一个指标Codex重新加载了整个上下文执行时间反而比从头跑一遍更长。后来我的做法是对同一份数据的二次分析单独开任务指定读取之前生成的CSV这样既快又干净。第三个技巧是善用只看不改模式。Codex执行过程中会自主创建和修改代码文件如果担心它乱改已有代码可以在提示词里加一句只生成新文件不要修改已有文件。尤其是在已经积累了一部分人工整理成果的项目里这个约束能避免AI把你手工维护好的文件改坏。4.3 关于一个人干完一个投研小组的最终判断跑完三轮测试我对这个说法有了比较明确的判断。在数据获取、指标计算、图表生成、研报底稿撰写这条完整流水线上Codex确实做到了一个人扛下整个小组的数据处理工作量而且速度和格式一致性远超人工。如果你是一个独立投资者、小型私募的技术负责人、或者券商研究所里需要批量做初筛的分析师这套东西的提效是实打实的。但它替代不了的部分也很清晰第一数据源的选择和真实性核验需要人来把关AI不会质疑API返回的数据是否准确第二业务解读的深度有限它更擅长告诉你发生了什么不太擅长告诉你为什么会发生以及接下来可能会怎样第三监管合规视角的风险判断不能外包给AI。我的定位是让Codex当能连续加班且不出错的实习生我自己当那个最终拍板的资深分析师。最后分享一个我个人觉得很有价值的扩展思路这套Skills模板不只适用于投研。把data_loader换成销售数据导入、fin_analyst换成渠道效率分析、report_writer换成经营日报生成同样一套架构就能迁移到企业经营管理分析场景。Skills这个机制真正的价值其实是把你自己积累的分析方法论变成可持续复用的数字资产。代码会过时模型会换但一套结构化的工作方法论可以跟着你走很远。我建议所有打算深入用Codex的人都从给自己所在行业写第一个技能文档开始。