YMOS V4 发布:基于过去四个月的优化后完整开源

摘要:V3 是一套能跑的系统,V4 是一个能装下你自己策略的框架。这四个月里这套系统在真实市场持续跑、也持续付学费,学费买到的最贵一条是:决策和执行不分开,纪律就是空话。V4 新增 Console 可视层(把纪律变成物理闸门)、Agents 运行时编排层、BrainStorm 思考沉淀层、账户级纪律层与问财数据适配层,同时做了一件反直觉的事——把我自己的仓位数字从公开仓库里全部删掉。V4 是纯增量升级,不动你的任何数据。


先说结论

如果你只想知道 V4 和 V3 差在哪,一句话:

V3 解决的是「信息处理不过来」,V4 解决的是「想清楚了却没照做」。

这是两个完全不同的问题。V3 那套 Eyes → Brain → 持仓与关注的链路,把信息压缩这件事做完了——每天四份报告,该看的都在里面。但报告看完之后呢?开盘那一刻,你还是会因为盘面一根阳线,买进一只昨晚根本没想过的票。

信息焦虑是能被系统解决的。动作变形不能,除非你给它加一道物理闸门。

V4 就是那道闸门。

先给要升级的人一颗定心丸:V4 是纯增量升级——加了三个新目录(Console/ Agents/ BrainStorm/)+ 改了文档和 SOP,没有改动任何一个存放你个人数据的文件。你的投资偏好、状态机、个股文件夹、报告归档,在 V4 的提交里一行都没碰。具体怎么升在文章后半段。


V3 之后这四个月,我付的学费

V3 发布是三月中旬。之后这四个月,这套系统每天在跑,我也每天在用。

学费主要交在一个地方:我把产生决策的任务,排在了早上。

最初的定时任务配置是这样的:投资雷达早上 08:30 跑,收盘后不看盘,第二天起来看完雷达就开盘。听起来很合理——最新的数据、最新的判断,然后立刻执行。

实际发生的是:我每天都在盘前临时做决策,然后带着刚出炉的判断,冲进开盘的情绪里。

雷达 08:30 出报告,09:00 开盘。中间那半小时,我在读一份自己还没消化的分析,同时盯着集合竞价跳动。这不是决策,这是应激反应。

后来我把雷达整个挪到 16:45 收盘后,让它同时干三件事:账户曲线体检、连续不盈利的熔断判定、输出「次日决策定调」。

动作从「盘前想」变成「昨晚就想完了」。第二天早上,我只是在执行一份已经存在的计划。

如果你从这篇文章里只拿走一条,就是这条:把产生决策的任务,全部挪到收盘后。

V4 的很多设计,都是这一条的展开。


V4 到底加了什么

下面五块是这次更新的重点。按重要性排,不按目录排。


一、Console 可视层:把纪律变成物理闸门

V3 里,纪律是写在 SOP 里的文字。P12 会审查、会提醒、会说「这笔不符合你的规则」。

但文字拦不住人。你可以看完提醒,然后照买不误。

V4 新增的 Console/ 是一个本地跑的可视层,三个页面共用一个服务、一个端口(默认 127.0.0.1:5273):

页面什么时候用干什么
交易计划台收盘后定调、审持仓、审观察、列明日动作
新高买卖决策台出手前开新仓 / 加仓 / 止盈 / 止损各一组门,全绿才允许扣扳机
Reader任何时候把散在十几个目录里的报告聚成一页

决策台:四组门,一条都不能漏

「开新仓」这个动作,要过四组门:

检查什么
前置 · 开盘防冲动在收盘计划内 / 不是冲动买回 / 试仓规模合规
核心新高门核心卡位 / 突破新高 / 市场环境 Risk-on / 行业 Beta 向上 / 板块中军主升
股性门K 线毛刺少 / 大阴柱少 / 走势流畅 / 摩擦成本低 / 体感过关
提前量门 · T+1明日预演能不能做出来 / 涨幅体检

其中第一条是这样的:

在收盘计划内 —— 这笔买入是昨晚收盘计划里定好的,标的、条件、买点都想过,不是盘中临时起意。盘中冒出的新机会:只进 Watchlist,今晚收盘再审

如果昨晚的计划里没有这只票,这道门就是红的。你依然可以强行买——没有人能阻止你下单——但你会看到自己在违规,而且这次违规会被写进 Brain/决策审计/

