Меню


[I128-2835] AIPrompt registry и versioning


НАЧАЛО >> Оглавление >> Общее описание >> История изменений >> Что нового в проекте I128 >> Версия 2026.3 >> [I128-2835] AIPrompt registry и versioning📄 Скачать в DOCX


Тип Версия Статус Приоритет Исполнитель
⚙️ Новые возможности 2026.3 🔘 Завершено Средний Ilya Mikhaylenko

Компоненты: ИРБИС 128. Модуль AI - Искусственный интеллект

Завершено: 07.09.2026 08:40

  1. Цель

Нужно расширить существующий модуль AIPrompt так, чтобы он стал authoritative source для промышленных promptшаблонов AIсценариев ИРБИС 128.

Prompt, используемый в production AIоперации, не должен быть строкой в коде, настройкой в произвольном JSON или текстом, собранным из недоверенных данных. Он должен быть версионируемой записью с устойчивым ключом, переменными, response format, жизненным циклом публикации, whereused, правами, диагностикой, TestA/Help покрытием и безопасным render contract.

  1. Контекст

В системе уже должен существовать AIgovernance core: реестр AIопераций, policy runtime, preflight/governance API, explainable decision, AISuggestion, audit envelope и invariant ручного подтверждения. Также должен существовать срез AI input profiles, masking и consent, который отвечает за безопасный входной пакет данных.

Этот срез не собирает входные данные и не выбирает модель. AIPrompt получает только подготовленные и разрешенные переменные из AI/inputprofile runtime, валидирует их соответствие promptшаблону, рендерит prompt по опубликованной версии и возвращает безопасный результат renderа для AIruntime.

Основное промышленное правило: audit AIоперации должен объяснять, какой prompt key и какая версия использовались, какие переменные были заявлены, какие значения были исключены или замаскированы до renderа, какой response format ожидался и почему старый результат можно воспроизвести или хотя бы объяснить после изменения prompt-а.

  1. Что Нужно Сделать

Нужно реализовать в модуле AIPrompt промышленную сущность prompt-шаблона. Prompt должен иметь stable key, название, описание, owner module, purpose, prompt type, language, status, system/user origin, version или revision, compatibility marker, response format, список переменных, Help reference, TestA reference и признаки system definition.

Нужно реализовать версионирование promptшаблонов. Изменение смысла promptа, набора переменных, response format, instruction hierarchy, политики безопасности или ожидаемого результата должно создавать новую версию или фиксируемый revision. Старые версии, использованные в AI-audit или AISuggestion, должны оставаться доступными для чтения и диагностики, даже если новая версия уже опубликована.

Нужно определить lifecycle promptа: draft, published, deprecated, archived, blocked. Только publishedверсия может использоваться production AIоперацией, если operation definition не разрешает dryrun или preview draftверсии. Deprecatedверсия может продолжать обслуживать pinned operation до миграции, но HealthCheck должен показывать предупреждение. Blocked-версия не должна использоваться runtime.

Нужно реализовать связи prompt key и версии с AIOperationDefinition. AI-операция должна ссылаться на prompt key и либо pinned version, либо явно разрешенный version range, если такой режим принят контрактом. Runtime должен фиксировать точный prompt key, version, revision и render decision в audit envelope и AISuggestion metadata.

Нужно реализовать декларативный каталог переменных prompt-а. Каждая переменная должна иметь key, русское название, описание, тип данных, required/optional признак, data class expectation, allowed source kind, size limit, default policy, masking expectation и поведение при отсутствии значения. Переменная не должна обращаться напрямую к физическим полям записи или файлам; она получает значение только из безопасного input package.

Нужно реализовать проверку совместимости prompt variables с AIInputProfile. Если prompt требует переменную, которую input profile не предоставляет, или если data class переменной несовместим с masking/consent policy, production render должен безопасно отказать до вызова модели. Dry-run должен показать missing variables, incompatible data classes, masking warnings и diagnostic codes.

Нужно реализовать безопасный prompt render contract. Render получает prompt key/version, actor/context, prepared input package, trace id и режим запуска. Render возвращает rendered prompt envelope или explainable safe denial. Envelope должен содержать prompt key, version, список использованных переменных, список отсутствующих optional variables, warnings, response format, hash render-а и trace id, но не должен сохранять скрытые raw values без разрешения policy.

