MCP-сервер Perseus (движок живого контекста).
pip install perseus-ctx && cd your-project && perseus quickstart
Perseus — движок живого контекста. Семь специализированных продуктов расширяют его:
| Продукт | Описание | Страница |
|---|---|---|
| Mimir | 40 MCP-инструментов — постоянная память с FTS5, сущностями, слоями, затуханием уверенности | /mimir/ |
| MCTS | 120 анализаторов безопасности для MCP-серверов — отравление инструментов, prompt injection, утечки учётных данных | /mcts/ |
| PR Pilot | 5-агентный автономный пайплайн проверки 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 — бэкенд постоянной памяти для 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 реализует Model Context Protocol (MCP), предоставляя инструменты через stdio или SSE transport. Каждый инструмент разрешает живое состояние рабочего пространства при вызове — никакого устаревшего кэша, никаких предварительно вычисленных снимков.
⚠️ Шлюз безопасности: Директивы, выполняющие shell-команды (
@query,@agent,@services command:), требуютexport PERSEUS_ALLOW_DANGEROUS=1. Без этого shell-директивы тихо пропускаются.
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) — тот же конфиг-блок.
Все инструменты разрешают живое состояние при вызове. Два чувствительных инструмента (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 — полное, точное, без ориентационного налога
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ē (Μνήμη) — нарративная память проекта 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 |
| Quickstart | 5-минутное руководство по настройке |
| Examples | Рецепты полных рабочих процессов |
| Security | Модель доверия, границы рабочего пространства, секреты |
Ожидается выдача патента. Предварительная патентная заявка на архитектуру конвейера resolve-before-context подана в USPTO.
PERSEUS™ является торговой маркой Thomas Connally.
Лицензия: MIT — см. LICENSE. Эта лицензия не включает патентные права; патентные права зарезервированы отдельно.