记忆智能引擎

MIE是一个为AI代理提供共享、持久知识图的服务,使跨会话、工具和提供商的信息得以保留和共享。

  • by kraklabs
  • Go
  • 本地部署
  • 44 星标
  • 更新于
在 GitHub 查看 kraklabs/mie

使用说明

MIE - Memory Intelligence Engine

Stop re-explaining yourself to every AI agent. MIE gives all your agents — Claude, ChatGPT, Cursor, Gemini — a shared, persistent knowledge graph they can read and write. Decisions, context, facts, and relationships survive across sessions, tools, and providers.


问题

你向克劳德解释了你的整个建筑。两个小时的背景、决定、权衡。第二天,新的对话——它什么都不知道。所以你再解释一遍。然后切换到Cursor进行实现。零上下文。你打开ChatGPT,从不同的角度进行头脑风暴。白板。

你使用的每一个人工智能代理都很聪明,但都会失忆。他们谁也不说话。

MIE解决了这个问题。 一个知识图谱。每个代理都从中读取信息。每个代理都向其写入信息。你的决定、你的背景、你的规则——随时随地都可用。

运作原理

You: "We chose PostgreSQL over DynamoDB because we need ACID
      transactions for the payments module. Alternative was Aurora
      but too expensive at current stage."

          Claude stores this via MIE
                    ↓
┌─────────────────────────────────────────────┐
│              MIE Knowledge Graph             │
│                                              │
│  Decision: PostgreSQL over DynamoDB          │
│  Rationale: ACID transactions for payments   │
│  Alternatives: [DynamoDB, Aurora]            │
│  Entities: payments-module, PostgreSQL       │
│  Status: active                              │
└─────────────────────────────────────────────┘
                    ↓
    Next week, in Cursor, different project:
    "What database did we choose and why?"
    → Cursor queries MIE, gets full context instantly

无复制粘贴。不,正如我之前提到的,不从零开始。

为什么不直接使用Claude的内存/ChatGPT的内存?

平台内存 MIE
交叉代理 ❌ 克劳德不知道你对ChatGPT说了什么✅ 所有代理共享同一图表
结构化 ❌ 平面文本摘要 ✅ 类型化节点:事实、决策、实体、事件
可查询 ❌ 基本关键字召回 ✅ 语义搜索、图遍历、冲突检测
便携式 ❌ 锁定到一个提供者 ✅ 您的数据,您的机器,可导出
关系 ❌ 无 ✅ “这一决定与该实体有关,是由这一事件引发的”
历史 ❌ 默默覆盖 ✅ 失效链——看看发生了什么变化以及原因

快速开始

1.安装

brew tap kraklabs/mie
brew install mie

2.初始化

mie init                    # Quick setup with defaults
mie init --interview        # Interactive — asks about your stack, team, and project

3.连接到您的AI代理

克劳德代码 (.mcp.json):

{
  "mcpServers": {
    "mie": {
      "command": "mie",
      "args": ["--mcp"]
    }
  }
}

光标 (.cursor/mcp.json):

{
  "mcpServers": {
    "mie": {
      "command": "mie",
      "args": ["--mcp"]
    }
  }
}

就是这样。你们的特工现在共享一个大脑。

存储什么

MIE不是聊天记录。它将结构化知识存储为图形:

事实 --你的世界是真实的。 “我们的API使用JWT和RS256签名。”·“团队由3个时区的6名工程师组成。”

决策 --有理由和备选方案的选择。 “由于CGO-CozoDB绑定,CIE选择了Go over Rust。替代方案:Rust、Python。”

实体 --人、公司、项目、技术。 “Kraklabs——独立软件和人工智能实验室”·“CIE——代码智能引擎”

事件 --时间戳事件。 “2026年1月15日发布v0.4.0。”·“客户端演示计划于3月10日进行。”

话题 --连接一切的重复主题。 “架构”·“安全”·“产品战略”

这些通过类型化关系连接——决策引用实体,与主题相关,并可能由事件触发。当代理查询“您对我们的安全决策了解多少?”时,MIE遍历图并返回结构化上下文,而不是关键字匹配。

MCP工具

MIE通过模型上下文协议公开了12个工具:

工具 它做什么
mie_analyze 在存储之前处理与上下文相关的表面——代理决定哪些内容值得记住
mie_store 将事实、决策、实体、事件和关系写入图表
mie_bulk_store 批量存储多达50个具有交叉引用的节点,非常适合从文件或git历史中导入知识
mie_get 按ID检索具有完整详细信息的单个内存节点
mie_query 语义搜索、精确查找或跨所有节点类型的图遍历
mie_list 使用分页功能列出和筛选节点
mie_update 使过时的事实无效,更新状态——保留完整的历史记录
mie_delete 删除具有级联(嵌入+边)的节点或删除单个关系
mie_conflicts 检测存储知识中的矛盾
mie_export 将完整图形导出为JSON或Datalog
mie_repair 重建HNSW索引并清理孤立嵌入
mie_status 图表健康状况、节点计数、使用指标

零服务器端推断