Нужно запретить построение system/instruction части promptа из недоверенных данных. Пользовательский текст, комментарии, FTтекст, вложения, Helpфрагменты и связанные записи могут попадать только в специально обозначенные data/usercontent placeholders и должны оставаться недоверенными данными. Prompt-шаблон не должен превращать пользовательский текст в системную инструкцию.

Нужно реализовать response format как часть prompt-шаблона. Prompt должен указывать ожидаемый формат ответа: plain text, structured JSON, classification, ranking, draft, diff, extraction или другой поддержанный тип. Для structured ответа должны быть schema, обязательные поля, допустимые значения, policy для missing/extra fields и безопасные ошибки валидации.

Нужно реализовать preview и dryrun promptа без вызова модели. Администратор или разработчик должен иметь возможность проверить prompt key/version, список переменных, совместимость с operation/input profile, response format, render warnings и примерный rendered shape на synthetic или masked sample data. Preview не должен раскрывать закрытые значения и не должен использовать реальные данные без Security checks.

Нужно реализовать whereused для promptа и версии. AIPrompt должен показывать, какие AIоперации, workflow transitions, screens/views, taskspecific operations, TestAсценарии, system definitions и Helpстраницы используют prompt key или конкретную версию. Удаление или блокировка версии должна быть запрещена или требовать явного safe migration, если версия используется.

Нужно реализовать import/export и system definitions для promptшаблонов. Системные promptы должны поставляться через проверяемые definitions, синхронизироваться с dry-run/diff, защищаться от прямого редактирования без developer mode и позволять создание пользовательской копии там, где это разрешено. Экспорт не должен включать секреты, raw audit payload, реальные пользовательские данные или приватные примеры.

Нужно реализовать migration policy для старых promptструктур, если live readback перед разработкой подтвердит их наличие. Миграция должна иметь dryrun, отчет различий, mapping старых keys к новым AIPrompt records, сохранение audit объяснимости и запрет постоянного compatibility fallback как части нового промышленного контракта.

Нужно интегрировать AIPrompt с Security. Просмотр, создание, редактирование, публикация, deprecate/archive/block, просмотр system prompt text, просмотр переменных, preview и export должны проверяться через Security. Prompt text может быть чувствительной настройкой; пользователь без прав не должен видеть закрытые instruction blocks, внутренние policy notes или диагностические детали.

Нужно интегрировать AIPrompt с TraceContext. Trace id должен попадать в render decision, preview/dryrun diagnostics, audit envelope, AISuggestion metadata и Observability signals. AIPrompt не должен создавать собственный частный traceидентификатор, если общий TraceContext доступен.

Нужно публиковать safe signals в Observability: prompt render requested, render succeeded, render denied, missing variable, incompatible version, deprecated version used, response schema validation failed, unsafe instruction blocked и migration/dry-run result. Signals не должны содержать raw prompt text, raw user data, secrets, скрытые поля или полный rendered payload.

Нужно подготовить HealthCheck provider для AIPrompt. Проверки должны находить битые ссылки operation > prompt, отсутствующие published versions, operation с deprecated/blocked prompt, неизвестные переменные, несовместимые response formats, prompt без TestA/Help, system prompt из недоверенного источника, prompt без whereused diagnostics, конфликт system/user copy и опасные permissive defaults.

Нужно подготовить TestAсценарии: успешный render опубликованной версии, отказ при missing required variable, отказ при blocked version, warning при deprecated version, запрет system instruction из user data, проверка pinned version в audit, dryrun без вызова модели, response format validation, where-used protection, import/export system definition, user copy и отсутствие raw hidden values в logs/audit/diagnostics.

Нужно обновить Help модуля AIPrompt и AIgovernance. Документация должна объяснять администратору и разработчику назначение AIPrompt, stable key, версии, lifecycle, переменные, response format, whereused, system definitions, dry-run/preview, Security, TraceContext, Observability, HealthCheck, TestA и границы с AIInputProfile, AIProvider, AIModel, AITool и доменными модулями.

  1. Границы Ответственности

AIPrompt владеет prompt registry, stable prompt keys, versions/revisions, prompt lifecycle, prompt variable schema, response format, safe render contract, preview/dryrun promptа, whereused, system definitions promptов, import/export prompt definitions, provider-проверками HealthCheck и TestA/Help покрытием этого среза.

