# Пять демонстрационных сценариев Четыре сценария адаптированы из предоставленной аналитической работы «Finance Harness», версия 1.0 от 11.11.2026, раздел 3 (страницы 4–5), с учётом технической модели на странице 11. Третий сценарий заменён на поиск сигналов в волатильных акциях по продуктовому запросу. Это требования к демонстрации Invest Harness, а не описание готовых интеграций или подтверждённых продуктовых эффектов В исследовании профили называются harness. В [терминах платформы](design.md) «Мой первый портфель», «Эксперты из Пульс», «Поиск сигналов в волатильных акциях», «Капитал под цель» и «Исследовательская панель» — пять **шаблонов агента** на общей DSH-базе: каждый закрепляет harness, плагины, скиллы, правила ответа и JSON Schema настроек. Отдельный движок для каждого сценария не нужен. Пользователь создаёт из шаблона свой экземпляр агента | Шаблон | Запрос пользователя | Результат | Демонстрируемая возможность | |---|---|---|---| | Мой первый портфель | «Объясни, чем отличаются эти инструменты» | Понятное сравнение и учебный пример | Настройка глубины ответа через форму | | Эксперты из Пульс | «Как менялась позиция выбранного автора?» | Хронология с подтверждающими источниками | Поиск по публикациям и цитирование | | Поиск сигналов в волатильных акциях | «Сообщи о необычном движении выбранных акций» | Сигнал с графиком и объяснением | Частый мониторинг и уведомления | | Капитал под цель | «Как накопить 3 млн рублей за семь лет?» | Несколько расчётных планов | Калькулятор, параметры и график | | Исследовательская панель | «Сравни банки по отчётности» | Проверяемые расчёты и аналитический отчёт | Инструменты, документы и свой Runner | ## Общие условия демонстрации Пользователь выбирает шаблон в каталоге, настраивает форму, связывает разрешённые connections и выбирает локальное или удалённое исполнение. Провайдер модели выбирается независимо от сценария: API key либо доступный для этой среды account mode из [матрицы плагинов](plugins.md). Наличие подписки не гарантирует доступность интеграции В каждом сценарии ниже названия инструментов и финансовых плагинов — проектируемые возможности. Плагины объявляют доступы, а шаблоны закрепляют версии и скиллы. Минимальная демонстрация работает с подготовленными документами и снимками данных; доступ к брокерскому аккаунту, Пульсу и платным источникам не считается уже полученным Для этих пяти демонстрационных шаблонов используются учебные либо read-only подключения без отправки торговых поручений. Это граница конкретных шаблонов; платформа по-прежнему рассматривает внутреннюю логику Runner как чёрный ящик. Скилл описывает метод работы, но ограничения доступа обеспечивает runtime и политика инструментов Настройки ниже — содержимое config schema шаблона; вопрос, документ и снимок портфеля — вход конкретного Run. Секреты хранятся в connections, а не в форме. Смена профиля не переносит контекст автоматически: пользователь явно передаёт выбранный снимок или параметры цели новому агенту; права проверяются повторно. Общая неограниченная память между агентами не требуется ## 1. «Мой первый портфель» **Пользователь и цель.** Начинающий инвестор хочет понять инструменты и смысл показателей до принятия собственного решения. Пример запроса: «Объясни разницу между вкладом и облигацией из этого примера простыми словами» **Состав.** DSH harness; плагины словаря, рыночных справочников и симулятора портфеля (`glossary`, `market_data`, `portfolio_simulator`); скилл объяснения финансовых понятий. Брокерское подключение не требуется **Настройки формы.** `knowledgeLevel` — начальный/базовый; `explanationDepth` — кратко/подробно; `showGlossary` и `includeQuiz` — переключатели; `virtualCapital` — положительная сумма с валютой. Это параметры объяснения и симуляции, а не присвоение пользователю инвестиционной стратегии **Ход сценария.** 1. Пользователь выбирает «Мой первый портфель», задаёт уровень объяснения и виртуальный капитал, сохраняет ревизию 2. Передаёт вопрос и выбирает инструменты из демонстрационного набора 3. Агент получает определения и характеристики из разрешённых источников, отделяет известные условия от допущений 4. Симулятор строит учебный пример; агент объясняет результаты и при включённой настройке добавляет вопрос для самопроверки 5. Пользователь меняет глубину объяснения через форму и запускает новый Run с теми же входными данными **Результат.** Сравнение инструментов, расшифровка терминов, учебный пример и ссылки на использованные материалы. Краткий и подробный режимы сохраняют одни и те же исходные факты **Если данных не хватает.** Агент обозначает отсутствующие характеристики и предлагает дополнить вход. Недоступность источника не заменяется выдуманным значением. Учебная цена или доходность явно помечается как условная **Регулярная работа.** Раз в неделю агент готовит урок по выбранным темам, обновляет учебный пример и добавляет вопрос для самопроверки. План тем задаётся в настройках; предыдущий результат передаётся явно, если нужно избежать повторения урока. Ответ пользователя не предполагается автоматически: он может запустить отдельный разбор ответа вручную. Реальные сделки и брокерский аккаунт для такого расписания не нужны **Критерий приёмки.** Форма меняет стиль и детализацию ответа без редактирования prompt пользователем; расчёты симулятора воспроизводимы; отсутствуют инструменты размещения поручений. Минимальный запуск — локально с кешированным учебным набором; модель может требовать сеть ## 2. «Эксперты из Пульс» **Пользователь и цель.** Читатель хочет найти и сопоставить опубликованные взгляды автора. Пример: «Что автор писал о банках до отчётности и после неё?» **Состав.** DSH harness; плагины `pulse_search`, `transcript_search`, `stance_timeline`, `conflict_checker`; скилл анализа источников. Для первого демо используется разрешённый набор публикаций с метаданными либо явно синтетический корпус. Живая интеграция с Пульсом требует отдельной проверки доступа **Настройки формы.** `authorIds`, временной интервал поиска, `answerDepth`, `includeContradictions`. Обязательность ссылок и запрет выдуманных цитат входят в политику шаблона и не выключаются пользовательской настройкой **Ход сценария.** 1. Пользователь выбирает автора и период, задаёт вопрос 2. Поиск фильтрует разрешённый корпус по автору, датам и теме 3. Инструменты возвращают фрагменты, идентификаторы публикаций, даты публикации/обновления и источник 4. Агент разделяет факты и мнения, сопоставляет позиции во времени и показывает противоречия 5. Пользователь открывает источник из ответа либо расширяет период и создаёт новый Run **Результат.** Хронология тезисов с цитатами и источниками; отдельно — что найдено, что противоречит друг другу и чего подтвердить не удалось. Это поиск по высказываниям, а не выступление от имени живого автора **Если подтверждения нет.** Агент сообщает, что позиция не найдена в выбранном корпусе и периоде. Старая публикация не превращается в утверждение о сегодняшней рекомендации. Команды внутри найденных текстов не получают полномочий управлять агентом **Регулярная работа.** Ежедневный запуск проверяет новые и обновлённые публикации выбранных авторов, формирует дайджест и сопоставляет их с ранее найденными позициями. Источник должен поддерживать разрешённое чтение; для демо достаточно последовательных снимков корпуса. Плагин сохраняет идентификаторы и даты обновления обработанных публикаций отдельно от ExecutionSpec; отметка обработки продвигается только после сохранения результата. Повторная проверка с перекрытием интервалов не дублирует публикации. Если материалов нет, отчёт сообщает об отсутствии обновлений; ошибка доступа не трактуется как отсутствие публикаций **Критерий приёмки.** Каждая цитата совпадает с фрагментом корпуса, автор и дата атрибутированы правильно. Тестовый конфликт показывает обе позиции; запрос без источника не порождает выдуманный ответ. Разрешения корпуса проверяются и в локальном, и в удалённом режиме ## 3. «Поиск сигналов в волатильных акциях» **Пользователь и цель.** Инвестор выбирает набор волатильных акций и хочет получать сообщения о необычном ускорении роста, замедлении роста или падении цены. Пример: «Проверяй эти акции каждые две минуты и сообщай о резких изменениях, для которых не нашлось объяснения в доступных источниках» **Состав.** DSH harness; плагины рыночных данных, расчёта сигналов, новостного поиска, графиков, `recurring-tasks` и доставки уведомлений; скилл объяснения рыночных отклонений. Расчёт выполняет детерминированный инструмент, а агент проверяет контекст и формулирует сообщение. Торговые поручения не отправляются **Настройки формы.** Список идентификаторов инструментов и бирж, интервал проверки (в первой версии 1–5 минут), размер свечи, окно сглаживания, окно оценки обычной волатильности, пороги скорости и ускорения, минимальная ликвидность/объём, максимальный возраст данных, время подавления повторов и выбранные типы сигналов. Пользователь задаёт режим уведомлений: обо всех обнаруженных отклонениях либо только об отклонениях без найденного объяснения. Источники новостей и канал доставки подключаются с отдельными разрешениями; секреты в форму не попадают **Как определяется сигнал.** Используются завершённые свечи одинаковой длительности. Расчётный плагин получает сглаженный логарифм цены x(t), оценивает скорость v(t) = [x(t) − x(t−Δt)] / Δt и ускорение a(t) = [v(t) − v(t−Δt)] / Δt. Метод сглаживания, единицы времени, пороги и версия алгоритма закреплены в конфигурации. Сглаживание и сравнение используют только данные, доступные к моменту оценки, без будущих свечей - Ускорение роста: скорость положительна, ускорение положительно и превышает выбранный порог необычности - Замедление роста: скорость ещё положительна, ускорение отрицательно и по модулю превышает порог; это не утверждение, что цена уже падает - Падение: скорость отрицательна и её модуль превышает порог; отрицательное ускорение дополнительно отмечает усиление падения Пороги сравниваются с прошлым поведением той же бумаги на сопоставимом интервале, а не с одним абсолютным значением для всех акций. Алгоритм и значения порогов проверяются на историческом воспроизведении до включения уведомлений; документ не задаёт универсально прибыльную торговую стратегию **Ход сценария.** 1. Пользователь выбирает акции, периодичность, параметры чувствительности и канал уведомлений, сохраняет ревизию и включает расписание 2. Запуск проверяет торговую сессию, свежесть и полноту свечей, достаточность истории и ликвидность, затем рассчитывает скорость, ускорение и отклонения 3. Для кандидатов плагин проверяет корпоративные события, доступные новости, движение рынка и сектора; сплит или изменение базы цены не выдаются за обычный рыночный скачок 4. Агент формирует объяснение со ссылками либо помечает, что объяснение не найдено в проверенных источниках. Недоступный источник обозначается отдельно: он не подтверждает отсутствие новостей 5. Сигнал сохраняется, проверяется подавление повторов и создаётся задание доставки в разрешённый канал. Пользователь получает время, бумагу, тип отклонения, значения показателей, график или ссылку на него и статус проверки объяснения **Результат.** Карточка сигнала с датой и часовым поясом, временем последней свечи, источником котировок, интервалом расчёта, порогом и измеренным отклонением. При найденной новости показывается возможная связь, а не доказанная причина. Слова «объяснение не найдено» не означают, что движение объективно необоснованно, и не являются командой купить или продать **Если данные непригодны.** При пропусках, устаревших котировках, недостаточной истории, остановке торгов или неподтверждённой корректировке цены расчёт по бумаге пропускается с причиной. Недоступность новостей даёт статус «объяснение не проверено»; в режиме «только без найденного объяснения» такой сигнал не отправляется как необъяснённый. Техническая ошибка видна в истории запусков **Регулярная работа.** Расписание запускает проверку каждые 1–5 минут; плагин учитывает календарь и сессию конкретной биржи, вне сессии возвращает статус без сигнала. Для этого сценария overlapPolicy=skip и misfirePolicy=skip: после простоя проверяется ближайшее новое срабатывание, просроченные торговые сигналы не рассылаются. Субминутный мониторинг потребует отдельного потокового режима и не обещается текущим cron API Состояние мониторинга хранит последнюю обработанную свечу и активное отклонение отдельно для tenant, агента, инструмента и версии алгоритма. Пока одно отклонение продолжается, новые проверки не создают одинаковые уведомления. Повтор разрешён после возврата показателя в норму и нового пересечения порога либо при явно настроенном усилении сигнала; cooldown ограничивает частоту. Перезапуск Runner не сбрасывает это состояние Сигнал и запись на доставку фиксируются атомарно в хранилище плагина. Доставка повторяется отдельно от расчёта с тем же notificationId и ограниченным сроком актуальности; статус доставки виден пользователю. Если канал не поддерживает идемпотентность, неоднозначный ответ отмечается как неизвестный результат доставки, без обещания отсутствия дублей. Перед отправкой повторно проверяются разрешение канала и возраст сигнала **Критерий приёмки.** Историческое воспроизведение проверяет раздельное обнаружение трёх типов движения, отсутствие использования будущих данных и подавление повторов. Пропуск свечи, сплит, закрытая сессия и устаревшие котировки не создают ложный сигнал в подготовленных тестах. Повтор одного запуска не создаёт второе задание доставки, а сбой доставки не запускает повторный анализ. Качество сигналов и частота ложных срабатываний измеряются отдельно; успешный Run не доказывает полезность сигнала для торговли ## 4. «Капитал под цель» **Пользователь и цель.** Пользователь задаёт сумму и срок и хочет сравнить возможные планы накопления. Пример: «Какой ежемесячный взнос нужен для 3 млн рублей через семь лет?» **Состав.** DSH harness; плагины `goal_calculator`, `scenario_engine` и графиков; скилл объяснения сценарных расчётов. Брокерское подключение необязательно; доходность и инфляция могут быть заданными пользователем допущениями **Настройки формы.** `targetAmount`, `targetDate`, `initialCapital`, `currency`, `contributionTiming`, массив сценариев с доходностью и инфляцией. Форма явно различает будущую номинальную сумму и сумму в сегодняшних ценах; не предлагает скрытого значения «ожидаемой доходности» **Ход сценария.** 1. Пользователь создаёт «Капитал под цель», заполняет цель и исходные параметры 2. Валидатор отклоняет прошедшую дату, несовместимые валюты и неполные сценарии 3. Калькулятор определяет периодичность, преобразует ставки по зафиксированной методике и рассчитывает взносы для каждого сценария 4. Агент объясняет различия; график строится из результата калькулятора, а не из чисел, придуманных моделью 5. Пользователь меняет срок или взнос через форму и получает новый расчёт, сохраняя предыдущую ревизию для сравнения **Результат.** Таблица сценариев, требуемый взнос, траектории накопления, исходные допущения и методика. До появления встроенного chart-компонента достаточно таблицы и файла с рядами данных; интерактивный график — отдельная возможность UI **Если цель недостижима при заданном взносе.** Агент показывает расчётный разрыв и чувствительность к изменению параметров. Он не увеличивает допущение доходности молча и не представляет сценарии как прогноз рынка **Регулярная работа.** Раз в месяц агент получает актуальный капитал и фактические взносы из разрешённого источника либо явно обновлённого пользователем снимка, сравнивает их с планом и рассчитывает оставшийся взнос. Допущения доходности и инфляции остаются закреплёнными настройками, пока пользователь их не изменит. Без свежих фактических данных создаётся только плановый пересчёт с явной отметкой, что выполнение плана не проверено. Агент предлагает изменения параметров, но не сохраняет новую ревизию цели без действия пользователя **Критерий приёмки.** Калькулятор корректно обрабатывает нулевую ставку, уже достигнутую цель, момент внесения взноса и номинальные/реальные суммы. Ответ и график используют один набор данных. Сценарий доступен локально без подключения брокера ## 5. «Исследовательская панель» **Пользователь и цель.** Аналитик хочет сократить сбор отчётности и расчёт сопоставимых показателей. Пример: «Сравни выбранные банки по ROE, капиталу и динамике маржи за один период» **Состав.** DSH harness; плагины чтения документов, `statements_RAG`, `calculate_metrics`, графиков; опциональный read-only адаптер брокерских данных; скилл анализа отчётности. Идентификаторы инструментов — проектируемые контракты, а не утверждение о наличии готового MCP-сервера **Настройки формы.** `entityIds`, отчётный период, стандарт отчётности, валюта представления, `metricIds`, `checklistVersionId`, `sourcePolicy`. В первой версии пользователь выбирает проверенные формулы и чек-листы. Загрузка произвольного исполняемого кода формулы требует отдельного пакета, проверки и разрешений **Ход сценария.** 1. Аналитик выбирает «Исследовательская панель», документы и набор показателей, сохраняет параметры через форму 2. При конфиденциальных материалах выбирает локальный или on-prem Runner и модель, разрешённую политикой передачи данных 3. Поиск находит строки документов с привязкой к страницам; нормализатор проверяет период, единицы, стандарт и периметр консолидации 4. Калькулятор вычисляет показатели по выбранной версии методики. Агент формирует интерпретацию и перечисляет ограничения сравнения 5. Результат сохраняется как отчёт, таблица расчётов и использованные ссылки. Повторное исследование закрепляет новый снимок входных данных **Результат.** Сравнительная таблица, формулы и исходные числа со ссылками на страницы, графики при наличии UI capability, список несопоставимых или отсутствующих значений **Если документы несопоставимы.** Показатель маркируется как несопоставимый или нерассчитанный; отсутствие данных не заменяется нулём. При недоступности своего Runner задача не переносится в облачный пул автоматически. Само размещение Runner on-prem не разрешает отправлять документы внешней модели **Регулярная работа.** Раз в неделю агент проверяет разрешённые источники на новые или исправленные отчёты выбранных компаний. При появлении документов пересчитывает сопоставимые показатели и показывает различия с предыдущим успешным исследованием, сохраняя версии документов и методики. Если новых документов нет, возвращает краткий статус без нового вывода о компании. Исправленный отчёт обрабатывается как новая версия источника, а не незаметная замена прежнего результата **Критерий приёмки.** На подготовленном наборе документов расчёты совпадают с эталоном в заранее заданной погрешности; каждое исходное число имеет источник. Переключение на совместимый свой Runner сохраняет контракт входа/выхода и не расширяет доступы ## Общие правила регулярного запуска Пользователь выбирает расписание, IANA timezone, закреплённую ревизию агента и место исполнения, проверяет ближайшие срабатывания и включает задачу. Настройки расписания хранятся в Schedule, а не внутри каждого DSH-плагина. Выключение расписания прекращает будущие запуски; текущий Run отменяется отдельно Каждое срабатывание создаёт отдельный Run с новым входным снимком либо явно указанным режимом получения свежих данных. После создания ExecutionSpec не меняется. Данные, полученные внутри Run, сохраняются как артефакты с датами и источниками. Сравнение с историей использует явно разрешённую ссылку на предыдущий успешный результат, а не неограниченную общую память агентов Для периодических обзоров исходный вариант — overlapPolicy=skip и misfirePolicy=coalesce: занятое расписание пропускает срабатывание, после простоя выполняется максимум один пропущенный запуск. Точная семантика задана в [API расписаний](api/runs-api.md). Поиск краткоживущих сигналов использует misfirePolicy=skip, как указано в третьем сценарии. Плагин хранит состояние мониторинга в пределах tenant и экземпляра агента; повтор не должен дважды продвигать отметку обработки. Это требование к реализации финансовых плагинов, а не новая гарантия диспетчера Результат доступен в истории запусков. Для третьего сценария плагин уведомлений и разрешение канала обязательны до включения доставки; для остальных уведомления опциональны. Наличие расписания само по себе не означает отправку сообщений. Если данные недоступны, отчёт показывает проблему, а отзыв connection приостанавливает расписание согласно общему контракту ## Связь с реализацией платформы Финансовые инструменты перечисленных шаблонов расширяют [линейку плагинов](plugins.md), но не становятся частью диспетчера. Сначала можно реализовать один ручной запуск с подготовленными данными; расписания, графики и удалённое исполнение подключаются по мере готовности соответствующих компонентов | Возможность | Где определён контракт | |---|---| | Форма, defaults и ревизии | [JSON Schema Driven UI](configuration-ui.md), [Agents API](api/agents-api.md) | | Публикация пяти шаблонов и зависимостей | [Каталог](catalog.md), [Catalog API](api/catalog-api.md) | | Подключение моделей и данных | [Provider API](api/provider-api.md), [безопасность](security.md) | | Ручной запуск и расписание | [Runs API](api/runs-api.md) | | Локальный и заменяемый Runner | [Исполнение](execution.md), [Runner Protocol](api/executor-api.md) | | Этапы платформы | [Roadmap](roadmap.md) | Успешный Run означает, что результат принят по техническому контракту. Финансовая корректность, точность цитат и понятность объяснений проверяются отдельными эталонными задачами каждого шаблона. Числа из примеров — входы демонстрации, а не обещания доходности или измеренные результаты продукта