一个月做6个项目,为什么越做越空

代码越写越顺,心里却越来越慌——一个价值投资者的开发月反思

事情是这样的

4月29号晚上,我关掉 Cursor,看着屏幕上6个项目的目录,突然觉得特别空。不是累,不是烦,是一种说不清的慌——好像忙了一个月,却把最重要的东西弄丢了。

我翻了翻自己的通达信自选股,上次认真看公司财报是3月底的事了。一个月没研究过一家新公司,没写过一篇研究笔记,持仓的股票连季报都没看。而我呢?每天早上9点坐到电脑前,打开 Cursor,一写就是一整天,连续30天,做了6个项目。

6个项目啊。FinBuddy、FinBuddy_Web、Promo_Web、SkillStore、MarketingVideo、Basic_Web。每个都能跑,每个都有代码、有架构、有文档。按理说应该挺有成就感的对吧?但我一点都开心不起来。

后来我想明白了——这种感觉,就像你本来是要造一把趁手的鱼竿去钓鱼,结果一头扎进打磨鱼竿的细节里,磨了一个月,鱼竿越做越精致,却忘了自己本来是要去钓鱼的。回头一看,熟悉的鱼窝荒了,自己也没享受到钓鱼的乐趣,哪怕鱼竿磨得再好,心里也是空的、慌的。

这一个月到底做了什么

先交代一下背景,不然你不知道我在说什么。

FinBuddy — AI Agent 金融助手

这是6个项目里投入最大的,也是我最在意的。FinBuddy 是一个 AI Agent 桌面客户端,Python + Electron 技术栈,核心是让 AI 帮我做投资研究——筛选公司、分析财报、跑回测、查行情数据。

一开始我搭了7个 Agent:基本面分析师、技术分析师、风控专家、资金流向分析师、行业研究员、宏观分析师、首席策略师。听起来很专业对吧?结果跑起来发现意图解析链路太长,错误层层放大,7个 Agent 的 system prompt 加起来 token 就爆了。最后砍到3个核心 Agent——数据获取、分析、策略——反而更稳定。这个教训我之前在 Multi-Agent 架构踩坑 里写过。

架构经历了三次大重构:第一版一个文件2000行,能跑但没法维护;第二版拆成引擎/技能/适配器三层,引入意图解析器;第三版加了 Swarm DAG 编排和进化系统。光意图解析器就从6层继承链重构成了组合模式。

工具体系搭了5类:行情数据工具(直连通达信)、财报分析工具(本地数据库)、回测引擎(Backtrader)、知识库(FAISS 向量检索)、安全合规工具(投资建议过滤)。每个工具都踩过坑——比如通达信K线的 open 字段读成了 close_df 的数据,跑了两天才发现,因为开盘价和收盘价差距通常就1-2%,肉眼根本看不出来。

FinBuddy_Web — AI Agent Web 后端

FinBuddy 的 Web 版后端,FastAPI + Vue。核心功能:LLM 代理转发(支持流式/非流式)、JWT + 微信登录认证、FinCredits 积分服务。积分服务是最麻烦的——冻结、结算、退款三步必须是事务,客户端中途断开连接也不能漏扣。我之前在 Cursor 对话的5个坏习惯 里写过这个坑:Cursor 建议在 async for 循环外面做 DB 更新,客户端断开就白用了 token。

Promo_Web — 智能营销网站生成器

输入产品信息和目标人群,自动生成营销文案和页面。核心是 Skill 四层组合机制:framework → style → adapter → enhancer。比如你卖一款 AI 工具,framework 决定页面结构(产品页/着陆页/对比页),style 决定风格(科技感/温暖感/专业感),adapter 把产品信息适配到模板里,enhancer 加上 SEO 优化和 CTA 按钮。技术栈 FastAPI + Vue。

SkillStore — AI 技能市场

用户上传、浏览、组合 AI 技能的平台。核心功能:基于 LLM 的技能自动分类、版本管理、技能组合(多个技能串联成工作流)。技术栈 Flask,相对轻量。这个项目让我意识到技能的元数据设计有多重要——分类标签、依赖关系、版本兼容性,这些设计不好,后面组合的时候全是坑。

MarketingVideo — 营销视频生成

基于 Remotion 框架,输入产品信息和营销文案,自动生成带动画的营销视频。技术栈 TypeScript + React,和前面几个 Python 项目完全不同。核心挑战是视频渲染的并发控制——用分布式信号量管理渲染队列,防止同时渲染太多视频把内存吃光。

Basic_Web — 通用 SaaS 脚手架

FinBuddy_Web 和 Promo_Web 都从它继承代码——JWT 认证、RBAC 权限控制、分布式信号量、邮件服务、统一异常处理。搭新项目时改项目名和数据库配置就能跑。最值得说的是分布式信号量,基于 Redis INCR + EXPIRE 实现跨实例并发控制,比 Python 内置的 threading.Semaphore 更适合多进程部署。

6个项目的关系

