1. 投研 Skill 到底封装了什么从一句分析下这家公司说起如果你和我一样过去一年在认真用 AI 做投资研究大概率会有同感直接丢给大模型一句帮我分析一下某某公司拿回来的内容十有八九是教科书级别的正确废话——行业空间、财务指标、竞争格局样样都提但每一项都浅尝辄止根本到不了能支撑一个投资决策的颗粒度。问题并不在大模型本身而在你给它的指令太粗了。投研这件事表面上是写一份分析报告实际上是无数个环环相扣的标准化动作先摸清行业上下游再拆解商业模式然后抠财务三表的勾稽关系接着算估值区间最后还要做反方论证。这些动作有固定的先后顺序、有必须核对的检查项、有专属的思考框架。这就是我写投研 Skill 的动机把一组散落的 Prompt、工具调用、结构化输出模板打包成一个岗位操作手册式的技能文件让 Agent 每次接到研究某家公司的任务时不是凭即时脑补发挥而是按照一整套预先设计好的研究流程去执行。Skill 这个词你可以理解为智能体技能本质是流程化提示词 工具绑定 输出规范的集合体。这篇内容我会把自己打磨这套投研 Skill 的完整过程拆开来讲从工作流拆解、SKILL.md 编写、提示词模板设计到接入 Claude / Cursor / Codex 时的文件组织最后是我踩过的五个典型坑以及一份可以直接复制使用的完整示例。适合已经在用 AI 辅助投研、但觉得产出不稳定的朋友也适合刚接触 Skill 机制、想找个真实场景练手的 AI 开发者。2. 拆解研究员的工作流Skill 结构设计的起点写 Skill 和写 Prompt 最大的区别在于Prompt 只解决一次对话的问题而 Skill 要解决一类任务持续稳定执行的问题。所以我做的第一件事不是打开编辑器写提示词而是先把一位合格研究员的分析流程拆成模块。2.1 五个核心模块从行业到估值再到风险以一次公司深度研究为例我把流程拆成五个固定模块行业与赛道行业的生命周期、上下游结构、驱动因素、政策与技术环境。商业模式拆解公司靠什么赚钱、收入结构、成本结构、护城河类型。财务质量审计收入真实性、利润含金量、现金流匹配度、资产负债风险。估值与预期差合理估值区间、当前价格隐含的市场预期、预期差来源。反方论证与风险清单看多逻辑若被证伪的触发条件、需要持续跟踪的关键指标。每个模块都是独立的一节且遵循严格的先后顺序——没有行业认知就直接看财务数字容易把周期股当成长股来算估值这是新手最容易犯的错误。2.2 每个模块的输入输出把模糊的研究变成确定的任务拆完模块之后我给每个模块定义了明确的输入与输出这是 Skill 能否稳定产出高质量内容的关键。行业模块输入是行业名和已知信息输出是行业产业链图谱、竞争位次表、关键驱动因素清单。商业模式模块输入是公司业务描述和历年营收构成输出是收入拆解表、成本结构图、护城河评分卡。财务模块输入是三张报表的核心科目数据输出是三个维度的审计结论——真实性、盈利能力质量、财务风险。估值模块输入是盈利预测假设输出是三套估值法PE、DCF、EV/EBITDA的估值区间和敏感性分析。风险模块输入是前四个模块的全部结论输出是反向论证清单和跟踪指标体系。当这些输入输出被定义清楚之后研究一家公司就不再是一个无法量化的模糊要求而是一个可以被逐项验收的工厂流水线。Skill 的实际价值也恰恰体现在这一个一个环节的可追溯、可复现和质检可控上面。2.3 工具绑定让 Agent 不只靠记忆研究投研最忌讳的就是大模型凭训练数据里的记忆回答最新的市场信息。所以我在设计 Skill 时把工具调用作为强约束绑进流程需要查询行业最新动态时调用联网搜索工具而不是让模型自述。需要获取财务数据时优先绑定财务数据接口或提数工具而不是让模型默写三张报表。需要精确计算股息率、EV/EBITDA 等指标时强制调用计算工具避免心算误差。工具不在多而在于每个工具解决一个标准动作。我用Do not estimate, call the tool作为 Skill 内的一条铁律这个后面会详细展开。3. SKILL.md 的编写细节让 AI 理解投研而不是聊天Skill 的核心文件是 SKILL.md这个文件的本质是一份给模型看的岗位说明书。它和普通 Prompt 的差异在于它有结构化的元信息区、有明确的执行规则区、还有逐步的流程引导区。很多 skill 写得不好就是把这几个区混成了一锅粥模型读起来累执行起来更飘。3.1 元信息区name 和 description 比你想的更关键SKILL.md 的开头通常会有一段 YAML 格式的元信息常见字段包括 name、description、version。我一开始觉得 description 随便写写就行后来才发现当 Agent 同时挂载十几个 Skill 时它判断该调用哪个技能靠的就是这段描述。描述里必须写清三件事这个 Skill 解决什么问题。适用场景和边界哪些情况用、哪些情况不该用。触发关键词和典型用户指令示例。比如我的公司深度研究 Skill 的 description 是这样写的name: deep_research description: 对上市公司进行深度基本面研究覆盖行业分析、商业模式拆解、 财务质量审计、估值分析、反方论证五个模块。当用户指令包含深度研究、分析 这家公司、写一份投研报告等意图时使用。适合提供股票代码/公司名称的场景 不适合用于单纯查询股价或实时行情。有了这段描述Agent 在路由阶段就能精准匹配不至于把查一下苹果的股价也路由到深度研究流程里。3.2 规则区用禁止和必须建立研究纪律投研结果之所以经常被诟病AI 味太重很大原因是模型在自由发挥时倾向于四平八稳、面面俱到但缺乏鲜明的立场和取舍。所以在 SKILL.md 中我专门设定了一个规则区用强约束的语言来拉回研究的质量底线。我把其中最重要的几条贴在下面必须区分事实与判断事实必须有数据来源判断必须标注依据逻辑。禁止使用综上与此同时随着市场的不断发展这类空洞连接词。必须给出可证伪的结论。例如看好必须有对应的触发条件和被证伪的指标。禁止堆砌财务数字而不做解读。每个关键指标变化必须解释为什么变、意味着什么。如果无法从工具获取有效数据必须明确标注数据缺失禁止用模型记忆杜撰。这些规则一定程度上是在给模型消毒把大模型那种什么都说一点、什么都不得罪的平庸气质过滤掉。实测下来加入规则区之后生成的报告信息密度和观点锐度都有了明显的提升。3.3 流程区step-by-step 模板锚定思考路径规则定完纪律流程区则负责引导模型走完整条研究链。我不建议把所有步骤写进一段话而是用步骤列表的方式明确每个阶段的任务和产物。一个简化的流程区结构如下执行流程 Step 1: 输入校验。确认标的名称/代码如果信息不足先向用户询问。 Step 2: 行业分析。调用搜索工具完成行业生命周期、竞争格局、驱动因素分析。 Step 3: 商业模式拆解。按收入结构、成本结构、护城河类型依次输出。 Step 4: 财务审计。获取最新三张报表数据按收入真实性、利润质量、现金流匹配度、资产负债风险逐一评估。 Step 5: 估值分析。基于用户提供的盈利假设或行业可比公司计算PE、DCF、EV/EBITDA估值区间。 Step 6: 反方论证。列出看多逻辑被证伪的条件输出跟踪指标清单。 Step 7: 汇总输出。按固定Markdown模板生成最终报告。有了这七个步骤模型就不会从行业分析直接跳到估值结论每一步的输出也就有了可检查的中间产物。这本质上是在把大模型当初级研究员带——你给了流程和模板它的下限就不会太低。4. 提示词模板实战行业、财报、估值三个模块直接抄很多朋友以为 Skill 的难点在文件结构实际上真正决定产出质量的是每个模块内部的提示词细节。这里我把三个最关键模块的提示词模板拆开来讲可以直接复制到自己的 Skill 里改着用。4.1 行业分析模板从背景介绍升级到产业链定位网上 90% 的 AI 行业分析开头都是XX行业是我国国民经济的重要组成部分——这种话说了等于没说。我设计的行业分析提示词强制模型把视角切换到产业链定位你是行业研究员。请针对目标公司所处的细分赛道输出以下内容 1. 该行业在产业链中的位置上游供应商原材料/技术、下游需求方客户/终端市场用文字描述出产业链传导关系。 2. 行业生命周期判断当前处于导入期、成长期、成熟期还是衰退期判断依据必须来自行业增速与渗透率数据。 3. 驱动因素与压制因素至少各列3条每条必须对应一个可观测的指标如政策文件、技术迭代节点、产能利用率等。 4. 竞争格局列出市占率Top5企业及大致份额区间说明目标公司所处位次。 5. 行业关键变量未来12个月最需要跟踪的3个核心变量并说明为什么是它们。这个模板的关键词是产业链位置和可观测指标。强制模型把每个判断落到具体数据点是避免空话的最好办法。4.2 财报解读模板别让模型报数要让它审计模型天生善于复述数字却懒于交叉验证。我见过太多 AI 报告把净利润同比大增 50% 放在显著位置却对经营现金流同比下滑 30% 一笔带过——明眼人都知道前者可能是应收账款堆出来的纸面利润后者才是真金白银。所以我给财务模块写提示词时把它定义成财务舞弊风险排查 含金量审计而不是简单的报表解读你是一名财务审计背景的研究员。请基于获取到的财务报表数据依次完成 1. 收入质量审计对比收入增速与应收账款增速如果两者背离说明原因放宽信用政策、渠道压货、收入确认激进等。 2. 利润质量审计对比净利润与经营现金流净额计算净利润现金含量连续三年低于80%需要重点提示。 3. 费用率异常销售费用率、管理费用率、研发费用率同环比变动幅度超过20%时必须分析驱动因素。 4. 资产负债表体检存货周转天数、应收周转天数、有息负债率的变化趋势重点检查是否存在存货跌价与商誉减值风险。 5. 给出财务健康度结论三档评级健康/关注/风险并列出支撑评级的关键证据。用这套提示词模型输出的就不再是营收 100 亿同比 20%这类废话而是利润增长主要由应收账款驱动现金含量不足需关注坏账风险这类真正对投资决策有用的判断。4.3 估值模块模板算区间更要算预期差估值模块是最容易让模型胡来的地方——它往往会给你一个看似精确、实则毫无依据的目标价。我采用的做法是指定多个估值方法并强制计算预期差请基于之前模块生成的财务预测假设完成估值测算 1. 相对估值法选用同业可比公司的PE中位数输入目标公司预期净利润计算对应市值区间。 2. 绝对估值法用简化DCF模型假设永续增长率2%、WACC取9%计算内在价值区间。 3. 预期差分析将当前市值与上述两个区间对比说明市场当前定价隐含了什么预期你认为这一预期是否合理为什么。 4. 敏感性分析对核心假设营收增速、利润率做±10%的敏感性测试列出估值变动范围。 5. 最终输出明确的远期一年合理估值区间并注明最大不确定性因素。要注意DCF 的参数WACC、永续增长率不同机构取值差异很大所以我会在模板里先给默认值同时要求模型输出时把参数假设写在表格备注里方便人工复核。5. 接入 Claude / Cursor / CodexSkill 文件怎么放、怎么调写完之后接下来要解决的就是放在哪里、怎么让 Agent 读进去的问题。不同工具的 Skill 机制目前还没有完全统一但核心思路是一致的目录结构 描述索引。5.1 目录与文件组织每个 Skill 一个文件夹我的每个 Skill 都是一个独立目录内部结构如下deep_research/ ├── SKILL.md # 技能主文件元信息规则流程提示词模板 ├── assets/ # 存放固定格式模板、参考案例 │ ├── report_template.md │ └── financial_checklist.md └── requirements.txt # 如果有依赖的Python库/脚本则在此声明SKILL.md 是必须的assets 里的模板和检查清单是辅助。把提示词模板和主流程分开的好处是主文件不至于太长模型每次加载只读核心指令而具体模板在进入对应模块时才按需读取token 压力小很多。5.2 Claude / Cursor 的目录约定与 Codex 的差异在 Claude 相关的生态里Skill 目录通常会放在约定的 agent 配置目录下例如~/.claude/skills/或项目级的.claude/skills/目录。目录名就是 Skill 名Claude Code 启动时会扫描这些目录通过 SKILL.md 的 YAML 头中的 name 和 description 建立技能索引。强烈建议把 Skill 目录放进 Git 仓库管理——你改提示词时对比 diff 的体验远好于直接编辑单个文件。Cursor 和 Codex 的接入逻辑类似它们的差异主要在于技能描述描述路由的调用方式。Cursor 的插件机制会把 SKILL.md 映射成可召唤的指令你需要在项目配置中声明 Skill 路径Codex 则更偏向把 Skill 当作可复用的工作流脚本来调用通常通过显式指令触发。但无论哪个工具底层的加载逻辑都离不开两个关键点一是 SKILL.md 的 YAML 头字段要规范二是 description 里要写清用户说什么话时该调用此技能。5.3 工具调用的关键词让 AI 用数据而不是看数据接入 Agent 后必须让 Skill 中的工具调用真正生效而不是让模型假装调用。我给 Skill 加了三条约束实测效果很好每个工具调用的结果必须被引用模型输出行业增速数据时必须标注来源来自搜索工具抓取的 XX 报告否则视为无效输出。禁用脑补数据如果工具没有返回期望数据必须回退到数据缺失标记并建议用户手动补充。用计算工具校验关键比率所有比率类指标PE、PB、周转率等一律通过计算脚本处理模型只负责解读不负责算数。这里比较推荐的做法是写一个轻量的 Python 脚本来干数值计算和敏感性分析然后在 SKILL.md 的流程区中显式声明在 Step 5 时运行 scripts/valuation.py。这样既减轻了模型的数学负担也把可验证性做实了。如果你对 MCP 生态比较熟悉也可以考虑接入市场数据的 MCP Server效果更稳定。6. 让投研 Skill 失效的五个坑我全踩过再好的 Skill 设计也逃不过实际使用中的各类翻车现场。下面这五个问题是 I 在反复迭代中踩得最深、也最典型的分享出来帮你避雷。6.1 提示词太专家腔模型反而开始编概念第一版 Skill 里我用了大量投研黑话护城河宽窄内生性增长ROIC 边际变化。结果模型确实会使用这些词但经常用错语境——它知道护城河是个高级词却分不清品牌溢价和成本优势到底哪个更该算护城河。后来我把所有术语都做了一层定义示例的双重解释比如护城河指企业长期维持超额利润的能力来源。常见类型包括品牌如高端白酒的社交属性、成本优势如规模效应带来的低单位成本、网络效应如社交平台、转换成本如企业级软件。判断时须指出具体属于哪一类并附证据。加了这层解释之后模型的术语误用大幅减少。核心经验是**你的 Skill 越专业越要假设模型对专业词汇只有语义理解、没有语境理解。**所有术语都值得补一层在本文语境中怎么判断的说明。6.2 幻觉与数据源你必须让它承认不知道投研场景对幻觉的容忍度几乎为零。你宁可得到一个空数据缺失的提示也不该拿到一个编造的市占率 23.5%。我在规则区里加了这么一条数据缺失时禁止估算必须明示当前工具未获取到该数据建议通过XX渠道补充。你可能会觉得这样不够智能但实测下来这种止损机制反而让报告更可信。因为读者看到缺失标注会知道哪里需要补证而看到一串编得有理有据的数字反而会误入歧途。6.3 Skill 文件太长模型一进流程就把前面忘了一半我最早把所有模块的提示词全部塞进 SKILL.md结果文件超过 3000 行。Agent 加载之后每次对话光读规则就消耗了大量上下文模型执行到财务模块时对行业模块的结论已经模糊了。这个问题我解决的方式是拆分SKILL.md 只保留元信息、规则区和流程区把大段模板迁移到 assets 子文件在流程区里用读取 assets/xxx.md 并按其中模板执行来引导按需加载。这就像给研究员配了一本手册——手册不在脑子里但需要哪章翻哪章。6.4 固定输出模板太死模型只会填格不思考有一次我为了结构化方便把报告模板做成了固定表格要求模型逐格填写。结果模型产出的报告像是填表机所有判断都变成了短语完全失去了推演过程。后来我改成了半结构化的方案报告大纲固定为行业分析、商业模式、财务审计、估值、风险五大段落每段落内部以叙述为主、表格为辅。核心的手持是要让模型把推演逻辑写出来而不是把结论塞进格子了事。6.5 工具返回数据太新与模型训练认知冲突最后一个坑和认知错位有关。模型对很多公司的知识停留在训练截稿日期而工具抓回的却是最新数据。当两者不一致时模型经常强行调和给出一个四不像的中间结论——既不像历史基本面也不像最新处境。我的应对方式是在规则区增加一条如果工具数据和模型固有认知冲突以工具数据为准并主动提示该数据与历史认知存在差异请注意更新时间节点。这个提示有助于让读者意识到数据更新的必要性也能防止模型在两个版本之间硬编一个矛盾的结论。7. 完整示例一个可复制的公司深度研究 Skill最后给你一份我目前在用的最小可用版本 Skill可以直接放进~/.claude/skills/deep_research/或对应工具的 skills 目录。所有字段都可以按自己习惯调整。--- name: deep_research description: 对上市公司进行深度基本面研究覆盖行业分析、商业模式拆解、 财务质量审计、估值分析与反方论证。当用户指令包含深度研究分析这家公司 写投研报告时使用。适合输入股票代码或公司名的场景不适合实时行情查询。 version: 1.3 --- # 公司深度研究 Skill ## 角色设定 你是一名覆盖科技、消费、高端制造等成长板块的卖方研究员。你的工作要求是 观点鲜明、数据驱动、逻辑闭环给出可证伪的判断而非四平八稳的废话。 ## 核心规则 1. 必须区分事实与判断。事实不注明来源则视为无效。 2. 禁止使用综上与此同时随着行业的发展等空泛表达。 3. 所有结论必须有推演过程禁止只给结论不给依据。 4. 工具数据与模型记忆冲突时以工具数据为准并标注数据时间。 5. 数据缺失须明示缺失禁止杜撰。 6. 每条关键判断须给出被证伪的触发条件。 ## 执行流程 ### Step 1: 输入校验 - 确认标的公司名称 / 股票代码 / 所属行业。 - 信息不足时向用户提问不自行假设。 ### Step 2: 行业分析 读取 assets/industry_template.md按模板完成产业链定位、生命周期、 驱动压制因素、竞争格局与关键变量分析。全程使用搜索工具获取最新信息。 ### Step 3: 商业模式拆解 读取 assets/business_template.md完成收入结构、成本结构与护城河 类型判断。护城河必须指定具体类型并附证据链。 ### Step 4: 财务质量审计 读取 assets/financial_template.md完成收入质量、利润质量、费用率 与资产负债表体检。输出财务健康度评级健康 / 关注 / 风险。 ### Step 5: 估值分析 读取 assets/valuation_template.md完成相对估值、简化DCF测算、 预期差分析、敏感性分析最终输出一年期合理估值区间。 ### Step 6: 反方论证 列出至少三条看多逻辑可能被证伪的条件并给出未来12个月需跟踪的 核心指标清单。 ### Step 7: 汇总输出 按 assets/report_template.md 生成最终报告用 Markdown 输出。配合使用的一个辅助模板示例把它放在assets/financial_template.md## 财务质量审计模板 以审计视角完成以下五项检查每项必须给出具体数值与判断依据 1. 收入质量营收增速 vs 应收账款增速背离超过一定幅度须解释原因。 2. 利润质量净利润 vs 经营现金流净额计算净利润现金含量。 3. 费用率变动销售/管理/研发费用率同环比变动幅度及驱动因素。 4. 资产负债表体检存货周转天数、应收周转天数、有息负债率、商誉占比。 5. 财务健康度评级健康/关注/风险列出关键支撑证据。 若工具返回数据不足明确标注缺失项不允许用训练数据中的旧值代替。我个人的项目目录目前维护了六七个 Skill这套公司深度研究是被使用频率最高、迭代版本最久的一个。它给我的最大启发是AI 投研的上限由模型决定但下限几乎完全由 Skill 的设计质量决定。一篇好的投研 Skill本质上就是把一位合格研究员的隐性经验显性化、流程化、可复制化。你现在拿到的这套框架不只适用于个股深度研究稍微改改模块它同样能跑行业比较、宏观策略、基金筛选——换场景时只需要替换 Step 2 到 Step 6 的模板内容骨架完全不用动。如果你也开始动手写自己的投研 Skill建议第一条规则永远保留可证伪这条纪律。它能逼着模型亮出观点和边界也正是这份敢于下判断、同时给出反证条件的气质让 AI 产出的内容越来越像一个有经验的研究员而不是一个和稀泥的会议纪要机器人。