研报记忆驱动的AI量化研究员:从信息折旧到可复用资产

发布时间:2026/9/1 15:04:31

研报记忆驱动的AI量化研究员:从信息折旧到可复用资产
做量化研究最让人头疼的往往不是没有信息而是信息太多之后它们反而变成了一堆没人能长期调用的死库存。研报一篇篇入库摘要一段段生成可是真到设计因子、复盘归因、验证假设的时候你还是得靠人脑回忆“好像某家券商写过类似逻辑”。XALPHA这个名字看上去想做的正是这件事基于研报记忆驱动的AI量化研究员。它不打算只当阅读器也不想做成又一个聊天问答框而是想给研究流程装上一层真正可复用、可衰减、可审计的“研报记忆”。这个方向的价值不是帮你把研报读得更快而是把研报从“看过就忘的临时信息”变成“能持续驱动决策的研究资产”。这篇文章我想沿着这个判断往下拆先看清传统工作流到底浪费在哪里再讲清楚记忆驱动到底记的是什么然后给一套最小落地路径、常见坑点和工程化边界。如果你正准备在量化团队里引入AI研报系统这篇应该能帮你避开一些弯路。1. 先看清楚量化研究最大的浪费不是算力而是研报信息的折旧1.1 现状AI摘要解决了“读不完”却没有解决“记不住”量化研究员的日常工作里研报是很特殊的一类输入。宏观报告、行业深度、个股覆盖、策略周报每一篇都可能包含有效信息。但问题是这些信息的有效生命周期并不一致一条宏观数据可能下周就被更新一个产业逻辑可能管用一个季度一个预期差可能在下次财报后就被证伪。传统做法是建文件夹、打标签、写摘要或者用AI工具直接生成一句话结论。可你会发现这些做法都停在“信息压缩”并没有进入“信息复用”。摘要生成之后你依然不知道这个结论当时基于什么假设、用了哪组数据、在什么条件下可能失效。你甚至很难判断今天新到的一篇研报和半年前那篇老报告之间到底是互相印证还是逻辑已经反转。这就是研报信息的折旧问题。它不是存储成本的问题而是知识价值随时间衰减却被忽视的问题。人脑记忆会自然遗忘但系统记忆如果没有设计好就会变成另一层“信息噪声”。1.2 XALPHA的切入点把研报改写成机器可调用的“记忆”从项目名称看XALPHA想做的不是“AI研究员”这个职位替代而是“研报记忆驱动”这条技术路线。它的关键假设是研报中有大量结构化的研究记忆包括事实、逻辑、预期差和时间背景这些记忆应当被单独抽取出来而不是混在正文里随阅读流失。“记忆驱动”这四个字值得拆开看。普通RAG是“检索增强生成”你问一个问题系统去库里找相似文本拼成回答。这种方式很灵活但有一个天然问题它没有区分哪些内容是稳定事实哪些是时效性判断哪些已经过期。XALPHA如果真正按照“记忆”来做就必须比RAG多一层管理——记忆要能写入、能更新、能衰减、能被特定任务触发还要能追溯到源报告。否则无论你接上多强的模型得到的都只是更流畅的“临时记忆”而不是一个持续积累的研究大脑。1.3 为什么传统知识库和标签体系解决不了很多人会说我们已经有研报知识库甚至还有严格标签体系。但标签体系有两个短板。第一标签是人工定义的静态维度研报里的逻辑链条却往往是跨维度的。一篇报告可能同时涉及宏观流动性、行业周期、公司治理你不能只贴一个“新能源”。第二标签无法表达时间权重。同样是看多某行业2024年初的判断和2025年中的判断在当前决策中的参考价值完全不同。所以真正的问题不是“怎么存研报”而是“怎么让研报在合适的时机、以合适的权重被想起来”。这是记忆系统的设计问题同时也是XALPHA这类方案能不能从Demo走向可用的关键。2. 所谓“研报记忆驱动”到底记的是什么、怎么记2.1 记忆颗粒度不是摘要而是四类信息如果只把研报整段切开做向量化那叫“切豆腐”不叫“记忆抽取”。XALPHA式方案的差异点在于它需要从研报中识别出可以独立使用的研究单元。根据常见实践至少应该区分四类事实型记忆可验证的数据和状态。比如“某公司2025年Q1资本开支同比下降15%”“某行业库存周期处于主动去库阶段”。这类信息直接从原文抽取不应由模型自由发挥。逻辑型记忆研报里的因果链条。比如“因为上游原材料价格下跌所以中游毛利率有望改善”。这类信息需要模型做推断但必须保留前提条件。预期差记忆研报观点与市场一致预期的差异。这是量化研究里最有价值的部分。如果系统能记录“该研报认为市场低估了某产品的放量速度”那么这个判断就可以作为未来事件研究和因子构建的线索。时效型记忆报告日期、数据截至日、观点有效期。数据库里不能只存“写了什么”还要存“什么时候写的”“在什么时点有效”。这四类信息如果混在一起检索时就会互相干扰。比如你搜“库存周期”可能同时捞出一篇2022年的深度报告和一篇2025年的跟踪点评然后交给模型混合成一个看似合理、实则过时的答案。所以记忆抽取时就要给每一条记忆打上类型标签和时间属性。2.2 记忆的组织方式向量化只是起点还要有时间衰减和关联关系很多人一听到“记忆”立刻想到向量数据库。向量确实重要但它只解决了“语义相似”的问题。真正让记忆“活”起来的是组织方式。比较好的做法是以基础向量索引为第一层再叠加两层结构时间衰减层每条记忆在写入时记录时间戳检索时根据当前时间和报告时间的差异对相似度打分做加权。这不是简单的“旧报告不看”而是让旧报告的权重自动下降除非它被当前任务明确指定需要历史视角。关联关系层通过公司、行业、主题、上下游、事件等维度把不同报告中的记忆片段连接起来。比如两篇不同券商、不同年份的报告都在讨论同一家公司的产能投放系统可以在检索某一条记忆时把相关记忆一并触达。如果没有这两层向量化反而会把信息拉平新报告、旧报告、深度观点、短期点评全在一个“语义空间”里比较。这样不是记忆是仓库。2.3 触发机制不是“逢问必答”而是按任务唤起记忆记忆驱动和普通问答的另一个区别在于触发方式。普通问答是用户输入问题系统找答案。记忆驱动则是把用户的研究任务拆解成若干需要验证的问题再根据问题唤起相应的记忆片段。可以这样理解一个研究员说“我想看看当前制冷剂行业是否出现了价格反转信号”。系统不该只把它当成一次搜索而应该拆成几个子任务——行业当前价格数据、历史周期位置、最新研报中对供需格局的判断、前期是否有过类似判断。每个子任务唤醒不同的记忆类型再把结论组织成可复核的答案。做到这一步才算从“读了研报”走向“记住了研报并且知道什么时候调用”。3. 从零搭建一个可用的XALPHA工作流3.1 最小架构要准备哪些组件如果把XALPHA当做一个工程系统来落地我建议先搭最小闭环不要一上来就接入实时行情和自动交易。最小架构通常包含以下几个部分组件作用落地时要注意研报解析器把PDF、Word、网页转为结构化文本表格、图表、页眉页脚是常见坑记忆抽取器识别事实、逻辑、预期差、时间信息需要结合模型与规则不能只用自然语言问答向量库/关系存储保存记忆向量和元数据要支持时间字段、类型字段、来源ID检索与重排根据任务唤起候选记忆并排序需要“时间衰减相似度关联”组合打分生成/输出模块把记忆组织成研报纪要、因子线索或归因分析必须引用源报告ID和片段审计与回链记录每一次回答使用了哪些记忆没有审计就无法复盘也无法纠错这个架构里的每一环都不复杂难点在于串联时的数据流动。尤其是记忆抽取它不只是“摘要摘要再摘要”而是要把一段长文本切分成可命名的研究单元。3.2 一个最小可运行的处理流程这里给出一个通用型的流程示意。具体实现时你可以把每个函数替换成对应厂商的API或开源模型。# XALPHA式研报记忆处理流程示意并非特定官方接口 def report_to_memories(report_path): doc parse_pdf(report_path) text clean_document(doc) memories [] for block in split_semantic_blocks(text): memory_type classify_memory(block) facts extract_facts(block) # 事实型 logics extract_logic_chains(block) # 逻辑型 expectations extract_expectations(block) # 预期差型 ts extract_report_time(report_path) for item in (facts logics expectations): item[memory_type] memory_type item[report_time] ts item[source_report] report_path memories.append(embed(item)) store_vectors(memories) register_relations(memories) return len(memories)这个流程的关键是split_semantic_blocks和classify_memory。如果你直接按字符数切块后续抽取效果会差很多。更稳妥的做法是先按章节标题、段落主题和图表标题切出语义块再做记忆分类。3.3 关键参数怎么理解接触这类系统时你会遇到一堆参数。先不要被名字吓住集中理解这几个即可top_k一次任务最多唤醒多少条记忆。它不是越大越好因为候选越多模型生成时越容易混淆建议从5到10开始。time_decay_days时间衰减周期。表示多少天内的报告保留较高权重。具体值要看策略频率。季度调仓的团队可以给90天月度复盘可以给30天。memory_type_weight不同类型记忆的检索权重。如果当前任务是研究预期差就应该调高预期差型记忆的权重。deduplicate_threshold重复记忆去重阈值。很多研报会重复同一句话如果不去重检索结果里会堆满相似内容。confidence_threshold生成时对记忆引用的置信度阈值。低于阈值就不该让模型当作结论输出而是标记为“候选观点”。参数之间不是孤立关系。比如你把time_decay_days设得很小最新研报权重很高但一份关键深度报告可能因此被边缘化。所以在调参时要结合实际任务反复验证而不是追求某个固定值。3.4 先跑通一条研报再做批量这是我最想强调的实操建议。很多团队拿到这个思路后第一件事就是接入几百份研报开始批量入库。结果往往是解析乱、记忆重复、检索结果离谱然后开始怀疑整个方案。正确顺序是先拿一份代表性研报手工走完整个流程确认解析没有丢表格、记忆抽取没有乱贴类型、检索时能触发预期中的片段、生成时能回链原文。然后扩大到三到五份不同来源的研报验证体系是否还能保持一致。最后再考虑批量任务。批量前要设计好例外处理。比如某个PDF解析失败是重试还是跳过某个文档没有时间戳是拒绝入库还是按文件时间近似这些规则如果不提前定义批量跑出来的记忆库质量会参差不齐。4. 这类方案真正容易踩坑的地方与排查链路4.1 研报不是干净文本解析阶段最容易翻车研报最麻烦的不是长而是格式复杂。PDF里往往有大量表格、图表注释、页眉页脚、公式和图片。你用普通文本解析很容易把表格里“同比15%”拆得支离破碎。等到了向量化阶段这些碎片又会被当成独立语义块导致检索时出现大量噪音。如果一次解析结果里出现大量重复的页眉、版权声明、免责条款先不要急着去优化模型回到解析环节做清洗。常见的处理办法是优先解析表格区域并转成Markdown表格对页眉页脚直接过滤对图表标题单独存储对公式折成文本并保留上下文。4.2 重复、矛盾、过时记忆不等于“全都要记住”记忆系统的第一大风险是它把什么都记住了。同一篇观点被三家券商重复引用系统会存成三条新报告推翻了旧报告结论系统只会在向量空间里把它们当成两个相似文本三个月前的预测已经证伪系统很可能还会在“相关记忆”里推给你。要解决这个问题记忆层需要专门处理冲突和时间权重入库时按去重阈值合并高度相似的记忆并在合并后的记录里保留所有来源。当新记忆与旧记忆结论相冲突时不直接删除旧记忆而是标记“被挑战”或“已过期”。检索排序时把“距离报告截至日”作为重排特征越接近当前时间的记忆权重越高。这个过程听起来简单实际落地时最容易被忽略。因为大模型回答问题总是显得“很有把握”如果不对时间做显式约束模型很容易把过期观点当成当前事实。4.3 模型幻觉观点必须有出处否则就是噪声在研报记忆系统里幻觉的代价远远高于普通聊天。因为研究员一旦依赖系统提供的结论就会把它带入因子逻辑或投资决策。如果模型自由发挥编了一个不存在的“某券商认为”整个研究链路就被污染了。所以生成模块必须强制引用来源。每条输出最好带报告ID、报告标题、发布日期和原文片段。如果模型找不到足够支撑的证据应该直说“记忆中缺乏相关判断”而不是硬凑答案。比较好的实现是检索结果首先经过重排筛选出高置信度记忆模型只能基于这些记忆生成内容且每次生成都要输出引用ID最后增加一个“回链校验”环节检查生成文本中的关键数据是否真的出现在被引用的原文片段里。4.4 遇到问题按这条链路排查如果你的XALPHA式系统跑起来效果不好别急着调大模型Prompt。先按下面顺序排查先看输入原始研报是否清晰PDF是否有扫描件、加密、缺页如果是先解决数据源。再看解析清洗后的文本是否保留关键数据和逻辑表格是不是丢了页眉页脚是不是混进正文再看记忆抽取分出来的记忆是不是四类混在一起时间戳有没有正确提取重复内容是否被去重再看检索用一条你预期会有结果的问题检查top_k候选里到底召回了什么。是不是旧报告权重过高是不是相似度排序把不相关但语义相近的句子排在了前面再看生成模型是否严格遵守“只能引用给定记忆”的约束是不是自带知识补全了研报里没有的内容最后看评估你有没有一套可复现的“问题—答案—来源”验证集如果没有先建立20条左右的小规模验证集。这串链条里80%的问题出在第一步和第二步。很多团队花了大量时间调Prompt最后发现PDF表格解析就是错的。5. 从单机Demo到可复盘的研究助手还差哪些工程化能力5.1 记忆要有版本和快照实验才可重复量化研究最讲究可复盘。今天让模型跑出一版“看好工程机械”的记忆响应下周如果换了一批研报或调整了参数输出可能完全不同。没有版本管理你无法复现一周前的结论也无法判断模型变化是来自记忆库更新、参数变化还是模型升级。因此建议把记忆库当代码库一样管理。每次批量入库或参数调整时生成一个快照记录当时的数据集、模型版本、参数组合、入库时间。回测时如果发现某个因子逻辑有争议可以回溯到当时的记忆快照看看系统是基于哪些研报得出结论。这个设计看起来增加成本但长期是智识上的保险。否则系统效果越好你越不敢依赖它。5.2 审计和责任边界它应该是“研究助手”不是“自动投资决策器”无论XALPHA做得多强它都应该停留在“研究辅助”层而不是直接替代投研决策。原因有两方面。第一研报记忆系统只是把已有公开信息做了组织和推理它没法解决信息本身是否完整、是否存在选择性披露的问题。第二一旦系统输出与自动交易系统直接联动出现错误时你很难界定责任到底归模型、归研报数据、还是归参数设置。合规上也非常敏感。更稳妥的边界是让系统输出结构化的研究线索比如“某类因子近期被多篇报告提及”“某行业预期差扩大”再由研究员结合其他信息源做最终判断。如果将来要接入交易至少要有严格的人工复核流程和熔断机制。5.3 与回测、组合管理系统的接口设计研究阶段XALPHA的输出通常是一段文字但进入量化工作流后它必须变成结构化数据才能被回测和组合管理系统调用。建议从一开始就定义好输出schema。比如每条研究线索可以包含{ task: 行业预期差扫描, source_reports: [rpt_2025_00123, rpt_2025_00156], signal_type: expectation_gap, direction: positive, confidence: 0.72, valid_until: 2025-12-31, related_factors: [gross_margin_improvement, capacity_cycle] }这样下游系统可以按信号类型、置信度、有效期做过滤而不是从自然语言里二次提取关键信息。5.4 这个方案适合谁、不适合谁适合使用XALPHA式思路的团队通常有几个特征研究流程以中低频、基本面、产业链逻辑为主研报数量大但覆盖面相对集中团队有模型工程能力或愿意引入外部AI工具研究结果需要可回测、可追踪、可审计。不适合的场景也很明确高频交易或者纯动量驱动研报记忆的更新速度跑不过行情数据数据获取受限的细分领域研报数量太少记忆系统价值有限如果团队没有人工复核机制也不建议直接依赖系统结论做任何实盘决策。另外所有想在自家环境里复现这套方案的人都必须先解决一个前置条件研报数据的合法获取。这个前提不满足后续所有工程能力都无从谈起。把“研报记忆驱动”这件事做好本质上是在给研究团队造一个“记性好、有检索逻辑、说话带出处”的同事。它的价值不在于替代研究员而在于让研究员不再被大量重复信息淹没把精力放到真正需要判断力的地方。从最小闭环开始先把单条研报跑通再逐步扩展记忆类型、关联关系和工程化能力这条路比一开始就追求“全自动AI研究员”要稳得多。

