我之前每个交易日开盘前的状态基本就是一台人形爬虫刷财新 → 扒卖方研报PDF → 打开天天基金网手抄净值 → 对着Wind终端截屏做Excel → 再把这些数据拷进笔记里写分析。一套下来手指头没停过脑子反而转得最少。回头一看这不就是 Mechanical Turk 的中文版么有情绪、能喘气但干的全是机械活。作为一个写后端出身、能少敲一行绝不多敲一行的懒人这事我忍了大概……两个星期吧。上个周末终于没忍住花了两天时间基于 Kimi Work Obsidian Python Watchdog 硬凑了一套本地化的自动化流水线。核心信条就两条凡是可以被 API 调用的坚决不动手凡是可以被 Prompt 定义的坚决不重复写第二遍。一、架构设计Local First文件系统就是数据库首先定个调不上云笔记不依赖任何同步服务。所有数据全部落在本地硬盘Obsidian Vault 直接交给 Git 做版本管理。为什么这么干是隐私——净值、持仓、个人交易记录这些东西往第三方云上放我总觉得不踏实。是速度——本地文件读写毫秒级响应搜索用 ripgrep比任何云笔记的全文检索都快。是可控——哪天 Obsidian 不更新了我照样能用 VS Code 打开 .md 文件内容一点不丢。整个 Vault 就是一个普通文件夹但 Git 给它上了版本控制。改错了git diff 看一眼。想回滚git reset --hard 直接回到三天前。这种安全感不是数据库备份能给的。二、信息收集层Kimi Work 当定时爬虫用Kimi Work 本质上封装了一套 Cron 调度能力。我配了两个定时任务早班车08:30抓取财新早报、证券时报头版、几个固定卖方的晨会纪要午间补货12:00抓取午盘综述和突发新闻推送。输出格式统一为 .md落盘到 ~/Downloads/kimi_output/ 目录下。文件名带时间戳但内容比较随意各家信源的格式并不统一。这一步相当于把“人工刷网页”替换成了“定时调度 HTTP 请求”每天省下 20 分钟的开屏动作。三、中间件Watchdog 监听 自动搬运 标签注入光有 Kimi 吐文件还不够我得让这些文件自动进 Obsidian 的知识库并且进到正确的目录、打上正确的标签。于是写了一个 60 行左右的 Python 脚本核心依赖就一个watchdog。import shutilfrom datetime import datetimefrom watchdog.observers import Observerfrom watchdog.events import FileSystemEventHandlerclass KimiFileHandler(FileSystemEventHandler):def on_created(self, event):if event.is_directory:returnif not event.src_path.endswith(.md):return# 只处理 Kimi 输出的特定文件名模式if 热点简报 in event.src_path or 早报 in event.src_path:today datetime.now().strftime(%Y-%m-%d)new_name f{today}-市场简报.mdtarget_path f/path/to/vault/01-Atomic-Notes/{new_name}# 移动文件shutil.move(event.src_path, target_path)# 在文件头部注入 Front Matter 标签inject_front_matter(target_path, {tags: [Daily/Market, AutoIngest],source: KimiWork,date: today})Watchdog 的 Observer 会持续监听 ~/Downloads/kimi_output/一旦有新的 .md 文件生成就触发 on_created 事件。脚本做的事情很简单识别文件名是否包含“热点简报”或“早报”按当天日期重命名移动到 Vault 的 01-Atomic Notes 目录在 Markdown 开头插入 YAML Front Matter打上 #Daily/Market 和 #AutoIngest 标签从此以后早报进库这件事我再也没手动干过。连 Obsidian 都不用打开文件就已经躺在那里了。四、Prompt 工程把分析框架固化成“可调用的函数”如果说信息采集是“体力活自动化”那分析环节就是“脑力活模板化”。以前分析一只基金我得同时开天天基金网看净值和规模Wind 终端查重仓股和行业分布。自己写 Excel 算 ROE 中位数、PEG、Calmar Ratio手动把结果整理成 Markdown笔记这套流程走下来光数据清洗和核对就要 1 小时往上。现在我把整个分析框架写成了 Kimi 的 System Prompt相当于定义了一个“分析函数”输入基金代码输出结构化报告。Prompt 设计逻辑实际版本【Role】你是一位兼具量化背景和基本面研究能力的基金分析师。【Task】分析用户指定的公募基金基于该基金最新披露的季报数据输出一份深度分析报告。【Constraints】1. 所有数据必须基于最新季报严禁编造或推测未披露的数据2. 输出格式严格遵循 Markdown包含表格和分级标题3. 直接输出分析内容不要加“以下是分析结果”之类的前缀废话4. 如果某项数据缺失明确标注“未披露”不要填充占位值【Skills - 必须覆盖以下三个维度】a. 价值派视角- 计算前十大重仓股的 ROE 中位数和加权平均值- 统计 PEG 的分布区间判断整体估值偏贵还是合理- 识别前十大中是否有明显的高估或低估 outlierb. 趋势派视角- 提取近 3 个月和 6 个月的净值走势斜率- 计算 Calmar Ratio年化收益率 / 最大回撤- 计算最大回撤修复期从回撤低点回到前高所需交易日数- 对比同类基金的中位数判断该基金的风险调整后收益水平c. 行业穿透视角- 统计半导体、AI、信创三大板块在持仓中的合计占比- 对比上一季度该占比的变化识别是否存在“风格漂移”Style Drift- 如果风格漂移超过 10 个百分点给出风险提示【Output】直接输出 Markdown结构为- 基本信息规模、成立时间、基金经理- 持仓画像前十大 集中度- 三维度分析价值/趋势/行业- 综合评价与风险点这个 Prompt 丢给 Kimi Agent 后它会自动调用内嵌的联网搜索工具集拉取最新季报数据然后按我的模板生成一份 5000~6000 字的深度报告。我只需要在 Obsidian 里新建一篇笔记粘贴基金代码运行模板等个两三分钟一份带表格、带数据、带结论的报告就出来了。重点是这份报告的结构是固定的但数据是新鲜的。下次换一只基金换一个代码流程完全复用输出的格式一模一样方便后续做横向对比。五、Obsidian 知识库三层结构 反向链接光有报告还不够我得把这些零散的分析笔记串成知识网络。参考卢曼的 Zettelkasten 卡片盒法我把 Vault 分成了三个顶层目录01-Atomic Notes原子笔记存原始数据不带任何主观判断。比如每日市场简报、基金季报原始数据的摘录、宏观数据的剪报。特点是“只记录发生了什么”不分析“意味着什么”。02-Literature Notes文献笔记存我的分析产物是“我对此事的理解”。比如 025881-深度分析-20260629.md、AI芯片行业-竞争格局梳理.md。这里会有观点、有判断、有推理链。03-Structure Notes结构笔记存我的投资逻辑框架和方法论。比如 科技板块-估值锚.md 记录了我是用 PE-band 还是 PEG 来给科技股定价风格漂移检测规则.md 记录了我认为“多大幅度算显著漂移”的判断标准。三层之间靠链接串起来。原子笔记为文献笔记提供事实依据文献笔记为结构笔记提供案例支撑结构笔记反过来指导我下次如何分析。最让我觉得“这钱花得值”的时刻是 Obsidian 的 Backlink反向链接 面板。举个例子我在写 AI芯片行业.md 这篇结构笔记时右侧面板会自动列出所有提到“AI芯片”这个词的原子笔记和文献笔记。我瞬间就能看到哪几篇市场简报提到了 AI 芯片的最新动态哪几只基金的分析报告里重仓了 AI 芯片股、之前哪个季度的行业穿透数据跟当前趋势发生了背离这种网状知识结构比任何传统的“文件夹套文件夹”都高效。它不是树状的是图状的——信息之间的关联是显式的不是藏在路径里的。六、实际收益量化一下时间维度上周实测从早报落地到生成 025881 的完整深度报告全流程耗时 约 30 分钟。其中 25 分钟是 Kimi Agent 在跑分析我只需要在 Obsidian 里敲一行 analyze_fund 025881然后起身去倒杯水。真正需要我动脑子的大概只有 5 分钟——瞟一眼报告里的数据有没有明显异常判断一下结论是否可信。以前纯手工做同样的事数据采集20 分钟打开各网站、复制粘贴、整理格式数据清洗30 分钟核对净值日期、处理缺失值、统一单位指标计算25 分钟开 Excel 拉公式、算 ROE 中位数、算 Calmar报告撰写20 分钟把数据转成文字、组织逻辑合计差不多 1.5 小时起步而且全是重复性劳动脑子几乎处于待机状态。省下来的那 1 小时拿来干嘛优化了 Watchdog 脚本加了文件锁防止同一时刻多个文件触发并发写入冲突写了个小工具把净值时间序列自动转成 Obsidian Charts 插件能直接吃的 CSV 格式剩下的时间泡杯茶看盘面发呆等真正的交易信号出现。☕决策质量维度这个不好量化但体感明显以前因为手工整理数据太费劲我往往“能省则省”只算一两个指标就下判断。现在分析框架固定了三个维度、十几个指标每次都一起出信息量更全面漏掉风险点的概率明显降低。七、一点体会技术宅的投资观我越来越觉得程序员做投资优势从来不是“消息更快”。消息快拼的是人脉、是圈层、是凌晨三点还有人在微信群喊你起床——这个我们搞不定。真正的优势是 信息处理管道的吞吐量。同样的 30 分钟别人刚把数据凑齐你的分析报告已经躺在 Obsidian 里了。剩下的时间你可以比别人多读两份研报、多复盘一段行情、或者多等一个更确定的入场点。谁能在更短的时间内把噪音过滤掉、把非结构化数据转换成结构化信息、再把信息喂进自己的决策框架里谁就更有可能少亏点钱——至少我是这么安慰自己的。八、这套东西还能怎么用这套“采集 → 监听 → 模板化分析 → 双链存储”的流水线完全不局限于投资。换个 Prompt把“分析基金”改成“分析技术栈选型”你就能批量生成技术调研报告。换成“分析竞品版本更新”你就能每周自动追踪友商的产品动态。换成“分析学术论文摘要”你就能搭建一个个人科研文献库。只要满足三个条件信源有规律可循网页、RSS、API分析框架可模板化Prompt 能定义清楚输出可结构化Markdown 足矣这套 Local First 自动化 双链笔记 的组合拳就能无缝复用。最后贴一句我写在 Obsidian Vault 首页的话“Alpha 来自决策不是来自 CtrlC/V。”—— 虽然我现在连 CtrlC/V 都懒得按了哦对了Watchdog 真香建议每个本地自动化玩家都去试试。配合 schedule 库做定时触发或者配合 inotifyLinux和 ReadDirectoryChangesWWindows做更细粒度的监控可玩性极高。