与在服务器上运行LLM以对要存储的内容进行分类的其他内存解决方案不同,MIE使用 代理人作为评估人 图案。服务器提供上下文;你的代理(已经在运行LLM)决定什么是重要的。这意味着零额外的推理成本——你的内存层不会燃烧令牌。

这一理念延伸到导入:当你要求你的代理“从这个仓库导入知识”时,代理会直接读取你的文件、ADR或git历史记录,并使用 mie_bulk_store 坚持它所提取的东西。MIE仍然是一个纯粹的存储引擎——连接的代理就是LLM。

建筑

┌─────────────────────────────────────┐
│  Any MCP Client                     │
│  Claude · Cursor · ChatGPT* · etc   │
└──────────────┬──────────────────────┘
               │ MCP (JSON-RPC over stdio)
┌──────────────▼──────────────────────┐
│  MIE Server  (one per MCP client)   │
│  12 tools · semantic search ·       │
│  graph traversal · conflicts        │
└──────────────┬──────────────────────┘
               │ Unix domain socket
┌──────────────▼──────────────────────┐
│  MIE Daemon  (shared singleton)     │
│  Manages exclusive DB lock ·        │
│  Serves multiple clients            │
└──────────────┬──────────────────────┘
               │ Datalog queries
┌──────────────▼──────────────────────┐
│  CozoDB (embedded)                  │
│  Graph DB · HNSW vectors · ACID     │
└─────────────────────────────────────┘
       + Ollama (optional, local embeddings)

通过指向MIE Cloud(即将推出)的自定义GPT操作进行ChatGPT。

多个MCP客户端(Claude、Cursor等)可以同时运行——守护进程持有独占数据库锁并多路复用访问。守护进程在首次使用时自动启动,也可以通过手动管理 mie daemon.

内存生命周期

 Store                    Query                     Evolve
 ─────                    ─────                     ──────
 Your agent learns   →    Next session, any    →    Facts change.
 something new.           agent queries MIE         Old ones get
 It stores a fact,        for context before        invalidated, not
 a decision, or an        responding. Full          deleted. The graph
 entity — with            graph of related          keeps history of
 confidence scores        knowledge returns         what was known
 and relationships.       in milliseconds.          and when.

配置

# .mie/config.yaml
version: "1"
storage:
  engine: rocksdb         # rocksdb, sqlite, or mem
embedding:
  enabled: true
  provider: ollama        # ollama, openai, or nomic
  model: nomic-embed-text
mcp:
  # Option A: only expose these tools (whitelist)
  include_tools:
    - mie_analyze
    - mie_store
    - mie_query
  # Option B: expose all except these (blacklist)
  # exclude_tools:
  #   - mie_export
  #   - mie_repair

所有设置都可以用环境变量覆盖。嵌入是可选的——MIE可以在没有嵌入的情况下工作(仅限精确搜索)。

这 mcp 部分是可选的。如果省略,则所有12个工具都会暴露出来。使用 include_tools 将特定工具列入白名单,或 exclude_tools 隐藏一些。如果两者都被设置, include_tools 优先。过滤后的工具也会被拒绝 tools/call.

命令行界面

mie init                    # Create config with defaults
mie init --interview        # Interactive project bootstrapping
mie --mcp                   # Start as MCP server (auto-starts daemon)
mie daemon start            # Start daemon in background
mie daemon start --foreground  # Start daemon in foreground (for debugging)
mie daemon stop             # Stop running daemon
mie daemon status           # Check if daemon is running
mie status                  # Show graph statistics
mie export                  # Export memory graph
mie import -i backup.json   # Import from JSON or Datalog
mie reset --yes             # Delete all data
mie query "<cozoscript>"    # Raw Datalog query (debug)

先决条件

  • 转到1.24+ (源建筑)
  • 奥拉玛 (可选,用于语义搜索)-- ollama pull nomic-embed-text

MIE在没有Ollama的情况下工作。您将获得精确匹配搜索和图遍历。添加Ollama进行语义搜索(“查找与部署相关的内容”,而不是精确的关键字)。

与CIE一起使用

MIE与 CIE(代码智能引擎).作为MCP服务器运行这两个程序:

{
  "mcpServers": {
    "cie": { "command": "cie", "args": ["--mcp"] },
    "mie": { "command": "mie", "args": ["--mcp"] }
  }
}

CIE让您的代理深入了解您的代码库。MIE让它记住其他一切——决策、建筑、人、事件。总之,你的代理人知道你的代码 和 记得为什么它是这样建造的。

路线图

  • [x] 从ADR、markdown和git历史导入(代理驱动的自导入)
  • []Git提交后钩子——从提交中自动捕获决策
  • []浏览器扩展——从claude.ai、chatgpt.com、gemini自动获取知识
  • []MIE Cloud——跨设备同步,团队共享内存
  • []通过自定义GPT操作集成ChatGPT
  • []用于探索和管理知识图谱的Web UI

加入候补名单: kraklabs.com/mie

许可证

MIE拥有双重许可:

贡献

我们欢迎捐款。看 贡献.md 作为指导方针。


建造于 克拉布斯 ·制造商 国际照明委员会 和MIE