相关新闻

【算法题解】“31号指令破解法”:字符串匹配与字符删除问题

【算法题解】“31号指令破解法”:字符串匹配与字符删除问题

2026/9/1 15:04:31

1. 问题描述 A国与B国在进行着激烈的情报战,两国都派出了大量的间谍在敌国窃取机密情报。“黎明”是A国的一名顶尖间谍,这一日他收到了来自总部的机密指令,指令由多段密文组成,在对日期和坐标进行了一系列的换算之后,他…

EBR-bench评测揭示:AI为何难以企及人类基线?

EBR-bench评测揭示:AI为何难以企及人类基线?

2026/9/1 15:04:31

前段时间我在整理一批技术资料,让 AI 帮忙做摘要,又拿它和一位有经验的同事写的摘要放在一起对比。结果很有意思:AI 的摘要语句通顺、结构工整,但同事的摘要里多了一句“当前的结论只在样本量较小时成立,不能直接外推”…

10 分钟搭好自己的云端游戏主机:Sunshine 游戏串流服务器新手指南

10 分钟搭好自己的云端游戏主机:Sunshine 游戏串流服务器新手指南

2026/9/1 14:54:31

10 分钟搭好自己的云端游戏主机:Sunshine 游戏串流服务器新手指南 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 从书房主机到客厅电视 书房里放着一台配置不错的游戏…

