每一句都得有出处,不然你连核都没法核
- 说得清什么样的出处算合格——判据是别人拿着它能不能独立找回那句话,而不是它写没写「来源」两个字
- 会用四类标签把「逐字原文 / 我的转述 / 我算出来的 / 我记忆里的」在生成当下就分开,而不是事后回忆
- 能用一次随机抽查判断整份材料还能不能用,并认出五种把出处稀释掉的常见写法
你让 AI 帮你把一家公司的近三年经营情况理一遍。它给了你一千多字,里面有七八个数字、三处管理层的表态、两个跟同行的对比。读起来很顺,逻辑也接得上。
然后你想核一下。
问题来了:从哪儿核起? 那个营收增速,是它从你贴的年报里读出来的,还是自己拿两个数除出来的,还是它「记得」这家公司大概是这个水平?那句带引号的管理层表态,是原话,还是它把三段话的意思揉成了一句更好听的?那个跟同行的对比,同行的数据它是从哪儿拿的?
你一个都答不上来。于是你只有两个选择:整篇都信,或者整篇都不信。前者危险,后者等于这一千多字白给。
这个死局的根源不是它说错了什么,是它没告诉你每句话是从哪儿来的。
先说报销这件事
公司报销,规矩你熟。你出差回来交一沓票,财务不听你讲这趟差多辛苦、钱花得多值,她只干一件事:把你填的每一笔金额,和你贴的每一张票对上。
对不上的那一笔,不是「你可能记错了」,是不能报。
注意这里的逻辑很有意思:财务并不认为你在骗她。她也知道你那顿三百块的饭大概率真吃了。但她不能按「大概率真的」办事,因为一旦开了这个口子,她就失去了一件东西——便宜地检查的能力。有票,她三秒钟看一眼就过;没票,她得给你打电话、问日期、问同行的人、翻行程单,一笔的成本从三秒变成半小时。
所以票据制度的作用,不是防你贪那三百块,是让检查这件事的单价低到可以每笔都做。
还有一个细节:正规的报销单上,永远留着一栏叫「无票据说明」或者「个人承担」。它不禁止你花没票的钱,它只要求这笔钱待在专门的格子里,不要混进有票的那一堆。
这三件事——票要能对上原件、检查必须便宜、没票的钱要有专门的格子——原封不动地就是这一篇要讲的全部内容。
在投研里,出处到底值多少钱
把上面那套换成投资的语境。
你手上有一份 AI 生成的研究材料。它的价值不取决于它对不对,取决于你能不能便宜地知道它哪儿对哪儿不对。这两句话听起来像绕口令,但差别是实打实的:
一份带完整出处的材料,就算里面有三处错,你也能在十分钟内把这三处挑出来,剩下的照用。一份没有出处的材料,就算里面只有一处错,你也得整篇重做——因为你不知道那一处在哪儿,而它污染的是你后面所有的推导。
核对这件事,放到最后做就已经晚了 那篇讲的是核验动作该卡在流程的哪一步。这一篇讲的是它的前提:没有出处,任何位置的核验都执行不了。 你没法在取数那一步核一个不知道来源的数,你只能在它已经影响了三个结论之后,靠肉眼觉得不对劲才回头。
更要命的是长期效应。一个没有出处的数字进了你自己的笔记,三个月后你再翻,它看起来和你亲自查证过的数字长得一模一样——都是你文档里的一行字。到那时候它已经跟来源彻底脱钩,你会把它当成事实引用出去。
所以出处的价值可以用一句话概括:它不证明这句话是对的,它只让你能用很低的成本去查这句话对不对。 这两件事千万别混。后面还要专门说一次,因为「标了出处 = 可信」是这一整套动作里最危险的误读。
它为什么天生就爱混着说
这里要讲一层机制,讲清了你就不会再觉得它是在故意隐瞒。
这类模型在生成一句话的时候,眼前只有一样东西:上下文——也就是当前这一轮对话里,它能「看见」的全部文字,包括你贴给它的材料、你之前问过的话、它自己刚说过的话。它根据这一整片文字,去挑下一个最合适的词。
关键在这儿:你贴的年报原文,和它训练时读过的成千上万份年报,在「决定下一个词」这件事上,起的是同一种作用。 前者在上下文里,后者沉淀在它的参数里,但它内部并没有一个小本子,记着「这个词是受材料影响冒出来的,那个词是受记忆影响冒出来的」。生成的那一刻,两股力量是混在一起的。
所以它不是不肯交出处,是它默认不做这个区分。你事后问它「刚才那句是从材料里来的吗」,它给你的答案本身也是生成出来的——它在做一次事后的合理推测,不是在查一份记录。
这就推出了本篇最重要的一条操作原则:
区分必须发生在写下那句话的当下,不能靠事后回忆。
换成报销的话:票要在花钱的那一刻要,不是回来以后再补。补出来的东西,你没法验它是不是补的。
具体到操作上,就是把标注做成输出格式的一部分——每写一句就必须带上它的标签和位置,写不出来的那句直接不许写。而不是先让它写完一大段,再让它「补一下来源」。后一种做法你几乎一定会得到一份看起来很完整的来源列表,因为补来源这个动作本身,对它来说也只是一次续写。
什么才算合格的出处
「来源:公司年报」——这不算出处,这是一句安慰。
判断一条出处合不合格,只有一个判据,而且这个判据一点都不学术:
把这条出处交给一个完全没参与过这次对话的人,他能不能在半分钟内独立找回那句话。
按这个判据过一遍,你会发现绝大多数看起来像出处的东西都不合格。「年报」不合格,年报几百页。「财务报表附注」勉强,得看附注有多长。「2024 年报第五节 财务报告 附注十二 应收账款 第二段」合格。「管理层在业绩会上表示」不合格,哪一场业绩会?「2024 年第三季度业绩说明会记录,问答环节第四个问题的回答」合格。
出处不是一句话,是一组字段。这一点在工程实现里看得特别清楚。开源的 AI 投研智能体项目 Vibe-Trading(智能体就是能自己调工具、分几步把一件事做完的 AI 程序,不是只会一问一答的聊天框)里,有一个专门的证据台账模块,它把每一条数值证据定义成一个固定结构的记录,字段包括:这条证据来自哪一次工具调用、调的是哪个工具、对应哪个标的、来源是什么、时间戳是什么、取的是哪个字段、值是多少、是什么货币、在哪个交易场所、如果做过货币换算是怎么换的,以及一个状态标记。
请数一下这有多少个字段。一个数字,配十来个字段的身份信息。 做这套系统的人显然认为,一个不知道时点、不知道币种、不知道交易场所的价格,等于没有这个价格——因为它无法被任何人复现。
这个模块的说明里还有一句话很值得抄下来:语言模型仍然负责研究和解释,但有两件事是结构性的、不是建议性的,其中一件是——最终答案里的价格主张,不允许与工具取回的完整、未截断的结果相矛盾。校验逻辑里对应着一条很硬的拒绝理由:某个价格主张找不到任何与之匹配的观测证据。找不到,就不是提醒,是不通过。
注意「完整、未截断」这四个字。它防的是另一种更隐蔽的偷懒:模型调了工具,工具返回了一大堆数据,它在转述的时候只挑了合自己意的那一段,然后把这一段当成「工具说的」。出处要指向的是原始返回的全文,不是它对返回结果的概括。 AI 自己去取数这条链路上的坑,AI 怎么拿到实时行情和财报 那篇讲得更细。
四类标签:把混在一起的东西拆开
有了出处的规格,接下来是分类。你要求它对每一条内容,用四个标签之一开头,不许省略、不许合并:
[原文] —— 材料里白纸黑字写着的,必须逐字。后面跟位置。
[转述] —— 材料里有这个意思,但这句话是我概括的。后面跟位置,并且不许打引号。
[推算] —— 材料里没有这个数,是我从别的数算出来的。后面必须跟算式和每一个输入值的出处。
[记忆] —— 不在这次给的材料里,来自我训练时学到的东西。后面跟一句「未经本次核实」。
第四类是这套标签里最反直觉、也最值钱的一类。很多人的第一反应是:不是应该直接禁止它用记忆吗?
在你能把全部材料贴给它的场景里,确实该禁——让 AI 读原文,和让它凭记忆说,是两回事 那篇给了一整套封闭阅读的做法。但现实里有大量场景做不到闭卷:它自己去调工具取数、你分好几轮追着问、材料只有一部分。这时候硬禁的结果往往不是它不用记忆,而是它用了但不承认——因为你的规则把承认这件事变成了违规。
给它一个合法的格子,等于给它一条体面的退路。这就是报销单上那栏「个人承担」的作用:不禁止,但必须待在专门的格子里。 实践中你会经常看到它老老实实标出[记忆],而这些被标出来的条目,正好就是你该优先去查的那几条——它替你把风险最高的部分挑出来了。
还得有第五个格子,虽然它不是「内容」:[不可得]。查不到就写查不到。前面提到的那个证据台账里,状态标记恰好也是三态并存的——观测到的、推导出来的、以及不可得的。不可得被当成一种正式的证据状态记账,而不是一个空白。这个设计意图很清楚:缺失必须以缺失的身份留在记录里,不能悄悄消失。 一旦它消失了,读的人会默认那一项没问题。
引号是一句承诺
单独说引号,因为它是整套纪律里唯一能被机器验证的部分。
规矩只有一条:打了引号,就是逐字承诺。 引号里的字符串,必须能在原始文件里被搜索直接命中,一个字都不能差。做不到就不许用引号,改成[转述]。
为什么要把这条单拎出来当硬规矩?因为它是全篇唯一一个不需要判断力就能验的东西。数字对不对,你得懂口径;逻辑成不成立,你得懂业务;但一句话是不是原文,你只要按一下搜索。这是你手上最廉价、最不可能出错的检查工具,别浪费它。
引述同时也是幻觉的高发区,这一点 让 AI 读原文,和让它凭记忆说,是两回事 那篇的第三个探针已经讲透,不再重复。这里只补一条排序上的实际做法:验证成本最低的东西,应该被最先验。 所以交付规格里要让它把带引号的条目单独计数——一份材料里引号条目有几条,就是你今天必须做完的、无需任何专业判断的检查有几条。这个数如果大到你不愿意逐条搜,那不是你偷懒,是它引得太多了,该退回去要求改成[转述]。
五种把出处稀释掉的写法
这些不是它在骗你,是要求写得不够死时,它会自然滑向的形态。认出来就能当场堵。
一、粒度放大。 「来源:公司年报」「据财报数据」「根据公开信息」。共同点是所有这些出处,都无法让人独立找回原句。堵法:要求出处必须细到能定位的一层,并且在提示词里给一个格式样例。
二、位置真、内容假。 出处写的是一个真实存在的章节,那个章节也确实在讲这件事,但引号里的具体表述在里面找不到。这一种最难查,因为你去翻了,发现「差不多就是这个意思」,就放过了。堵法只有逐字搜索,不接受「意思对」。
三、循环溯源。 「如前所述」「基于上一节的分析」「综合以上」。在一轮问答里这毛病不明显,一旦你分好几轮追着问,它就会大量出现——第三轮的出处指向第二轮,第二轮的出处指向第一轮,第一轮那个数其实来自[记忆]。整条链看起来层层有据,实际上底下是空的。堵法:规定出处只能指向对话之外的东西——原始文件、工具返回、你给的材料,不许指向这次对话里的任何一段文字(包括它自己上一条输出)。多轮场景下这条尤其要紧,展开见 一次问全,还是分几轮追问。
四、把推算写成原文。 这一种的隐蔽之处不在于算错,在于字面上根本看不出它是算的还是抄的。「本期收入同比增长百分之十八」这句话有两种来源:财报里管理层讨论那一节直接披露了这个增速,或者它拿本期收入除以上期收入自己现算了一个。两句话在版面上一模一样,都是一个带百分号的数跟在一个陈述句里,而可靠性差着一个量级——现算的那个,只要它取的上期数是重述前的、或者本期收入含了新并进来的子公司而上期没含,得数就没有意义。为什么现算的数天生更脆,让 AI 读原文,和让它凭记忆说,是两回事 那篇在讲封闭阅读的第 4 条约束时已经拆过,这里不重复。
对本篇来说要抓的是稀释这个动作本身:它省掉的不是数字,是标签。同一句话,标成[原文]就意味着有人能去年报里搜到它,标成[推算]就意味着你得先验它的输入。省掉标签,这两种截然不同的核验路径就都消失了,剩下一个看起来无需核验的陈述句。堵法:[推算]必须出示算式和每个输入值各自的出处,写不出算式的一律降级为[记忆]——注意是降级,不是删掉,因为它算的那个数可能是对的,只是暂时不具备被便宜地检查的资格。
五、把「综合多个来源」当出处。 听起来很严谨,实际是把最不可查的一类内容包装成了最可信的样子。堵法:综合是允许的,但每一个被综合进来的来源都要单独列出来并各自可定位,不许只写「综合」两个字。
抽查:一次三分钟,能定整份的生死
前面所有的功夫,都是为了让这一步变得便宜。现在做这一步。
抽哪几条。 两类各抽一点。第一类是贵的——支撑你核心判断的那两三条,它们错了后果最大。第二类是随机的——闭着眼睛点两条。只抽贵的会有盲区,因为你对什么算贵的判断,本身就受了这份材料的影响;随机那两条是用来估计整体质量的。
怎么抽。 一句话:让它把原文贴出来,逐字,不许改写、不许润色、不许解释。
再加上那一问「哪些内容其实不是来自这份材料」——为什么这种不追究的问法能换来真话,见 让 AI 读原文,和让它凭记忆说,是两回事。
抽中一条假的,怎么办。 这是最关键的判定规则,也是最反直觉的一条:
不是修那一条,是整份作废重做。
理由很简单:幻觉不是孤立事件,是这次生成的整体状态。同一段输出里,编造从来不会只发生一处——它出现在那一处,只是因为你恰好抽到了那一处。你把它修掉,剩下的那些没被抽到的部分,出错概率一点没变,而你的心理感受却好了很多,这才是真正危险的地方。
这条规则不是我拍脑袋定的。前面那个开源项目里有一个专门的研究报告审计工具,做法分两段:先从报告里把所有数字抽出来(表格里的、「标签:数值」形式的、带各种中文金额单位的),然后随机抽一小部分做样本——抽多大比例、最少抽几条、最多抽几条,都是配置项;再拿这些样本去和权威取值比对,在一个很紧的容差内算通过。
判定规则写得非常干脆:只要有一个抽样点没通过,整份报告判不通过;部分可疑的给警告。
这个工具还有一个设计细节值得单说:它自己不去取数。它只吃文本和别人取回来的结果,取数得由别的工具干,它只负责抽取、比对、下判定。为什么要这么切?因为一旦检查者可以自己去补数据,你就失去了「这份材料有多少窟窿」这个信息——窟窿被填上了,而填料的来源不明。
这条对你的实际含义是:别让写材料的那个会话来检查自己。 换一个新对话,只给它材料和检查规则,不给它上下文。同一个会话里的自检,你几乎一定会收到一份很像样的自检报告,然后被告知基本没问题——这不是偷懒,是它不会反驳自己刚说过的话。
整份材料的三档判定
「一处不过就整份作废」听着痛快,实际用起来你很快会碰到一个问题:如果每次抽查都只有过和不过两档,那么绝大多数材料都会落在不过这一档——因为一份长材料里总有几条它标了[记忆]、总有一两处你确定不了。两档制的结局往往是你干脆不抽了。
所以我自己用的是三档,判据只看两样东西:抽样点过没过,以及标签齐不齐。
第一档,整份作废。 触发条件有两个,满足任意一个就作废:抽样点里出现无法逐字定位的[原文]条目;或者清点时发现存在完全没有标签的整段内容。前一个是编造,后一个是规格失效——一段内容连标签都没有,说明这次生成压根没在按你的规格走,那么它其他地方的标签也不能当真。作废的意思是重发一次任务,不是让它在原文上打补丁;补丁改出来的东西你没法验它是不是补的,这跟前面讲的「不许事后补标」是同一条理由。
第二档,有条件通过。 抽样点全过、标签也齐全,但材料里存在[记忆]或[不可得]条目。这一档才是常态。判定结果不是「可以用」,而是「可以用,但这几条先别往下推」——那些被它自己标出来的条目,直接抄成一份待查清单。这一档最容易被误用成「基本没问题」,所以清单要真的落到纸上,而不是留在你脑子里。
第三档,通过。 抽样点全过、标签齐全、没有[记忆]和[不可得]。这一档比你想象的少见得多,见到了反而要多看一眼:一份完全没有空缺、没有一条「不可得」的材料,通常不是它做得好,是它把窟窿填上了。真材料是带毛刺的,核对这件事,放到最后做就已经晚了 那篇讲的把核验前移,本质上也是为了让这些毛刺在还便宜的时候就暴露出来。
还有一件要提前说清的事:判定的对象是整份材料,不是某个结论。 你会很想说「那条我不用不就行了」——但抽中的那条错的,往往已经在它写后面几段的时候被自己当成前提用过一次了。你删掉那一行,删不掉它对下游的影响。这也是为什么判定必须在你动手引用之前做完,而不是在你已经写了半篇笔记之后。
一份可以直接粘贴的溯源交付规格
这份和封闭阅读那份的分工是:封闭阅读管的是「只准用我给的材料」,这份管的是「不管你从哪儿弄来的,都得说清是从哪儿弄来的」。它适用于那些你没法把全部材料都贴进去的场合。
也就是说,闭卷那一侧的做法——把它锁死在原件里的三条硬约束、验证它是否真读了的三个探针、以及资料的 A/B/C 分级——本篇一概不复述,全在 让 AI 读原文,和让它凭记忆说,是两回事 里。本篇只管开卷这一侧的两件事:每一句话的出处该长什么样,以及整份材料该按什么规则判生死。 前面那几处压缩掉的论证(推算为什么比原文脆、引述为什么是幻觉高发区、那一问为什么能换来自首),也都是同一个原因——那边讲过了。
【溯源交付规格】
本次任务的输出必须逐条标注来源。任何一条不带标签或标签不合规的内容,
视为本次输出作废,请重写而不是补标。
一、每一条内容必须以下列四个标签之一开头,不许省略,不许自创标签:
[原文] 材料/工具返回里白纸黑字写着的。必须逐字,后跟定位信息。
[转述] 材料里有这个意思,但表述是你概括的。后跟定位信息。禁止加引号。
[推算] 材料里没有这个数,你算出来的。必须同时给出算式和每个输入值的出处。
[记忆] 不在本次材料里,来自你既有知识。后面必须写「未经本次核实」。
查不到的内容,写 [不可得] + 你尝试过的途径。禁止用同行数据、
行业均值、常见区间来填补空缺。
二、定位信息的合格标准(不合格的条目请直接删除,不要凑数):
判据是——一个没参加过本次对话的人,拿着你写的这条定位信息,
能不能在半分钟内独立找回那句话。
合格示例:某年年报 / 第X节 / 附注编号 / 表名或小标题 / 段落开头几个字
不合格示例:「年报」「财务数据」「公开信息」「据披露」
三、引号规则:
引号 = 逐字承诺。引号里的字符串必须能在原始文件里被搜索直接命中。
做不到就不要用引号,改用 [转述]。
四、出处只能指向本次对话之外的东西:原始文件、工具返回的完整结果、
我提供的材料。禁止把出处写成「如前所述」「基于上一节」「综合以上」,
禁止指向你自己之前的任何一条输出。
五、如果你调用了工具取数:
必须原样附上工具返回的关键片段(不要摘要、不要截断),
并注明取回时间、字段名、单位与货币。
你的结论不得与你自己贴出的原始返回相矛盾。
六、本次输出禁止给出买入、卖出、持有建议,禁止给目标价,
禁止对公司做整体好坏的结论性评价。
任务:【写你要它干的具体事】
配套的抽查指令,必须另开一个新会话发,而且不要把原任务的上下文带过去。它只做清点、抽样、判定三件事,逐字回指那三个探针的原始版本见 让 AI 读原文,和让它凭记忆说,是两回事,这里直接引用不再展开:
【抽查】只做核对,不做分析,不评价结论好坏。
下面是一份带标注的材料。
【粘贴材料】
第一步(清点):把材料里的条目按标签分类计数,
[原文] / [转述] / [推算] / [记忆] / [不可得] 各多少条,
并单独告诉我 [原文] 里有多少条带引号。
出现四类标签之外的写法,或整段没有标签的,一并列出编号。
第二步(抽样):只核对我指定的这几条,不要扩大到全篇:
贵条目(支撑核心判断):【编号】【编号】
随机条目(我闭眼点的):【编号】【编号】
逐字贴原文、问一件材料里没有的事、指出哪些内容并非来自
所标来源——这三个探针的原始版本见《让 AI 读原文,
和让它凭记忆说,是两回事》,照那三问逐条作答即可。
第三步(判定):按下面的规则给整份材料下一个判定,不要给分数:
任一抽样点无法逐字定位 → 整份不通过;
抽样点全过但第一步清点出无标签条目 → 整份不通过;
抽样点全过、标签齐全,但存在 [记忆] 或 [不可得] → 有条件通过,
并列出这些条目作为我的待查清单。
约束:你不许自己去查任何数据、不许补全缺失项、不许修改原材料,
也不许在发现问题时顺手给出「建议改为」。你只负责指出和判定。
说清楚出处不能替你做的事
必须把这句话说死,否则这一整篇会被读成一个错误的结论。
出处齐全,不等于内容正确。 一条内容可以做到出处精确、可定位、逐字可搜,然后仍然是错的——因为原始文件本身可能印错、可能用了你没想到的口径、可能已经被后来的更正公告修订过。出处解决的是可查性,不是正确性。
它真正给你的东西是这个:把「这份材料能不能信」这个没法回答的大问题,拆成了一堆能在三十秒内各自回答的小问题。仅此而已,但这已经很多了。
反过来还有一个更容易上当的方向:一份出处密密麻麻、格式整齐、每句话后面都挂着方括号的材料,会给你一种强烈的可靠感。这种可靠感是格式带来的,不是内容带来的。所以抽查必须真的做,哪怕只抽两条——从来没被抽查过的溯源格式,只是排版。 AI 幻觉的几种典型形态和各自的识别信号,见 AI 幻觉与事实核验。本站内容为投资教育,任何形式的分析都不构成投资建议,完整边界见 免责声明。
小结
- 出处的作用不是证明这句话对,是让检查这句话的成本低到你愿意每条都查。没有出处,你只能整篇信或整篇不信。
- 它不是故意隐瞒来源。生成那一刻,你给的材料和它记住的东西起的是同一种作用,它内部并没有一本记录哪句来自哪里的账。所以区分必须发生在写下那句话的当下,不能靠事后补标。
- 合格出处的唯一判据:一个没参加过这次对话的人,拿着它能不能在半分钟内独立找回那句话。「来源:年报」不合格。
- 四类标签把混在一起的东西拆开:原文(逐字)/ 转述(不许打引号)/ 推算(必须出示算式和输入)/ 记忆(必须写未经核实),再加一个「不可得」。给记忆一个合法的格子,它才不用把记忆伪装成材料。
- 引号是逐字承诺,也是全篇唯一能靠搜索机械验证的东西。读起来特别精炼的那句引述,第一个去搜。
- 五种稀释手法:粒度放大、位置真内容假、循环溯源(多轮时高发)、把推算写成原文、拿「综合多个来源」当出处。
- 抽查抽两类:支撑核心判断的贵条目,加上闭眼点的随机条目。抽中一条编的,整份作废重做——因为编造从来不会只发生在你恰好抽到的那一处。
- 判定分三档,只看抽样点过没过、标签齐不齐:出现无法定位的[原文]或无标签整段 → 整份作废;全过但有[记忆][不可得]→ 有条件通过,把这些条目抄成待查清单;全过且无空缺 → 通过,但这一档少见,反而要多看一眼是不是窟窿被填上了。
- 检查必须换一个新会话做,而且检查者不许自己去补数据。检查和修补是两个动作。
- 出处齐全不等于内容正确。它只把一个没法回答的大问题,拆成了一堆能各自回答的小问题。
不带任何术语地说完这一篇:别问他记得什么,让他把每句话是从哪本书哪一页抄来的写在旁边,然后随手翻两页,让他当着你的面念一遍。
本文为投资教育整理,关键数据与结论请结合下列权威来源验证。