Collective Mind Unified v2.3
Collective Mind — это универсальный сервер семантической памяти для ИИ-агентов. Он объединяет в себе два интерфейса, работающих на одном порту:
- REST API: Для программного управления памятью (запись, поиск, удаление, bulk-загрузка).
- MCP (Model Context Protocol): Для прямого подключения к Claude Desktop или другим LLM-клиентам в качестве "внешнего мозга".
Система использует векторную базу данных FAISS для мгновенного поиска по смыслу и поддерживает локальные модели эмбеддингов через LM Studio.
🚀 Основные возможности
- Семантическая память: Поиск не по словам, а по смыслу.
- Единый порт: API и MCP (через SSE) работают на одном порту (по умолчанию
3003). - Пространства имен (Namespaces): Разделение памяти между разными проектами или пользователями.
- Bulk Operations: Массовая загрузка данных для быстрой индексации знаний.
- Безопасность: Защита всех API-запросов через
X-API-Key. - Надежность: Атомарное сохранение данных (использование
.tmpфайлов) для предотвращения повреждения базы.
🛠 Установка и настройка
1. Требования
- Python 3.10+
- LM Studio (запущенный локальный сервер эмбеддингов)
- Установленные библиотеки:
pip install fastapi uvicorn mcp sse-starlette faiss-cpu numpy requests pydantic-settings
2. Конфигурация (.env)
Создайте файл .env в корне проекта:
LM_STUDIO_URL=http://localhost:1234/v1/embeddings
EMBEDDING_MODEL=nomic-ai/nomic-embed-text-v1.5-GGUF
STORAGE_PATH=./storage
API_KEY=ваш-секретный-ключ
VECTOR_DIMENSION=768 # Проверьте размерность вашей модели в LM Studio
PORT=3003
HOST=0.0.0.0
🖥 Запуск
Запустите сервер командой:
python main.py
Сервер будет доступен по адресу: http://localhost:3003
🤖 Интеграция с Claude Desktop
Чтобы Claude мог использовать эту память, добавьте следующий блок в ваш конфиг claude_desktop_config.json:
{
"mcpServers": {
"collective-mind": {
"url": "http://localhost:3003/sse"
}
}
}
*Если вы используете сервер удаленно или через туннель (ngrok), укажите соответствующий HTTPS URL.*
📡 API Документация
Все запросы к API должны содержать заголовок X-API-Key: <ваш-ключ>.
1. Сохранение информации
POST /remember
{
"text": "Мой любимый цвет — синий",
"namespace": "personal",
"meta": {"source": "chat"}
}
2. Массовая загрузка
POST /remember_bulk
[
{"text": "Факт 1", "namespace": "wiki"},
{"text": "Факт 2", "namespace": "wiki"}
]
3. Поиск по памяти
GET /recall?q=какой мой любимый цвет&ns=personal&k=3&t=2.0
- q: текст запроса.
- ns: пространство имен.
- k: количество результатов.
- t: порог (threshold) — чем меньше, тем ближе должен быть смысл.
4. Удаление записи
DELETE /forget/{item_id}
ID можно получить из результатов поиска (/recall).
🛠 Инструменты MCP (доступны ИИ)
LLM-агент (например, Claude) увидит следующие инструменты:
ai_remember(text, namespace): Вызывается, когда агент хочет что-то запомнить.ai_recall(query, namespace, count): Вызывается, когда агенту нужно найти информацию в прошлом опыте.
📁 Структура папок
- main.py: Основной код сервера.
- storage/: Папка с базой данных.
index.faiss: Бинарный файл векторного индекса.metadata.json: Тексты, метаданные и связи с векторами.
- .env: Настройки окружения.
Collective Mind: Because AI should remember what matters.
⚠️ Важные примечания
- Размерность векторов: Разные модели эмбеддингов выдают разную длину вектора (напр. 768, 1024, 1536). Убедитесь, что
VECTOR_DIMENSIONв.envсовпадает с характеристиками вашей модели в LM Studio, иначе FAISS выдаст ошибку. - LM Studio: Перед запуском сервера убедитесь, что в LM Studio запущен "Embedding Server" и загружена соответствующая модель.