Library of Context
{"type": "text"}# Библиотека контекста
Виртуальная память для контекста ИИ: долговечная вне модели, ограниченная внутри неё.
У модели ИИ конечное собственное окно контекста. Длинные разговоры со временем расширяются, пока старая информация не будет усечена или сжата. Для вызовов, проходящих через её контекстный губернатор, Библиотека сохраняет каждое записанное событие в SQLite и собирает ограниченный запрос к модели из защищённых событий, недавних событий и извлечённых записей.
Представьте окно контекста модели как письменный стол. Библиотека может вместить гораздо больше книг, чем стол, но библиотекарь раскладывает только те книги, которые нужны для текущей задачи. Смена задачи заменяет стол; она не добавляет больше книг поверх.
[!ВАЖНО] Этот проект расширяет адресуемый контекст, а не физический предел окна контекста модели. Он предназначен для локальных прототипов и совместной работы, а не как производственный многопользовательский сервис памяти. См. Статус возможностей для явных границ поддержки.
Чем это отличается от обычного сжатия
Обычное сжатие превращает растущий транскрипт в меньший, с потерями, и может оставить исходные детали вне активного рабочего процесса. Библиотека использует обратимые семантические страницы:
traditional: growing transcript -> compacted transcript -> continue
Library: durable event log -> bounded recent/protected context
| + relevant retrieved books
+-----------> fresh model request on every turnИсходные события можно просматривать и восстанавливать. Резюме могут стать навигационными помощниками, но им не обязательно быть единственной сохранившейся копией.
Ландшафт связанных работ сравнивает эту конструкцию с методами длинного контекста модели, поиском, сжатием подсказок, сжатием провайдера, памятью агента, контрольными точками и разбиением на страницы во время вывода. Здесь «сжатие» означает меньшее, потенциально с потерями представление продолжения, чьи оригиналы не являются независимо адресуемыми, если другой слой не сохраняет их.
Related MCP server: local-memory-mcp
Возможности
Контекстный губернатор с операциями жизненного цикла
prepare -> model call -> commit.Долговечные события потока в SQLite и транзакционный исходящий индекс.
Ориентированное на токены, ограниченное по событиям кольцо недавних событий для немедленного поведения «читай свой контекст»; слишком большое событие усекается только в конверте модели, а не на диске.
Ограниченное рабочее кольцо с долговечным исходящим SQLite для переполнения и восстановления после перезапуска.
Защищённый контекст для инструкций, решений, активных планов и нерешённого состояния.
Записанные, встроенные и индексированные водяные знаки со статусом очереди.
Свежие, ограниченные конверты подсказок, заменяющие рост транскрипта.
Гибридный векторный поиск, SQLite FTS5, важность и недавность.
Ограниченная по байтам память процесса и необязательные одноразовые локальные горячие уровни Redis.
Отчёты о замене письменного стола:
swapped_in,swapped_outиretained.Python, локальный HTTP, CLI и STDIO MCP интерфейсы интеграции.
Хеширование вложений без зависимостей и необязательный локальный адаптер Ollama.
Губернатор автоматический, когда ваш агент или шлюз модели направляет каждый ход через него. Интеграция только через MCP является кооперативной: хост может использовать инструменты полок и письменного стола, но не может переписать запрос модели, который уже вызвал инструмент, или заменить недокументированный внутренний хук сжатия.
Архитектура с первого взгляда
flowchart LR
U[User or tool event] --> A[Durable SQLite append]
A --> E[(Thread event log)]
A --> O[(Transactional outbox)]
A --> R[Recent context ring]
O --> W[Bounded work ring]
W --> I[Embed and index workers]
I --> S[(SQLite library and FTS)]
I --> C[RAM and optional Redis cache]
R --> G[Context governor]
S --> G
P[Protected context] --> G
G --> D[Bounded reading desk]
D --> M[Native model context]
M --> X[Assistant response]
X --> AМетафора библиотеки | Реализация |
Письменный стол | Строго ограниченная подсказка, отправляемая модели |
Книга | Запись контекста с текстом, происхождением, метаданными и вложением |
Каталог | Гибридный лексический и векторный поиск |
Ближние стеллажи | Память процесса и необязательный локальный Redis |
Полки | Долговечное хранилище SQLite |
Библиотекарь | Контекстный губернатор и политика поиска |
Книжная тележка | Ограниченное асинхронное рабочее кольцо |
Журнал выдачи | Долговечный журнал событий потока и исходящий |
Быстрый старт
Конфигурация по умолчанию требует только Python 3.11 или новее. Redis необязателен.
В Windows PowerShell:
git clone https://github.com/hwillGIT/library-of-context.git
cd library-of-context
py -3.11 -m venv .venv
.\.venv\Scripts\python.exe -m pip install -e .
.\.venv\Scripts\python.exe -m library_of_context quickstartВ macOS или Linux:
git clone https://github.com/hwillGIT/library-of-context.git
cd library-of-context
python3 -m venv .venv
.venv/bin/python -m pip install -e .
.venv/bin/python -m library_of_context quickstartБыстрый старт проверяет защиту, сборку подсказок, запись событий, индексацию и очистку с временной базой данных. Он не использует Redis, Docker, облачные сервисы или API модели. Продолжите с руководством по установке.
Добавьте это к агенту, который вы уже запускаете
Ваша точка интеграции | Результат |
Существующий агент с поддержкой MCP | Кооперативные полки, поиск и замена письменного стола |
Python или HTTP шлюз, владеющий каждым вызовом модели | Автоматический ограниченный контекст через |
Закрытый хост без MCP и без хуков вызова модели | Нет прозрачной интеграции |
См. Добавьте Библиотеку к вашему агенту для примеров конфигурации Codex, Python и HTTP. После настройки MCP-сервера перезапустите клиент или начните отдельный сеанс; конфигурация не влияет на уже идущий чат.
Запустите автоматически управляемого текстового агента на Python
from library_of_context import GovernedTextAgent, LibraryOfContext
def call_my_model(messages: list[dict[str, str]]) -> str:
return my_model_client.generate(messages=messages)
with LibraryOfContext("data/library.sqlite", redis_url="") as library:
with library.open_context_governor(
"agent-thread-42",
token_budget=12_000,
recent_token_budget=4_000,
protected_token_budget=2_000,
) as context:
context.protect(
"Production changes require a canary wave.",
label="deployment-policy",
)
agent = GovernedTextAgent(
context,
call_my_model,
system_prompt="Work carefully and cite retrieved project evidence.",
)
response = agent.turn(
"Diagnose the deployment failure.",
turn_id="request-0001",
)
context.flush(timeout=5)
print(context.status()["watermarks"])Обратный вызов должен отправлять ровно предоставленные messages; он не должен добавлять другой транскрипт или продолжать управляемый провайдером разговор. Встроенный адаптер предназначен только для текста. Структурированные вызовы инструментов, потоки, вложения и мультимодальный контент требуют пользовательского адаптера сериализации.
См. Контекстный губернатор для полного протокола.
Интеграция MCP
Для обычного MCP-агента используйте изолированный шаблон проекта и готовые к слиянию инструкции агента в integrations/README.md. Это кооперативная память; она не контролирует собственный транскрипт хоста.
Сырой локальный STDIO-сервер можно проверить с помощью:
python -m library_of_context.mcp_server --no-redisПользовательские MCP-шлюзы, владеющие границей вызова модели, могут использовать:
Инструмент | Использование |
| Записать ход пользователя и собрать ограниченный следующий запрос |
| Записать результат ассистента или инструмента |
| Сохранить критическое состояние для каждого запроса |
| Вернуть защищённое состояние в обычный режим страниц |
| Проверить водяные знаки, давление очереди и здоровье воркера |
| Дождаться, пока индексация достигнет записанного водяного знака |
Библиотека предоставляет инструменты полок, поиска, письменного стола, сеансов без состояния и губернатора. Включайте инструменты только для шлюза только в хосте, который отправляет возвращённые messages как полный следующий запрос модели.
Локальный HTTP API
python -m library_of_context --no-redis serveЭндпоинты губернатора:
Метод | Путь | Назначение |
|
| Долговечное добавление и ограниченная сборка подсказки |
|
| Долговечное добавление результата ассистента/инструмента |
|
| Добавить защищённый контекст |
|
| Освободить защищённый контекст |
|
| Дождаться видимости асинхронного индекса |
|
| Проверить состояние губернатора и водяные знаки |
Маршруты /books, /library/ingest, /catalog/query и /desk/* предоставляют низкоуровневую библиотеку. Сервер привязывается к loopback и не имеет аутентификации. Не открывайте его напрямую для другой машины.
Иерархия хранения
Кольцо недавних событий: упорядоченные события потока, ограниченные количеством событий и целевым количеством токенов. Одно слишком большое событие может оставаться резидентным, чтобы свежий контекст был виден; сборка подсказки усекает его видимую моделью часть до жёсткого бюджета конверта. Это не LRU; порядок разговора важен.
Память процесса: ограниченная по байтам LRU для горячих книг и результатов поиска.
Локальный Redis: необязательный общий кэш для горячих книг, запросов, столов, TTL и поколений инвалидации.
SQLite: авторитетные события, исходящие, текст, метаданные, FTS и векторное хранилище.
Redis одноразовый. Конфигурация локального Redis по умолчанию не является долговечным брокером сообщений и не должна использоваться как поток событий команды.
Бесплатный локальный Redis в Windows
Docker и облачная учётная запись не требуются. Включённый скрипт PowerShell устанавливает службу Redis внутри Ubuntu WSL. Требуются WSL 2, дистрибутив Ubuntu и systemd:
powershell -ExecutionPolicy Bypass -File .\scripts\install-local-redis.ps1
.\.venv\Scripts\python.exe -m library_of_context --db data/redis-check.sqlite doctordoctor открывает настроенную базу данных SQLite, проверяя уровни хранения. Пример выше создаёт data/redis-check.sqlite.
Используйте --no-redis везде, если достаточно SQLite плюс память процесса.
Пределы производительности
Сборка подсказок ограничена, а записанные события используют транзакционный исходящий. FTS возвращает ограниченный набор кандидатов, в то время как векторный поиск точно оценивает каждую живую запись в пространстве имён. Поэтому заявления о масштабе для больших каталогов требуют измеренных доказательств и, когда точный путь пересекает объявленный предел, ограниченного адаптера векторного поиска.
Производительность и масштабирование определяет измерения, критерии SLO и контрольные вопросы. Почему эти улучшения? сравнивает более простые альтернативы, триггеры внедрения и контрольные точки доказательств, в то время как Дорожная карта упорядочивает условную работу.
Документация
Документ | Назначение |
Инварианты, уровни, согласованность и эволюция | |
Сравнение первоисточников со смежными подходами к контексту и памяти | |
Протокол prepare/commit и поведение при сбоях | |
Границы реализованного, экспериментального, запланированного и неподдерживаемого | |
Дидактическая визуальная экскурсия | |
Данные аудита, NFR и контрольные точки бенчмарков | |
Обоснование, контраргументы, альтернативы и триггеры внедрения | |
Локально-ориентированное сотрудничество и дизайн продвижения | |
Вехи и открытые исследовательские вопросы | |
Обязательный формат «почему / почему нет / доказательства» для крупных предложений | |
Процесс разработки и области вклада | |
Модель угроз и отчётность об уязвимостях |
Помогите сформировать дизайн
Открытые вопросы дизайна включают:
Какой контекст следует защищать автоматически, и кто может его освобождать?
Как следует измерять качество поиска для потоков агентов, а не для QA документов?
Какой локальный адаптер ANN подходит для 100 000–1 000 000 фрагментов?
Как ветви должны наследовать, заменять и объединять контекст?
Какие знания безопасно и полезно продвигать из приватного потока в командный каталог?
Должна ли общая плоскость событий использовать Redis Streams, NATS JetStream или другой брокер?
Как отзыв ACL должен инвалидировать локальные кеши, не помещая облако в критический путь подсказки?
Какая политика токен-давления кажется предсказуемой пользователям на разных токенизаторах моделей?
Более полный список — в ROADMAP.md. Приветствуются вопросы, результаты бенчмарков, заметки по дизайну, адаптеры, тесты на сбои и критика.
Вклад
Прочитайте CONTRIBUTING.md, откройте исследовательский вопрос или предложение по дизайну и держите pull request сфокусированным. Проект особенно приветствует воспроизводимые бенчмарки поиска, адаптеры ANN, интеграции токенизаторов, проверки конфиденциальности, тесты очередей и сбоев, а также шлюзы агентных фреймворков.
Лицензия
MIT © участники Library of Context.
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
- AlicenseNot gradedqualityAmaintenanceAn MCP server that extends AI agents' context window by providing tools to store, retrieve, and search memories, allowing agents to maintain history and context across long interactions.MIT
- FlicenseNot gradedqualityDmaintenanceA local MCP server that provides semantic memory storage and retrieval for coding and AI agents, enabling durable context across chat sessions.1314
- AlicenseBqualityDmaintenanceMCP server providing context usage estimation, conversation compaction, and durable semantic memory via local embeddings and SQLite.17273MIT
- AlicenseNot gradedqualityCmaintenanceAn MCP server that provides persistent long-term memory for AI agents via local SQLite storage with low token overhead, enabling memory storage, retrieval, and management across sessions.1MIT
Related MCP Connectors
Cloud-hosted MCP server for durable AI memory
Person-owned, portable AI memory as a remote MCP server, readable and writable by any MCP client.
MCP server for AI dialogue using various LLM models via AceDataCloud
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/hwillGIT/library-of-context'
If you have feedback or need assistance with the MCP directory API, please join our Discord server