Главная · MCP-серверы · Perseus — Live Context Engine

Perseus — Live Context EnginePerseus

tcconnally/perseus

MCP-сервер Perseus (движок живого контекста).

Perseus™ — одна команда, никакой ориентации с нуля

pip install perseus-ctx && cd your-project && perseus quickstart

Perseus — движок живого контекста. Семь специализированных продуктов расширяют его:

ПродуктОписаниеСтраница
Mimir40 MCP-инструментов — постоянная память с FTS5, сущностями, слоями, затуханием уверенности/mimir/
MCTS120 анализаторов безопасности для MCP-серверов — отравление инструментов, prompt injection, утечки учётных данных/mcts/
PR Pilot5-агентный автономный пайплайн проверки PR — постепенная автономия L1→L3/pr-pilot/
Blast RadiusАнализ влияния зависимостей в GitLab — одно упоминание, мгновенный отчёт о рисках/blast-radius/
Rapid AgentАгент памяти с двойным бэкендом (Elastic ↔ Engram-rs) — Google Cloud Hackathon/rapid-agent/
Qwen MemoryАгент, который умнеет с каждой сессией — Qwen Cloud Hackathon/qwen-memory/
CrewAI MemoryПостоянный кросс-сессионный бэкенд памяти для CrewAI (54K звёзд) — community PR #6208/crewai/

Mimir — постоянная память (MCP)

Mimir — бэкенд постоянной памяти для Perseus: лёгкий Rust MCP-сервер с SQLite + FTS5. Без сетевых вызовов, без API-ключей. Начиная с v2.2, офлайн-эмбеддинги встроены по умолчанию (модель скомпилирована в бинарник), поэтому семантическое воспроизведение работает без конфигурации. v2.2 предоставляет 40 MCP-инструментов: структурированные сущности, гибридный векторный поиск, RAG, соединители, затухание уверенности, события журнала и управление состоянием.

Установка:

curl -sSL https://raw.githubusercontent.com/Perseus-Computing-LLC/mimir/main/scripts/bootstrap.sh | bash

Hermes Agent — добавьте в ~/.hermes/config.yaml:

mcp_servers:
  mimir:
    command: "mimir"
    args: ["--db", "~/.mimir/data/mimir.db"]

Claude Desktop / Cursor — добавьте в настройки MCP:

{
  "mcpServers": {
    "mimir": {
      "command": "mimir",
      "args": ["--db", "/home/YOU/.mimir/data/mimir.db"]
    }
  }
}

Подключение Perseus к ассистенту (MCP)

Perseus реализует Model Context Protocol (MCP), предоставляя инструменты через stdio или SSE transport. Каждый инструмент разрешает живое состояние рабочего пространства при вызове — никакого устаревшего кэша, никаких предварительно вычисленных снимков.

⚠️ Шлюз безопасности: Директивы, выполняющие shell-команды (@query, @agent, @services command:), требуют export PERSEUS_ALLOW_DANGEROUS=1. Без этого shell-директивы тихо пропускаются.

Быстрый старт (MCP-сервер)

pip install perseus-ctx
perseus mcp serve                          # stdio (Claude Desktop, Claude Code, Cursor, Codex)
perseus mcp serve --transport sse --port 8420  # SSE (удалённые агенты, несколько машин)

Конфигурация для конкретных ассистентов

Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "perseus": {
      "command": "perseus",
      "args": ["mcp", "serve", "--workspace", "/path/to/workspace"]
    }
  }
}

Claude Code (.mcp.json в корне проекта):

{
  "mcpServers": {
    "perseus": {
      "command": "perseus",
      "args": ["mcp", "serve"]
    }
  }
}

Cursor (.cursor/mcp.json), Codex (~/.codex/config.toml), Rovo Dev (.mcp.json) — тот же конфиг-блок.

MCP-инструменты (24 инструмента)

Все инструменты разрешают живое состояние при вызове. Два чувствительных инструмента (perseus_query и perseus_agent) требуют явного включения в mcp.tool_allowlist, так как выполняют команды в локальной shell — без песочницы, с полными правами пользователя:

