01学完这一课,你能做到什么
学完这一课,你应该能:
- 把研究结论拆成信息、逻辑、预期、催化剂和风险闭环;
- 设计从 PDF、元数据、切片、向量检索到的流水线;
- 区分固定工作流与 Agent,并为技能、工具和后端写清边界;
- 用页码、数据窗口、假设和失效条件检查 AI 研报。
本课中的公司、日期、价格、评级和运行参数都是历史演示或假设配置,不能当作当前事实或投资建议。
一句话记住先把结论拆成证据链,再让模型写报告。
02先规定研究怎样形成结论
本课将这套框架称为“国泰君安五步法”:信息差、逻辑差、预期差、催化剂、结论及风险闭环。这里沿用方法名称,方法归属不作为本次独立考证的结论。学习重点是把结论拆成能够检查的证据链。
1. 信息差:找出被忽略的信息
先问:有哪些已公开但容易遗漏的数据?不要把“模型第一次看到”当成“市场不知道”。搜集三至五个关键数据点,并给出出处。
重点检查财报附注、关联交易、非经常性损益、新业务增长,应收账款和存货变化、现金流与利润、潜在减值。本课示例以“净利润增长 10%,当期计提 2 亿元商誉减值,剔除后增速可能约 25%”说明附注的重要性。这个例子需要前期利润、税务影响等条件才能计算,不能仅凭两个数字推出 25%;商誉减值也不能因为非现金性质就被忽略。
AI 的作用是帮助检索长篇材料、定位页码、比较数据。它不能仅靠语气判断某项信息已经被市场定价多少。
2. 逻辑差:比较竞争性解释
同一份数据可以有多种原因。毛利率下降两个百分点,可能来自竞争加剧,也可能是主动降价换取销量。课件设想销量增加 30%、净利润反而上升,用来说明不能仅凭毛利率下滑就结束分析。
把推理写成:观察到什么 → 有哪些可能原因 → 哪些证据支持或否定这些原因 → 对现金流、利润、资产负债表有什么影响。不得把自己偏好的解释直接命名为“正确逻辑”。主动降价能否提高利润,还取决于单位成本、费用、销量和产品结构。
3. 预期差:把“超预期”算出来
| 指标 | 示例预期 | 实际或估计 | 差异 |
|---|---|---|---|
| 营收增速 | 15% | 22% | +7 个百分点 |
| 净利润增速 | 12% | 8% | -4 个百分点 |
| 毛利率 | 45% | 47% | +2 个百分点 |
继续判断差异是一次性还是可持续,正负项是否互相抵消。百分点差与相对变化率分开:22% 减 15% 得到 7 个百分点;22/15-1 不是同一个口径。
本课会用到券商预测均值、行业平均增速、历史趋势、管理层指引和模型估计。实际使用时必须区分:只有有样本、时间和统计口径的预测集合才能称为一致预期;其他项目只是比较基准或情景假设。没有一致预期就写“缺失”,不能用 LLM 估计填进去后仍标成市场共识。不同数据产品的名称和权益可能不同,选用时要核实实际供应商和使用范围。
4. 催化剂:列出事件、时间和条件
短期窗口在本节这里设为一至三个月,关注财报、业绩预告、重大合同、股东大会、增持和回购执行;中期窗口为三至十二个月,关注新产品放量、行业拐点、并购重组和机构调研后的预期变化。负面事件包括解禁、质押压力和政策变化。
好公司或较低估值不意味着短期价格一定上涨。催化剂表应同时写明“预期事件”“实际确认渠道”“可能影响”“与预期不同怎么办”。市场可能已提前反映,也可能对同一消息作出不同解释。
以 2026 年 4 月年报季为例,演示“买预期、卖现实”:前期炒作增长与估值切换,正式披露后可能兑现;同时观察分红、一季报连续性、审计意见、风险警示和机构持仓变化。需要保留的研究问题有五组:
- 披露日临近时,是否存在业绩变脸、非标准审计意见或分红低于预期?
- 分红是否有现金流支持?高送转与现金分红不能混为一谈。
- 年报表现与下一季度趋势是否一致?年报好、季报弱和年报平淡、季报改善,需分别解释。
- 公司是否存在适用规则下的风险警示或终止上市风险?
- 股东与基金报告披露的是哪个时点的持仓?它不能直接代表今天的。
“越晚披露业绩越差”“四月必然跌停潮”“连续两年亏损就触发某种处理”等概括不能作为通用执行规则。披露期限及风险警示条件应按市场、板块和当时正式规则核实。教学保留研究清单,不把日历叙事当作交易信号。
5. 结论与风险闭环
输出一句核心观点、三至五条依据、必要的情景判断、关键假设及三至五个跟踪指标。示例报告用“强烈推荐、推荐、中性、回避”展示评级字段;学习项目可以先使用“证据充分、证据不足、暂不判断”等研究状态。
风险闭环必须连接到前文。若逻辑依赖国产替代,就指出哪些客户、政策、竞争格局变化会推翻假设;若逻辑依赖新业务放量,就明确验证时点和不达预期的判据。仅在文末罗列宏观、政策、市场风险,不能替代这个工作。
一句话记住案例数字必须能回到来源、口径和时间点。
03用四组案例练习证据与解释分离
海立股份:概念关联与实际利润贡献分开
本节给出的公司背景包括:1992 年上市,冷暖相关业务和汽车零部件双主业;压缩机业务收入约 73%、汽车零部件约 25%,压缩机年产能约 3,600 万台。它以光刻机相关冷却设备说明:“没有重组”与“存在某项产品供应关系”可能同时成立。
案例材料称控股 70% 的海立特冷存在相关冷却设备验证和供货,相关业务近三年销售额占比低于 0.003%;并把 2025 年 7 月 17 日交流信息、7 月 18 日及 8 月 6 日、19 日行情反应列为事件链。材料另列上半年归母净利润预计 3,050 万至 3,600 万元、同比 626% 至 757%,压缩机销售 2,444 万台、同比 35.9%,归因于主业销量增长和汽车业务减亏。
学习时把这几层拆开:产品是否供货、收入占比有多大、主业利润为什么改善、市场在交易什么预期。不要把主要由压缩机贡献的利润变化全部解释成光刻机业务。上述日期、产品名称、占比及增长数字仍需回到公告核实,涨停与新闻相邻也不能独立证明因果。
易鑫集团:把多层预期变成独立假设
以 2025 年 4 月为背景,可以拆出四层叙事:市场按 12 亿元净利润估计,激励目标被解读为可能达到 20 亿元,差约 67%;SaaS 与大模型可能服务城商行、农商行;新能源汽车出海可能带来海外业务;并购、汽车后市场、电池保险可能贡献新增长。把五月业绩披露作为第一层的验证节点。
每一层都应单独写证据。激励目标并非利润预测,海外需求并非已经确认的订单,新业务想象空间并非当前估值中的零值。四层假设不能简单相加,尤其要避免对同一增长重复计价。
珀莱雅:渠道分析与用户分析
课件列出 2022 年净利润同比 41.88%,并提到分析师预期 7.68 亿元。前者是增速,后者是金额,必须补齐实际金额或预期增速才能直接比较。
渠道框架看铺货、经销商压货、库存水位与线下扩张;用户框架看留存、复购和 LTV,即用户生命周期内的价值。本课示例以双抗精华、红宝石精华为例,提出“引流款获客—利润款复购—高端款提高客单价”的产品矩阵。学习重点是框架转换后要换哪些指标,同时仍检查渠道和现金流;新框架不会自动消除旧风险。
尿素:需求假设先核单位
一个示例提出滴灌密植可能提高玉米单位面积施肥量,以每亩 30–35 kg 增至 40–55 kg、种植面积 6 亿亩、理论增量 60–120 万吨说明信息差;又提出追肥需求、出口窗口和国储商储三种支撑,认为法检与通关政策变化可能触发预期调整。
这组数值存在明显算术缺口。若全部 6 亿亩每亩增加 10 kg,则是 60 亿 kg,即 600 万吨;增加 20 kg 则为 1,200 万吨。要得到 60–120 万吨,必须加入约十分之一的覆盖比例等条件。示例没有给出这一比例,不能静默把它当成事实。单位面积用量区间也不能随意配对。实作应分别设置技术渗透率、面积、单位增量、施用次数、库存和出口假设,再做情景表。
一句话记住固定流程管确定性步骤,Agent 管需要判断的分解与选择。
04选择工作流与 Agent 的分工
固定工作流适合必须逐项核对的任务。一个固定工作流可以按以下顺序:基础信息(主营、实控人、)→ 最近财报(营收、扣非净利、经营现金流)→ 固定可比公司与统一口径的同业比较 → DCF 或 估值 → 政策、库存周期、渠道库存、批价等风险清单。
Agent 适合发现线索后继续研究:联网搜索为主、本地 为辅,按需要组合搜索、财报、行情、财务和对比工具,再用 Markdown 输出。关键差别是下一步是否由前一步结果决定,而非输出是否写得长。
适合初学者的组合是:工作流守住数据必填、来源、估值计算和风险清单;Agent 在这些边界内追加检索。缺失项允许形成明确的研究缺口,不允许为了通过流程伪造数值。
一句话记住PDF 只有进入可定位、可更新的索引,才真正能被研究助手使用。
05把原始 PDF 变成可查询知识库
1. 准备目录与产物
preprocess.py
data/
reports/ 原始 PDF
parsed/ *_full.txt、*_pages.json 文本与页码缓存
vector_store/
index.faiss 向量索引
index.pkl 文本与元数据映射
chunks.json 文本块和元数据,供关键词检索
index_meta.json 索引统计
documents.db SQLite 文档目录示例设计四种命令:python preprocess.py 增量处理并重建索引;--rebuild 清除旧记录后全量重建;--list 查看已处理文档;--skip-index 只解析、不构建向量索引以减少接口调用。实际开发时要实现并测试这些参数,不能只把命令写在说明里。
2. 扫描与增量处理
扫描 data/reports/ 的 PDF,与 SQLite 已处理清单比较。无新文件且索引完好时跳过;无新文件但索引丢失时用缓存重建;有新文件时解析新文件,并将已有文档一起纳入统一索引。
示例按文件名识别是否处理过,这会漏掉同名文件被替换的情况。动手任务:记录内容哈希、修改时间或版本,发现同名内容变化时更新。缓存文本能避免再次解析 PDF;若没有缓存向量,重建向量索引仍可能再次调用 ,不应宣称所有 API 成本都被节省。
3. 从名称识别文档
示例支持三种命名:财报_股票:标题.pdf、【券商】标题.pdf、通用标题。第一种提取股票与官方财报来源,第二种提取券商与标题,第三种尝试在标题中识别股票。
映射表示例:中芯国际 688981、贵州茅台 600519、比亚迪 002594、宁德时代 300750、五粮液 000858。字典便于起步,但处理多市场时应加入交易所和证券类型,不能仅凭公司简称判断证券。
报告类型规则包括年度报告/年报、半年度报告/半年报、第三季度报告/三季报、业绩点评/业绩快报、深度研究/研究报告、调研纪要。匹配顺序需把更具体的类型放在前面,避免“半年度报告”被包含“年度报告”的宽规则误识别。
4. 逐页提取与正文元数据
示例使用 PyPDF2.PdfReader,保存每页页号、文本、字符数,再拼成全文。页码边界由前面各页的字符数累计得到。实际开发可选择合适的 PDF 提取库,但仍要保留页码映射,并检查扫描页、表格、双栏和公式。
正文提取可以设置以下范围:股票代码和日期查前 15,000 字符;股票名和报告期间查前 8,000 字符;封面日期兜底查前 3,000 字符。代码优先字典,其次匹配“股票代码/证券代码:六位数字”或括号里的六位数字;日期优先带“披露日期/公告日期/报告日期”的模式,其次选封面范围最后一个 2020–2030 年的日期。
这些是启发式参数,并非准确性保证。日期窗口会过期,封面最后一个日期也可能是其他事件。保留本节说明、提取位置与人工复核状态。报告期间和发布日期是两个字段,不得混用;例如“2024 年年报”却被标为“2024-06-28 发布”的记录,应触发复核。
5. 切片与完整元数据
示例采用 RecursiveCharacterTextSplitter,chunk_size=800、chunk_overlap=150,切分优先级为双换行、换行、中文句号、英文句点、空格及最终字符拆分。重叠的目的是给跨边界语义留上下文。
在按 Python 字符长度计数时,800 字符不固定等于 400 个汉字,也不是 800 tokens。应按实际实现说明单位,并根据文档结构和模型上下文调整。
每块记录:filename、stock_code、stock_name、report_type、publish_date、page、chunk_index。报告期间也应跟随,以便按期间比较。课件用片段前 100 字符在全文 find 的位置反推页码,重复页眉或相同段落可能让它定位到第一次出现处。动手任务:切片时直接保存起止偏移和页码范围,再抽样核对;跨页块记录起止两页。
6. SQLite 文档目录
可以将 documents 表设计为包含 id(自增主键)、filename(唯一)、title、stock_name、stock_code、source、report_type、report_period、publish_date、total_pages、total_chars、total_chunks、created_at。这个数据库回答“有哪些文件”“某公司有几份报告”等结构化问题;向量索引回答“哪段话与问题相关”。
示例包含中芯国际 29 页深度报告切 49 块、222 页年报切 349 块、另一份 232 页年报切 319 块,以及贵州茅台 12 页三季报切 17 块。全流程示例为 11 份文档、860 块、两家公司。它们是样例统计,学员不必机械复现相同数量。
7. 构建 FAISS 索引
课件使用 DashScope text-embedding-v4,示例向量维度 1024,每批 25 条;对连接异常最多尝试六次,依次等待 5、10、15、20、25、30 秒。860 条按每批 25 条需要 35 批,课件示例耗时二至三分钟。模型可用性、维度和批量限制须在实际运行时核实,耗时也受网络、服务和批次影响。
第一批用 FAISS.from_texts 建库,后续 add_texts 追加,最后保存。示例项目为 Windows 中文路径问题采用临时 ASCII 路径存储再移动;同时导出 chunks.json 供 BM25 使用。不能把某版本遇到的路径问题断言为所有版本固定行为。index.pkl 属于序列化数据,读取时仅使用可信来源。
若某批在最大次数后仍失败,要明确失败并停止发布“完整索引”;不能无声跳过该批再宣称成功。动手任务:记录各批成功状态、模型名称、维度、文档版本与总块数,完整校验后再切换正式索引。
8. 查询与组织方式
一种典型的数据流是:用户问题 → stock_code 过滤 → FAISS 语义检索加 BM25 关键词检索 → RRF 融合排序 → LLM 根据片段作答。RRF 用排名融合不同检索器结果,避免直接把不同量纲的分数相加。FAISS 使用何种距离、是否归一化需要查看实际配置,不能默认一切都是余弦相似度。
统一索引便于跨公司检索;按股票或行业分建索引可缩小检索范围,但增加管理与跨库汇总成本。示例 PDF 也可以按 代码_名称 分目录,例如 688981_中芯国际/ 与 600519_贵州茅台/。调整目录后相应修改扫描为递归,避免只扫顶层而漏文件。
单文档函数依次做名称解析、逐页文本提取、正文元数据提取、数据库记录、切片、缓存。总控程序解析新文件、加载旧缓存、合并所有块、建统一索引并输出摘要。数据库里的“已处理”状态要与缓存和索引实际完成状态一致。
一句话记住工具能做什么、不能做什么,要在接口和权限层写清楚。
06理解 Agent 的工具、技能和后端
本节以 DeepAgents 展示一种应用架构:模型、系统提示、工具、后端、技能、记忆、子代理和持久化组合。create_deep_agent 的示例参数包括 model、system_prompt、tools、backend、skills、memory、subagents、checkpointer。
工具层通常包括任务规划 write_todos,目录和文件操作 ls/read_file/write_file/edit_file/glob/grep,命令执行 execute,以及委派 task。必须结合后端理解权限。官方文档说明命令执行能力取决于后端支持,不能把“创建 Agent”理解为自动拥有任意 Shell 权限。DeepAgents 官方工具说明
本节比较了 LocalShellBackend(本地文件及命令执行,涉及虚拟根与环境继承)、FilesystemBackend(文件操作)和 StateBackend(状态内文件)。选后端时检查当前接口与存储生命周期:内存、会话状态与磁盘持久化不同。具体类和参数以安装版本为准。官方 API 参考
Skills 的渐进式加载
Skill 把操作指导放在文件里。启动时先让模型知道技能名、描述和位置,需要时再读完整 SKILL.md,最后访问脚本或参考文件。目录示例可以是 web-search、read-pdf、financial-analysis,每个目录内有 SKILL.md 与可选 scripts/。
技能名称可以遵循以下要求: 1–64 个字符,小写字母、数字与连字符,不以连字符开头或结尾、不连续使用连字符,名称与目录一致;描述示例上限 1024 字符。正文包含适用场景、可用脚本、参数、步骤和例子;YAML 前置信息包含 name、description,示例还写了 keywords、license、compatibility。这些元数据是否被框架使用要区分规范与实现,不是写入任意字段就会生效。
SkillsMiddleware 在示例中扫描目录、解析元数据、将技能列表加入提示。模型因此知道去哪里读操作指南。Skill 名称与已注册工具名称是两种对象,不能因为列表里出现 web-search 就直接调用同名工具。
两种注册方式及兼容性案例
方式一:Skills 加执行能力。模型先读取 SKILL.md,再按指令运行脚本。新增技能目录容易,但依赖模型正确理解和后端提供执行能力。
方式二:把真实功能注册为 @tool。例如 web_search(query, type) 和 query_pdf(query, stock) 直接出现在工具清单中,由函数包装脚本。参数更明确,也便于限制输入与返回格式。
在一组 Qwen-plus 配置中,模型会误调技能名,出现 web-search is not a valid tool,浪费一至五次调用;加强提示无效,删除 skills 或使用 StructuredTool 包装只部分缓解,显式 @tool 解决了该演示中的问题。示例还尝试过“动态扫描 SKILL.md 再生成 StructuredTool”,效果仅部分改善,原因被记录为过度封装和脚本选择错误;这与直接用 StructuredTool.from_function 包装时的参数传递问题不同,开发时应分别排查。这是特定环境的排障记录,不可推断“Skills 只支持 Claude”或“所有模型用 @tool 都零错误”。官方文档也提供按模型配置行为的机制。官方模型与运行配置说明
六个研究工具怎样分工
| 工具 | 示例脚本 | 参数 | 研究任务 |
|---|---|---|---|
| web_search | search_market.py | query、type | 查询网页、新闻和政策 |
| query_pdf | query_report.py | query、stock | 在本地资料中检索证据 |
| stock_price | get_kline.py | code、period、count | 通过 MiniQMT 获取 |
| financial_analysis | ratio_analysis.py | stock、years | 财务指标趋势 |
| compare_reports_period | cross_period.py | stock、topics | 同公司跨期比较 |
| compare_reports_company | cross_company.py | stocks、topic | 多公司统一口径比较 |
自定义搜索示例使用 ChatTongyi(model="qwen-plus", model_kwargs={"enable_search":True}),脚本接受 --query 及 --type,类型为 general、stock、news、policy。真正实现时必须让类型参与查询策略,不能只定义参数而不使用。搜索回答必须附来源;“模型说已联网”不能代替证据。脚本名称只是示例项目接口,不代表这些功能已经在本地具备。
三个示例项目的可复用思路
content-builder-agent:AGENTS.md 放写作要求,subagents.yaml 放研究员配置,blog-post/social-media 技能指导工作流,web_search/generate_cover 工具提供能力。工具名与技能名保持清楚区分。
deep_research:定义研究子代理的名称、描述、系统提示和专属工具,再交给主代理委派。拆分的价值是明确任务和隔离上下文,最终证据仍需主流程汇总。
text-to-sql-agent:将 SQLDatabaseToolkit 的数据库工具与 schema-exploration、query-writing 技能组合。学习时先使用只读数据库、限制行数和超时,别让生成 SQL 无边界修改数据。
中间件怎样影响执行
一个示例按顺序列出 TodoList、Memory、Skills、Filesystem、SubAgent、Summarization、AnthropicPromptCaching、PatchToolCalls 中间件,分别处理计划、记忆、技能发现、文件、子代理、长上下文压缩、缓存和工具消息修复。具体栈与先后顺序会随版本变化,这里用于理解职责。
示例提示由用户系统提示、框架默认提示、中间件内容拼接。执行循环是:用户输入 → 前置处理中间件 → 模型推理与工具调用 → 工具结果 → 模型继续推理 → 最终回答。工具失败应返回可辨认的错误状态,不能混入正常财务数据。
Windows 排障清单包括临时英文路径保存索引、子进程用 UTF-8 编解码与 PYTHONUTF8=1、必要时包装标准输出、接口超时设置重试。重试策略要和具体任务绑定:例如查询接口可以设置“最多三次、指数退避”,建索引可以设置“六次、线性递增等待”。实现时分别配置,不要混写成一个统一标准。
一句话记住技能写方法,工具做动作,代码守住边界。
07把研究方法写成 Agent 的工作要求
系统提示应包含对象识别、任务类型、研究步骤、数据边界、工具选择、输出结构和完成条件。常见任务类型包括个股深度、季报速评、行业比较、、财务异常。
可使用以下教学模板:
先明确分析对象、截止时间和报告类型。
列出各阶段需要的数据,并选择适合的工具。
第一轮获取概况与已有财报,记录缺口、矛盾与线索。
第二轮针对线索补证据;未证实的信息保持未证实状态。
按信息差、竞争性解释、预期比较、催化剂、结论与失效条件组织报告。
每项事实给出文档或网页出处、页码及日期。
参考材料没有的指标不编造;不同报告期、币种和单位不直接混算。
报告最终标出证据缺口和需要人工复核的事项。信息差主要用 PDF 与搜索,逻辑差需要对比解释,预期差结合预测来源和财务分析,催化剂用新闻政策和公告,结论结合前述证据与行情背景。提示里写清研究方法,脚本怎样传参交给工具接口定义。
@tool 函数的第一行文档字符串说明用途,参数说明列明可选值,返回内容包含数据或错误状态。统一子进程包装器处理解释器、编码、超时和退出码。错误可以以文本返回给模型;工程上还应携带明确状态,避免模型把失败文本误当正常结果。工具能被调用,不代表返回数据真实、完整或适合当前问题。
一句话记住一份研报的质量,最终看结论能否被复核和推翻。
08拿一份示例研报做质量检查
以用户提出“撰写贵州茅台投研报告”。第一轮并行检索本地年报、联网查年报状态、分析五年财务;发现年报尚未发布后,再查一季度预告和最近 30 日日线。示例涉及匹配 17 个文本块、营收 1,741 亿元与增长 15.66%、 36.02%、一季度营收估计 580–590 亿元、价格 1,468 元。这些是示例报告里的数字,没有核对来源之前不能当成事实。
检查报告时,要核对工具清单、调用次数和过程记录是否一致;对不上就说明报告的过程记录不可信。缺少完整日志时,应写“展示了多轮检索,调用总数无法确认”。同样,检索到 17 块不等于找到指定年报;必须核查块所对应的实际报告期。
示例报告截图日期为 2026 年 4 月 3 日,提出直销体系与产品结构改善,给出“增持”、目标区间 1,520–1,680 元、2026E PE 28–32 倍。以下保留截图中的细节,用于练习核对,不作为本课研究结论:
- 直销收入估计 280 亿元,占当季 48%–49%;单瓶直销毛利较经销高约 330 元,估计 51%–53%。这些是模型预测或待验证说法,需各自核实。
- 系列酒库存天数被称为降至 45 天内,2026 年净利润贡献预计超过 120 亿元,对比 2024 年 89 亿元。
- 截图列 2024 年经营现金流 924.64 亿元、增长 38.85%,归母净利润 862.28 亿元、增长 15.38%。现金流增长高于利润不能独立证明可持续性,要拆解营运资金、预收与支付时点。
- 截图以高端份额由 2020 年 45% 到 2025 年 58%、2026Q1 增长 12.7%–14.7% 对比行业 5%–7%,支持集中度叙事;又以批价 1,650–1,700 元、经销库存 30–45 天、订单满足率 65%,支持渠道协同叙事。这些数字都需要补充可定位的出处。
- 截图还列毛利率 91.93%、ROE 36.02%、负债率 19.04%、近五年 ROE 均值 33.5%、波动率 2.1%。应先确认期间、口径与“波动率”的计算方式。
| 截图指标 | 所称一致预期 | 所称模型预测 | 所列差异 |
|---|---|---|---|
| 营业总收入 | 1,920 亿元 | 1,955 亿元 | +1.8% |
| 归母净利润 | 975 亿元 | 1,012 亿元 | +3.8% |
| 77.5 元 | 80.4 元 | +3.8% | |
| 加权 ROE | 35.2% | 36.1% | +0.9 个百分点 |
| 目标价及 PE | 1,480 元、30 倍 | 1,600 元、31 倍 | +8.1% |
这张表有可直接识别的计算矛盾:77.5×30=2,325,80.4×31=2,492.4,均不等于所列目标价。1,468/80.4 约为 18.26,也不等于截图结论中的 29.5 倍。不要擅自选择其中一个数字修正,正确做法是回查 EPS、PE、股价、期间及股本口径,标注“估值口径不一致,暂停使用结论”。
示例截图中的催化剂安排为 4 月 15–20 日季报、4 月下旬年报、5–6 月端午动销、三季度末下一年生肖酒发布;对应风险分别是预告下限或管理层展望较弱、非经常损益或会计政策变化、消费情绪走弱、发行与定价偏离预期。它还列直销政策变化、高端消费场景频次下降 30% 以上、管理层过度扩产或价格战作为失效条件,补充宏观、政策、食品安全、汇率及信息滞后风险。所有安排仍应按公告和实际经营信息复核。
这次练习说明:格式完整、工具调用成功和逻辑链连贯,仍可能伴随事实缺口与算术错误。报告验收必须同时检查来源、计算、时点、定义和推理。
一句话记住每个实验都要有输入、输出、证据和失败条件。
判断研报结论有没有证据
逐张检查研报结论是否有来源、口径、时间窗口和可验证的风险条件。
研报里的这个结论有没有证据支持?先判断证据链是否完整,再决定能否写成确定结论。
页码和口径都在
结论称‘一季度营收同比增长22%’。报告第18页列出本期和上期营收、计算口径为合并报表,来源文件和页码已记录。
09动手任务与验收
第一步选择一家公司,准备至少两份不同报告期的公开资料。记录来源、下载日期、报告期和发布日期。先手工找出几个数值与原页码,作为检索答案的核对样本。
第二步按本课目录做文本提取与元数据清单。输出逐页字符数,发现空白页、图片页或异常少字页时检查页面。手工核对公司代码、日期和类型;保留缺失,不填猜测值。
第三步尝试切片。选三处跨页、表格或重复页眉内容,检查块是否保持必要上下文、页码是否正确。修改参数后记录块数与检索结果变化。
第四步接入一种检索方式,再对比关键词加向量的组合。设计“准确词”“同义表达”“错误公司”“不存在的数据”四类问题,检查是否有过滤失效和无依据作答。
第五步用固定流程生成一份报告,再加入线索驱动的第二轮检索。保存每次工具名称、输入、返回状态、来源及调用顺序。比较新增检索究竟补了什么信息,不以调用次数多作为优点。
第六步提交报告和核对表。报告至少有对象与截止时间、事实来源、五步分析、数字核算、假设、缺口和失效条件。测试一次“年报未发布”、一次“联网失败”、一次“本地只有上一期报告”,验收工具是否如实说明。
完成标准是:你能够沿着一项结论回到原页、复算数字、指出假设,并在输入缺失时让系统停止编造。完整脚本、依赖版本、账户权限和真实运行日志未补齐之前,项目状态应标为设计或待验证,不能标为已上线或已跑通。
一句话记住每个实验都要有输入、输出、证据和失败条件。
4 道小题
全部答对,这一课就算真正读懂了。答错了会告诉你为什么。
这一课,浓缩成一张卡
学完可以保存或分享给朋友。保存成图片的功能会在下一版加上。
让每个结论绑定来源、口径、时间窗口、假设和失效条件。
- 证据可定位
- 工具可审计
- 风险可验证
记住这 5 句话
- 01研究结论要拆成证据、解释、预期、催化剂和风险闭环。
- 02PDF 知识库必须保留元数据、页码映射、切片和检索结果。
- 03Agent 不替代确定性计算;工具、Skill 与权限要分层。
- 04报告数字要有来源、日期、口径和验证窗口。
- 05任何历史演示都不能直接当作当前事实或交易建议。
完成这一课
读完讲义、动手做一次实验、答对小题,这一课就算学完了。
- 读完讲义
- 完成一轮证据链判断
- 通过随堂自测
实验数据AI+金融投资训练营教学样本。固定教学样本
固定教学样本只用于解释量化研究方法,不代表任何真实标的未来表现,也不构成投资建议。