① 我为什么盯上了这个项目
我做了 3 年量化策略,去年转头扎进 AI 工具链。
副业是一个股票情绪分析 Dashboard。每天的工作流大概长这样:开 Tiingo 抓数据、跳到 Notion 写策略、跳到 GitHub 提交代码、跳回浏览器看新闻、再跳到 ChatGPT 让它帮我总结 PDF……
光是窗口切换,我一天能浪费掉两小时。
不是夸张。我真的算过。
试过 Raycast、试过自建 Notion AI 工作流、试过 Claude Desktop + MCP,也试过那个国内卖 998 的"AI 工作流大师课"。结论是——它们都只解决了一半。
这两天刷 GitHub trending,撞见一个项目叫 OpenHuman。3.4k Star,1737 次提交,69% Rust 写的桌面 AI 助手,自称要做"你的私人超级智能"。点进去看了一眼 Memory Tree + TokenJuice 的设计思路。
然后我沉默了大概十秒。
不是因为牛——是因为这玩意儿的核心想法,跟我自己憋了半年没动手的那个 idea,几乎一模一样。
考虑到国内订阅claude确实有一点困难,大家尽量去一些靠谱的订阅平台,可以参考下:claudemax.shop

就是这只看起来人畜无害的小黄人。GitHub Trending 第一,3.4k Star,背后是 1737 个 commit 和 69% 的 Rust 代码量。
看着像个表情包项目,骨子里其实是个野心很大的"个人超级智能"。这种"皮糙肉厚里包着硬核架构"的开源项目,我一向警惕——因为多半藏着我想偷的东西。
② 直接给结论
能不能用 Claude Code 复刻一个属于自己的版本?能。
值不值得?看你想要什么。
我花了 7 天,啃完了它的三个核心模块(Memory Tree、TokenJuice、Connector 体系),用 Claude Code 搭了一个自己的精简版——3 个核心模块、不到 4000 行 TypeScript(我没碰 Rust,原因后面讲)、本地能跑、能接 5 个我每天必用的工具。
打分:8.5 / 10。
扣的 1.5 分,是因为 Rust 那块我躲了,集成数也没卷到 118。剩下的能力盘子,确实搭得起来。
③ 先把官方版本跑起来
复刻之前,先理解原作者在想什么。
# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/tinyhumansai/openhuman/main/scripts/install.sh | bash
# Windows
irm https://raw.githubusercontent.com/tinyhumansai/openhuman/main/scripts/install.ps1 | iex
装完打开是个桌面吉祥物(带表情那种),看着挺玄学——直到我打开 .agents/ 目录。
发现它的 agent 配置全是声明式的 yaml/markdown,每个 agent 一个文件,包含 prompt、工具、记忆访问权限。
那一刻我懂了:这项目能火,不是因为吉祥物可爱。
④ 用 Claude Code 复刻:4 个模块拆给你看
我把 OpenHuman 拆成 4 个最值钱的模块。每个都讲一下"它是怎么做的"和"用 Claude Code 怎么复刻"。
4.1 Memory Tree —— 真正的"AI 长期记忆"
OpenHuman 最核心的卖点叫 Memory Tree。
每个记忆节点不超过 3k token,用 Markdown 文件存在本地 SQLite 里,节点之间用类似 Obsidian 的 wiki 链接互相引用。
为什么是 3k?
因为大多数模型在 3k 上下文里检索表现最稳,超过就开始飘。这个数字不是拍脑袋——Karpathy 早些时候在 X 上聊过类似思路,OpenHuman 把它直接落地了。
我让 Claude Code 帮我设计自己的 Memory Tree 时,是这么开的对话:
我要做一个本地知识库,每条记忆是 markdown 文件,<=3k token,要支持父子节点引用、检索按 BM25 + 向量 hybrid。先帮我设计目录结构和 schema,不要写代码。
Claude Code 没有像普通 chat 那样劈头给我一段 800 行代码。
它先反过来问了我两个问题:要不要跨设备同步?检索延迟容忍多少?
这就是 Claude Code 跟普通对话式 AI 编程最大的区别——它知道先想清楚再动手。
确认完需求,它分步生成了 memory/ 目录结构、schema.sql、检索接口的 TypeScript 类型签名。全程我只动了三次手指——确认、确认、再确认。
到第 4 天,我的精简版 Memory Tree 已经能跑了。检索延迟 50ms 出头,本地存了 200 条左右的金融笔记和策略想法。
写到这里我自己都笑了。
我花了 5 年想搞一个自己的"第二大脑"。过去用 Notion、Roam、Logseq 全失败。这次用 Claude Code 加一份 OpenHuman 的设计文档,4 天就摸出来了。
具体说一下我让 Claude Code 怎么做的,因为这套路你可以直接拿去抄。
第一步是读源码。 我把 OpenHuman 拉到本地,让 Claude Code 用 Glob + Read 把 memory/ 和 packages/memory-tree/ 两个目录全部扫了一遍,要求它输出一份"模块依赖图 + 关键数据结构"。它扫完给我的文档不到 2 页,但把核心抽象点出来了——MemoryNode 有三类、检索走 hybrid pipeline、节点之间用一种类 wiki link 的语法互引。
第二步是写设计文档。 我没让它直接动代码。让它先按我的需求(个人用、纯本地、跨设备先不做)写一份 DESIGN.md,包含目录结构、schema、检索流程的伪代码。这一步特别关键——让 AI 先把"想法"落到文字上,再让它落到代码里,错误会少一半。
第三步才是动手。 设计文档 review 完,让它按 TDD 来:先写测试,再写实现。Claude Code 的 TodoWrite 把整件事拆成了 14 个小任务,每完成一个我看一眼 diff,确认没跑偏再让它继续。
全程我没有写过一行实现代码,但我看过每一行实现代码。
这就是 Claude Code 跟"AI 自动写完一整个项目"那种工具的本质区别。它不是替你写,是带你写。
4.2 TokenJuice —— 那个号称省 80% token 的东西
OpenHuman 还有个组件叫 TokenJuice,号称压缩 80% token 消耗。
我一开始是不信的。
毕竟"省 80%"这种宣传词,在 AI 圈基本等于"我们组的 KPI 是 80%"。
我让 Claude Code 帮我去翻 OpenHuman 的源码(Rust 那一段它读得有点吃力,但能读),扒了一圈,实现思路其实不玄:
-
对历史对话做语义聚类
-
把同义改写、寒暄、重复指令折叠成"摘要节点"
-
对真正信息密度高的部分保留原文
说白了就是——让 AI 自己学会"上下文里哪些是废话"。
我没有 100% 复刻它的算法(Rust 我躲了),让 Claude Code 用 TypeScript 给我写了个简化版:用 embedding 距离做聚类,对距离 <0.15 的相邻消息做摘要替换。
测下来在我的金融笔记场景里,省了 62%。
不到 80%。但已经够了。
中间踩了个坑值得说一下。
我一开始让 Claude Code 写聚类的时候,它给我用的是 cosine similarity + 阈值 0.85,结果摘要把我"看多 / 看空 / 持有"三个完全相反的策略笔记折叠到一起去了。
差点把我的回测记录搞成一锅粥。
Claude Code 一看测试挂了,自己反过来问我:"是不是阈值太松?要不要加一个'相反意图检测'的前置判断?"——它给我加了一层情绪极性判断,距离阈值也收到 0.92。再跑就没事了。
这就是为什么我说 Claude Code 是"带你写"——它会犯错,但它会看测试,会反思,会问你。
你只要把测试写够,剩下的它能自己绕回来。