Basic_Web 是地基,FinBuddy_Web 和 Promo_Web 从它继承。FinBuddy 是核心产品,FinBuddy_Web 是它的 Web 后端。SkillStore 给 FinBuddy 提供技能生态,Promo_Web 给产品做营销页,MarketingVideo 做营销视频。6个项目不是孤立的,是一条产品线。

为什么越做越空

6个项目都能跑,架构也算清晰,按理说应该挺有成就感。但我一点都不开心。不是累,不是选错了方向,是两个底层矛盾在打架。

矛盾一:身份锚点偏离

我最核心的自我认同是什么?是一个连续8年正收益、有完整体系的价值投资者。这是过去7年最稳的主心骨——每天看公司、读财报、算估值、写研究笔记,这套节奏我跑了7年,从来没断过。

但这一个月,我完全脱离了这个节奏。没研究公司,没看财报,没写笔记,持仓的股票连季报都没翻。相当于暂时脱离了自己最熟悉、最能带来掌控感的身份。就像一个每天跑步的人突然停了一个月,不是腿不行了,是那个"我是一个跑者"的自我认同断了,整个人都不对劲。

这种焦虑不是"不务正业"的愧疚——我知道做项目也是正事——而是一种更深的、说不清的失重感。你不再是你最熟悉的那个自己了。

矛盾二:工具和目的本末倒置

我做这6个项目的初衷是什么?从来不是"为了写代码而写代码"。

FinBuddy 是为了给我的投资提效——自动筛公司、分析财报、跑回测。Promo_Web 是为了给产品做营销。SkillStore 是为了给 FinBuddy 建技能生态。每个项目都有明确的目的,都是为了服务于我的投资体系。

但这一个月的高强度冲刺,工具本身变成了目的。我每天想的不再是"这个功能怎么帮我更好地研究公司",而是"这个架构怎么设计更优雅""这个模块怎么拆更合理"。原本的闭环「认知 → 交易 → 工具 → 反哺交易」断了,变成了「工具 → 工具 → 工具」,哪怕代码写得再顺,也拿不到投资里那种"知行合一"的正反馈。

这跟 确认偏误 的逻辑一模一样——你一旦沉浸在某个方向里,就会自动过滤掉"我是不是跑偏了"的信号。我的信号其实一直在:每天晚上关电脑时那种空落落的感觉,就是大脑在告诉我"你偏离了"。

10分钟情绪止损:把颠倒的工具和目的正过来

想明白之后,我花10分钟做了一个极简的「锚点复位」——不用停掉项目,也不用逼自己马上翻几十份财报,就是重新问自己一个问题:

我正在写的这个功能,是为了解决我投资里的哪个真实痛点?

我打开之前写的《A股价值投资者的认知偏差清单》,重新过了一遍我定的7条交易规则,然后对着 FinBuddy 的每一个功能,逐一问自己这个问题。

Multi-Agent 架构?是为了自动完成财报初筛、帮我规避确认偏误——留着。

止损提醒模块?是为了对抗 损失厌恶、管住自己死扛的手——留着。

Swarm DAG 编排?是为了让多个分析任务并行跑、节省等待时间——留着。

但有些功能,比如 SkillStore 的技能自动分类、MarketingVideo 的视频模板管理——这些和我投资的核心痛点关系不大。标上「后续迭代」,暂时停掉。

就这一个动作,立刻让我从「为了写代码而写代码」的内耗里抽离出来,重新回到「我是在给自己的投资造趁手的工具」的初衷里。本末正过来了,一半的焦虑直接消失。

把「做项目」和「研究公司」拧成一件事

之前最大的误区,是把两件事拆成了两个独立的、需要花整块时间的任务,所以才会觉得"顾此失彼"。其实完全可以把两件事合并成一件事——用研究给项目提真实需求,用项目给研究提效,甚至开发的过程就是研究的过程。

每天3小时,两件事同时推进

时间做什么两件事怎么绑定
1小时投资研究只聚焦1家符合初筛标准(PE<15、ROE>15%)的公司,把研究过程中手动重复的、耗时间的、容易被情绪干扰的步骤列出来
2小时项目开发只针对当天研究时发现的真实痛点,指挥 AI 把它做成 FinBuddy 里的一个小功能,边开发边在这家公司上实测

举个例子:今天研究中曼石油,发现手动扒5年财报的 ROE 和现金流数据太费时间,那就写个自动抓取财报核心指标的模块。发现自己容易忽略应收账款风险,那就加个财报风险点自动扫描功能。每个功能都是从真实研究里长出来的,不是拍脑袋想的。

这个模式彻底解决了纠结:

  • 没有丢投资研究——每天都在按自己的体系筛公司、看基本面,持仓的锚点一直都在,不会再慌
  • 做的每一行代码都不是无意义的炫技——而是真真切切能给你投资提效的工具,开发的成就感和投资的掌控感同时能拿到
  • 闷头写一个月的"通用功能",远不如这种"从真实研究里长出来的功能"好用——反而能让 FinBuddy 真正成为独属于你的、别人抄不走的投资武器

甚至,这个「边研究边开发」的过程本身,就是最好的内容素材。比闷头晒项目成果更能戳中同频的人。

给项目做阶段性收尾