从AI修图到工程化:构建稳定批量图片处理流水线的完整指南

从AI修图到工程化:构建稳定批量图片处理流水线的完整指南

2026/9/1 16:24:34

昨晚,我盯着屏幕,看着那个“正在处理”的进度条从1%缓慢地爬到99%,然后……卡住了。这已经不是第一次了。从一张简单的产品图抠图,到批量处理几百张活动照片,从调整色调到智能填充背景,我几乎把所有能找到的…

ch-皖星:将视频加载等待转化为品牌互动的前端解决方案

ch-皖星:将视频加载等待转化为品牌互动的前端解决方案

2026/9/1 16:24:34

最近在开发视频类应用时,你是否遇到过这样的困境:用户点击播放后,面对一个干巴巴的“加载中”转圈动画,耐心迅速流失,最终导致播放失败或用户直接离开?传统的加载状态设计,往往只关注技术层面的…

OpenClaw 卸载完全指南:从清理到彻底移除

OpenClaw 卸载完全指南:从清理到彻底移除

2026/9/1 16:24:34

1. 引言OpenClaw 是一款功能强大的开源 AI 助手框架,但当你需要更换工具链、释放磁盘空间或解决环境冲突时,彻底卸载就显得尤为重要。本文将从二进制文件、配置目录、依赖包、系统服务等多个层面,详细介绍如何在 Linux、macOS 和 Windows 上完…