ИнструментОписание
perseus_servicesПроверка работоспособности запущенных сервисов
perseus_queryВыполнить shell-команду и вернуть stdout
perseus_readПрочитать содержимое файла
perseus_listСписок директории или структурированных данных
perseus_treeДревовидный вид директории
perseus_envЧтение переменных окружения
perseus_dateТекущая дата/время
perseus_waypointПоследнее краткое описание контрольной точки
perseus_sessionНедавние дайджесты сессий
perseus_healthОтчёт о поддержании контекста
perseus_driftОтчёт об отклонениях Oracle
perseus_memoryНарративная память Mnēmē (+ постоянное хранилище Mimir)
perseus_mimirВоспроизведение постоянных воспоминаний через Mimir BM25
perseus_skillsСписок доступных скиллов с флагами устаревания
perseus_includeВключение и рендеринг другого файла
perseus_agentВыполнение локального subprocess агента
perseus_agoraДоска задач из tasks/*.md
perseus_inboxВходящие сообщения агента
perseus_validateВалидация отрендеренного блока по схеме
perseus_get_contextПолный отрендеренный контекст рабочего пространства
perseus_get_healthЭвристики поддержания контекста Daedalus

Проблема

Каждая AI-сессия начинается с нуля. Прежде чем начнётся полезная работа, ассистент тратит ходы на ориентацию — проверяет, какие сервисы запущены, читает устаревшие конфиг-файлы, заново открывает, где вы остановились. Статические markdown-файлы (.cursorrules, CLAUDE.md) немедленно устаревают. Порт, который вы записали, уже изменился. Контейнер, который «всегда запущен», не стартовал с вторника.

Perseus решает это: он рендерит живой контекст из вашего рабочего пространства прямо перед каждой сессией. Ни устаревших файлов. Ни повторного открытия. Никакого ориентационного налога.

Архитектура

  Плагины:  ~/.perseus/plugins/        ─┐  Обнаруживаются при рендеринге.
            ~/.perseus/validators/       │  Макросы, хуки, вебхуки,
            ~/.perseus/formats/          ┘  псевдонимы загружаются из конфига.

Исходный документ (.perseus/context.md)
  @perseus v1.0.8
  @query "git log --oneline -5"          ┐
  @read .env key="PORT"                  │  Директивы разрешаются
  @waypoint ttl=86400                    │  перед контекстным окном.
  @services                              │  Кэш-слой избегает
    - name: My App                       │  повторного запуска медленных запросов.
      url: http://localhost:3001/health  ┘
          │
          ▼ perseus render
  Разрешённый markdown (факты, не инструкции)
          │
          ▼
  .hermes.md  ←── cron watchdog поддерживает свежесть ≤5 мин
          │
          ▼
  Контекстное окно AI — полное, точное, без ориентационного налога

Расширяемость (Hephaestus)

Perseus расширяется без правки исходного кода. Поместите Python-файлы в ~/.perseus/ — рендерер обнаружит их при запуске.

Плагины

# ~/.perseus/plugins/my_plugin.py
from perseus.registry import DirectiveSpec

def _resolve_service_status(args, cfg, workspace):
    import urllib.request
    try:
        resp = urllib.request.urlopen(args.strip(), timeout=5)
        return f"Status: {resp}"
    except Exception as e:
        return f"Error: {e}"

REGISTER = {
    "@service-status": DirectiveSpec(
        name="@service-status",
        resolver=_resolve_service_status,
        ...
    )
}

Используйте в файлах контекста: @service-status https://api.example.com/health

Макросы

Переиспользуемые композиции директив — Python не нужен:

@macro deploy %env% %version%
@query "kubectl rollout status deploy/app -n %env%"
@services
  - name: app-%env%
    url: https://%env%.example.com/health
@endmacro

@deploy production 2.3.1

Макросы раскрываются перед разрешением директив. Поддерживается цепочка до глубины 5 с обнаружением циклов.

Ярусный контекст (прогрессивное раскрытие)

Не каждый вопрос требует полного инжектирования окружения. Perseus поддерживает ярусный рендеринг контекста — агент сам является RAG:

perseus render .perseus/context.md --tier 1    # основной контекст (~12 директив, компактный)
perseus render .perseus/context.md --tier 2    # + services, skills, sessions
perseus render .perseus/context.md              # всё (обратная совместимость)
ЯрусНазваниеЧто входит
1ВсегдаОсновной контекст — лёгкий (@date, @memory, @waypoint, @health, @env)
2УсловноСпецифичное для задачи, тяжелее (@services, @skills, @session)
3По запросуОбъёмное/дорогостоящее — агент тянет при необходимости (@query, @read)

Память проекта (Mnēmē)

Mnēmē (Μνήμη) — нарративная память проекта Perseus. Она дистиллирует контрольные точки и рекомендации Pythia в повествование для каждого рабочего пространства — так ваш ассистент знает не только, что запущено, но и как вы сюда пришли.

# Обновление нарратива из последних контрольных точек
perseus memory update

# Запрос нарратива
perseus memory query "what was the auth decision?"

# Рендеринг инлайн
perseus render .perseus/context.md --output CLAUDE.md

Правительство и федеральные закупки

Perseus построен для государственного развёртывания с нуля:

ВозможностьСтатус
ЛицензияMIT — без copyleft, без GPL/AGPL
SBOMОпубликован — минимальные элементы NTIA
Изолированная среда (air-gapped)Нулевые облачные зависимости
ТелеметрияОтсутствует — никакой отправки данных, никакого отслеживания

Документация

ДокументСодержание
CLI ReferenceКаждая команда и флаг
Setup & Config GuideПолное руководство по настройке, конфигурации, автоматизации и устранению неполадок
Directives ReferenceВсе директивы с модификаторами и примерами
Integration GuideПодключение Perseus к Hermes через LLM routing
Quickstart5-минутное руководство по настройке
ExamplesРецепты полных рабочих процессов
SecurityМодель доверия, границы рабочего пространства, секреты

ИС и правовые вопросы

Ожидается выдача патента. Предварительная патентная заявка на архитектуру конвейера resolve-before-context подана в USPTO.

PERSEUS™ является торговой маркой Thomas Connally.

Лицензия: MIT — см. LICENSE. Эта лицензия не включает патентные права; патентные права зарезервированы отдельно.