使用说明
心智🧠
心智 是为您的AI代理提供的本地共享长期内存服务。
- 完全在本地运行 码头工人
- 将所有内容存储在一个单一的 SQLite 数据库与 sqlite-vec 用于矢量搜索
- 用途 开放路由 用于嵌入+可选的LLM辅助(分类和总结)
- 暴露a Gradio v6用户界面 对于人类
- 暴露一个 MCP服务器 代理(Claude、Cursor等)在同一端口上
一切都在你的机器上。
建筑
- 数据库: SQLite与
sqlite-vec作为vec0用于嵌入的虚拟表:contentReference[oacite:3]{index=3}- 主要表格:
memories,vec_memories,clusters,memory_relations
- 主要表格:
- 嵌入: 开放路由
/embeddings- 型号:
MIND_EMBEDDING_MODEL(默认值qwen/qwen3-embedding-8b):content参考[oacite:4]{索引=4}
- 型号:
- LLM辅助(可选): 开放路由
/chat/completions- 型号:
MIND_LLM_MODEL(默认值qwen/qwen-2.5-7b-instruct,在.env):content参考[oacite:5]{索引=5} - 用于推断
type,tags,importance和asummary对于每个内存
- 型号:
- UI和MCP: Gradio v6
Blocks,与mcp_server=True自定义主题/CSS/gradio_api/mcp/:content参考[oacite:6]{索引=6}
先决条件
你可以完全通过Docker运行Mind(推荐)。
必需
- OpenRouter帐户+API密钥
- 创建OpenRouter帐户
- 获取API密钥并设置
OPENROUTER_API_KEY在.env
- 码头工人 & Docker Compose
- Docker 24+推荐
- Compose v2+(通常与Docker桌面捆绑在一起)
可选(适用于许多MCP客户端)
如果您的MCP客户端仅支持 本地stdio服务器 (Claude Desktop、许多Cursor版本等),您还需要:
- Node.js (20+推荐)
mcp-remote全局安装:
npm install -g mcp-remote
mcp-remote 是一个小型CLI,允许仅支持stdio的MCP客户端与Mind的HTTP MCP端点进行通信。
配置(.env)
创建一个 .env repo根目录中的文件:
# Required: OpenRouter key
OPENROUTER_API_KEY=YOUR_OPENROUTER_API_KEY_HERE
# Optional overrides (all have defaults in code)
MIND_EMBEDDING_MODEL=qwen/qwen3-embedding-8b
MIND_LLM_MODEL=google/gemini-2.5-flash-lite-preview-09-2025
MIND_EMBEDDING_DIM=4096
SQLITE_VEC_PATH=/usr/local/lib/vec0
MIND_DATA_DIR=./data
MIND_DB_PATH=./data/mind.db
MIND_SERVER_NAME=0.0.0.0
MIND_SERVER_PORT=7860
# AI assist: if true, Mind uses an LLM to infer type/tags/importance/summary
MIND_AI_ASSIST=true
# Reserved for future automatic clustering
MIND_AUTO_CLUSTER=true
笔记:
OPENROUTER_API_KEY必须 设置。MIND_AI_ASSIST默认为truein代码和indocker-compose.yml,因此除非您明确关闭AI辅助,否则它将处于打开状态。
奔跑的头脑
Docker(推荐)
构建并运行:
docker compose up --build
这个:
- 安装Python deps+
sqlite-vec进入图像 - 确保
/app/data数据库存在 - 启动Mind服务器
http://localhost:7860 - 创建/使用
mind_data持久存储卷
访问权限:
数据:
- SQLite数据库位于
/app/data/mind.db集装箱内 - 坚持在
mind_dataDocker卷
本地(非Docker)开发
如果你想直接运行Brain:
pip install -r requirements.txt
export OPENROUTER_API_KEY=sk-or-...
python -m mind.main
相同端点:
AI辅助:它做什么
当 AI辅助已启用 (MIND_AI_ASSIST=true 和/或每次通话 use_ai 标志为真):
-
memory_engine.create_memory()将呼叫classify_memory()通过OpenRouter。 -
LLM返回JSON,其中包含:
type:其中之一fact,preference,task,journal,notetags:小写标签列表importance: 0.0–1.0summary:单行描述
-
当你添加内存时,Mind会使用这些来填充缺失的元数据。
您可以通过以下方式禁用AI辅助:
- 设置
MIND_AI_ASSIST=false在.env,以及 - (如果UI仍然显示“使用AI”复选框)取消选中它,则调用pass
use_ai=False.
即使关闭了人工智能辅助,Mind仍然:
- 存储文本
- 通过OpenRouter进行计算机嵌入
- 支持语义搜索
UI使用
用户界面位于 http://localhost:7860 并且在 mind/ui.py.
1.添加内存
-
转到 “添加内存” 选项卡。
-
填写:
- 内存文本 -你想让Mind记住的。
- 可选的 标签 –逗号分隔的列表,如
work, cursor, project-x. - 可选的 重要性 –滑块从0.0到1.0。
-
点击 保存到脑海中.
引擎盖下:
-
mind_add_memory(UI处理程序+MCP工具)调用memory_engine.create_memory(). -
如果启用了AI辅助,LLM会建议类型/标签/重要性/摘要。
-
Mind通过OpenRouter计算嵌入并插入到:
memories(元数据+原始文本)vec_memories(嵌入)
UI中显示了存储内存的JSON表示,包括 id, uuid, type, tags, importance、时间戳等。
2.搜索记忆
-
转到 “搜索” 选项卡。
-
输入自然语言 搜索查询例如:
- “我昨天做了什么?”
- “我的Node.js偏好设置”
-
可选择调整 最大结果.
-
点击 搜索思维.
引擎盖下:
-
mind_search_memory电话memory_engine.search_memories()与您的查询。 -
Mind通过OpenRouter嵌入查询,然后运行sqlite-vec搜索:
WITH matches AS ( SELECT rowid, distance FROM vec_memories WHERE embedding MATCH ? ORDER BY distance LIMIT ? ) SELECT m.*, matches.distance FROM matches JOIN memories m ON m.id = matches.rowid WHERE m.deleted_at IS NULL ORDER BY matches.distance; -
结果以JSON格式返回,每个结果都有一个
distance分数(越小越接近)。
3.删除内存
最底层 搜索:
- 注意数字
id您要删除的内存。 - 请输入 内存id.
- 点击 删除.
引擎盖下:
mind_delete_memory电话memory_engine.delete_memory(id).- 心软删除记忆(
deleted_atset)并从中删除其嵌入vec_memories.
MCP服务器
Mind通过Gradio v6在以下平台上公开MCP工具:
http://localhost:7860/gradio_api/mcp/
此端点通过MCP说话 HTTP流 运输,而不是stdio。
可用工具(简化)
核心工具(包括UI和MCP)是:
1️⃣ mind_add_memory
async def mind_add_memory(
text: str,
tags_text: str | None = None,
importance: float = 0.5,
)
当用户说出以下内容时使用:
- “请记住,我正在与Bun.Use Mind一起进行极光项目。”
- “使用Mind记住我明天需要复习入职培训。”
行为:
- 将文本存储为内存。
- 可选地使用AI辅助对类型/标签/重要性/摘要进行分类。
- 返回存储的内存对象,包括其
id.
2️⃣ mind_search_memory
async def mind_search_memory(
query: str,
max_results: int = 20,
)
当用户说:
- “用Mind告诉我昨天做了什么。”
- “Mind还记得奥罗拉项目吗?”
- “在Mind上搜索我的编辑偏好。”
行为:
- 嵌入
query,搜索vec_memories,并返回到max_results最接近的比赛。
3️⃣ mind_delete_memory
async def mind_delete_memory(memory_id: int)
当用户说:
- “从脑海中抹去这段记忆。”
- “从脑海中删除内存42。”
行为:
- Soft删除内存,删除其嵌入,然后返回
{ "deleted_id": 42 }.
使用MCP客户端的Mind
为什么 mcp-remote 通常是必需的
Mind(通过Gradio)与MCP对话 HTTP流.
大多数当前的MCP客户端(Claude Desktop,许多Cursor版本)仅支持 进程/stdio MCP服务器。 mcp-remote 弥合这一差距:
MCP客户端⇄ 标准输入输出⇄
mcp-remote⇄ HTTP流⇄ Mind
安装 mcp-remote
npm install -g mcp-remote
示例配置(克劳德桌面/光标样式)
{
"mcpServers": {
"mind": {
"command": "mcp-remote",
"args": ["http://localhost:7860/gradio_api/mcp/"]
}
}
}
现在你可以说:
- “使用Mind记住,我最喜欢的编辑器主题是Nord。”
- “用头脑告诉我昨天做了什么。”
- “使用Mind删除关于旧仓库的记忆。”
mcp-remote 将:
- 从本地进程开始,通过stdio与MCP对话。
- 将这些调用转发到Mind的HTTP MCP端点。
- 将结果返回给客户端。
直接 url (如果您的客户端本机支持HTTP MCP)
未来的一些客户端将直接支持HTTP MCP。在这些配置中:
{
"mcpServers": {
"mind": {
"url": "http://localhost:7860/gradio_api/mcp/"
}
}
}
但今天,大多数IDE客户端仍然需要 mcp-remote 桥。
环境变量(参考)
全部处理完毕 mind/config.py:
OPENROUTER_API_KEY(必需的)OPENROUTER_BASE(默认值https://openrouter.ai/api/v1)MIND_EMBEDDING_MODEL(默认值qwen/qwen3-embedding-8b)MIND_LLM_MODEL(默认值qwen/qwen-2.5-7b-instruct)MIND_EMBEDDING_DIM(默认值4096)SQLITE_VEC_PATH(默认值/usr/local/lib/vec0)MIND_DATA_DIR(默认值<repo>/data)MIND_DB_PATH(默认值${MIND_DATA_DIR}/mind.db)MIND_SERVER_NAME(默认值0.0.0.0)MIND_SERVER_PORT(默认值7860)MIND_AI_ASSIST(默认值"true")MIND_AUTO_CLUSTER(默认值"true",保留供将来使用)
