НАЧАЛО >> Оглавление >> Общее описание >> История изменений >> Что нового в проекте I128 >> Версия 2026.3 >> [I128-2838] AI-операции задач в модуле Tasks📄 Скачать в DOCX
| Тип | Версия | Статус | Приоритет | Исполнитель |
|---|---|---|---|---|
| ⚙️ Новые возможности | 2026.3 | 🔘 Завершено |
Средний | Unassigned |
Компоненты: Нет
Завершено: 07.09.2026 08:23
Цель
Добавить в модуль Tasks управляемые AIоперации задач: классификацию задачи, поиск похожих задач, резюме истории, подготовку черновика ответа или внутреннего комментария, просмотр AIпредложения и ручное применение подтвержденного результата пользователем.
Контекст
Tasks должен использовать общесистемные AIконтракты, а не реализовывать собственный AIengine. Общий AIgovernance проверяет возможность запуска операции и invariant ручного подтверждения результата. AIInputProfile отвечает за разрешенные входные данные, masking и consent. AIPrompt хранит promptшаблоны и версии. AIProvider и AIModel отвечают за routing моделей. AITool отвечает за allowlist инструментов и безопасное выполнение tool-действий. Security проверяет права. FieldConfiguration дает стабильные field keys. FindDublet дает deterministic baseline для похожих задач. FieldHistory, стандартная история записи и Collaboration дают безопасные источники истории и коммуникаций.
Задача этого среза - реализовать только доменный слой Tasks поверх этих контрактов: какие AI-операции доступны задачам, какие данные задачи они могут использовать, как пользователь видит предложение, как подтверждает или отклоняет результат и как Tasks применяет подтвержденный результат через собственный доменный API, права, workflow, историю и проверки.
AIрезультат в Tasks всегда является предложением. Он не должен автоматически менять поля задачи, публиковать ответ заявителю, назначать ответственного, выполнять workflowпереход, закрывать задачу, связывать дубль или отправлять сообщение без явного действия пользователя или отдельной утвержденной доменной политики.
Для каждой операции нужно задать stable operation key, русское название, описание, область применения, доступность по проекту и типу задачи, required permissions, feature flag binding, input profile binding, prompt key/version policy, model policy binding, tool policy binding при необходимости, result type, apply policy, audit policy, TestA scenario reference и Help reference.
Операция классификации должна анализировать разрешенные поля задачи и возвращать предложение по типу, категории, тегам, компоненту, сервису или другому task-specific классификатору, если соответствующие поля есть в field pack проекта. Операция не должна менять задачу автоматически. Пользователь должен видеть предложенные значения, объяснение причин, использованные источники и warnings. Применение выполняет Tasks через обычный save/apply path с проверкой прав, ФЛК, истории и конфликтов версии.
Операция поиска похожих задач должна использовать FindDublet как deterministic baseline: нормализация, candidate resolver, scoring, thresholds и safe visibility кандидатов остаются в FindDublet. AI может только ранжировать, объяснять или сгруппировать уже разрешенный набор кандидатов, если policy это разрешает. Пользователь должен видеть кандидатов, причины похожести, уровень уверенности и действия: открыть, связать как дубль, связать как related, отклонить кандидата или запустить уточнение. Связь создается только после ручного действия пользователя через типизированную связь Tasks.
Операция резюме истории должна строить краткую сводку по доступной пользователю истории задачи: человекочитаемая история записи, значимые изменения FieldHistory, разрешенные комментарии Collaboration, разрешенные вложения или извлеченный FTтекст, workflowсобытия и публичные ответы, если они доступны actor-у. Hidden fields, private comments, закрытые вложения, секреты и данные без права чтения не должны попадать во входной пакет, prompt, audit, кэш, diagnostic package или результат. Резюме должно быть предложением, которое можно обновить, скопировать, сохранить как внутреннюю заметку или использовать в черновике только после действия пользователя.
Операция черновика ответа заявителю должна формировать draft ответа на основе разрешенных данных задачи, комментариев, истории, вложений и справочных материалов. Результат должен попадать в черновик Collaboration или другой штатный draft-механизм коммуникаций, но не публиковаться автоматически. Пользователь должен видеть текст, источники, предупреждения, ограничения и возможность отредактировать текст до отправки.
Операция черновика внутреннего комментария должна формировать внутренний draft для сотрудника. Она не должна превращать приватную коммуникацию в публичный ответ и не должна раскрывать закрытые данные пользователям без прав. Публикация комментария выполняется только штатным механизмом Collaboration после ручного подтверждения.
Нужно реализовать task-specific input profiles для операций Tasks. Они должны ссылаться на field keys из FieldConfiguration, а не на физические номера полей. Профиль должен задавать разрешенные поля, секции карточки, комментарии, историю, вложения, связанные задачи, внешние ссылки, project metadata и пользовательский ввод. Все чтение источников должно проходить через Security и общий AI input/masking/consent contract.
Нужно реализовать UI просмотра AI-предложения в карточке задачи и, где применимо, в рабочем месте Tasks. Пользователь должен видеть статус операции, использованные источники, prompt/template version, модель или model policy label, warnings, confidence, diff предлагаемых изменений, действия принять, применить частично, изменить перед применением, отклонить, запустить повторно и открыть диагностическое объяснение в пределах своих прав.
Нужно реализовать domain apply contract внутри Tasks. Применение AIпредложения должно идти через те же доменные проверки, что и обычное изменение задачи: права Security, field security, ФЛК, workflow constraints, проверка версии записи, запись истории, FieldHistory для значимых полей, EventBusсобытие и safe audit. Если предложение больше не применимо из-за изменения задачи, пользователь должен получить понятный конфликт и возможность повторить операцию.
Нужно обеспечить, что AIоперации не обходят workflow. Если результат должен привести к переходу статуса, назначению, закрытию, публикации ответа или связыванию дубля, это должно выполняться отдельным разрешенным действием пользователя, workflow transition или domain command Tasks, а не скрытым side effect AIоперации.
Нужно поддержать lifecycle AI-предложения в Tasks: created, viewed, accepted, partially accepted, edited before apply, rejected, expired, superseded, failed, denied. Срок жизни предложения должен быть ограничен policy. Устаревшее предложение не должно применяться к измененной версии задачи без повторной проверки.
Нужно интегрировать операции с Flags. AI-операции должны быть выключаемы глобально, по проекту, типу задачи, роли, операции, каналу, host или пользователю через общий feature flag/policy layer. Отключенный AI не должен ломать основной workflow задачи: кнопки скрываются или показывают объяснимую недоступность, а ручная работа остается возможной.
Нужно интегрировать операции с Queue. Тяжелые операции, пакетный пересчет похожих задач, длинные резюме, массовое обновление suggestions или операции с внешними моделями должны выполняться через Queue. Tasks должен задавать task-specific job metadata и handler binding, но не реализовывать собственный runtime очередей.
Нужно публиковать безопасные события и signals. EventBus должен получать только доменные события уровня suggestion created/applied/rejected/expired, duplicate candidate linked, draft created, если они нужны workflow, уведомлениям или интеграциям. Observability должен получать safe signals по latency, отказам policy, ошибкам input profile, dry-run, очередям, apply conflicts и качеству результата без raw prompt, скрытых полей, секретов или приватных комментариев.
Нужно подготовить task-specific HealthCheck provider. Проверки должны находить отсутствующие operation definitions, несуществующие prompt/input/tool/model bindings, отсутствующие field keys, недоступные FindDublet profiles, сломанные Collaboration draft bindings, отсутствие прав, опасно включенные операции, несогласованные feature flags, операции без TestA/Help, операции без apply policy, невалидные Queue handlers и настройки, при которых AI может попытаться применить результат в обход Tasks.
Нужно подготовить taskspecific TestA datasets и сценарии. Должны проверяться включенный и отключенный AI, успешная классификация, отказ без права, отказ по hidden field, missing consent, поиск похожих задач через FindDublet baseline, AI rerank только по видимым кандидатам, резюме истории без приватных данных, черновик ответа без публикации, черновик внутреннего комментария без раскрытия, ручное применение классификации, частичное применение, отклонение, повторный запуск, конфликт версии, Queue execution, audit, EventBus/Observability signals, HealthCheck diagnostics и отсутствие автоматического workflowперехода.
Нужно обновить Help для пользователя, администратора и разработчика. Пользовательская Help должна объяснять, что AI выдает предложения и как их принимать, редактировать или отклонять. Административная Help должна описывать включение операций, field/input profiles, prompt bindings, flags, права, diagnostics и типовые ошибки. Developer Help должна описывать task operation pack, domain apply contract, TestA dataset, events/signals и границы с AI-модулями.
Tasks не реализует AI-governance core, masking/redaction runtime, prompt registry, provider/model routing, tool registry, tool execution pipeline, общий feature flag engine, Security engine, Queue runtime, EventBus delivery, Observability storage, FieldHistory engine, FindDublet engine, Collaboration engine, FieldConfiguration engine, HealthCheck framework или TestA framework.
AI владеет общей проверкой запуска AI-операции, operation registry, policy decision, AISuggestion envelope, human confirmation invariant и AI audit envelope. Tasks публикует доменные operation definitions и потребляет решение AI.
AIInputProfile и Security владеют безопасным сбором входных данных, masking, consent и проверкой прав чтения. Tasks задает только task-specific состав источников и field keys.
AIPrompt владеет promptшаблонами, версиями, переменными и safe render contract. Tasks выбирает prompt key/version policy для операции, но не хранит prompt text как часть taskкода.
AIProvider и AIModel владеют provider/model capabilities, policy и routing. Tasks может задавать требования операции к model policy, но не выбирает provider напрямую.
AITool владеет allowlist, schemas, side effects, idempotency и safe execution pipeline. Tasks может использовать разрешенный tool только через AI/AITool contract и не вызывает tool executor напрямую.
FindDublet владеет профилями поиска похожих записей, candidate resolver, scoring и diagnostics. Tasks владеет только task-specific profile binding, показом кандидатов и действием связывания задачи после ручного выбора.
Collaboration владеет комментариями, тредами, публичными ответами, draft и публикацией сообщений. Tasks может запросить создание draft и показать его в сценарии задачи, но не должен хранить собственную параллельную систему коммуникаций.
FieldHistory владеет историей значимых полей и diff. Tasks фиксирует доменное применение AI-результата и передает значимые изменения в штатный history/diff contract.
Не входит автоматическое принятие AIрешений, автоматическое закрытие задачи, автоматическое назначение ответственного, автоматический workflowпереход, автоматическая публикация ответа заявителю или скрытое связывание дубля.
Не входит обучение моделей, RAGхранилище, external adapter marketplace, bidirectional sync с внешними системами, capacity planning, BIаналитика качества AI и выделение отдельного модуля TaskAiAssistants.
Каждая операция имеет stable operation key, русское название, описание, project/type binding, required permissions, feature flag binding, input profile binding, prompt key/version policy, model policy binding, tool policy binding при необходимости, result type, apply policy, audit policy, TestA reference и Help reference.
AI-операции запускаются только через общий AI governance contract и не вызывают provider/model/tool runtime напрямую.
Входные данные операций задаются через task-specific input profiles на field keys из FieldConfiguration; скрытые поля, приватные комментарии, закрытые вложения и данные без права чтения не попадают в prompt, результат, audit, diagnostics или cache.
Классификация возвращает предложение по task-specific классификаторам и применяет выбранные пользователем значения только через обычный доменный save/apply path Tasks.
Поиск похожих задач использует FindDublet baseline и не показывает кандидатов, которые actor не имеет права видеть; AI rerank не расширяет набор видимых кандидатов.
Резюме истории строится только из разрешенных источников и не раскрывает скрытые поля, приватные комментарии, закрытые вложения или секреты.
Черновик ответа заявителю создается как draft и не публикуется без ручного действия пользователя.
Черновик внутреннего комментария не смешивается с публичным ответом и публикуется только штатным механизмом Collaboration после ручного подтверждения.
UI карточки задачи показывает AI-предложение, источники, warnings, confidence, diff, prompt/template version, статус операции и действия принять, применить частично, изменить перед применением, отклонить и запустить повторно.
Применение предложения выполняет Tasks через Security, field security, ФЛК, workflow constraints, version conflict check, историю, FieldHistory и доменный audit.
Устаревшее предложение не применяется к измененной версии задачи без повторной проверки.
Отключение AI через feature flags или policy не ломает ручной workflow задачи и дает безопасное пользовательское объяснение недоступности операции.
Тяжелые и долгие операции выполняются через Queue, а Tasks не реализует собственный queue runtime.
EventBus и Observability получают только safe events/signals без raw prompt, hidden values, private comments, secrets и полных external responses.
HealthCheck provider Tasks диагностирует отсутствующие operation definitions, broken bindings, missing field keys, unavailable FindDublet/Collaboration bindings, unsafe flags, missing rights, missing TestA/Help, invalid Queue handlers и попытки обхода domain apply.
TestA покрывает включенный и отключенный AI, успешные и запрещенные операции, hidden data protection, FindDublet baseline, AI rerank only over visible candidates, summary without private data, draft without publish, manual apply, partial apply, rejection, retry, version conflict, Queue execution, audit, events/signals и HealthCheck diagnostics.
Help содержит пользовательское, административное и developerописание taskspecific AI operations, их ограничений, настройки, диагностики, TestA datasets и границ с общесистемными AI-модулями.
-
Реализован первый кодовый срез Tasks Core.
Что сделано:
Границы:
Проверки:
-
Стековый PR поверх #1302 / I128-2800, потому что базовый контракт записи Tasks еще не в develop. После merge #1302 ветку нужно будет перебазировать или retarget на develop.
Что сделано:
Проверки:
-
Реализован кодовый срез I128-2803: рабочее место задач и внутренний API модуля Tasks.
Что изменено:
Границы:
Проверки:
-
Реализован кодовый срез I128-2804 для модуля Tasks.
Что изменено:
Границы:
Проверки:
-
Реализован taskspecific слой AIопераций в модуле Tasks.
Состав:
Границы ответственности:
Проверки:
[I128-2793] Ввести TraceContext для сквозной трассировки операций
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2794] Реализовать системную событийную шину EventBus
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2795] Расширить Queue как runtime фоновых заданий, retry и расписаний
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2797] Расширить Security для проектных прав, полей, действий и аудита доступа
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2798] Реализовать HealthCheck для workflow-проектов и задач
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2799] Подготовить TestA-контракты системных JSON и end-to-end сценариев
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2800] Каноническая запись задачи TASK
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2801] Системный проект задач Tasks
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2803] Рабочее место задач и внутренний API
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2804] Доменные сущности, связи и классификация задач
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2806] Системные треды и публичные коммуникации Collaboration
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2807] История значимых полей FieldHistory
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2818] Реализовать наблюдаемость Observability для промышленных модулей
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2825] Расширить FieldConfiguration как реестр полей workflow-проектов
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2826] Расширить Help для документации задач, API и эксплуатационных runbook
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2828] Расширить Flags для системных feature flags и rollout policy
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2833] AI-governance core: policy runtime и реестр AI-операций
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2834] AI input profiles, masking и consent
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2835] AIPrompt registry и versioning
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2836] AIProvider/AIModel policy и routing
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2837] AITool policy и safe execution
Статус: Завершено | Автор: Ilya Mikhaylenko
[I128-2823] Расширить FindDublet для поиска дублей задач и workflow-записей
Статус: На рассмотрении | Автор: Ilya Mikhaylenko