session-migrator
session-migrator
Слой миграции памяти сессий между агентами: автоматически переносит или сжимает диалог в зависимости от ёмкости окна контекста целевой модели.
Какую проблему это решает
У Агента 1 идёт диалог, который нужно передать Агенту 2, но эти два агента используют разные модели с разными окнами контекста. Правила просты:
Если весь диалог помещается в целевую модель → переносим как есть, без сжатия;
Если не помещается → сохраняем только самый ценный контекст (в первую очередь последние сообщения).
Related MCP server: OpenAI Assistant MCP Server
Структура каталога
session-migrator/
├── session_migrator/
│ ├── context_windows.py # model capacity mapping table (the soul)
│ ├── exporter.py # session export/serialization + token estimation
│ ├── decision.py # decision engine: compare capacity → direct/compress
│ ├── compressors.py # compressor: budget truncation, keeps latest
│ ├── storage.py # shared storage: JSON files, per-workspace isolation
│ ├── codex_adapter.py # Codex session → Session adapter
│ ├── llm_summarizer.py # LLM topic summarization (deepseek/OpenAI-compatible)
│ ├── server.py # MCP server entry (exposes migration tools)
│ └── __init__.py
├── examples/
│ ├── demo.py # full demo, zero dependencies
│ ├── codex_to_workbuddy_demo.py # Codex → memory (truncation)
│ └── llm_summarize_demo.py # Codex → memory (LLM topic summarization)
├── tests/test_core.py # core logic tests
├── pyproject.toml
├── requirements.txt
└── LICENSEБыстрый старт
1. Сначала запустите базовую логику (без зависимостей)
python examples/demo.py
python tests/test_core.pyОбе версии используют только стандартную библиотеку. Установка не нужна — вы сразу увидите, как «решение + сжатие + хранение» работают от начала до конца.
2. Запуск в качестве MCP-сервера
pip install mcp
python -m session_migrator.server3. Подключение к любому MCP-клиенту
На примере Claude Code — добавьте это в .mcp.json проекта (или в глобальную конфигурацию):
{
"mcpServers": {
"session-migrator": {
"command": "python",
"args": ["-m", "session_migrator.server"]
}
}
}Cursor / Codex / WorkBuddy или любой клиент, поддерживающий MCP stdio, работает так же. После подключения агент может вызывать model_context_window, list_known_models и migrate_session.
4. Настройка LLM API (нужно только для «тематического обобщения»)
Чтобы сжать сессию Codex в структурированную память, нужна LLM, совместимая с OpenAI. deepseek / OpenAI / любой сервис, совместимый с /chat/completions, подойдёт — достаточно задать переменную окружения:
export DEEPSEEK_API_KEY="sk-xxx" # or OPENAI_API_KEYТри основных MCP-инструмента в этом не нуждаются (они только принимают решение / выполняют усечение, без обращений к LLM).
Инструменты MCP
Инструмент | Назначение |
| Запрашивает ёмкость окна контекста модели |
| Выводит список встроенных моделей и их ёмкость |
| Запускает миграцию: возвращает решение + перенесённые сообщения + токены до/после |
Параметр messages_json у migrate_session выглядит так:
[{"role": "user", "content": "..."}, {"role": "assistant", "content": "..."}]Ключевые концепции
Модуль принятия решения decide(session, target_model)
Критерий — «может ли целевая ёмкость вместить фактическое число токенов диалога», а не просто сравнение ёмкости двух моделей. Даже если ёмкость целевой модели меньше, чем у исходной, небольшой диалог всё равно переносится как есть.
Компрессор TruncationCompressor
Реализация по умолчанию не имеет внешних зависимостей: она сохраняет целые сообщения, двигаясь от последнего к ранним, отбрасывает ранние сообщения, которые не помещаются, и вставляет в начало примечание-заглушку (число пропущенных сообщений + превью самого раннего сообщения).
Тематическое обобщение (Codex → память)
Полный конвейер для переноса сессии Codex в структурированную память (адаптер + LLM):
from session_migrator.codex_adapter import get_thread_meta, extract_rollout
from session_migrator.llm_summarizer import summarize_session
meta = get_thread_meta("your-codex-thread-id")
session = extract_rollout(meta["rollout_path"], meta["id"], meta["model"])
markdown = summarize_session(session, meta, target_chars=5000) # needs LLM key set firstВерсия с усечением без LLM: codex_adapter.to_memory_markdown(session, meta).
Таблица ёмкости моделей
В session_migrator/context_windows.py поставляется статическая таблица соответствий (OpenAI / Anthropic / Google / китайские модели). Обратите внимание: это статические запасные значения, которые могут меняться по мере обновлений у провайдеров.
Дорожная карта
Тематическое обобщение через LLM (
llm_summarizer.py, см. «Тематическое обобщение»)Динамическое получение ёмкости (запрос к
/modelsAPI каждого провайдера)Обратимое сжатие при наличии запаса контекста (восстановление исходного текста)
Интеграция с векторным хранилищем (извлечение по запросу)
Точный подсчёт токенов с помощью tiktoken
Лицензия
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityNot gradedmaintenanceEnables Claude and other MCP-compatible tools to communicate with OpenAI's GPT models (GPT-5, GPT-5-mini, o3) with conversation history and session management. Features advanced controls like reasoning effort settings, token tracking, and parallel conversation sessions for efficient AI workflows.9
- FlicenseBqualityDmaintenanceEnables interaction with OpenAI's Chat Completion and Assistants APIs, supporting assistant management, file operations, and direct queries to GPT models through standardized MCP tools.92
- AlicenseNot gradedqualityCmaintenanceProvides context compression via the tokenslim engine, enabling MCP hosts to reduce token usage while preserving key information. Offers compress, retrieve, and stats tools for managing compressed content.Apache 2.0
- AlicenseNot gradedqualityBmaintenanceA context window optimizer and session rotator MCP server for agentic workflows that prevents LLMs from running out of context by compacting chat history and rotating sessions.3MIT
Related MCP Connectors
Hosted MCP server for LLM cost estimation, model comparison, and budget-aware routing.
Free OpenAI-compatible inference with signed provenance receipts and 3 focused MCP tools.
Remote MCP for Gemini upgrade evals, prompt regressions, output diffs, and eval receipts.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/liangyuan0219/session-migrator'
If you have feedback or need assistance with the MCP directory API, please join our Discord server