AI владеет governance runtime, реестром AIопераций, policy decision, result envelope AISuggestion, invariant ручного подтверждения и общей точкой запуска AIоперации. AI вызывает AIPrompt для renderа, но не хранит promptшаблоны как собственную внутреннюю настройку.

AIInputProfile и AI input/masking/consent runtime владеют сбором безопасного входного пакета, data-class policy, masking/redaction и consent на внешнюю передачу. AIPrompt получает только подготовленные переменные и не читает record fields, комментарии, вложения или FT напрямую.

Security владеет правами, grants/denies, field/view security, masking policy и audit доступа. AIPrompt обязан вызывать Security для операций просмотра, редактирования, публикации, preview и export, но не реализует собственный параллельный механизм прав.

AIProvider и AIModel владеют provider/model capabilities, local/external/offline признаками, cost/context limits, availability, routing metadata и provider secrets. AIPrompt не выбирает модель и не хранит секреты provider-ов.

AITool владеет tool allowlist, input/output schema, side effects, confirmation policy, required rights, limits и безопасным execution pipeline. AIPrompt может описывать ожидаемый structured result, но не исполняет tools.

TraceContext владеет созданием, приемом, распространением и диагностическим объединением trace id. AIPrompt только принимает и передает trace id в render decision, audit и diagnostics.

Observability владеет routing, хранением, агрегацией, retention, dashboards и diagnostic packages. AIPrompt публикует только safe signals по prompt registry, render и validation decisions.

HealthCheck владеет общим механизмом запуска и агрегации проверок. AIPrompt поставляет providerпроверки для prompt registry, versions, variables, response formats, system definitions и whereused.

TestA владеет общим тестовым каркасом. AIPrompt поставляет сценарии, fixtures и expected results для prompt render, versioning, lifecycle, validation, system definitions и absence of leakage.

Tasks и другие доменные модули владеют taskspecific AI operations, пользовательским UX, доменными ограничениями, применением подтвержденного результата и taskspecific prompt packs. AIPrompt не должен знать внутреннюю структуру записи Tasks и не должен применять AI-результат к доменной БД.

  1. Не Входит В Этот Срез

Не входит реализация AI-governance core, operation registry, AISuggestion, policy runtime и invariant ручного подтверждения.

Не входит реализация AIInputProfile, сбор входных данных, field keys, masking/redaction, consent и external transfer policy.

Не входит реализация AIProvider/AIModel routing, fallback model policy, стоимость моделей, local runtime readiness, provider secrets и выбор конкретной модели.

Не входит реализация AITool policy, allowlist инструментов, tool execution pipeline и write-tool side effects.

Не входит реализация конкретных AI-операций Tasks: классификация задачи, поиск похожих задач, резюме истории, черновик ответа или комментария.

Не входит доменный UI Tasks для показа AI-предложения, редактирования результата и применения изменений.

Не входит lifecycle delivery через EventBus, фоновое выполнение через Queue, retry/deadletter, batch processing и longrunning AI jobs.

Не входит хранение файлов, OCR, preview вложений, FT indexing и чтение physical files.

Не входит внешний prompt marketplace, обучение моделей, model hosting, RAGхранилище и внешние AIинтеграции.

Не входит постоянная поддержка старого AI.ProfilesJson как compatibility fallback. Если перед реализацией будут подтверждены действующие promptнастройки в старых структурах, миграция должна быть оформлена отдельным срезом или отдельным этапом с dryrun и отчетом различий.

  1. Критерии Приемки

В модуле AIPrompt есть промышленная сущность prompt-шаблона со stable key, названием, описанием, owner module, purpose, prompt type, language, status, origin, version/revision, response format, списком переменных, Help reference, TestA reference и признаком system definition.

Изменение смысла prompt-а, набора переменных, response format или instruction hierarchy создает новую версию или фиксируемый revision; старые версии остаются доступны для audit/readback.

Поддержан lifecycle draft, published, deprecated, archived, blocked; production runtime использует только publishedверсии, кроме явно разрешенного dryrun/preview режима.

AIOperationDefinition может ссылаться на prompt key и pinned version или разрешенный version range; runtime фиксирует точный prompt key/version/revision в audit и AISuggestion metadata.

Prompt variables описаны декларативно: key, русское название, описание, тип данных, required/optional, data class expectation, allowed source kind, size limit, default policy, masking expectation и поведение при отсутствии значения.