止盈和止损也各有内核。止盈的内核只有一句:「我判断这只票明天大概率不会再涨了」;止损是「买入逻辑已失效,且明天大概率要跌」。核心判断没勾清,或者一条触发条件都没命中,那你现在想卖的可能只是盘中情绪,不是纪律。

计划与执行的联动

交易计划台定好的计划,会自动带到决策台的各个 tab:计划内的动作变绿,计划外的变红拦截。这就是「决策在收盘后做完,开盘只执行」在产品上的落地。

三个工程上的取舍

  • 后端是 Python 标准库写的,零第三方依赖,只绑 127.0.0.1,不对外暴露。
  • 数据全部落成你自己 vault 里的 Markdown——交易计划写到 Brain/交易计划/YYYY-MM/,决策留痕写到 Brain/决策审计/YYYY-MM/。没有数据库,没有私有格式。
  • 不启动服务也能用,退化为本地暂存 + 导出(.md / 剪贴板 / JSON / 打印)。

规则是外置的

rules.example.json 里的门禁只是一份样例,不是标准答案。复制成 rules.json 就能换成你自己的门禁和仓位口径,删掉某个字段就回退到内置默认。想改得更彻底,直接让你的 Agent 改页面——它就是几个静态 HTML。


二、Agents:从「一堆 SOP」到「4 个角色 + 一条调度链」

V3 有十几份 SOP,每份都说清楚了「这件事怎么做」。但没说清楚「谁来做、按什么顺序、能写哪些文件、怎样算完成」。

V4 加了 Agents/,把它升级成四个角色:

Market Insight  ──→  Investment Radar  ──→  Strategy  ──→  Portfolio State
   看市场            收盘审计 + 定调         做分析          状态写回

两条硬规矩:

  1. 顺序不能乱——洞察 → 雷达 → 策略 → 状态写回。跳步的结果是下游读到半成品。
  2. 状态写回只有一个出口——四个角色里只有 Portfolio State 能改状态机。多个出口 = 状态不一致 = 系统开始骗你。

每个角色配了五段式执行手册EXECUTION_PLAYBOOK.md):前置检查 → 执行步骤 → 异常处理 → 成功判定 → 写回边界。定时任务的提示词同时读角色卡 + Playbook + 对应 SOP,角色边界才真正生效。

这里要澄清一个容易误会的点:Agents/ 是协议,不是四个自动运行的进程。 把文件复制进目录不会自动注册任何任务,实际运行仍然由你或你的宿主定时任务触发。

宿主无关:Claude Code / Codex / OpenClaw 等都能用。多数宿主目前只给你一个主控会话,所以是单主控按顺序扮演 4 个角色,不是真并发——这已经足够把编排的好处拿到手。等宿主支持真子 agent,协议直接映射过去,文档不用改。


三、Reader:把十几个目录聚成一页

Reader 在 V4 里合并进了 Console/,跟两个决策台共用同一个端口,只需启动一个服务。

  • config.json 就是目录对照表:整块目录配置外置成 JSON,示例已按 V4 结构配好六个分区。想改 Reader 显示什么,改配置,不用动代码。
  • 七种扫描模式tree / flat-md / flat-whitelist / tree-text / flat-text / latest-month-dirs-text / recent-days-text,按每个目录的实际形态挑。
  • 能接 YMOS 之外的目录roots 里加一条就行,支持绝对路径和 ~
  • 「📅 今日全家桶」一键载入当天所有日报;⌘K 过滤;右键复制路径 / 打开位置 / 用 Obsidian 打开。
  • 跨平台:文件管理器和剪贴板在 macOS / Windows / Linux 分别走各自命令(原版只支持 macOS)。
  • 只读:Reader 只能读 reader_pages 里允许的目录,flat-whitelist 会校验精确文件名,不能靠猜路径读到同目录的其他文件。只有计划目录和审计目录允许写入。

四、纪律层:单票纪律管不住账户级风险

V4 新增了四份纪律文件 + 两个 P 系列提示词。其中我认为最被低估的是 账户资金曲线.md

账户资金曲线

大部分人只盯单票盈亏。但决定你能不能活下来的,是账户级的状态:

  • 连续几周不盈利,问题通常不在选股,在风险偏好——该降敞口,而不是换标的。
  • 曲线在最高点时最危险:这时最容易追加本金、放大仓位,回撤会被同步放大。
  • 单票赚钱但账户不涨,说明摩擦成本仓位分配有问题,看单票永远看不出来。

