核心用法
CrabPath 是一个纯 Python 实现的记忆图引擎,采用「零依赖、零网络调用」设计哲学。开发者通过回调函数注入嵌入模型与 LLM 能力,实现完全可控的语义记忆检索。
构建阶段:split_workspace 将工作目录解析为图结构,batch_or_single_embed 批量生成向量,VectorIndex 建立 ANN 索引,最终 save_state 持久化。
查询阶段:index.search 获取语义种子节点,traverse 执行图遍历(支持学习权重),result.context 返回组装好的上下文。
学习阶段:apply_outcome 根据反馈(+1/-1)更新边权重,实现在线强化学习。
显著优点
1. 完全离线:可选 all-MiniLM-L6-v2 本地嵌入(80MB),无需 API Key,隐私零泄露风险。
2. 架构纯净:纯回调设计,不耦合任何供应商,便于测试与模型切换。
3. 学习进化:内置 outcome-based 边权重更新,记忆质量随使用提升。
4. CLI 完备:提供 init/query/learn/replay/health/merge/connect/journal 全套工具链。
潜在局限
- 功能成熟度:社区生态与 Star History 未披露,长期维护存疑。
- 性能瓶颈:纯 Python 实现,大规模图(百万节点)下遍历性能待验证。
- 嵌入质量:默认 80MB 模型语义能力弱于 OpenAI
text-embedding-3-large。 - 学习机制:简单 ±1 反馈,复杂场景下收敛速度与最优性未经验证。
适合人群
- 注重数据隐私、需完全离线运行的个人开发者或企业。
- 希望自建记忆层、不愿被 OpenAI/Anthropic 嵌入模型绑定的 AI 应用架构师。
- 研究图神经网络与检索增强生成(RAG)结合的学术/实验项目。
常规风险
- 供应链风险:pypi 包名
crabpath未被广泛验证,需审查源码签名。 - 持久化安全:
state.json包含完整图结构与向量索引,需加密存储并限制权限。 - 反馈投毒:
apply_outcome接受任意浮点值,需校验输入防止权重操控。 - CLI 注入:
--workspace/--graph等路径参数若直接拼接 shell,存在路径遍历风险。