AIPrompt не читает физические поля записи, комментарии, вложения, FT или связанные записи напрямую; render получает только безопасный prepared input package.

Render проверяет совместимость prompt variables с AIInputProfile и безопасно отказывает при missing required variables, incompatible data class, missing masking readiness или blocked consent state.

System/instruction часть promptа не может строиться из пользовательского текста, вложений, FTтекста, Help-фрагментов или связанных записей как из доверенных инструкций.

Prompt содержит response format; structured response имеет schema, обязательные поля, допустимые значения, policy для missing/extra fields и безопасные validation errors.

Preview/dryrun promptа работает без вызова модели, показывает variables, response format, render warnings, missing variables, version diagnostics и rendered shape только на synthetic или masked sample data.

Whereused показывает AIоперации, workflow transitions, screens/views, taskspecific operations, TestAсценарии, system definitions и Help-страницы, использующие prompt key или конкретную версию.

Удаление, блокировка или archive prompt-версии запрещены или требуют safe migration, если версия используется operation, audit, AISuggestion, system definition или TestA.

System prompt definitions поддерживают dry-run import, diff, conflict system/user copy, защиту системной записи и пользовательскую копию там, где это разрешено.

Export prompt definitions не включает secrets, raw audit payload, реальные пользовательские данные, приватные примеры и скрытые диагностические сведения.

Просмотр, создание, редактирование, публикация, deprecate/archive/block, preview, export и просмотр system prompt text проверяются через Security.

TraceContext проходит через render decision, preview/dry-run diagnostics, audit envelope, AISuggestion metadata и Observability signals.

Observability получает только safe signals по prompt render, missing variables, version conflicts, deprecated/blocked usage, response validation и dry-run/migration results.

HealthCheck provider AIPrompt находит битые ссылки operation > prompt, отсутствующие published versions, deprecated/blocked prompt usage, unknown variables, несовместимые response formats, prompt без TestA/Help, system prompt из недоверенного источника и опасные defaultразрешения.

TestA покрывает successful render published version, missing required variable denial, blocked version denial, deprecated version warning, запрет system instruction из user data, pinned version audit, dryrun без вызова модели, response format validation, whereused protection, import/export system definition, user copy и absence of leakage.

Help содержит руководство администратора и разработчика по AIPrompt registry, stable key, versions/revisions, lifecycle, variables, response format, whereused, system definitions, dryrun/preview, Security, TraceContext, Observability, HealthCheck и TestA.

-

Реализован первый срез AI-governance core в модуле AI.

Что сделано:

Проверка:

-

Реализован второй срез AIgovernance в модуле AI: AIInputProfile, dataclass policy, masking/redaction и consent.

Что сделано:

Проверка:

-

Реализован третий AI-governance срез в модуле AIPrompt: versioned prompt registry и safe render contract.

Что сделано:

Проверка:

1. Связанные задачи

1.1. 🔗 blocks: I128-2838

[I128-2838] AI-операции задач в модуле Tasks Статус: Завершено | Автор: Ilya Mikhaylenko

1.2. 🔗 blocks: I128-2793

[I128-2793] Ввести TraceContext для сквозной трассировки операций Статус: Завершено | Автор: Ilya Mikhaylenko

1.3. 🔗 blocks: I128-2797

[I128-2797] Расширить Security для проектных прав, полей, действий и аудита доступа Статус: Завершено | Автор: Ilya Mikhaylenko

1.4. 🔗 blocks: I128-2798

[I128-2798] Реализовать HealthCheck для workflow-проектов и задач Статус: Завершено | Автор: Ilya Mikhaylenko

1.5. 🔗 blocks: I128-2799

[I128-2799] Подготовить TestA-контракты системных JSON и end-to-end сценариев Статус: Завершено | Автор: Ilya Mikhaylenko

1.6. 🔗 blocks: I128-2818

[I128-2818] Реализовать наблюдаемость Observability для промышленных модулей Статус: Завершено | Автор: Ilya Mikhaylenko

1.7. 🔗 blocks: I128-2833

[I128-2833] AI-governance core: policy runtime и реестр AI-операций Статус: Завершено | Автор: Ilya Mikhaylenko

1.8. 🔗 blocks: I128-2834

[I128-2834] AI input profiles, masking и consent Статус: Завершено | Автор: Ilya Mikhaylenko