4.3 OAuth 118 集成 —— 看着唬人,其实是体力活
OpenHuman 最唬人的数字是"118 个第三方集成"。
我一开始以为他们写了 118 套独立适配器,准备膜拜。
打开 connectors/ 目录我才意识到——所有 connector 都是同一个抽象壳里塞不同的 OAuth config。
真正的代码量没那么大,大头是 OAuth scope 配置和 webhook 处理。
这种东西最适合 Claude Code。
我给它列了 5 个我每天必用的工具(Notion、GitHub、Gmail、Slack、Linear),让它按 OpenHuman 的 Connector 接口生成实现。
具体流程是这样的:
-
让 Claude Code 读 OpenHuman 的
connectors/notion一份现成实现,提炼出接口契约 -
用 WebFetch 拉 Notion / GitHub / Slack 的 OAuth 官方文档,让它对照着写 config
-
让它按同一份接口契约生成 5 个 connector,每个写完都跑一遍 e2e 测试
每个 connector 大概 80-150 行代码。加 OAuth 配置,不到一天全搞完。
更省心的是,OAuth 那种最容易翻车的 callback URL 校验、token 刷新、scope 不够时的重试,Claude Code 在写 Notion 那个的时候踩过一次坑,剩下 4 个就再没翻车——它把第一次的经验自己记进了 Memory Tree。
剩下的 113 个集成?等我用得到再说。
我做这种东西的原则是:不为了"完整"做完整,只为了"够用"做够用。
每次想多卷一个集成的时候,我都会问自己一句话——这个东西,我一周会用几次?少于 3 次的,不做。
这套筛子帮我躲过的坑,比我想象的多。
4.4 Agent 配置文件 —— 最被低估的细节
OpenHuman 把每个 agent 写成一个声明式 markdown 文件,里面包含 system prompt、可调用工具、记忆访问权限。
这个设计的好处用 Claude Code 复刻时立刻就感受到了。
我让 Claude Code 帮我改 agent 行为时,它直接编辑那个 markdown 文件,不用动一行代码。
这才叫真正的 agent 工程化。
不是写一堆 if-else,不是搞一个 100 行的 system prompt 然后再也不敢改。
是把 agent 当作"可热更新的配置"来管。
4.5 桌面吉祥物的表情 —— 我承认我做不出来
这块我没复刻。
不是不会,是没必要。
OpenHuman 用 Tauri + 一套自己写的表情渲染,技术上能学,但对我一个量化老炮来说,"AI 助手长得像不像 Pokemon"不在我的需求列表里。
让 Claude Code 给我做了个最简版的系统托盘 + 通知气泡。能弹消息就行。
4.6 完整 7 天时间表 —— 别问,问就是流水账
把整个搭建过程拆给你看,省得你以为我在吹"7 天能复刻一个 3.4k Star 项目"这种鬼话。
Day 1(周六)—— 拆源码
把 OpenHuman clone 到本地,让 Claude Code 用 Explore 子代理把核心目录全扫一遍,输出一份模块依赖图。下午把 Memory Tree 那一块的源码细读完。晚上写了一份个人版的 DESIGN.md。
Day 2(周日)—— 搭 Memory Tree 骨架
按 DESIGN.md 让 Claude Code 用 TDD 写 schema + 节点 CRUD。中午 schema 跑通,下午把 hybrid 检索做完。晚上塞进去 50 条测试笔记,能查能改。
Day 3(周一)—— 上班摸鱼,没动。
老实说。这个项目是副业,工作日不可能全力推。我中午抽了一小时让 Claude Code 把 Memory Tree 的导入导出工具写了,仅此而已。
Day 4(周二晚)—— TokenJuice 简化版
写聚类,踩坑(就是把多空策略折叠的那次),打补丁,跑通。3 小时。
Day 5(周三晚)—— 5 个 Connector
按上面讲的流程一个一个搞。中间 Slack OAuth 的 scope 配错了,搞了半小时才发现是我没勾 chat:write。
Day 6(周六)—— UI + 系统托盘
托盘 + 通知气泡 + 一个简单的对话面板。用了 Tauri,因为 Claude Code 写 Rust 那部分能力刚好够用。
Day 7(周日)—— MCP 适配 + 调优
接 MCP 那 200 行代码 + 一上午调性能。下午写了这篇文章。
注意一下日历——周六到周日,刚好 7 天。
不是我闲着没事算时间,是我想告诉你:一个有副业、有正职的量化打工人,靠 Claude Code 把这事做下来真的是可能的。
不是周末 hackathon 的那种"做出个能 demo 的玩具",是能每天用、能跑数据、能扛实际工作流的版本。
4.7 MCP 集成 —— 顺手接上了一堆现成工具
OpenHuman 没有把 MCP 当一等公民,但它的 Connector 接口跟 MCP 协议长得很像。
我让 Claude Code 帮我写了一层薄薄的适配,把 MCP server 当作 Connector 注册进去。这样所有 Anthropic 生态里现成的 MCP 工具(Slack、GitHub、Linear、Filesystem、Fetch 这一堆),我都能直接用,不用每个再写一遍 OAuth。
这一层适配总共 200 行代码。
写完那一刻我盯着代码看了挺久。之前我一直以为生态壁垒是产品护城河,写完这层适配我意识到——它也可以是产品后门。
聪明的开源项目早晚都会在 MCP 这条线上接上。
OpenHuman 还没接,我先接上了。
⑤ 三盆冷水
吹了这么多,泼几盆冷水。
第一——复刻 ≠ 粘贴。
你以为照着 README 搭一遍就能拿到一个能用的产品?做梦。OpenHuman 那 1737 个 commit 里,有 70% 是在解决你看不到的边界 case。Claude Code 能帮你写代码,但产品的"为什么这么设计"它替不了你想。
第二——Rust 部分别硬刚。
OpenHuman 后端 69% Rust。Claude Code 读 Rust 没问题,但让它写一段高并发的 Rust 内存安全代码?它会写,但你得有能力 review。我直接放弃了,全用 TS 重做。性能差一截,个人用够了。
第三——118 集成是数字游戏。
听着唬人,实际你能用的就 5-10 个。别被这个数字迷惑,给自己定一个根本完不成的目标。我做完 5 个常用的就停了。

