Skill v1.0.0
currentAutomated scan100/100metadata: version: "1.0.0"
name: stock-wiki description: "用 LLM 构建和维护个人股票投研知识库、逻辑验证库。当用户需要创建股票相关的知识库、导入研报/新闻/财报、查询投研逻辑、维护知识库健康状态(如检查逻辑矛盾)时触发。关键词:投研、股票、研报、财报、知识库、wiki、ingest、导入资料、知识管理。" version: 1.0.0
stock-wiki - 用 LLM 构建股票投研知识和操作经验持续积累的知识库
核心理念
不同于 RAG 每次从零检索,LLM Wiki 让 LLM 持续构建并维护一个结构化的 Markdown 投研 Wiki。每次导入新资料(研报、新闻、财报),LLM 不是简单索引,而是阅读、提取关键信息、整合到现有 Wiki 中——更新个股档案、修订行业逻辑、标注多空矛盾、强化或挑战已有投资论点。知识编译一次,持续更新,而非每次查询重新推导。
三层架构
1. Raw Sources(原始资料)
- 存放在
/Users/Admin/workspace/python/deepagents-test/deepagents/data/raw/目录 - 不可变——LLM 只读不改,作为投研的“真相来源”
- 包含:券商研报(PDF)、财经新闻、宏观数据、公司公告、交易复盘记录等
2. Wiki(知识库)
- 存放在
/Users/Admin/workspace/python/deepagents-test/deepagents/data/wiki/目录 - LLM 生成并维护的 Markdown 文件集
- 包含:个股档案页、行业综述页、宏观概念页、投资策略页、综合分析页
- LLM 全权管理:创建页面、更新、维护交叉引用、保持逻辑一致性
3. Schema(配置)
- 使用
/Users/Admin/workspace/python/deepagents-test/deepagents/data/schema.md文件中的定义(如果文件存在) - 告诉 LLM Wiki 的结构、命名约定、工作流
- 你和 LLM 共同迭代演进
关键文件
/Users/Admin/workspace/python/deepagents-test/deepagents/data/wiki/index.md— 内容总览目录。按类别组织(个股、行业、宏观、策略),每条含链接 + 核心逻辑一句话摘要。LLM 每次导入时更新。查询时 LLM 先读索引再深入具体页面。/Users/Admin/workspace/python/deepagents-test/deepagents/data/wiki/log.md— 投研操作日志。按时间顺序追加记录(导入、查询、维护),格式如## [2026-04-29] ingest | 某某券商-宁德时代深度研报。
三大核心操作
Ingest(导入与编译)
当用户说"导入"、"处理这份研报"、"添加到知识库"时执行:
⚠️ 第一步永远是 markitdown 预处理(详见下方"实战流程"第 0 步)。禁止直接 `read_file` 任何 PDF。
- 读取
/Users/Admin/workspace/python/deepagents-test/deepagents/data/raw/中的新资料(只读.md/.md转换后的文本,PDF 跳过) - 在
/Users/Admin/workspace/python/deepagents-test/deepagents/data/wiki/中创建资料摘要页(source-xxx.md) - 更新相关个股/行业页:将新数据、新观点整合进对应的
wiki/companies/或wiki/industries/页面(可能涉及多个页面) - 更新
/Users/Admin/workspace/python/deepagents-test/deepagents/data/wiki/index.md索引 - 在
/Users/Admin/workspace/python/deepagents-test/deepagents/data/wiki/log.md中追加操作记录 - 标注逻辑冲突:如果新资料与已有认知矛盾(如:之前看多,新研报看空),必须在对应页面明确标注冲突点。
Query(查询与推演)
当用户提问或要求分析时执行:
- 读取
/Users/Admin/workspace/python/deepagents-test/deepagents/data/wiki/index.md定位相关页面 - 深入阅读相关个股、行业页面
- 综合回答,附带引用(指向具体的 source 或 wiki 页面)
- 有价值的分析结论(如:某次复盘总结出的交易模式)可以回写为 Wiki 新页面,让探索也能积累。
输出格式可以多样:Markdown 页面、个股对比表格、SWOT 分析等。
Lint(维护与体检)
当用户说"检查知识库"、"维护一下"时执行:
- 检查页面间的内容冲突(如:A 研报说产能过剩,B 研报说供不应求)
- 发现被新财报/新政策取代的过时内容(标记为
[已过时]) - 找出无入站链接的孤立页面
- 识别被提及但缺少专属页面的重要概念(如:某新出的行业术语)
- 发现缺失的交叉引用(如:个股页未链接到对应的行业页)
- 建议可通过网络搜索填补的数据空白(如:缺少最新股价或 PE 数据)
初始化工作流
当用户说"创建知识库"、"初始化" 时:
- 创建目录结构:
- /Users/Admin/workspace/python/deepagents-test/deepagents/data/raw/ # 原始资料
- /Users/Admin/workspace/python/deepagents-test/deepagents/data/raw/assets/ # 图片等附件
- /Users/Admin/workspace/python/deepagents-test/deepagents/data/wiki/ # Wiki 页面
- /Users/Admin/workspace/python/deepagents-test/deepagents/data/wiki/index.md # 索引
- /Users/Admin/workspace/python/deepagents-test/deepagents/data/wiki/log.md # 操作日志
- 创建初始
/Users/Admin/workspace/python/deepagents-test/deepagents/data/wiki/index.md(空目录模板) - 创建初始
/Users/Admin/workspace/python/deepagents-test/deepagents/data/wiki/log.md(首条记录:Wiki 创建) - 如有必要,创建
/Users/Admin/workspace/python/deepagents-test/deepagents/data/schema.mdschema 文件
最佳实践
- 逐条导入资料并保持参与——阅读摘要、检查更新、引导 LLM 聚焦重点(如:重点看风险提示)
- 好的查询回答要回写到 Wiki,让探索也能复利
- 定期执行 Lint 保持 Wiki 健康,尤其是财报季结束后
- Wiki 就是一个 Markdown 文件的 Git 仓库——天然拥有版本历史
- 使用 Obsidian 作为浏览 IDE,利用图谱视图查看“个股-行业-宏观”的逻辑脉络
- 页面的 YAML frontmatter 可以配合 Dataview 插件生成动态表格(如:自动汇总所有“强烈推荐”评级的个股)
股票投研实战经验
以下经验来自实际运行投研知识库过程中积累的模式和教训。
资料获取
- 微信公众号/财经类、股票类文章:推荐用 Obsidian Web Clipper 浏览器扩展剪藏为 Markdown,再放入
/Users/Admin/workspace/python/deepagents-test/deepagents/data/raw/目录。 - 券商研报 / 财报 PDF:放入
/Users/Admin/workspace/python/deepagents-test/deepagents/data/raw/后,必须在导入前先转换为 Markdown,使用项目内置的 markitdown:
/Users/Admin/workspace/python/deepagents-test/deepagents/bin/markitdown data/raw/<file>.pdf -o data/raw/<file>.md
⚠️ 硬性约束(违反会浪费 token 且触发上游警告)1. 禁止直接对data/raw/*.pdf调用read_file工具。PDF 是二进制,会被 deepagents 编码为 base64 文件块塞回 LLM,既不可读(OpenAI 兼容模型不支持原生 PDF 上传),又会触发LC_AUTOGENERATED文件名警告。2. 只读转换后的.md文件 +data/raw/assets/下被 markitdown 提取出来的图片资源。3. 如果某份 PDF 没有对应的.md,说明转换未完成——先跑 markitdown 再继续。
- 剪藏后的文件自带 YAML frontmatter(title、source、author、created、tags),可直接利用。
页面命名规范
实践中形成的股票 Wiki 文件命名约定:
| 页面类型 | 命名格式 | 示例 | |
|---|---|---|---|
| 资料摘要 | source-{关键词/股票代码}.md | source-300750-宁德时代2025年报.md | |
| 个股页 | {股票代码}-{公司简称}.md | 300750-宁德时代.md、600519-贵州茅台.md | |
| 行业页 | industry-{行业名}.md | industry-动力电池.md、industry-白酒.md | |
| 宏观/概念页 | macro-{概念名}.md | macro-美联储加息.md、macro-国产替代.md | |
| 策略/复盘 | strategy-{策略名}.md | strategy-网格交易复盘.md |
Ingest 实战流程(详细版)
一次完整的投研资料导入通常产生以下操作:
- 【强制前置】预处理原始资料
- 扫描
data/raw/,找出所有未经处理的 PDF(即同名.md不存在的 PDF)。 - 对每个 PDF 执行:
``bash
/Users/Admin/workspace/python/deepagents-test/deepagents/bin/markitdown \
data/raw/<file>.pdf -o data/raw/<file>.md
``
- markitdown 会自动把 PDF 内的图片提取到
data/raw/assets/<file>/。 - 转换完成后,本流程后续所有"读取原文"步骤都读
.md版本,不要读.pdf。
- 复制原文到 `/Users/Admin/workspace/python/deepagents-test/deepagents/data/raw/` — 保持原始资料不可变
- 创建摘要页 —
source-xxx.md,包含:
- YAML frontmatter(tags: [研报, 新能源], source, author, date, url)
- 核心观点(看多/看空/中性)
- 关键数据(营收、净利、目标价)
[[双向链接]]指向相关个股和行业页
- 创建/更新个股页 — 提取并更新:
- 基本面摘要(业务模式、护城河)
- 核心逻辑(看多理由、看空风险)
- 最新催化剂(事件驱动)
- 估值与财务数据
- 创建/更新行业/宏观页 — 将个股放入更大的背景中(如:宁德时代的更新要同步到“动力电池行业”页面)
- 交叉引用 — 所有页面之间用
[[wikilink]]互相关联 - 更新 index.md — 按类别(个股/行业/宏观/资料)添加新条目
- 更新 log.md — 记录创建了哪些页面、更新了哪些页面、关键要点、与已有知识的关联
交叉引用原则
- 每个个股页面底部都要有“来源”链接,指回资料摘要页。
- 新资料导入时,主动检查已有页面是否需要更新(如:新财报数据要覆盖旧数据,并记录变化趋势)。
- 摘要页末尾列出“相关概念”,形成概念网络(如:某光伏股关联到“碳中和”、“硅料价格”)。
- 标注跨资料关联:当多篇研报提到相似观点时,在页面中明确标注(如“与 [[source-xxx]] 的共同主题:行业集中度提升...”)。
页面 Frontmatter 模板
---tags: [source-summary, report, 新能源] # 资料摘要页# 或tags: [stock, company, 300750] # 个股页# 或tags: [industry, concept] # 行业/概念页type: company | industry | macro | strategyticker: "300750" # 仅个股页需要sector: "电力设备"source: "原文标题"author: 作者名/券商date: YYYY-MM-DDurl: "原始链接"---
知识关联发现
导入第二篇及以后的资料时,重点关注: 共同主题:多篇研报反复出现的观点要在页面中标注(如:“多家券商均看好某公司出海逻辑”) 矛盾观点:不同资料的冲突要明确标注,不偷偷覆盖(如:“A券商认为产能过剩,但B券商认为需求旺盛,需关注后续库存数据”) 补充关系:新资料为已有概念增加案例/数据时,更新已有页面而非只创建新页面 逻辑演化:同一投资逻辑在不同时期的表述可能不同,页面要综合呈现(如:从“主题炒作”演变为“业绩兑现”)
版本管理建议
- 竞品档案等时效性强的内容,建议带日期命名(如 competitor_analysis_20260102.md)
- Wiki 页面本身不需要日期后缀——通过 git 历史追踪变化
- /Users/Admin/workspace/python/deepagents-test/deepagents/data/wiki/log.md 是了解知识库演进的最佳入口s
常见的一次导入规模
根据实践,一篇中等长度的深度研报或新闻(20-30页)通常:
- 新建 2-4 个页面(1 个摘要 + 1 个个股页 + 1-2 个相关行业/概念页)
- 更新 2-4 个已有页面(如:更新行业综述、更新竞争对手数据)
- 总计触及 5-8 个文件