告别造假数据,直接连数据库查真实时序数据喂给TimechoAI大模型

告别造假数据,直接连数据库查真实时序数据喂给TimechoAI大模型

2026/9/1 16:24:34

告别造假数据,直接连数据库查真实时序数据喂给TimechoAI大模型前面三篇文章,我们其实都在做一件事情。那就是在本地用代码造假数据。我们造了CPU的数据,造了内存的数据,然后把这些假数据拼成一个长长的字符串,扔给Time…

基于ROS与Python的点焊机器人仿真与控制课程设计全解析

基于ROS与Python的点焊机器人仿真与控制课程设计全解析

2026/9/1 16:24:34

简介:本资源是一套面向高校自动化、机器人工程及相关专业本科生的ROS课程设计实践项目,聚焦机械臂在ROS环境下的运动仿真与点焊工艺控制,解决课程设计中缺乏完整可运行案例的问题。压缩包共57个文件,涵盖12个launch启动脚本&#…

龙架构双周会“生肉”学习法:交叉编译与QEMU运行实践

龙架构双周会“生肉”学习法:交叉编译与QEMU运行实践

2026/9/1 16:14:34

如果你也在关注龙架构(LoongArch)生态,应该经常遇到一类“生肉”技术资源:官方双周会以原声录像的形式发布,没有中文字幕,信息密度又高。2026 年 8 月 6 日的第 7 期双周会就是这样一场硬核内容。很多人点开…

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析