⑥ 对金融 AI / 独立开发者意味着什么
对量化和金融 AI 那帮人来说,这事的意义不在于"我也能搭个吉祥物"。
意义在于——你终于可以把自己的工作流封闭在本地,不用把策略、持仓、笔记送给云端 LLM。
OpenHuman 的本地优先 + Memory Tree 设计,配上 Ollama,可以完整跑在自己的机器上。
我那个股票情绪 Dashboard 现在直接挂在精简版 OpenHuman 后面,每 20 分钟同步一次新闻 + 持仓变化,进 Memory Tree。开 Claude Code 写策略时,它能从我的 Memory Tree 里调出上个月的回测笔记,自动接上下文。
这种"本地 AI + 个人知识库"的范式,过去一年所有人都在喊。
但真正能跑起来的开源项目,OpenHuman 是我目前见过的最完整的一个。
往深一点说——金融这个行业的 AI 落地,最大的卡点从来不是模型不够强,是数据不能出。
券商不让,基金不让,连个人做策略的也不愿意把 alpha 信号发给 OpenAI。
OpenHuman 这种"本地 Memory Tree + 可选 Ollama"的架构,是少数能绕开这个卡点的设计。把它的精简版搭起来之后,你的每一个策略想法、每一次回测笔记、每一笔持仓变化,都只在你自己的硬盘里流动。
模型层用 Ollama 跑 Qwen2.5 或者 DeepSeek,性能比 GPT-4 差一截,但比"不能用云"强一万倍。
这件事的意义,跑过策略的都懂。
⑦ 给你的建议(按段位分)
如果你是小白(只用过 ChatGPT,从没自己跑过开源项目):
先别想复刻。把 OpenHuman 装下来用一周,感受一下 Memory Tree 和 Connector 怎么改变工作流。再决定要不要自己搭。
如果你是中级(写过点东西,会 Git,能跑 Docker):
找一个核心模块(推荐 Memory Tree),用 Claude Code 跟着 OpenHuman 的源码一起读,边读边复刻一个 TypeScript 版本。3 天能跑通。
如果你是老手(自己造过轮子):
直接 fork,把 Rust 那部分换成你熟悉的栈,重点拆 TokenJuice 和 Agent 配置那两块——这是 OpenHuman 真正值钱的地方。
再说几个我没单独拎出来讲、但你做的时候一定会撞上的细节:
关于上下文窗口。 Claude Code 默认会管好自己的上下文,但你做这种"读老项目源码+复刻"的活,最好开始就让它把 OpenHuman 的目录结构、关键文件路径写进 CLAUDE.md,每次它需要找东西就少走弯路。
关于 Skills。 Claude Code 有个我极度推荐的能力叫 Skills——把"读 Rust 源码"、"写 TDD 测试"、"做架构设计"这种重复模式封装成可触发的指令。OpenHuman 复刻这种工程,把 Skills 用起来效率能再翻一倍。
关于 review。 我每天结束前会让 Claude Code 把当天所有改动做一份 diff 摘要,自己再过一遍。这一步看着没用,但救过我至少两次——一次是它给我把 SQLite 的写事务搞成了非事务(性能炸了),一次是它把 Memory Tree 的索引建错了字段。
人不能完全信 AI。哪怕它叫 Claude。
⑧ 一句话收尾
写到这里我盯着自己这 4000 行 TypeScript 看了几分钟。
不是因为它写得多漂亮——说实话比 OpenHuman 那 1737 个 commit 锤出来的工程美感差太远——而是因为,半年前我连"自己搭一个本地 AI 桌面助手"这种话都不敢说出口。
那时候我以为这种事是大厂团队的事,是开源大佬的事,是有 GPU 集群的人的事。
不是我这种白天看 K 线、晚上写策略的量化打工人能碰的。
但 OpenHuman 让我看到了范式。Claude Code 让我看到了路径。
工具的终局不是替代人,是让人有底气去搭以前不敢碰的东西。
强烈推荐。如果你也在做量化、金融 AI 或者独立开发,评论区聊。我那个精简版可能过段时间会开源出来,到时候挂出 repo 在这篇文章下面更新。