🧠 Collective Mind Broker v2.2

Универсальный брокер семантической памяти. Позволяет PHP-бэкенду (Kohana) и ИИ-агентам (Claude) использовать единое хранилище знаний.

Основные возможности

  • Двойной интерфейс: REST API (для кода) и MCP (для ИИ).
  • Семантический поиск: Поиск по смыслу, а не по ключевым словам (через FAISS + LM Studio).
  • Пространства имен (Namespaces): Изоляция памяти для разных пользователей или задач.
  • Защита от дублей: Хеширование контента предотвращает захламление памяти.

🛠 Установка и запуск

Зависимости

pip install fastapi uvicorn requests faiss-cpu numpy pydantic-settings fastmcp

Настройка (.env)

Создайте файл в корне проекта:

LM_STUDIO_URL=http://localhost:1234/v1/embeddings
EMBEDDING_MODEL=nomic-ai/nomic-embed-text-v1.5-GGUF
STORAGE_PATH=./storage
API_KEY=your-secret-key-123
VECTOR_DIMENSION=768

Запуск в режиме API (для PHP/Kohana)

python main.py

Сервер будет доступен по адресу http://localhost:8000.

Интеграция с Claude Desktop

Отредактируйте claude_desktop_config.json:

{
  "mcpServers": {
    "collective_mind": {
      "command": "python",
      "args": ["/путь/к/скрипту/main.py", "mcp"],
      "env": {
        "STORAGE_PATH": "/путь/к/storage",
        "LM_STUDIO_URL": "http://localhost:1234/v1/embeddings"
      }
    }
  }
}

🔌 API Reference (для PHP)

Все запросы требуют заголовок X-API-Key.

Метод Эндпоинт Описание
POST /remember Сохранить одну запись.
POST /remember_bulk Массовая загрузка данных (лог, статьи).
GET /recall?q=текст Поиск похожих записей в памяти.
DELETE /forget/{id} Удаление записи по ID.
GET /status Статистика индекса.
Пример вызова из PHP (Kohana)
$client = Remote::factory('http://localhost:8000/remember');
$client->headers('X-API-Key', 'your-secret-key-123');
$client->post(json_encode([
    'text' => 'Сервер упал в 14:00 из-за OOM Killer',
    'namespace' => 'server_logs',
    'meta' => ['server_id' => 5]
]));
$response = $client->execute();

📝 Памятка для системного промпта (Instructions for AI)

Скопируйте это в настройки вашего ИИ-агента (System Instructions / Custom Instructions):

Инструкции по использованию инструментов Памяти (Collective Mind)

Использование инструментов Памяти

Ты обладаешь долгосрочной памятью через инструменты ai_remember и ai_recall. Твоя задача — поддерживать непрерывность контекста между сессиями.

Когда использовать ai_remember:

  • Пользователь сообщил важный факт (имя, предпочтения, детали проекта).
  • Ты нашел решение сложной ошибки (сохрани его, чтобы не искать снова).
  • Произошло событие, которое может понадобиться в будущем.
  • Пример: "Запомни, что мы используем порт 5432 для базы".

Когда использовать ai_recall:

  • Пользователь спрашивает о вещах, которые обсуждались в прошлых сессиях.
  • Тебе нужно найти контекст по теме (например, "Что мы решили по дизайну?").
  • Перед началом сложной задачи поищи в памяти, нет ли там похожих случаев.

Работа с пространствами имен (namespace):

  • По умолчанию используй default.
  • Если данные специфичны (например, "код проекта X"), используй namespace="project_x".

Стиль записей:

  • Сохраняй информацию в виде кратких, емких утверждений.
  • Вместо "Он сказал, что любит кофе" пиши "Пользователь предпочитает кофе".

Пример «Мыслей» ИИ (Chain of Thought):

"Пользователь спрашивает о настройках Nginx, которые мы обсуждали вчера. У меня нет этого в текущем окне чата. Я вызову ai_recall(query='настройки nginx', namespace='dev_notes'), чтобы восстановить контекст."