Interpretational Database创新理念,API按「吸入-融合-公理」三阶段模拟人类记忆过程,无schema迁移,支持Ed25519签名保证数据完整性。
"当所有人都在撒谎时,INDB 记得你看到了什么。"
我们并不是奔着做一个更快的 PostgreSQL 去的。
我们要做的东西很难归类:一种解释性数据库(Interpretational Database)——记忆在这里是"被读取意义"的地方,而不是"被归档"的地方。不是越胀越大的存档。是吸入混乱、呼出噪声、保留一份签名核心的系统。
地址:indb.tech。文档:docs.indb.tech。以下是我们在 v0.7 实际交付的内容。
大多数数据系统假设:
你在写入时定义意义(schema、类型、迁移)
你用类 SQL 的动词来查询
人类记忆不是这样运作的。
你先观察。意义稍后才来——依赖上下文,有时自相矛盾。重复被压缩成习惯。有些东西你存了,但从未主动访问过。
INDB 将这条流水线显式建模:
这不是营销废话。API 就是这么组织的。
七个字段。无 schema。有意为之。
INDB 没有迁移。没有 SQL 意义上的列类型。一切皆是 Event——一种通用容器:
如果你需要四十个字段,你大概率在建模一个存档——而不是记忆。
curl -X POST https://api.indb.tech/api/v2/events \
-H "Content-Type: application/json" \
-d '{
"raw_data_anchor": ["server", "heartbeat", "ok"],
"location": "infra/edge/eu-west",
"ttl": 86400
}'
你不是在插入一行。你是在教引擎认识现实的一个新片段。
语义类型,而非 SQL 列
在这七个字段之下是一套语义类型系统——类型描述的是你存储的是哪种"思想",而不是它占多少字节:
摄入时,INDB 会推断意图:含 lat/lon 的 dict 变成 location;原始字节变成 binary;嵌套 dict 变成 struct。你不用声明 ALTER TABLE——你只管发数据,内核来分类。
对隐私而言关键的区别:
binary — 服务器知道这是二进制,验证大小和 MIME,但不解释内容
blind — 服务器不知道里面是什么;客户端 ChaCha20 加密后存为 Base64 不透明 blob。认知模块完全跳过它
完整规范:docs.indb.tech/TYPING/
location 字段不是标签。是空间锚点——认知引擎用它做邻近计算、聚类和相关性判断。
格式 A — 虚拟命名空间(逻辑路径、agent、书籍、服务):
{ "location": "books/Dostoevsky/The_Idiot" }
格式 B — OSM 地理对象(真实世界锚定):
{
"location": {
"lat": 55.7558,
"lon": 37.6173,
"osm_id": "node/1234567"
}
}
坐标经过验证(lat −90…90,lon −180…180)。osm_id 接受全部三种 OpenStreetMap 实体类型——node/、way/、relation/。一家咖啡馆、一条街、一个区——都是合法锚点。
地理信息也存在于 tokens 中。在 raw_data_anchor 里加 osm: 前缀(如 osm:London, UK)可将信号绑定到地点,而无需复制 location 字段。
引擎用它做什么:
Echo 谐波分析给 meta-location 加 50% 权重——锚定到同一 OSM 对象的事件共鸣更强
Fusion 惩罚同一事件中多个 osm: token——防止仅凭地理巧合过度聚类
坐标对之间的 Haversine 距离驱动跨集群的邻近度评分
同一事件,两种锚定方式——命名空间用于小说和 agent,OSM 用于传感器和野外作业:
curl -X POST https://api.indb.tech/api/v2/events \
-H "Content-Type: application/json" \
-d '{
"raw_data_anchor": ["sensor", "temperature", "22.4", "osm:Jerusalem, Israel"],
"location": {"lat": 31.7683, "lon": 35.2137, "osm_id": "node/26131744"}
}'
认知动词,而非 CRUD
我们的公开 API 读起来像记忆行为,而不是数据库操作:
六种协议在线:HTTP、GraphQL、WebSocket、gRPC、UDP、MCP。内核里零 Redis、零 Postgres、零 Mongo——我们是认真的。
Layer 2:加密 alone 给不了你的东西
AES-256-GCM 和 TLS 是 Layer 1。每家厂商都有。
INDB 的 Layer 2 是结构层面的:
客户端在本地对事件签名。服务器存储 public_key + signature——私钥永不过 API。恢复用 key_id = SHA-256(public_key),一个公开指纹。API 响应也用 Ed25519 密封。
blind_payload——引擎是一个没有眼睛的见证者
你在客户端加密。INDB 存储一个不透明 blob。跨 Raft 节点复制。需要时返回。
它从不读取它。服务器上没有解密密钥。Prism、Echo、Instinct 只在 raw_data_anchor tokens 上运作——不接触秘密的分析。
黑盒契约(Black Box Contract)在协议层面被强制执行:
你可以隐藏里面是什么。你无法隐藏你来过这里。
当 blind_payload 被设置时,timestamp 和 location 是必填的——这不是表单验证的细节,而是存在性的条件。如果当局来问,系统只有一个答案:
"这里有过什么东西。在这个位置。在这个时间。"它是什么——架构上未知。
我们称之为无法外泄——不是因为我们承诺得漂亮,而是因为根本没有什么可以交出去。
(客户端注意事项:如果你的 SDK 把密钥记录到分析日志里,架构就破了。我们明确标注了这个边界。)
两种悖论(同一个词,不同相位)
这在我们内部曾经造成困惑,直到我们给它命了名:
Paradox(类型)——观察之前。POST /api/v2/paradox 发送空 raw_data_anchor。只有上下文。当有人观察时内容坍缩——sample_once 诞生一个签名 Event;sample_on_read 保持 ephemeral。
Prism 悖论——观察之后。事件固定,读法竞争。Prism 返回 meaning、alternative_readings、perception_gap、is_paradoxical。引擎呈现矛盾,而不是选出一个赢家。
同一个词。记忆的不同层级。两者都是信号,不是错误。
用 observer context 试试 Prism——意义是关系性的,不是内置的:
curl -X POST https://api.indb.tech/api/v2/prism/synthesize \
-H "Content-Type: application/json" \
-d '{
"query": "felt almost impossible",
"observer_context": {
"token_weights": {"silence": 2.0},
"vocabulary": {"Subjective": ["felt", "almost"]},
"harmonic_weights": {"emotion": 0.8}
}
}'
同样的 tokens。不同的观察者。不同的读法。系统不决定谁"对"。
Grain:当条形码逻辑遇上人类记忆
严格的 Ed25519 是条形码级验证:约 0% 噪声容忍率。对公理正确。对记忆则不然——部分引用、导出损坏、表面变化。
所以我们发布了 Grain——一个内核模块,噪声容忍轴上四个层级:
一个端点。tier: auto 从证据中选取。响应暴露不确定性——false_accept_risk、insufficient_signal(当文本太短以至于无法做统计检测时;诚实地板,不是假信心)。
curl https://api.indb.tech/api/v2/grain/tiers
完整规范:docs.indb.tech/GRAIN/
外部世界:四个孤岛(条形码 SDK、QR 库、生物识别 FAR/FRR、生成式水印)。INDB:一个频谱,在同一条摄入、融合、签名的流水线内部。
记忆会压缩(35:1 实测)
重复不是数据——是模式。
三条"到家了"事件融合为一个,fusion_count: 3。日常被压缩。"凌晨 3 点的警报"保持独立。测试中 Fusion 比率:35:1。
声誉即引力:
Mass = Count × Reputation²
一千条机器人消息(rep 0.01)重量不如一条传感器心跳(rep 0.99)。系统将群体噪声呼出为废热。
可插拔,而非单体
Hermes connector:LLM agent 记忆 via MCP(ingest_event、query_events)。Moltbook connector:AI agent 社交信息流 → moltbook://{submolt}/{author} 上的事件。
禁用一个 connector——核心依然呼吸。模块化,而非单例。
Ops:浏览器 WUI 在 api.indb.tech/wui/ 或终端 TUI(./start_tui.sh)。
我们发布的数字(v0.7 生产环境)
<1ms 摄入(standalone)
负载下 99.7% 成功率(997/1000 事件)
~20ms Prism · <30ms Echo · ~25ms Instinct
栈内零外部数据库
6 种协议包括 MCP(for agents)
Raft 3 节点集群——面向需要共识的自托管用户——Docker Compose 在文档里。
不是所有人。INDB 适用于:
你需要签名、防篡改的历史
你必须在不暴露内容的前提下证明"你在场"
矛盾应被呈现,而不是被静默消解
身份验证必须容忍噪声而不放弃公理
AI agent 需要持久的解释性记忆,而不是挂上去的又一张向量表
法律证据。医疗审计追踪。新闻源保护。带 UDP 摄入和融合的 IoT。Agent 记忆(Hermes/MCP)。
五分钟上手
# Health
curl https://api.indb.tech/health
# Inhale
curl -X POST https://api.indb.tech/api/v2/events \
-H "Content-Type: application/json" \
-d '{"raw_data_anchor":["devto","reader","hello"],"location":"blog/intro"}'
# Grain spectrum
curl https://api.indb.tech/api/v2/grain/tiers
# Swagger
open https://api.indb.tech/docs
文档:docs.indb.tech
Grain:docs.indb.tech/GRAIN/
API:api.indb.tech/docs
联系:indb.tech/#contact
我们在为真相而建——在这个操纵的时代。如果你的技术栈把数据当作记忆——而不是文件柜——我们很想听听你会先压测什么。
吸入混乱。呼出噪声。记住公理。