记录方式很轻:每交易日收盘后追加一行,只记事实不记情绪,粒度宁粗勿断——哪怕只记「盈 / 亏 / 平」,也比断了好。

有了这张表,「连续 N 周不盈利就熔断」才是一条能执行的规则。没有它,那就是一句口号。

其余三份

文件解决什么
SOP_周度复盘.md用账户曲线定下周攻防基调,含熔断规则和新高三禁(禁加本金、禁放大仓位、禁开非计划新仓)
击球区注册表.md把买点从「盘中的感觉」变成「盘前定好的条件」。字段里最关键的是 evidence_needed——还缺哪些证据才敢下手,诚实填写,这是防自欺的关键
主线首发信号跟踪.md板块级首发信号(SIS)与代表权判断:中军 / 弹性龙头 / 稀缺卡点 / 低估值补涨四个角色,加上势能阶段判定。后段和退潮 = 追高必死区

两份都有同一条纪律:区间命中 ≠ 买入信号,首发信号 ≠ 买入信号。 它们只触发「盘前预备卡」,真实买入仍要走 P5 + P12 + 你自己拍板。还有一条:状态失效了改 status不要删行——删掉就看不到自己当初为什么等、后来又为什么放弃了。

两个新提示词

  • P17 核心资产判定七问 — 含股性 / 可持有性评估,Raise-and-Beat 加权
  • P18 每日异动 × 核心资产扫描 — 把每天的异动池和你的核心资产库做交叉

外加 Brain/SOP_单标的P9P17专项调研.md,给你人工点名某只票时的深研入口。


五、BrainStorm:接住那些没法结构化的东西

投资里最重要的东西,往往是最没法填进表格的:复盘时突然想通的一句话、反复出现但说不清的困惑、同一个错误犯了第三次时的那种烦躁。

这些东西不写下来,三个月后你会原样再犯一次。

BrainStorm 是个三层结构:

Raw_Thoughts(原始输入,按日保存)
      ↓  AI 整理
Summarized_Insights(提炼,按月归档)
      ↓  同类感悟出现 ≥3 次才升级
MEMORY.md / 投资感悟归档 / 状态机(长期)

投资感悟归档 里有三个抽屉:短期灵感 → 长期框架 → 执行清单,逐级升格。判断标准很简单:如果这条三个月后还成立,写进 MEMORY;只在这周成立,写 Insight。

MEMORY.md 里我认为最值钱的是「❌ 已证伪 / 已放弃」那一栏——记下你曾经相信、后来发现是错的东西,以及为什么。没有这一栏,你会隔一年再信一次。

但真正让 BrainStorm 有意义的是最后那一步回写

决策留痕 / 周度复盘 / P11 复盘 → 感悟 → 升级为原则 → 回写 当前关注方向与投资偏好.md → P5 / P12 在你下次出手时用它拦你。

这个闭环是 BrainStorm 存在的全部理由。感悟不回写,就永远不改变行为。 你只是换了个地方感慨而已。

配套的 brainstorm_memory.py 是个零依赖的上下文加载器,AI 每次头脑风暴前自动读长期记忆和最近 Insight。


六、问财数据适配层(可选 · Beta)

A 股用户的结构化数据增强。这一层完全可选,不配也不影响主链路。

首发适配两条链路:A 股 What’s Hothithink-astock-selector)和美股条件选股hithink-usstock-selector)。公告 / 研报 / 新闻 / 财务四个入口随仓库提供,但标记为实验性,启用前建议用自己的 Key 冒烟测试。

配套的新 SOP:SOP_Whats_Hot.mdSOP_美股热门追踪.mdSOP_Watchlist自动建档.mdSOP_核心资产动态判定表.mdSOP_A股核心资产回踩扫描.md

两个设计上的克制:

  • 官方 Skill 不随 YMOS 二次分发。你从问财 SkillHub 自己装,YMOS 只负责跨宿主发现、输出归一化和失败降级。
  • skill_resolver.py 统一解析路径:支持 YMOS_SKILL_ROOT 环境变量 + 五个常见位置自动查找。Skill 没装时给出安装指引,而不是抛异常——主链路照常跑。

还定了一条信源优先级,我觉得比工具本身更重要:

公告 / 财报原文 > 结构化财务 > 研报叙事 > 新闻事件 > 网页摘要


我把自己的仓位数字,从仓库里删了

这是 V4 最反直觉、但我认为最重要的一次改动。

V3 的 P7(组合检查)里,有这么一行:

