这两年我把大量投研里重复、机械、又特别烧时间的工作交给 AI 来做,踩了一圈坑之后,最明显的感受是:真正卡住我的不是模型不够聪明,而是我一直在用写一次性提示词的方式让 AI 干活。同一个分析需求,今天问和明天问,答案质量能差出一大截。后来我开始系统梳理这些任务,把读财报、整理公告、比对估值、生成会议纪要这些流程固化成可复用的 skill,效率才算真正提上来。
如果你也在做投资研究、行业分析、公司基本面梳理这类工作,或者你只是想把 AI 用得更专业一点,这篇文章会拆解我实际在用的投研 skill 设计思路、几个直接能参考的案例,以及我在构建和迭代过程中踩过的坑。内容偏实操,不绕理论,照着改就能用。
1. 什么是 Skill,为什么投研需要它
1.1 从“零散提示词”到“可复用技能包”
Skill 这个概念,本质上是把一段复杂的任务指令、输出格式、判断标准和示例打包成一个文件或一个文件夹,让 AI 按固定流程执行。你可以把它理解成给一个新来的实习生一本工作手册,告诉他“以后所有财报分析都按这个流程走”,而不是每次重新解释一遍。
早期我用 AI 做投研时,习惯是临时打一段话:“帮我看看这家公司的财报,重点关注利润质量和现金流。”效果时好时坏。AI 可能真的去读报表,但也可能只根据常识泛泛而谈,甚至会编出几个看起来很像样的财务比率。问题不在模型,而在我的指令太模糊:没有告诉它读哪个文件、按什么框架拆、输出格式是什么、哪些数据要交叉验证。
后来我把这些要求全部固化到一个 skill 文件里,包含目标、输入参数、执行步骤、输出模板、参考示例和常见错误提示。AI 每次调用 skill 时就等于拿到一套完整的标准作业程序。同样是“读财报”,我不用再写长提示词,只需要给出公司名称和文件路径,剩下的由 skill 统一接管。
对投研这类高度流程化、同时又需要严谨性的场景,Skill 的价值非常直接:它让 AI 的输出从“随机发挥”变成“稳定复现”。同一个 skill 跑十次,虽然具体内容会因标的不同而不同,但结构和颗粒度基本一致。这对后续横向比较公司、做长期跟踪、团队协作都特别重要。
1.2 投研工作流里 Skill 的价值边界
我个人的观点是:投研里的 skill 应该定位于“研究助理”,而不是“投资决策器”。它能帮你更快地完成信息收集、整理、初筛、复核和格式转化,但它不应该替你做最终判断。
我常用的投研 skill 覆盖这些场景:
- 财报与定期报告的快速解读,提取核心财务数据并做同比分析
- 公告、新闻、社交媒体热点的风险事件梳理,判断事件类型和影响方向
- 同行业公司的估值横评,生成可对比的估值表
- 券商研报、电话会议纪要的结构化整理,提取观点和逻辑链
- 量化因子研究中的初步代码框架生成和回测结果解读
- 基金持仓、行业配置、宏观数据的定期复盘
这些任务有一个共同点:它们的基础工作非常重复,但又需要一定的专业框架。AI 在没有 skill 时也能答个大概,但有了 skill 之后,输出会明显更专业、更可复现。它解决的核心问题不是“AI 能做什么”,而是“怎么让 AI 每次都做到合格线以上”。
反过来,需要明确边界:涉及合规判断、投资结论、组合构建等部分,我会让 AI 提供分析要素和正反论点,但最终决策一定由我自己完成。投研 skill 做得再完善,也不应该变成替你做投资决定的“黑盒”。用好的前提是清楚它的能力边界在哪里。
2. Skill 的设计思路与结构拆解
2.1 一个能用的投研 Skill 长什么样
我早期犯过一个错,以为 skill 就是一段写得很长的提示词。后来发现不对,提示词只是其中一部分。真正好用的 skill,更像一个结构清晰的“技能目录”,典型长这样:
skill-root/ ├── SKILL.md ├── references/ │ ├── 财报分析框架.md │ └── 常用财务指标口径.md ├── scripts/ │ └── fetch_financials.py └── examples/ ├── example_input.json └── example_output.md核心文件是 SKILL.md,它控制 AI 怎么理解任务、按什么步骤执行。我的 SKILL.md 通常包含这几块:
- 元信息:技能名称、用途描述、适用场景标签
- 输入定义:需要用户提供哪些参数,比如股票代码、财报文件路径、时间范围
- 执行步骤:按顺序列出处理数据的流程,先做什么、再做什么
- 输出模板:要求 AI 按固定 Markdown 结构返回结果
- 边界说明:哪些情况必须提示风险、哪些数据需要复核
- 示例:一到两个完整输入和输出样例,让 AI 模仿格式和深度
你可以把 SKILL.md 理解成“写给 AI 看的岗位说明书”。它的重点不是词藻,而是消除歧义。越到后面你越会发现,AI 90% 的“不听话”,其实是因为你没把流程和标准写清楚。
2.2 参数设计、数据输入与输出规范
设计 skill 时,最容易被忽略的是输入和输出规范。很多人只写了“分析这家公司”,却没定义“公司怎么传进来”“数据源是什么”“输出表格长什么样”,结果 AI 只能自由发挥。
投研 skill 的输入参数,我一般控制在 3 到 5 个以内,太多会让调用变得很累。常见参数包括:
- ticker 或公司名称(必填)
- 数据来源文件路径,比如财报 PDF、CSV 或公告链接
- 分析区间,比如 2021 年到 2024 年
- 行业标签,用于对标公司选择
- 特殊关注点,比如现金流、分红政策、商誉减值
在输出端,我会给一个特别明确的模板。比如财报速读 skill 的输出结构强制包括:公司基本信息、关键财务数据表、收入与利润质量分析、资产负债与现金流分析、风险提示、待补充事项。其中关键财务数据表必须是 Markdown 表格,列名固定为“指标”“报告期”“数值”“同比变化”。这样后续做多公司横向比较时,可以直接复制粘贴到同一个 Excel 里。
关于输入数据,我的建议是优先给“原文”而不是给“结论”。比如分析财报时,直接把 PDF 或识别出的文字丢给 AI,而不是告诉它“这家公司利润增长很快”。AI 最擅长的是从原始材料中提取信息,而不是替你验证二手结论。你给它一个未经证实的判断,它很容易顺着你的话往下编。
2.3 选型:Claude Skill、Cursor Skill 还是自定义 Agent
不同平台的 skill 实现方式不太一样,我实际用过 Claude 的 Skill、Cursor 的自定义指令,也自己搭过基于 API 的 Agent 流程。它们没有绝对的优劣,关键看你要解决什么问题。
| 方案 | 适合场景 | 优势 | 局限 |
|---|---|---|---|
| Claude Skill | 财报解读、文本分析、报告生成 | 有内置的技能目录管理,对话中调用自然 | 不适合复杂外部数据抓取 |
| Cursor Skill | 因子回测代码、数据接口脚本 | 直接在编程环境里生效,能结合仓库上下文 | 偏代码生成,金融分析场景支持较弱 |
| 自定义 Agent | 需要反复调外部数据库、API、定时任务 | 流程完全可控,可以自动执行多步任务 | 开发成本高,调试费时间 |
如果你是刚开始接触,我建议先做 Claude Skill。它对文本类投研任务支持最好,写起来也最简单,不需要编程。等你发现某个流程需要定时跑、需要自动读数据库、需要跨多个工具协作时,再考虑上 Agent。
这里有一个很容易踩的坑:过度工程。有人一上来就搭多智能体协作、知识库、自动爬虫,看起来很厉害,但最后浪费了大量时间在处理报错和接口问题上。投研 skill 的核心目标是让 AI 在“读材料、出分析”这件事上更稳定。先把单点流程跑通,再加复杂度,才是务实的路径。
3. 我常用的几个投研 Skill 实例
3.1 财报速读 Skill:把 100 页年报压成一张表加三句话
财报速读是我最早做的 skill,也是目前使用频率最高的一个。这个 skill 的触发方式很简单,用户输入公司名称和财报文件路径,AI 自动提取关键财务数据、计算同比变化、判断经营质量。
它的执行步骤我拆成了五步:
- 识别财报类型和报告期,确认是年报、半年报还是季报
- 从财务报表附注和主要财务指标中提取营业收入、净利润、经营性现金流、资产负债率等核心数据
- 对比上一年同期数据,计算同比变化,并标注异常波动
- 分析利润结构,把投资收益、公允价值变动、政府补助等非经常性因素与主业利润拆开
- 输出标准模板,并对可疑数据给出复核建议
我特别强调“原文摘录”这一点。在输出财务数据表时,每一行数值后面都会附上来源段落页码,比如“营业收入 128.5 亿(见年报第 12 页)”。这样做不只是为了追溯,更是为了逼 AI 不要凭记忆编数字。没有来源标注的 AI 财报分析,我基本不敢直接用。
这个 skill 的最终输出结构长这样:
- 报告期:2023 年年报 - 核心结论:一句话概括当期经营质量 - 关键财务数据表:指标 / 本期 / 上期 / 同比 / 来源页码 - 利润质量拆解:主业利润占比 / 非经常性损益影响 - 现金流观察:经营现金流与净利润的匹配度 - 风险提示:应收账款、商誉、存货、偿债压力实际用下来,一份 A 股上市公司的年报,从给到 AI 到产出完整速读报告,大约只需要几分钟。过去人工整理至少一小时,而且容易漏掉藏在附注里的细节。这个 skill 不能替代详细分析,但它能帮你快速建立“这家公司大概怎么样”的底稿,让你把注意力放在真正需要深挖的地方。
3.2 舆情与公告事件分析 Skill:把碎片消息变成影响链
投研中有一类任务特别耗精力,就是盯着公告和新闻判断事件影响。一条股权质押公告,一条大股东减持预告,甚至一条行业政策传闻,都可能影响短期走势。但要判断“事件重要到什么程度”,需要先做信息归类、再看涉及金额、再评估在所处行业里的特殊含义。
舆情分析 skill 的思路是,把事件识别标准化。输入可以是公告标题、新闻摘要、或者一段聊天记录里的转述。执行步骤包括:
- 判断事件类型,比如资本运作、经营动态、股东行为、监管处罚、行业政策
- 提取关键要素:主体、金额、时间、交易对手方、影响方向
- 对照同类事件的历史处理经验,给出影响程度初判
- 列出需要进一步验证的信息点,避免 AI 自嗨
这个 skill 最有用的部分不是它的“判断”,而是它强制 AI 区分“事实”和“推断”。我在输出模板里单独列了两行:一栏叫“原文事实”,只能写从材料里直接看到的文字;另一栏叫“初步推断”,可以写基于常识的分析。这样做的好处是,它不会把推测包装成确定结论,减少误导。
踩过最深的坑是让 AI 直接处理市场传闻。模型在训练数据里见过很多真假难辨的信息,如果 prompt 不够严谨,它很容易把“市场传闻”当成“事实”来分析。现在我会在 skill 开头写一句硬规则:所有未在公开公告或权威媒体确认的信息,一律归入“待验证”,并在输出开头用加粗标注“本报告包含未验证信息”。这句话看起来简单,但能避免很多低级错误。
3.3 估值比较与行业对标 Skill:把散落的财务指标变成一张对标表
做行业研究时,经常需要把五六家同类公司放在同一张表里比估值。人工操作倒不复杂,但重复、容易出错,而且每次关注的指标还不一样。
估值对标 skill 的输入是公司列表和行业标签,输出是标准对标表格,包含市值、PE、PB、ROE、毛利率、营收增速、负债率等指标。它解决的问题不是算数,而是“对标口径不一致”。PE 都叫 PE,但静态、滚动、预测三者的数值差别很大。如果没有 skill 统一口径,AI 很可能会把三家公司的 PE 混在一起用,得出一个失真结论。
我设计的规则很简单:所有估值指标默认采用最近报告期数据,并在表头注明“数据截至某年某月某日”。同时要求 AI 在表格下方列一栏“口径说明”,注明每个指标的计算方式。这样就避免了后续复盘数据时说不清楚的问题。
还有一个细节是“同业选择”。skill 里会提示 AI 优先选择业务结构、收入规模、增长阶段相近的公司,而不是单纯按行业分类。举例来说,分析一家创新药公司时,确定性对标不是所有制药公司,而是同适应症、同研发阶段的几家公司。这种判断人来做很容易,但 AI 如果缺少约束,会拉出一堆表面相关实则不可比的样本。
3.4 因子与回测思路生成 Skill:让 AI 做量化研究的“副驾驶”
这个 skill 是我后期加的,使用频率没有前面几个高,但每次用都很节省时间。它做的事是帮我把一个研究想法转成可执行的因子框架和回测计划。
输入很简单:一段研究想法,比如“我怀疑小市值在 A 股某个板块里的超额收益正在衰减”。输出是一个结构化的研究方案,包括:
- 因子定义和具体计算方式
- 适用股票池和时间范围
- 回测分层方法建议
- 需要重点控制的风险因素
- 关于数据获取和偏差的注意事项
这个 skill 一开始效果并不好,问题在于 AI 输出的方案太笼统。后来我加了两个约束:一,所有方案必须包含可计算的伪代码级公式,不能只说“计算动量因子”;二,必须写明潜在的数据陷阱。这两个约束加上后,输出质量立刻上升。
举个实际例子,我想验证“毛利率同比变化对制造业股票未来三个月收益是否有区分度”。AI 输出的方案里明确写了:毛利率用单季数据而非累计数据,股票池限定为申万一级分类下制造业相关行业,收益计算要考虑停牌处理,分层用五分位而不是百分位以应对样本量不足。这些细节不一定全对,但至少有一个完整框架可以继续加工。对我来说,它相当于一个永远不会疲劳的研究助理,能快速帮我列出下一步要做的验证清单。
4. 从零构建一个投研 Skill 的完整过程
4.1 先定义输入输出,别急着写提示词
大部分人做 skill 的第一个错误,是打开编辑器就写“你是一个资深分析师”。这没错,但不应该放在第一步。第一步永远是定义输入和输出。
先问你自己几个问题:
- 这个 skill 在一段工作流中处于哪个位置,上游数据从哪里来
- 用户会提供什么格式的输入,是文字、文件还是网页链接
- 最终输出要给谁看,是给自己的工作底稿,还是要进 Excel 的表格
- 哪些环节必须要求 AI 提供来源和理由,不能让它直接给结论
我以财报速读 skill 为例。它的输入是“公司名称+财报文件路径+历史数据期间”,输出是“固定结构的分析报告”。在设计阶段,我会先在纸上画出输出模板的粗略样式,甚至写一行假数据。等模板定了,再回头去写执行步骤和提示词。顺序反了,后面一定反复返工。
4.2 写 Markdown 说明书,把流程讲成步骤
SKILL.md 的主体部分,我建议直接用步骤清单的方式写,每条步骤都要具体到能直接执行。宁可细节啰嗦,也别让 AI 去猜。
拿一个“公告事件分析”的 skill 举例,它的步骤可以写成这样:
# 公告事件分析 Skill ## 目标 对输入的公告或新闻事件进行结构化分析,评估其对上市公司基本面与短期交易的影响。 ## 输入 - company: 公司名称 - event_text: 事件原文,尽量完整 - report_date: 数据截止日期,用于标注时效 ## 执行步骤 1. 判断事件类型,从以下范围内选择:资本运作、股东行为、经营动态、监管处罚、行业政策、其他。 2. 提取关键要素,包括主体对象、涉及金额、时间节点、交易对方、审议程序。 3. 分析事件对基本面的影响路径,分短期和长期两个时间维度。 4. 标注分析所用的事实来源,任何未经原文确认的信息归入“待验证”。 5. 按输出模板生成报告。 ## 输出模板 ### 事件类型 ### 关键要素表 ### 基本面影响路径 ### 待验证信息 ### 初步结论注意,事件类型的枚举列表特别重要。有了它,AI 就不会把“股权质押”生生分析成“行业政策”。很多人觉得这一点很基础,但真实使用中,分类不统一正是输出质量不稳定的最大原因。
4.3 用 few-shot 示例约束输出
光有步骤还不够,AI 仍然可能在执行过程中跑偏。我会在 examples 目录下放一两个精挑细选的完整示例,让 AI 模仿。
示例的作用不是教 AI “正确”,而是固定“格式和颗粒度”。一个完整的示例,应该包含真实的输入、它对应的高质量输出,以及输出中对企业分析句式的要求。比如我要求“核心结论”只能写 1 到 2 句话,不能长篇大论;“事实来源”必须精确到页码;句子之间不得堆砌形容词。
这其实是很多教程没讲透的部分。few-shot 不是简单的“给它一个例子”,而是“给它一个可分步骤对照的标杆”。示例的输出格式和你 skil 定义的模板必须完全一致,否则 AI 会因为冲突而行为不稳定。我在调试时经常看到一种现象:SKILL.md 说输出要 A 格式,examples 里的却是 B 格式,AI 最终随机挑选一个执行。所以每次改动模板,我都要同步检查示例是否过时。
4.4 验证与迭代:建立自己的测试集
Skill 写完后,不要只测试一次就以为大功告成。我会准备一个固定的小测试集,包含三到五个典型场景,每次改动 skill 后都跑一遍,看看输出有没有退化。
我的测试集一般覆盖这些情况:
- 一个非常正常、数据完整的案例,用于检查标准流程
- 一个数据缺失的案例,比如财报里没有现金流量表,检查 AI 是否懂得提示缺失
- 一个容易混淆的信息,比如把“营收下降”表述为“利润增长”,看 AI 会不会识别出矛盾
- 一个需要大量外部知识的案例,看 AI 是否存在过度推理
这个习惯帮我挡掉了非常多的问题。经常出现的情况是,我优化了 A 场景后,B 场景的输出却开始变差。如果不回归测试,这些退化不会立刻暴露,等到实际使用时才看到,已经晚了。
5. 常见问题与避坑实录
5.1 Skill 太笨:上下文窗口不够怎么办
很多投研文档动辄几十页,财报 PDF 识别出来的文字可能超过十万字,已经超出模型单次上下文窗口。这时你让 AI “通读全文”是不现实的,即使能塞下,效果也未必好。
我的做法是让 skill 采用“分段读取、重点提取”的执行策略。先要求 AI 识别文档目录,再按章节目标读取与财务数据、管理层讨论、风险因素相关的部分,而不是从头读到尾。这个过程可以通过脚本自动完成,也可以是提示词里的流程指令。
具体操作上,我会把 SKILL.md 的步骤写成:
1. 先看目录结构,定位财务摘要、资产负债表、利润表、现金流量表、附注中关于重要会计政策的部分。 2. 按定位结果逐段读取,提取需要的数据。 3. 如果某一关键章节缺失,明确标记为“材料缺失”,不得自行补全。这种“定位再精读”的策略能显著提升长文档分析效果。本质上它是把人的阅读模式复制给 AI。面对超长材料,追求“全部看完”不如追求“该看的部分都看到”。
5.2 数据准确性:AI 一本正经编数字
这是投研场景里最致命的问题,没有之一。AI 特别擅长把缺失数据用“看起来合理的数值”补全。早期我踩过很多次,后来总结出几条硬规则。
第一,所有关键财务数据必须附来源出处。没有出处的数字,一律视为未验证。第二,当 AI 在回复中使用了推测值时,必须使用“约”“估计”这类词,不能直接给出精确数值。第三,在做同比分析时,如果上年数据不在材料内,直接写“数据缺失”,而不是凭常识补一个行业平均增长率。
我还给 skill 设置了一个“自我复核”步骤,要求 AI 在输出前把报告中的数字和原文重新对照一遍,标记不一致之处。虽然这不能根除幻觉,但能明显降低概率。另一个更有效的办法是,对特别重要的指标,我会单独写一段校验规则。比如“核对营业收入和营业成本是否匹配,毛利率是否在公司历史合理区间内”。如果 AI 算出一个毛利率高达 95%,而它同时分析的公司是制造业,那大概率是数据抽错了。
5.3 多 Skill 协作与内容安全边界
投研很少有单个 skill 能搞定的事。我经常把财报速读 skill 的输出喂给估值对标 skill,再把估值结果和行业政策公告分析结合成一份完整报告。Skill 之间通过标准化的 Markdown 表格衔接,一个的输出直接成为另一个的输入,基本上能实现一条自动化流水线。
但要小心一个问题:中间环节的错误会向下游传导。如果财报速读 skill 在第三步就提取错了数据,估值对标 skill 不管执行得多严谨,结果都是错的。所以我在每个 skill 的输出模板里都预留了“数据置信度”字段,让 AI 自己评估信息完整度和可信程度。下游 skill 读取到“置信度低”时会主动要求复核,而不是傻乎乎地继续计算。
另外必须强调内容边界。我设计的所有 skill 都只基于公开信息、用户自己上传的材料和合法获取的数据。合规是我写 skill 时最先考虑的一条线。如果一个分析请求涉及内部消息或不愿公开的信息,我的 skill 会主动拒绝进一步推理。这不是保守,而是对所有人的保护。把 AI 投研流程建立在合规基础上,才能长期用、放心用。
5.4 关于 DeepSeek 公开智能体训练新方法的借鉴
最近 DeepSeek 公开的智能体训练新方法里,提到一个很值得参考的点:把任务过程拆解成可验证的步骤,让智能体学会“边行动边检查”,而不是一步到位直接输出最终结果。这个思路和我在投研 skill 上的实践完全一致。
比如财报分析这个任务,如果要求 AI 一次性输出完整报告,它容易在前面数据错误的情况下依然自信地继续推理。但如果你把任务拆成“提取数据→校验数据→分析趋势→生成结论”四个步骤,并且每一步都设置检查点,错误就会被更早发现。
我在 skill 迭代中也借鉴了这个原则,在 SKILL.md 里加入“中间产物”的概念。要求 AI 在最终报告输出前,先以代码块形式输出一张原始数据提取表。然后基于这张表做二次分析。这样我看不到最终结论时,也可以快速检查中间数据是否离谱。这个改变听起来很小,但实际效果非常明显,明显能减少那种“分析逻辑通顺、数据全是错的”情况。
还有一点是关于数据闭环的启发。DeepSeek 的训练方法强调让模型从执行结果中学习,而不是只看一堆静态数据。对应到我的 skill 使用,就是养成记录“错误案例”的习惯。每次发现 AI 输出有问题,我不只临时改一次提示词,还会把案例加进 skill 的反面示例里,告诉模型“这种场景不能这样做”。skill 的迭代速度会随着错误库的累积而越来越快,使用质量也会稳步上升。
我个人做投研 skill 这几年,最大的体会是:真正优秀的投研 skill 不是一个写满专业术语的巨型提示词,而是一套能让人机协作持续改善的流程。它需要你不断从错误中提炼规则,然后把规则写回说明书里。AI 的进步当然重要,但更重要的永远是使用者有没有想清楚“我想让 AI 按什么标准工作”。把这个问题想透了,哪怕你现在用的模型能力一般,也能做出比自己手动操作稳定得多的投研工作流。