ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

把投研分析流程固化进AI Agent Skill:设计思路与调优实践

把投研分析流程固化进AI Agent Skill:设计思路与调优实践 最近我在做一件事把自己做投研分析的一套流程完整地写进 AI Agent 的 Skill 里。以前我让 AI 辅助做公司调研每次都得重新叮嘱它先看商业模式再看财务质量最后做估值但报告总是不稳定——有时跳过现金流有时上来就给结论甚至会把营收增速和净利润增速混在一起说。后来我把整套流程固化成一个投研 Skill一次配置后面只需要丢给它一个公司名称或代码它就会按固定路径输出结构完整的投研笔记。这篇文章就把我的设计思路、SKILL.md 实际写法、实测翻车经历和调优过程完整分享出来适合正在用 Claude、Codex、Cursor 这类 Agent 环境做投研辅助的同学参考。1. 为什么投研能力值得固化成 Skill1.1 投研的本质是流程复利做投研和写代码有一个共同点如果能把对同一类问题的分析方法沉淀成固定流程那么每一次分析都会在旧经验上做增量而不是从零开始。我在看一家公司时习惯按行业空间—商业模式—财务质量—估值风险—跟踪指标这个顺序来这不是拍脑袋而是为了不被股价和短期的市场情绪带偏。以前没有 Skill 的时候我打开一家公司想到什么问什么结果 AI 给出的内容一会儿是人气榜式的新闻汇总一会儿又变成财务指标罗列想要一张能直接入库的公司分析卡片得反复调整提示词。后来我意识到问题不在 AI 本身而在我怎么向它下达任务。投研分析不是一次性的自由问答它有一套相对固定的操作方法先搞清楚公司靠什么赚钱再看赚的是不是真金白银然后回答股价里已包含了多少预期最后列出什么信号出现时该重新审视结论。这套方法如果只放在我的脑子里每次和 AI 协作都会损耗一点损耗一起输出质量就飘。把它写成一个 Skill等于把老分析师的操作手册交到模型手上每次执行的都是同一条被校准过的路径。1.2 Skill 和普通 Prompt 的差别很多人会问Skill 不就是把一段提示词存起来吗还真不是。普通 Prompt 是你这一次对话里对模型的行为要求模型会在本次生成过程中参考它但下一次换一个表达结果就会走样。Skill 则是预置在 Agent 工作区里的一个独立能力包通常是一个目录里面有 SKILL.md 以及配套的参考文档、模板、脚本。模型在执行任务前会主动加载 Skill 里的规则相当于一个有经验的助理收到了一份岗位手册而不是每次等老板口头说一遍怎么做。举个生活化例子普通 Prompt 是你在厨房跟帮工说把菜炒了至于咸淡、火候、装盘全看帮工今天的心情和悟性Skill 是一张标准化菜谱明确列出食材、切法、调料比例和出锅标准。投研分析的信息密度很高如果全靠临场发挥模型很容易聚焦到最后一天的消息面忽略长期的经营质量。所以我在实践里更愿意把关键流程写进 Skill而不是每次都写一段长篇提示词。1.3 什么情况下不值得做 Skill但我也不建议所有人都一上来就做 Skill。如果你的投研需求只是偶尔问一句某公司怎么样普通 Prompt 完全够用没必要为了一次性需求维护一个目录。反过来如果你每周要研究两三家新公司或者希望多次分析的结果格式一致方便后期归档和对比那就值得投入时间。另一个判断标准是输出是否要进入下一环节。比如你的分析结果会被另一个 Agent 汇总成组合投研周报那就必须保证每家公司输出的结构相同这时候 Skill 几乎是必需品。2. 投研 Skill 的内容设计把专家操作流程翻译成模型指令2.1 五个环节的拆解我在设计投研 Skill 时先把分析流程拆成五个环节每个环节都规定了输入、核心动作和产出。这个拆分不是从教科书里抄来的而是我自己平时看公司时真实使用的思考顺序环节输入核心动作产出业务画像公司名称、主营业务、行业背景用三段话说清楚公司靠什么赚钱业务综述商业模式验证上下游、竞争格局、进入壁垒判断利润来源于产业链的哪个环节商业模式判断财务体检近 3-5 年营收、净利、现金流、资产负债先看现金含量再看盈利质量最后看增长来源财务评分与注解估值分析当前市值、盈利、同业对标至少用两种估值方法交叉验证并写明假设估值区间风险与跟踪行业数据、公司公告、财务异常点列四类风险再给出需持续跟踪的指标风险清单与跟踪计划这张表我会直接放进 Skill 的参考文档里作为整个分析框架的主干。模型拿到公司资料后会按照表里的顺序逐个阶段执行而不是自己挑喜欢的部分先做。2.2 指令颗粒度把模糊要求变成检查清单把流程拆完后下一个关键动作是把抽象要求写细。比如注意风险这种表达模型根本不知道要注意什么最后输出的大概率是行业竞争加剧、政策变化这种万金油句子。我会把它改成硬性要求风险部分必须覆盖四类——行业竞争风险、原材料或供应端风险、应收账款或现金流风险、政策与合规风险并且每一条都要给出影响方向和可验证指标。类似地对财务质量我不允许模型只说公司盈利能力较强这种感受式结论而是要求它先列出指标近三年毛利率趋势、经营性现金流与净利润的比值、应收与营收增速的剪刀差。只有当数字和结论同时出现时这条分析才算合格。这种颗粒度非常花时间但它是 Skill 能否稳定工作的核心。规则越清晰模型的执行空间越窄输出也就越靠谱。2.3 输出模板让分析结果能被二次使用投研 Skill 的输出一定要用固定模板因为分析结果往往不只是给人看一眼后续可能要被归档、对比甚至交给其他 Agent 拼接使用。我最终选用的输出结构是 Markdown 标题加表格结构大致是标的、一句话结论、业务画像、商业模式、财务指标表、估值区间、风险清单、跟踪指标、信息来源。这样的好处是既方便人类阅读也方便程序解析团队里如果想把结果批量写入数据库按标题层级抓取就行。在 SKILL.md 里我会直接声明最终回复必须严格遵循 output_template.md 的结构不得省略任何一级标题。这个约束能避免模型在信息不够时偷偷砍掉某个环节为了保证输出完整它会主动搜索或追问数据而不是直接摆烂。2.4 防止模型幻觉的硬性规则投研分析最怕的就是模型一本正经地编数据。我在 Skill 里专门写了一条最高优先级规则所有财务数据必须来自用户提供的材料、参考文档或搜索工具返回的结果并且需要标注来源如果找不到数据必须明确说未获取到该项数据不得根据上下文自行推导一个数字出来。这条规则在实测里起了大作用。为什么这是最高优先级因为模型在信息缺失时本能是猜一个合理值补上。在投资场景里一个猜测的营收数字可能让估值区间偏掉一大截。所以我要求模型宁可留下空白也不要填一个看起来合理但实际错误的数据。这个边界感是投研 Skill 和专业写作 Skill 最大的区别。3. 从零写 SKILL.md目录结构与关键文件的实操写法3.1 Skill 目录的推荐结构我建议把投研 Skill 做成一个独立目录而不是把所有内容塞进一个长文件里。目录结构大致如下investment_research/ ├── SKILL.md ├── references/ │ ├── analysis_framework.md │ ├── financial_indicators.md │ └── output_template.md └── scripts/ └── fetch_data.py其中 SKILL.md 是入口模型会优先读它references 里放分析框架、财务指标口径和输出模板scripts 目录目前可选用于后续接入数据源。把内容拆成多个文件好维护也方便模型在做具体环节时只检索对应文件减少上下文干扰。3.2 SKILL.md 的元信息与核心正文SKILL.md 本身可以分成两段元信息区与正文规则区。元信息用于让 Agent 识别这个 Skill 的名称和适用条件正文则用命令式语气描述执行流程。一个简化但可运行的示例是--- name: investment_research description: 对上市公司进行结构化投研分析。当用户提供股票代码、公司名称或要求进行基本面分析时按固定流程输出业务、财务、估值、风险与跟踪指标。 --- # 投研分析 Skill ## 触发条件 - 用户给出公司名称或股票代码 - 用户要求进行公司基本面分析或投研分析 ## 执行流程 1. 业务画像先说明公司所处行业、主营业务、收入结构用三句话概括收入来源。 2. 商业模式验证分析上下游关系、竞争壁垒、定价能力明确利润来源。 3. 财务体检读取近3-5年财务数据按 references/financial_indicators.md 中的口径计算关键指标。 4. 估值分析采用至少两种估值方法说明核心假设给出估值区间。 5. 风险与跟踪按行业、供应、财务、政策四类列出风险并给出未来3个月需跟踪的指标。 ## 硬性规则 - 所有数字必须标注来源禁止编造财务数据。 - 如果数据缺失明确输出未获取到该项数据。 - 最终输出严格遵循 references/output_template.md。模型读到这段规则后基本上不会再把分析做成随笔。我实际测试时哪怕用户只给一句话帮我看看这家公司它也会自动进入流程并在最后询问缺失数据而不是直接输出一个放之四海而皆准的分析。3.3 references 文件怎么写references 里的三个文件是投研 Skill 的深度来源。analysis_framework.md 可以写得像老分析师的检查清单比如商业模式部分要回答公司有没有提价权客户集中度是不是太高供应商切换成本高不高这些问题不需要全部写进 SKILL.md但会作为模型分析时的背景知识。financial_indicators.md 建议写出口径与判断标准。这一步尤其重要因为模型经常混淆营收复合增速和净利润增速的表述也不知道什么是好的现金流特征。我在这份文件里写了一条经营现金流与净利润的比值如果连续三年低于 60%必须在财务体检中以风险项提示。这就把模糊的现金流良好变成可计算的判断规则。output_template.md 则是给最终报告定死的框架标明每个章节用什么标题、什么表格、每张表必须包含哪些列。我见过很多人忽略模板结果模型每次输出的表格全是不同格式后续根本没法统一处理。模板稳定才能让 Skill 产生积累价值。3.4 脚本集成数据获取的常见坑很多人一听 Skill 就想到自动化抓数据但我的建议是第一版先不要接脚本不要试图让 AI 自动从数据接口拉财务信息。原因有两个一是数据接口往往不稳定返回字段各不相同模型拿到后需要额外解释二是数据准确性问题如果抓取或清洗环节出错下游分析再专业也是白搭。我更推荐的工作方式是先由人工提供一份财务摘要或年报片段Skill 只负责分析和结构化这样能最大程度隔离数据风险。等流程稳定之后再把 scripts/fetch_data.py 补上让模型调用接口获取行情和财报。脚本可以简单到只做一件事读取上市公司代码返回一份规整的财务数据 JSON直接粘到对话里喂给模型。这个顺序看着慢实际是在帮自己减少数据错误引发全链路翻车的概率。4. 实测一只消费股的完整分析和两次明显的规则翻车4.1 测试环境与输入为了验证 Skill 到底靠不靠谱我特意做了一个可控测试。测试环境是当前主流的 Agent 工具把 Skill 目录放进去后我输入一句请深度分析以下消费电子公司数据以我贴出的年报摘要为准并附带了一份模拟财务数据。用模拟数据的目的是先把数据源固定下来这样后续不管跑多少次都能判断模型分析逻辑本身正确与否而不是被联网查到的不同版本数据干扰。第一次跑完整个报告结构确实完整业务画像、商业模式、财务、估值、风险五块全都有连输出模板里的小标题都没漏。当时我以为就成功了结果逐段细读后发现问题还不少。4.2 第一版输出结构合格但财务口径出错第一版最明显的问题出在财务部分。模型写公司经营性现金流表现良好与利润水平匹配但我贴的模拟数据里经营活动现金流净额只有净利润的 45%而且已经连续两年下滑。显然它在做财务判断时只看了现金流为正就给出良好的结论完全没做逻辑验证。另一个问题是估值部分默认用了 PE 和 PB但该公司当年的净利润极端偏低PE 直接被算成一个三位数模型却还是生硬地写下估值偏高没有意识到这种情况下 PE 参考意义有限。这两处翻车有一个共同的根源我在 Skill 里定义了指标名称却没有定义判断口径。后来我在 financial_indicators.md 里加上经营现金流 / 净利润连续两年低于 60%必须作为风险项提示又补充了当公司盈利接近零或为负时优先使用 PS 或 EV/Sales 进行估值并解释 PE 不适用。改完后第二次跑这两个问题基本消失。4.3 第二版优化估值方法与风险清单第二版我把估值环节的规则加得更死必须采用两种估值方法且要明确写出每种方法的假设比如假设未来三年营收复合增速为 10%给予 PS 区间 1.5-2.5 倍对应市值区间为 X 到 Y。模型在被要求给出假设后就不会随意抛出一个空洞的估值偏高结论因为它得先说明是相对什么高、在什么假设下高。风险部分也在这一版改成强制四类清单并且要求每条风险必须配一个可验证指标例如供应端风险核心芯片依赖单一供应商跟踪指标为供应商财报中的该业务营收增速。实测下来修改后的输出明显更像一份可用的投研笔记而不只是把网上评论拼起来。这里我也想提醒Skill 的迭代不是一次完成的你需要在真实输出里挑刺每挑出一个问题就补一条规则重复几轮后质量才会稳定。4.4 与不带 Skill 的随机提问对比为了量化变化我做了个简单对比同一份模拟数据分别用自由对话和投研 Skill跑对比项不带 Skill带 Skill结构完整性时好时坏偶尔跳过估值固定五个环节全输出财务口径经常用利润替代现金流强制计算现金流/净利润比值估值方法默认 PE/PB亏损公司直接失效自动切换到 PS 并写明假设风险覆盖依赖模型临时记忆固定四类风险清单数据来源容易编造合理数字必须标注来源缺失就留白需要说明这只是我在固定测试集上的个人体验不代表所有模型在所有场景下都如此。但方向很明确Skill 的价值是把输出的下界抬高让模型即便面对陌生公司也不会犯最基础的结构性错误。5. 把 Skill 放进投研工作流批量筛选、跟踪与人工校验5.1 让 Skill 跑批量筛选Skill 跑通后最大的一项收益是批量初筛。我写了一个简单的本地脚本把候选股票代码列表读进来逐个调用 Agent 接口输入同样的模拟或真实财报摘要让 Skill 输出标准化的分析卡片。以前人工看一家公司至少要一小时现在我可以让 AI 在半小时内产出几十张结构化卡片然后再由我集中精力对其中值得深挖的标的做人工分析。这里有个很实用的经验批量跑的时候不要追求每一份都是深度报告初筛阶段只需要业务一句话、财务三个指标、风险三条、跟踪指标三条这样的压缩卡片。我特意在 Skill 里加了一个 model: brief 模式输出模板就会切换到精简版这样能大幅减少 API 调用成本和时间。深度分析则在初筛通过后再单独跑。5.2 跟踪板块Skill 输出跟踪计划后如何执行如果已经在持续跟踪某些公司可以基于投研 Skill 再扩展一个增量更新模式。每次拿到公司新发布的季度数据不需要让模型重新做完整分析而是输入上次的分析结论和最新财务数据让模型只输出变化点 结论是否需要修正。我在 Skill 里定义了一个参数控制模型是执行全量流程还是增量流程两种模式共用同一套财务判断标准只是输出草稿不同。这部分如果配合 Agent 的定时任务可以做成每周自动生成跟踪摘要把新季度摘要文本丢进去Skill 自动输出与上次结论的差异。这个玩法能让投研跟踪的机械劳动进一步下降但同样需要人工确认数据源毕竟财报文本复制过来也可能有格式错位。5.3 人工校验永远不能省我必须把这句话放在最后AI 投研 Skill 做得再完善也只是一个把流程固定下来的工具它不会消灭投研中真正需要判断的环节。Skill 能保证模型不漏项、不偏科、不乱编数字但某个公司的壁垒是否真的坚固、某个估值假设是否合理这些问题在数据和框架边界之外还是需要人来做判断。我也在 SKILL.md 里加了一句免责声明报告仅供研究辅助不构成投资建议。这不是形式主义的空话而是让模型在证据不足时保持克制不要输出过度自信的结论。最后说一点我个人体会。做这个 Skill 不是为了让 AI 替代我的研究工作而是把前期的信息整理、指标计算、结构草拟这些重复劳动降到最低。以前我研究一家新公司光是把财务数据和业务逻辑梳理成统一格式就要花很久现在二十分钟就能得到一份骨架清晰的材料我把省下来的时间用来质疑 AI 的结论、验证关键假设反而觉得研究质量更稳定了。如果你也想尝试我建议从最常用的五步流程开始先别急着接数据脚本跑通流程后再把踩到的每一个具体问题写成更细的规则这种迭代积累起来的 Skill才是真正属于自己的投研助手。
返回列表