← 返回教程库

问顺了一次不算会,把它拆成模块存下来

最后更新 2026-08-19
📚 量化与 AI 投研 📖 AI 投研实操 ⏱ 约 16 分钟 R1 · 低风险
你将学到
  • 说清为什么你复现不了昨晚那次特别顺的对话,三个原因分别对应哪种补救
  • 按存句子、存带占位符的模板、存整条流程三个层次,把一次成功固化成下次还能用的东西
  • 把一份投研提示词拆成角色、材料边界、输出结构、核对清单四块可替换积木,并用三个信号判断模板什么时候该改

昨天晚上你花了两个小时,跟 AI 磨一份材料整理。第一版一无是处,你改了一句;第二版还是不对,你又补了一句;到第五版的时候,出来的东西终于能用了——格式对、数字对、没有夹带那些没营养的判断。你心满意足地关掉窗口,觉得自己终于摸到门道了。

今天你换了一家公司,想再来一次。你把昨天那段指令翻出来粘进去,出来的东西又回到了第一版的水平。

这一节讲的就是这两个小时和第二天之间那道沟。它不是提示词写得好不好的问题,你昨天最后那一版写得挺好。问题是你保存下来的东西,不足以让它再好一次。

先说一件跟投资没关系的事

某天你随手做了一道菜,出奇地好吃。第二天想复刻,做不出来了。

你回想的时候会发现一件很挫败的事:你说不清是哪一步起的作用。是那勺临时想起来的料酒?是火关得比平时早?还是纯粹因为那天买的菜新鲜?你当时是一边做一边调的,没有任何一个瞬间你停下来想过"这一下是关键"。你只有一个结果,没有过程。

反过来看菜谱为什么能被别人复刻。菜谱做对了两件事:它把过程写下来了,而且它把过程拆开了。 用什么料、多少量、什么顺序下锅、什么状态算好了——这四栏是分开写的。分开写有个好处你可能没意识到:你想换一道口味相近的菜,往往只需要改「用什么料」那一栏,火候和顺序照抄。

一次做成功和拿到一份菜谱,中间隔的就是这两件事:写下来,以及拆开写。

换到投研上,这道沟长什么样

回到你昨晚那两个小时。你复现不了,具体是因为三件事,每件事的补救办法都不一样。

你保存的是终版,不是过程。 你最后那版里有一句"不许给出任何买卖倾向的判断"。这句话不是你一开始就想到的,是你在第三轮被它推销了一通"该公司具备长期配置价值"之后才气呼呼补上的。可你保存的时候,它躺在那儿只是一句普通的话,跟旁边十几句长得一模一样。三个月后你重看这份模板,很可能觉得这句多余,顺手删了——然后再踩一次同样的坑。补救在本文最后一节:每加一句都在旁边记一笔为什么加,让这句话自带它的来历。

起作用的未必是你以为的那句。 你一共加了五句,效果变好了,你直觉认为是最后加的那句最关键,因为它离成功最近。但也完全可能是第二句在起作用,最后那句只是碰巧赶上。你没做过对照,你的归因就是猜的。补救很土但有效:下次调的时候一次只改一处,改完立刻拿同一份材料重跑一遍。慢是慢了点,但你会真的知道是哪一句在起作用,而不是事后编一个故事。

一半的功劳不在提示词里,在对话历史里。 你在磨那五版之前,已经把年报的相关几页贴进去了,还纠正过一次口径——你说过"我要的是合并报表口径,不是母公司"。有了这些垫底,最后那段指令才有效。你第二天只复制了最后那段指令,把垫底的全丢了。补救对应下面的第三层——存整条流程,把「先贴哪几页材料、先纠正哪个口径」这些前置动作和指令一起存下来,它们本来就是同一件事的两半。

这三件事合起来是一个结论:你昨晚做成的是一次对话,不是一个能力。 要把它变成能力,得做点额外的动作。

固化的三个层次

固化不是一个动作,是三个越来越费劲、也越来越值钱的层次。你不用一步到位,但你得知道自己现在停在哪一层。

第一层:存句子

把那几句你觉得管用的话单独摘出来,攒成一个清单。这是成本最低的做法,价值也最低——它只解决"我记得好像有这么一句"。

有一个判据能帮你决定哪些句子值得单独存:这句话脱离当时那个上下文还成立吗? "缺失的项一律填未披露,不许推算",这句话拿到任何一次材料整理里都成立,值得存。"重点看第三部分那张表",这句离了当时那份年报就是废话,不值得存。

单独存下来的句子有个专门的用法:它们是你下一层模板里的固定件,不是变量。四块积木里的核对清单那一块,主要就是由这类句子堆起来的。

第二层:存带占位符的模板

把那次成功的完整指令原样抄下来,然后把里面所有跟这一次的具体对象绑死的东西挖成空。

挖空这个动作本身就是一次体检,这是它最大的隐藏收益。你会发现有些句子挖掉具体内容之后,剩下的部分什么都不是——比如"请以专业机构分析师的水准,对该公司进行深入分析",把公司名挖掉,剩下的是一串形容词,对它不构成任何约束。这类句子该删,不该留在模板里占位。哪些是真约束、哪些是听着很专业但不产生约束的伪要素,一个好的投研提示词,有四个东西不能少 里逐条拆过。

