Nima Core

🧠 AI Agent 的完整认知记忆架构

为 AI Agent 提供持久记忆、情感智能与认知架构的完整解决方案,默认零配置离线运行,支持多智能体协同与预测性记忆加载。

收藏
11.4k
安装
2.8k
版本
3.1.3
CLS 安全扫描中
预计需要 3 分钟...

使用说明

核心用法

NIMA Core 是一个专为 AI Agent 设计的认知架构栈,通过 pip install nima-core && nima-core 一键部署,零配置即可启用持久记忆功能。系统通过 OpenClaw Hook 机制深度集成到 Agent 工作流中:

  • 记忆捕获 Hook (nima-memory):在对话保存后触发,执行三层捕获(输入/沉思/输出)与四阶段噪声过滤
  • 实时回忆 Hook (nima-recall-live):在 LLM 调用前触发,基于向量+文本混合搜索,按生态相关性评分后注入上下文
  • 情感分析 Hook (nima-affect):在收到消息时触发,使用 VADER 情感分析器映射到 Panksepp 七种基本情感状态

显著优点

1. 完整的认知模块栈:从基础记忆到高级认知功能全覆盖——动态情感系统(Panksepp 7-affect)、梦境整合(夜间自动提取模式)、蜂群心智(多 Agent 记忆共享)、预知记忆(时序模式挖掘预测性预加载)、清醒时刻(情感共鸣记忆自发浮现),以及达尔文式记忆(自动聚类去重)

2. 隐私优先设计:默认使用本地嵌入模型(384维),完全零外部网络调用;所有数据存储于 ~/.nima/ 本地目录,无 NIMA 自有服务器、无专有追踪、无分析数据外发

3. 灵活的嵌入提供商:支持四种嵌入方案——本地(默认免费)、Voyage AI(1024维,$0.12/1M tokens)、OpenAI(1536维)、Ollama(本地 GPU,768维),按需渐进升级

4. 高性能存储后端:可选 LadybugDB 图数据库,相比 SQLite 文本搜索快 3.4 倍(9ms vs 31ms),原生支持 HNSW 向量索引(18ms)与 Cypher 图查询,存储空间减少 44%

5. 企业级安全特性:FTS5 参数化查询防 SQL 注入、路径遍历防护、临时文件自动清理、API 调用超时保护(30s/10s)、输入过滤(系统消息/心跳/重复内容拦截)

潜在缺点与局限性

  • 认知模块的复杂性:功能栈庞大(11 个核心模块),学习曲线陡峭,小型项目可能过度设计
  • 可选功能依赖外部 API:记忆剪枝器(Memory Pruner)使用 Anthropic API、预知功能依赖外部 LLM 端点,需显式配置 API 密钥并承担相应成本
  • LadybugDB 迁移成本:从 SQLite 迁移至 LadybugDB 需额外安装 real-ladybug 包并执行迁移脚本
  • 多 Agent 协同的运维开销:蜂群心智功能需 Redis pub/sub 基础设施,增加了分布式系统的部署复杂度
  • 本地嵌入质量权衡:默认本地嵌入(384维)在语义捕捉精度上可能逊于云端大模型,需根据场景权衡

适合人群

  • AI Agent 开发者:需要为 ChatBot、智能助手、自治 Agent 添加长期记忆与情感智能
  • 多 Agent 系统架构师:构建协作型 Agent 网络,需要共享记忆池与群体认知
  • 隐私敏感型用户:要求数据完全本地化处理,拒绝云端依赖的场景
  • 研究者和实验者:探索认知架构、情感计算、记忆机制的理论验证

常规风险

| 风险类型 | 说明 | 缓解措施 |
|---------|------|---------|
| 数据持久化风险 | SQLite 文件损坏可能导致记忆丢失 | 定期备份 `~/.nima/memory/`;生产环境建议 LadybugDB |
| API 密钥泄露 | 可选云嵌入/剪枝功能需配置密钥 | 使用环境变量管理,避免硬编码;定期轮换密钥 |
| 情感状态漂移 | 长期运行的 Affect 系统可能产生情感偏差累积 | 监控 `affect_state.json`,必要时手动重置基线 |
| 记忆注入攻击 | 恶意构造输入试图污染记忆库 | 四层噪声过滤已内置;敏感场景启用额外内容审查 |
| 资源消耗失控 | 记忆库膨胀、定时任务(梦境整合)占用资源 | 配置记忆剪枝策略;监控 `~/.nima/logs/` 资源使用 |

Nima Core 内容

nima_core文件夹
cognition文件夹
openclaw_hooks文件夹
nima-affect文件夹
nima-memory文件夹
nima-recall-live文件夹
手动下载zip · 253.0 kB
__init__.pytext/plain
请选择文件