确保我的组合符合 “40% 核心 / 20% 卫星 / 40% 现金” 的顶层架构

这是我自己的配置。它适合我的资金属性、我的风险承受度、我的持仓周期。

写在公开仓库里,它就变成了一个看起来像标准答案的东西。有人会照抄。照抄的人里,有人的资金是三年不用的闲钱,有人的资金是六个月后要交首付的——同一组数字,对这两个人是完全不同的风险

所以 V4 把这件事彻底分开了:

内容谁负责
框架层工作流、运行时、状态机、决策闸门、复盘与阅读工具公开仓库提供
个人 Constitution 层能力圈、持仓周期、风险偏好、买卖门槛、仓位阈值、行为弱点你自己填

公开版现在只保留相对原则

  • 曲线顺 → 正常仓位,不临时放大总敞口
  • 震荡 → 仓位减半,降低风险偏好
  • 回撤中 → 暂停开新仓,如确需验证只用你定义的最小试探仓

至于「回吐多少算触发」「连续几周算熔断」「单票上限多少」「最多持几只」——全部由你预先定义。V3 里那些「2–3 手」「回吐 1/3」「连续 3 周」「最多 3 个持仓」的默认值,已经全部清掉了。

系统只剩一条硬约束:盘前写好、写死,不在盘中临时改口径。

这也是为什么 V4 的定位不再是「勇麦投资策略的复制品」,而是让任何投资者把自己的投资思想代码化的基础设施

我的策略是我用真金白银试出来的,它对我成立。但它不是你的,也不该假装是。


V3 用户怎么升级

先说结论:V4 是纯增量升级,不需要重装,也不会动你的数据。

你的数据在哪

升级前先认清这几个文件——它们在仓库里以空模板形式被跟踪,而你本地已经填满了内容:

文件里面是什么
持仓与关注/当前关注方向与投资偏好.md你的投资灵魂文件
持仓与关注/持仓_状态机.md你的持仓真相源
持仓与关注/Watchlist_状态机.md你的关注真相源
持仓与关注/持仓备忘录_视图.md收口生成的状态快照

其余的都安全:个股文件夹、历史报告、.env、自定义 RSS 源,全部已被 .gitignore 忽略,升级碰不到。

方式一:用 git(推荐)

cd 你的YMOS目录
git stash            # 如果你改过被跟踪的文件,先暂存
git pull
git stash pop        # 把你的改动放回来

为什么这样是安全的:V4 的提交没有修改上面那四个文件。git 只在「你改了 A,上游也改了 A」时才产生冲突——这里上游没动,所以你的内容会原样保留。

真出冲突也只可能在 rss_sources.json.env.example 上(V4 改了里面的版本注释串),保留你自己的版本即可。

方式二:下载 ZIP(⚠️ 这里最容易出事)

如果你不用 git 而是解压覆盖,直接覆盖会清空你的投资偏好和状态机,因为仓库里那四个文件是空模板。

正确姿势是:先备份 → 解压到独立目录 → 只把新增的和框架类的拷过来(Console/Agents/BrainStorm/Brain/references/、各类 SOP、根目录文档),那四个文件一个都不要拷

三个新增模板可以放心拷,V3 里没有它们:账户资金曲线.md击球区注册表.md主线首发信号跟踪.md

无论哪种方式,升级前先 cp -r 持仓与关注 ~/ymos-backup 备份一份。一分钟的事,省掉所有心理负担。完整步骤见仓库里的 UPGRADE.md

升级后做三件事

1. 启用 Console

cd Console
cp config.example.json config.json     # 编辑它,指向你的 vault
python3 server.py

打开 http://localhost:5273。三个页面共用这一个端口,零依赖,不用装任何包。

2. 起用 BrainStorm(可选但建议)

对 AI 说「开始今天的头脑风暴」即可,目录已经建好。

3. 让 Agent 重读文档

先读 总入口暗号.md 和 AGENT_GUIDE.md,我升级到 V4 了

V4 新增了运行时协议、新暗号和若干 SOP,Agent 需要重新加载路由表。

三个常见疑问

Q:我 V3 用得好好的,非升不可吗?
不是。V3 的三模块链路在 V4 里一行没改,你可以继续用。V4 加的是执行层的闸门沉淀层——如果你觉得自己「知道该怎么做但盘中总是做不到」,那 V4 才对你有意义。

Q:升级会影响我的定时任务吗?
不会。原有的四步闭环暗号完全不变,V4 新增的暗号是加法,不覆盖旧的。