占位符也别只留一条下划线。给每个空标上它该填什么、以及不许填什么:

材料范围:____
  填什么:你已经贴进本次对话的文件名或页码区间
  不许填:「公开信息」「网上能查到的资料」这类没有边界的说法

口径:____
  填什么:合并 / 母公司,二选一,写死
  不许填:留空。留空它会自己挑一个,而且不告诉你挑了哪个

这两个空为什么要专门标注,因为它们是投研里最贵的两个空。材料范围一松,它就会拿你没给的东西来答,你事后根本分不清哪句话有出处;口径一松,你拿到的数就可能跟你估值表里那一列不是一回事,而这种错看着完全合理。

现成的、覆盖从初筛到复盘整条链路的模板,投研提示词模板库 里有七份可以直接抄走,你不必从零攒。

第三层:存整条流程

模板解决的是单步,流程解决的是步与步之间。到了这一层,你要额外记下来三样东西:

顺序。 哪一步必须在哪一步之前。投研里这个顺序不是可有可无的:材料边界必须在提问之前定死,否则前面所有回答都失去了可核性;数字核对必须在写结论之前,否则错数会一路流进结论然后被你的表格接收。

每步的输入从哪来。 上一步的产物,是整段丢给下一步,还是只挑其中一部分?在投研里这个选择很关键——如果你把上一步的结论丢给下一步,下一步就没机会推翻它了,几步之后你会得到一份内部高度自洽、但可能整体错位的东西。把互相独立的几路输入分开跑再汇总,做投研,别让 AI 一个提示词问到底 讲的就是这个安排。

每步结束前的检查点。 这一项最容易被漏掉,也最值钱。检查点是你唯一能在错误往下游流之前把它拦住的地方。投研里有三个检查点几乎在任何流程里都该有:这一步出现的每个数字能不能回原文找到、口径跟上一步是不是同一个、有没有冒出买卖倾向的措辞。核验动作具体该插在哪一步、每一步核什么,核验动作该放在流程的哪个位置 里排得更细。

模块化的关键是「可替换」

现在说这件事里最实用的部分。

把一份投研提示词拆成四块,物理上分开存——不是在同一段话里换个行敲个小标题,是四个独立的块,各自能单独抽出来换掉:

积木 装什么 变不变
A 角色与立场 它扮演谁、站在哪个立场看、不许替你做什么决定 换用途才变
B 材料边界 只准用哪些材料、不许用记忆里的东西、不许上网找补 换标的就变
C 输出结构 吐表格还是段落、有哪几列、缺失怎么标 基本不变
D 核对清单 交活之前它自己要过一遍的几条硬约束 只增不减

分开存之后,换场景的动作就变成了下面这样:

你要换的东西 改哪块 别动哪块
换一家公司,同行业 只改 B A、C、D 全不动
换一个行业 改 A 里涉及行业常识的那半句,加改 B C、D 不动
换用途,从整理材料变成挑毛病 改 A 和 C B、D 不动
上次出了一个数字错 只在 D 里加一条 其余三块一个字不动

最后一行是这张表的重点。出错之后,大多数人的反应是把整段提示词推倒重写一遍——写完感觉很扎实,实际上你把上次好不容易调对的部分一起冲掉了,而且新版跟旧版之间再也没法比较。分成块之后,你才有能力做"只补一条清单项"这种小手术,改动小、可回退、下次还能对照。

反过来这张表也是个诊断工具:如果你发现换一个场景要动四块,那说明块划错了。 最常见的错法是把行业相关的东西写进了 C 输出结构里——比如你在表格列名里写死了某个行业特有的指标名,换行业时整张表都得重排。正确的做法是把这类东西留在 A 或 B 里,C 只描述形状,不描述内容。

什么时候该改模板

模板不是刻在石头上的,但也不能天天改。给你三个信号,出现了才动手。

信号一:连续三次你都要手动补同一句话。 这是最硬的一个。你每次跑完都得追一句"表格里别加评价性形容词",第三次的时候你就该把这句写进模板了。这个信号里"连续"和"同一句"缺一不可——偶尔补一句不算,每次补的话不一样也不算,那说明是场景在变而不是模板缺件。

信号二:某个占位符你连续几次填的都是同一个值。 说明它其实是常量不是变量。把它从空降级成固定文字写死,你每次要填的东西就少一个。填空越少,你越愿意用这套模板,这比模板本身写得多漂亮都重要。

信号三:你开始悄悄跳过某个检查点。 这时候二选一:要么承认这个检查点确实没用,删掉;要么承认它太贵了,把它拆小到你愿意做。千万别留着一个你实际上不执行的检查点。 它比没有更糟,因为它会给你"我流程里有这一步"的错觉,你会因此对产出多一分不该有的信任。