一个月跑完6个项目的 MVP,已经超额完成了"先跑起来再优化"的目标。根本不用逼自己"必须把所有功能都做完、做完美"。

如果高强度写代码已经让你觉得疲惫、不开心,完全可以做一个极简的「阶段性封板」:

  1. 补好定位和文档 — 给6个项目分别补好一句话核心定位、基础使用文档,放到个人站里,告诉大家"项目已经跑通 MVP,后续会结合投资实战持续迭代"
  2. 写一篇总结 — 把这一个月的开发踩坑、架构调整、提效技巧整理出来,既给这段高强度工作一个收尾,也给站点补核心内容
  3. 放下"必须每天迭代"的执念 — 回到之前稳定的、能带来正反馈的节奏:每天1小时研究公司、1小时阅读、1小时项目迭代,想停就停,想更就更

个人站和开源项目的生命力,从来不是"一个月堆多少功能",而是长期、稳定的、跟着实战成长的迭代。最难的从0到1已经跑完了,剩下的从1到100,完全可以跟着投资节奏慢慢走。

核心洞察:你的壁垒不在任何单点上

想清楚之后,我发现一个反直觉的结论——我纠结的"顾此失彼"根本是个伪命题。

我的核心竞争力,从来不是"一个月做6个项目",也不是"连续8年正收益",而是能把「投资认知 → 脑科学 → AI编程」三者打通的能力。

这三件事从来不是对立的:

  • 投资认知告诉我"需要什么工具"——比如我知道自己容易犯 确认偏误,所以 FinBuddy 需要一个偏差检查模块
  • 脑科学告诉我"为什么犯错"——比如 损失厌恶系数 λ=2.25,亏100块的痛苦约等于赚225块的快乐,所以止损模块必须自动触发,不能靠意志力
  • AI编程告诉我"怎么把认知落地成工具"——比如用 Pydantic 严格校验 LLM 输出、用 DAG 编排多步骤任务、用合规工具过滤投资建议

这三者形成的闭环,才是别人永远抄不走的壁垒。而我把工具和目的搞反的那一个月,本质上就是把闭环拆成了三个独立的点,每个点单独看都有价值,但连不起来,所以越做越空。

这跟 投资日志 里写的过拟合是一个逻辑——回测年化40%的策略,如果只是参数调出来的,换一组数据立刻失效;只有理解了策略背后的逻辑,才能判断它是不是真的有效。项目也一样——如果只是闷头写代码,不理解每个功能背后的投资逻辑,写出来的就是"过拟合的代码",看着能用,实际上没解决真实问题。

一个月的数字

最后,给这一个月一个客观的交代:

指标数字
项目数量6个(FinBuddy、FinBuddy_Web、Promo_Web、SkillStore、MarketingVideo、Basic_Web)
开发天数30天(4月1日-4月29日)
FinBuddy 重构次数3次(单文件2000行 → 三层架构 → Swarm+进化系统)
Agent 数量变化7个 → 3个(砍掉4个,能力下沉为工具)
FinBuddy 工具数量5类(行情、财报、回测、知识库、合规)
技术栈跨度Python、TypeScript、FastAPI、Flask、Vue、React、Electron、Redis
投资研究天数0天
新研究笔记0篇
持仓公司季报阅读0份

最后三行是这一个月最刺眼的数据。6个项目从0到1跑通了,但投资的节奏完全断了。接下来要做的,不是停掉项目,也不是逼自己补课,而是把两者重新拧在一起。

接下来的节奏

我不打算做任何激进的调整。不是"明天开始每天研究8小时"这种自我感动式的计划——那种计划跟新年决心一样,撑不过三天。

我打算做的是:

  1. 每天1小时投资研究 — 不贪多,每天只看1家公司。研究过程中发现的手动重复步骤,记下来,作为 FinBuddy 的功能需求
  2. 每天1小时项目迭代 — 只做从研究中长出来的功能,不做"通用功能"。通用功能等真实需求出现再说
  3. 每天1小时阅读 — 投资经典、脑科学论文、技术文章,保持输入

3小时,不多不少。剩下的时间想干嘛干嘛——散步、发呆、看盘、跟朋友聊天。不用每分钟都"有产出"。

这个节奏我之前跑了7年,很稳,很舒服。只是这一个月被"一口气做6个项目"的冲动打断了。现在回来就好。

我可能错了

我不确定这个"每天3小时"的节奏是不是最优解。也许我应该花更多时间在项目上,趁热打铁把 MVP 打磨成可发布的产品。也许我应该先停掉所有项目,花两周集中补投资研究的课。

我也不确定"只做从研究中长出来的功能"这个策略对不对。也许有些通用功能——比如 SkillStore 的技能自动分类——虽然现在用不上,但长期来看是生态建设的一部分,太功利反而会限制项目的想象力。

但我确定一件事:这一个月的空和慌,不是因为"做错了项目",而是因为"忘了为什么出发"。只要把工具和目的重新对齐,让项目重新服务于投资,让投资反过来驱动项目,这个闭环就是通的。

至于闭环里每天跑多少小时、先跑哪条路——那是节奏问题,不是方向问题。方向对了,慢一点也没关系。