Q:我改过 P 系列提示词,会被覆盖吗?
会。Brain/references/ 是被跟踪的框架文件,改造过就用 git 的 stash/pop 流程,或升级前备份。长期建议:把你的个性化改动记在 BrainStorm/投资感悟归档/长期框架/ 里——这样即使文件被覆盖,你的思路还在。


推荐 Agent 工具:分清「统筹层」和「执行层」

YMOS 能在任何支持文件读写 + Python 执行的 Agent 环境里跑。但「能跑」和「值得当总管」是两件事。

① 统筹层:负责长期记忆与协调的常驻框架(建议只选一个)

  • 推荐 Hermes(Nous Research 开源)——本地运行、数据不出本机,文件读写 / 代码执行 / 定时任务 / 持久化记忆齐全。我目前的 YMOS 就是以 Hermes 作为整体 Agent 框架在跑的,记忆、角色编排、任务串联都收在这一层。
  • 也可以用 OpenClaw(龙虾)——同样本地优先,支持定时任务与 subagent 编排。

为什么统筹层建议只选一个:YMOS 的价值来自状态机、账户曲线和长期记忆的连续性。两个框架各记一半,你就有了两份互相不知道对方存在的记忆——这比没有记忆更糟

② 执行层:按单个对话 / 单个任务调用(可以多个并存)

  • Claude Code / Claude Cowork、ChatGPT Codex 都很成熟。我的实际用法是把部分定时任务 routing 给 Claude Code 或 Codex 分担,跑完把产出写回 YMOS 目录,统筹层照常读文件,互不冲突。
  • 文档里推荐的其他 Agent 工具,实际用下来都能跑通 YMOS。跑一次深研、改一份 SOP、调一个脚本这类单次任务,挑顺手的用就行。

一句话:统筹记忆与协调用 Hermes,具体任务谁顺手用谁。 执行层换来换去没关系,因为真相源始终是磁盘上那些 Markdown,不是某个 Agent 的会话上下文。


定时任务:先只配三个

V4 附了一份 Agents/SCHEDULES_REFERENCE.md——一套真实跑了几个月、迭代过二十多版的配置,含 A 股 / 美股双链路时间表和五条踩坑约束。

但我不建议你照抄全套。第一次配定时任务,先配这三个跑两周

优先级任务理由
1市场洞察(每个交易日早上)最低成本的信息压缩,跑不跑得通一眼看出来
2投资雷达(每个交易日收盘后决策与执行解耦的核心,价值最高
3周度复盘(周日晚上)账户级视角,防止你只盯单票

两周后你会很清楚:哪份报告你每天都点开,哪份你从来没看过。然后再决定加什么、停什么。

关于「停什么」,判据只有一条:

这个任务的产出,我最近一个月真的看过吗?

一个健康的配置,长期启用的任务应该在 4–6 个。超过十个,说明你在用定时任务缓解焦虑,而不是在解决问题。

顺带一提美股链那个容易配错的坑:运行日是周二到周六,因为美股周一收盘对应北京时间周二凌晨。配成周一到周五的话,周一凌晨会跑一个空的。


系统的本质

跟 V3 那篇一样,最后还是这句:

YMOS 不帮你赚钱——它帮你不犯低级错误。

V4 只是把这句话往前推了一步:它帮你在最想犯错的那一刻,还能按自己定好的规矩走完。

把信息焦虑交给 Eyes,把分析苦力交给 Brain,把状态记忆交给持仓与关注,把纪律执行交给 Console,把长期认知交给 BrainStorm。你腾出来的时间和精力,用在投资里真正值钱的事上:

  1. 打磨策略 — 优化你的判断框架
  2. 做关键判断 — AI 给建议,你盖章
  3. 深度调研 — 自己读研报、跟踪行业、理解公司

第 3 点尤其重要。AI 能帮你建档和跑分析链路,但真正的认知差来自你对公司的深度理解。你手动放进个股文件夹的研报和笔记,都会自动成为 AI 后续分析的上下文——你研究得越深,AI 的输出质量越高。

你的系统,你做主。


📦 文档与资源

📧 联系


⚠️ 它不预测行情,也不告诉你买什么。 行情不可预测,只能应对。
YMOS 解决的是另一件事:把你自己的判断流程固定下来,让你在最容易犯错的时候,还能按自己定的规矩走完。
本文不构成任何投资建议。二级市场九死一生,只要还参与、唯一活路就是保持进化。