再说一个不该改的情况:单次结果不好,不构成改模板的理由。 同一份指令跑两遍结果就有差异,这是这类工具的固有性质,不是模板坏了。你至少要在三份风格不同的材料上都出同一类问题,才算证据够了。改模板是有成本的,成本不在改这一下,在于改完之后你之前所有的记录跟之后的都不可比了。

最后加一个小习惯:改了就记一笔改了什么、为什么改,一句话就行。 三个月后你重看模板里某句奇怪的话,如果旁边写着"某次它把预测数当成实际数写进表里了,加这句拦一下",你就知道它该留着;什么都没写的话,你要么留着它当迷信,要么删了它然后重新踩一遍那个坑。

认真做工具的人,也在做同一件事

这套"把知识和流程切成可替换模块"的想法,不是自己琢磨出来的偏方。我读了开源 AI 投研智能体项目 Vibe-Trading 的源码快照(commit 3a752d5),它的做法跟上面几乎是一回事,只是做到了工程级。

它的 skills 目录下是八十多个独立子目录,每个目录里一份 SKILL.md。每份的头部元数据只有三个字段:名字、一行描述、类别。类别一共九种,涵盖分析、策略、工具、数据源、资产类别这几个方向。点开其中的财报三表那一份,里面写的是三张表之间的勾稽关系、盈利质量怎么看、杜邦怎么拆、财务造假有哪些红旗——是方法论,不是代码。这就是第二层:一块可以被整体换掉的知识。

更值得看的是它怎么加载这些块。源码注释里写明用的是渐进式披露:平时只把每个模块的那一行描述塞进上下文,完整内容要等到真的用得上,才由一个专门的加载动作读进来;模块目录里的附属文件同样是按需才读。这个设计对应的是一个很实际的约束——上下文塞不下所有知识,所以必须先有目录、再有内容。你手上的模板库到了一定规模也会撞上同一堵墙,那时候你需要的也是一份"有哪些块、各自一句话干嘛用"的索引,而不是把所有模板都摊开来看一遍。

再往上一层,它的上下文定义文件里把典型任务写成了带顺序的流程:先加载某个模块读清接口约定,再执行下一步;如果怀疑出现了某一类偏差,就加载另一个专门做诊断的模块。这正是第三层——存下来的不只是知识本身,还有"什么时候该调哪块知识"。

你不需要装这个工具,也不需要写一行代码。要拿走的就三条:知识按主题切成独立小块、每块配一行摘要方便挑、用的时候才展开细节。 这三条你用一个文件夹加几个文本文件就能做到,一个下午够了。

🚧 避坑

坑:把整段对话历史当模板存下来。 你连上次贴进去的那几页年报、那几个具体数字一起存了。下次换公司忘了清干净,它会拿上一家的数来答这一家的问题,而且答得毫无破绽。怎么避:存模板之前把所有具体材料、具体数字、具体名称全部清成占位符,清完自己通读一遍确认没有残留。

坑:模板越攒越多,最后一个都不用。 判据很简单——如果你的模板超过一只手数得过来,而且随便点开一个你想不起它是干嘛的,那它就该删。模板库的价值在于你真的会翻它,不在于它有多全。

坑:把「这次结果好」直接当成「模板对了」。 有可能只是这家公司的材料恰好排得规整。同一份模板至少在三份风格差别较大的材料上都跑通过,才算它站住了。

⚠️ 风险提示

这一节讲的是把工作流程固化下来,跟能不能赚钱之间没有任何关系。一套再顺手的流程,产出的也只是整理得更干净的信息,不是投资结论——从信息到决定之间那一段,仍然得你自己走,而且没有任何模块能替你走。本站所有内容只讲原理与方法,不构成任何投资建议,完整边界见 免责声明

小结

  • 你复现不了昨晚那次成功,是因为三件事:保存的是终版不是过程、起作用的未必是你以为的那句、一半功劳在对话历史里而你没存。
  • 固化分三层:存句子(只存离了上下文还成立的硬约束)、存带占位符的模板(挖空这个动作本身就能筛掉伪要素)、存整条流程(顺序、每步输入从哪来、每步的检查点)。
  • 拆成四块积木物理分开存:角色与立场、材料边界、输出结构、核对清单。换公司只改材料边界,换行业加改角色,出了数字错只往核对清单里加一条。要动四块就说明块划错了。
  • 三个该改模板的信号:连续三次补同一句话、某个空连续填同一个值、你开始跳过某个检查点。单次结果差不算理由。
  • 改了就记一句为什么改。否则三个月后你会把一句救过你的话当成多余删掉。
  • 工业界的做法印证了这个方向:Vibe-Trading 把八十多份金融知识切成独立模块,每份配一行摘要,用的时候才展开完整内容,流程里还写明什么时候该调哪一块。

一句话总结:下次再碰上一次特别顺的,别急着关窗口——花五分钟把它拆成几块存下来,你存的不是那段话,是下个月不用再熬一晚上的自己。

内容有错、看不懂、或想看下一篇?告诉我们 →

本文为投资教育整理,不构成任何投资建议;不荐个股/基金、不预测点位、不承诺收益。关键数据与结论请结合权威来源自行验证,并见风险免责声明