codemix 最近放出了 @codemix/graph。消息本身不复杂:这是个 TypeScript 图数据库,支持 schema 驱动的顶点、边和索引定义,做编译期和运行时校验;查询上给了 Gremlin 风格 traversal,也给了 Cypher-like 字符串查询。
真正让它和普通图库拉开距离的,不是“又支持一种查询语法”,而是它能把底层切到 Yjs。切过去后,图数据进入 Yjs CRDT 文档,多标签页、多端实时同步、presence、细粒度订阅和 live query 一起跟上。
这就是这条新闻的核心变量。codemix 不只是在发一个库,它在试着把图数据库、协作状态层和 AI agent 可调用的上下文接口,压成同一套入口。
它到底做了什么,和常见方案差在哪
先看事实锚点。官方公开写到的能力主要有这些:
- schema 驱动的顶点、边、索引定义
- 编译期 + 运行时属性校验
- Gremlin 风格 traversal API
- Cypher-like 查询语言,列出支持
MATCH、CREATE、MERGE、SET、DELETE等部分子句 - 通过
@codemix/y-graph-storage把底层存进 Yjs CRDT - 切到 YGraph 后,支持实时同步、presence、细粒度订阅与 live query
这和几类常见东西都不完全一样。
| 你可能会拿它对比什么 | 相同点 | 不同点 | 现在别高估什么 |
|---|---|---|---|
| 普通 TypeScript 图库 | 都能建点、边、关系 | 它多了 schema、查询语言和可切换存储层 | 这不自动等于成熟数据库能力 |
| 传统图数据库 | 都在讲图查询 | 它更偏 TS 开发体验和协作式状态集成 | 目前没有看到大规模性能或复杂查询基准 |
| 给 Yjs 套一层图 API | 都依赖 CRDT 协作 | 它把类型系统、索引、遍历、Cypher-like 查询一起打包 | CRDT 友好不代表权限、审计、规模化都解决 |
所以我更愿意把它看成“图数据开发栈”,不是单点库。它把几个本来分散的层合起来了:数据结构、类型约束、协作同步、查询接口。
对谁最有吸引力,也很明确。
做本地优先、多人协作产品的 TypeScript 团队,会最先试。因为这类团队本来就要自己拼很多层:状态同步、订阅、离线、结构化关系数据、给外部工具调用的接口。现在有人把这些先捆好一包,试用门槛自然低很多。
但如果你现在就在选核心数据库,我会建议采购和迁移都先延后。原因不复杂:官方自己已经写了 alpha-quality,而且公开信息里还没有把性能边界、复杂索引维护成本、分布式一致性边界说透。
真正值得看的,是它在抢哪一层
页面里最直白的一句,是“a single source of truth for your product. For humans and AI.” 这不是装饰文案。这句几乎把意图全说了。
codemix 想讲的故事是:产品语义、业务约束、用户流程、知识关系,最好都进同一张图;人用这张图,AI agent 也用这张图;MCP 和 LLM 则通过统一查询接口去拿上下文。
这才是它和“又一个图数据库”之间的区别。图数据库只是壳。真正要抢的是上下文层。
历史上这种事并不新鲜。数据库厂商从来不甘心只卖存储,谁占住结构层,谁就更容易往上拿工作流和平台控制权。今天换了 AI 叙事,底层逻辑没变。所谓“天下熙熙,皆为利来”,争的还是入口,只是入口从表单、文档、API,换成了 agent 的上下文调用链。
这也是我觉得它有看头的原因。不是因为它已经证明自己很强,而是因为它选的切口很现实:
- AI 产品需要可结构化、可追踪、可查询的上下文
- 协作产品需要实时同步、离线和订阅
- TypeScript 团队希望少拼胶水层
把这三件事绑一起,确实打中了当下不少团队的工程痛点。
最大的问题不在野心,在成熟度和口径的落差
官方承认得很清楚:这是 alpha-quality software。它只说在 codemix 自家生产环境里使用良好。
这句话有价值,但也就到这里。它不能自动推出三件事:外部大规模验证已经完成、复杂场景已经跑通、它可以替代成熟图数据库。
目前公开材料里,还看不清几个关键问题:
- 图规模变大后,Yjs 存储和索引维护会不会明显变重
- 高频协作下,live query 和细粒度订阅的成本有多高
- Cypher-like 会扩到什么程度,还是停在够 MCP/LLM 调用的轻量层
- 复杂权限、审计追踪、企业治理怎么补
这里尤其要把话说准:它是 Cypher-like,不是已经证明完整兼容 Neo4j 生态。它用了 Gremlin 风格 traversal,也不代表它就自动进入成熟图数据库那套工程能力区间。
这不是抬杠,是边界感。协作冲突友好,和复杂查询、权限治理、审计留痕,是不同问题。别把一个问题的解法,误当成整套系统的解法。
对两类读者,动作建议可以更具体一点。
如果你是做本地优先协作应用的 TypeScript 工程师,可以试原型,甚至可以试内部工具。你获得的是更快的拼装速度,代价是要自己验证规模和边界。
如果你是产品架构师,别急着迁核心库,也别急着把“single source of truth”当采购依据。先做小范围验证:查询复杂度、冲突模型、权限补丁、审计需求、索引成本。跑不过这些,故事再顺也只是故事。
我更在意的是,codemix 的口径已经在往平台走,成熟度还停在 alpha。这个张力很真实。库能试,叙事要打折。
接下来最该观察的,也就三件事:有没有外部团队验证;有没有更清楚的性能和一致性边界;它最后会停在开源库,还是继续变成 codemix 自家平台底座。看清这三件事,才能判断它到底是工具,还是入口。