备战数据库管理工程师校招:索引、事务、备份恢复核心考点解析

2026/9/1 1:53:39

每年校招季我都会接触不少准备数据库方向笔试的同学,看到最多的状态就是:简历上写着“熟悉 MySQL”“了解索引优化”,一碰到数据库管理工程师的笔试卷,却在索引、事务、锁、备份恢复这些题目上翻车。网易这套 2018 校园招聘数据库…

数字电路时序基石:深入理解建立时间与保持时间

数字电路时序基石:深入理解建立时间与保持时间

2026/9/1 9:55:14

1. 这不是“背公式”的事:时间参数到底在约束什么你翻过数字电路教材,一定见过这两个词:建立时间(Setup Time)和保持时间(Hold Time)。它们常被并列写在触发器(Flip-Flop&#xff09…

蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

蓝桥杯国赛超声波测距机:从单片机原理到嵌入式系统实战

2026/8/31 17:18:46

1. 项目缘起:从赛题到超声波测距机的诞生第八届蓝桥杯单片机设计与开发国赛的题目,我至今记忆犹新。它没有直接给出一个花哨的名字,而是用“超声波测距机”这个朴实无华的功能描述,精准地勾勒出了考核的核心。对于当时备赛的我而言…

远程协作的工作台整理

远程协作的工作台整理

2026/9/1 0:03:36

远程协作的工作台整理远程协作的核心不是再加一个工具,而是让交接信息足够完整。异步任务要写明目标、输入位置、完成标准和需要决策的人。 工作台的最小配置 将日程、待办、代码和沟通入口收拢到少数固定位置;通知按紧急程度分层。工作台不需要模仿办公…

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

2026/9/1 0:03:36

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

2026/9/1 0:03:36

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

远程协作的工作台整理

远程协作的工作台整理

2026/9/1 0:03:36

远程协作的工作台整理远程协作的核心不是再加一个工具,而是让交接信息足够完整。异步任务要写明目标、输入位置、完成标准和需要决策的人。 工作台的最小配置 将日程、待办、代码和沟通入口收拢到少数固定位置;通知按紧急程度分层。工作台不需要模仿办公…

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

2026/9/1 0:03:36

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

2026/9/1 0:03:36

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…