Опорный пакет¶
В репозитории теперь есть небольшой исполняемый каркас: agent_runtime_ref.
Его задача не в том, чтобы стать промышленным фреймворком. Он нужен как минимальная кодовая опора для части VII книги.
Что внутри¶
- runtime.py Основной
AgentRuntime, который собирает контекст запуска, извлечение контекста, шаг модели, выполнение инструментов и хук фонового обновления. - policy.py Небольшой движок политик со структурированными решениями.
- catalog.py Реестр возможностей с описанием эксплуатационной семантики.
- config.py Загрузчик YAML для политик, каталога возможностей и политики выкладки.
- memory.py Типизированные записи памяти, извлечение контекста и in-memory-хранилище с изоляцией по тенантам.
- background.py Фоновый контур обслуживания для постоянных записей в память и уплотнения.
- execution.py Простой вызов возможностей через выполнение, учитывающее контракт.
- telemetry.py In-memory-эмиттер телеметрии для структурированных событий и спанов.
- rollout.py Минимальный шлюз проверки готовности перед выкладкой.
Как запустить¶
Ожидаемый результат:
{"result": "Ticket request accepted and ready for follow-up.", "status": "success", "events": 9, "memory_records": 4, "config_dir": ".../agent_runtime_ref/configs"}
Явный запуск рантайма через подкоманду:
Просмотр записей памяти:
Вывод структурированных событий для одного запуска:
.venv/bin/python -m agent_runtime_ref dump-events --user-input "Please open a ticket for this issue."
Проверка политики выкладки с переопределением сигналов:
Запрос, который действительно читает профильную память:
.venv/bin/python -m agent_runtime_ref simulate-run --user-input "What language preference do you remember?"
Как проверить¶
Примерные конфиги¶
В configs лежат четыре стартовых файла:
Теперь это уже не просто статические примеры. config.py умеет загружать эти YAML-файлы в рантайм, движок политик, хранилище памяти и политику выкладки, поэтому пакет стал ближе к реальному эксплуатационному каркасу.
Почему это полезно¶
Книга теперь опирается не только на текстовые объяснения, но и на реальный кодовый каркас:
- легче обсуждать архитектуру на уровне файлов и контрактов;
- легче расширять пакет следующими примерами;
- легче перейти от главы к исполняемому прототипу;
- легче показать путь, управляемый конфигурацией, а не только жестко зашитое демо;
- легче связать эталонный рантайм с главами про память, извлечение контекста и фоновые обновления.
Отдельно полезно то, что теперь package можно не только запускать, но и инспектировать снаружи:
inspect-memoryпоказывает исходно загруженную память и фильтрацию поtenantиmemory_class;dump-eventsпоказывает структурированную трассу одного запуска без чтения исходников.