From 5c10747fdf48ed627df8288523bb9ec456820bd0 Mon Sep 17 00:00:00 2001 From: admin Date: Wed, 11 Nov 2026 06:31:28 +0000 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=BF=D0=B8=D1=81=D0=B0=D1=82=D1=8C=20?= =?UTF-8?q?=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D1=83=20=D1=88=D0=B0=D0=B1=D0=BB?= =?UTF-8?q?=D0=BE=D0=BD=D0=BE=D0=B2=20=D0=B8=20=D1=80=D0=B5=D0=B3=D1=83?= =?UTF-8?q?=D0=BB=D1=8F=D1=80=D0=BD=D1=8B=D0=B5=20=D0=B7=D0=B0=D0=B4=D0=B0?= =?UTF-8?q?=D1=87=D0=B8,=20=D0=BF=D0=B5=D1=80=D0=B5=D1=81=D1=82=D0=B0?= =?UTF-8?q?=D0=B2=D0=B8=D1=82=D1=8C=20=D1=8D=D0=BA=D1=81=D0=BF=D0=B5=D1=80?= =?UTF-8?q?=D1=82=D0=BE=D0=B2=20=D0=9F=D1=83=D0=BB=D1=8C=D1=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 41 +++++++++++-- designDocument/design.md | 2 +- designDocument/scenarios.md | 114 +++++++++++++++++++++--------------- 3 files changed, 104 insertions(+), 53 deletions(-) diff --git a/README.md b/README.md index 21f24dd..3d3fab3 100644 --- a/README.md +++ b/README.md @@ -13,11 +13,42 @@ Пять шаблонов агента на общей базе DSH: -1. **Мой первый портфель:** объяснение инструментов и учебный портфель -2. **Сохранить деньги:** аудит портфеля, ликвидности и рисков к заданной дате -3. **Капитал под цель:** расчёт взносов и сравнение сценариев накопления -4. **Эксперты с доказательствами:** поиск мнений авторов с датами и источниками -5. **Исследовательская панель:** анализ отчётности и проверяемые расчёты +### 1. Мой первый портфель + +Помогает начинающему инвестору разобраться в инструментах и попробовать их на учебном портфеле + +- **Как работает:** уточняет уровень знаний, объясняет выбранные инструменты простым языком и показывает расчёт на виртуальных данных +- **Регулярная задача:** раз в неделю готовит короткий урок и обзор учебного портфеля с одним вопросом для самопроверки + +### 2. Эксперты из Пульс + +Помогает следить за выбранными авторами и понимать, как меняются их взгляды на рынок + +- **Как работает:** ищет публикации за заданный период, выделяет основные тезисы, сопоставляет позиции и приводит даты и ссылки на источники +- **Регулярная задача:** каждое утро собирает новые публикации выбранных авторов, отмечает изменения мнений и противоречия; если новых материалов нет, сообщает об этом + +### 3. Сохранить деньги + +Проверяет, какие риски портфеля важны, если деньги понадобятся к определённой дате + +- **Как работает:** читает снимок портфеля, оценивает концентрацию, сроки и ликвидность, рассчитывает заданные стресс-сценарии +- **Регулярная задача:** раз в неделю обновляет аудит и показывает изменения относительно предыдущего отчёта, включая устаревшие или недоступные данные + +### 4. Капитал под цель + +Помогает составить и пересматривать план накопления под нужную сумму и срок + +- **Как работает:** принимает цель, стартовый капитал и допущения, рассчитывает взносы для нескольких сценариев и показывает траекторию накопления +- **Регулярная задача:** раз в месяц сверяет план с фактическими взносами и капиталом, пересчитывает оставшийся путь и предлагает параметры для пересмотра пользователем + +### 5. Исследовательская панель + +Собирает отчётность и рассчитывает показатели для самостоятельного анализа компаний + +- **Как работает:** извлекает данные из документов, проверяет периоды и единицы, вычисляет метрики и составляет сравнение со ссылками на исходные числа +- **Регулярная задача:** раз в неделю проверяет появление новых отчётов выбранных компаний и обновляет сравнение, выделяя изменения показателей + +Расписание и часовой пояс задаёт пользователь. Локальные задачи требуют работающего компьютера и фонового исполнителя, удалённые — доступного Runner. Каждый запуск сохраняет отдельный отчёт; торговые поручения эти демонстрационные шаблоны не отправляют [Подробные сценарии: настройки, шаги, результаты и критерии приёмки](designDocument/scenarios.md) diff --git a/designDocument/design.md b/designDocument/design.md index 0c6f06e..ef32a19 100644 --- a/designDocument/design.md +++ b/designDocument/design.md @@ -44,7 +44,7 @@ Invest Harness — платформа агентов для инвестиций ### Пять инвестиционных сценариев -На общем DSH harness создаются пять шаблонов: **«Мой первый портфель»** объясняет инструменты начинающему, **«Сохранить деньги»** проверяет портфель к заданной дате, **«Капитал под цель»** рассчитывает план накопления, **«Эксперты с доказательствами»** сопоставляет подтверждённые мнения авторов, **«Исследовательская панель»** анализирует отчётность. Пользователь настраивает шаблон через JSON Schema Driven UI и выбирает локальный либо удалённый Runner. Финансовые инструменты реализуются плагинами; методика задаётся скиллами +На общем DSH harness создаются пять шаблонов: **«Мой первый портфель»** объясняет инструменты начинающему, **«Эксперты из Пульс»** сопоставляет подтверждённые мнения авторов, **«Сохранить деньги»** проверяет портфель к заданной дате, **«Капитал под цель»** рассчитывает план накопления, **«Исследовательская панель»** анализирует отчётность. Пользователь настраивает шаблон через JSON Schema Driven UI и выбирает локальный либо удалённый Runner. Финансовые инструменты реализуются плагинами; методика задаётся скиллами [Сценарии с настройками, шагами, обработкой ошибок и критериями приёмки](scenarios.md). Они описывают демонстрационные шаблоны с учебным или read-only доступом; конкретные внешние интеграции требуют проверки. Внутренняя логика агента остаётся за границей ответственности платформы diff --git a/designDocument/scenarios.md b/designDocument/scenarios.md index 4e3ab03..2aaa023 100644 --- a/designDocument/scenarios.md +++ b/designDocument/scenarios.md @@ -2,14 +2,14 @@ Сценарии адаптированы из предоставленной аналитической работы «Finance Harness», версия 1.0 от 11.11.2026, раздел 3 (страницы 4–5), с учётом технической модели на странице 11. Это требования к демонстрации Invest Harness, а не описание готовых интеграций или подтверждённых продуктовых эффектов -В исследовании профили называются harness. В [терминах платформы](design.md) «Мой первый портфель», «Сохранить деньги», «Капитал под цель», «Эксперты с доказательствами» и «Исследовательская панель» — пять **шаблонов агента** на общей DSH-базе: каждый закрепляет harness, плагины, скиллы, правила ответа и JSON Schema настроек. Отдельный движок для каждого сценария не нужен. Пользователь создаёт из шаблона свой экземпляр агента +В исследовании профили называются harness. В [терминах платформы](design.md) «Мой первый портфель», «Эксперты из Пульс», «Сохранить деньги», «Капитал под цель» и «Исследовательская панель» — пять **шаблонов агента** на общей DSH-базе: каждый закрепляет harness, плагины, скиллы, правила ответа и JSON Schema настроек. Отдельный движок для каждого сценария не нужен. Пользователь создаёт из шаблона свой экземпляр агента | Шаблон | Запрос пользователя | Результат | Демонстрируемая возможность | |---|---|---|---| | Мой первый портфель | «Объясни, чем отличаются эти инструменты» | Понятное сравнение и учебный пример | Настройка глубины ответа через форму | +| Эксперты из Пульс | «Как менялась позиция выбранного автора?» | Хронология с подтверждающими источниками | Поиск по публикациям и цитирование | | Сохранить деньги | «Деньги нужны через девять месяцев: где риски?» | Аудит портфеля и ликвидности | Read-only данные и регулярный обзор | | Капитал под цель | «Как накопить 3 млн рублей за семь лет?» | Несколько расчётных планов | Калькулятор, параметры и график | -| Эксперты с доказательствами | «Как менялась позиция выбранного автора?» | Хронология с подтверждающими источниками | Поиск по публикациям и цитирование | | Исследовательская панель | «Сравни банки по отчётности» | Проверяемые расчёты и аналитический отчёт | Инструменты, документы и свой Runner | ## Общие условия демонстрации @@ -42,53 +42,11 @@ **Если данных не хватает.** Агент обозначает отсутствующие характеристики и предлагает дополнить вход. Недоступность источника не заменяется выдуманным значением. Учебная цена или доходность явно помечается как условная +**Регулярная работа.** Раз в неделю агент готовит урок по выбранным темам, обновляет учебный пример и добавляет вопрос для самопроверки. План тем задаётся в настройках; предыдущий результат передаётся явно, если нужно избежать повторения урока. Ответ пользователя не предполагается автоматически: он может запустить отдельный разбор ответа вручную. Реальные сделки и брокерский аккаунт для такого расписания не нужны + **Критерий приёмки.** Форма меняет стиль и детализацию ответа без редактирования prompt пользователем; расчёты симулятора воспроизводимы; отсутствуют инструменты размещения поручений. Минимальный запуск — локально с кешированным учебным набором; модель может требовать сеть -## 2. «Сохранить деньги» - -**Пользователь и цель.** Инвестору нужны деньги к определённой дате. Он хочет увидеть концентрацию, сроки и неопределённость ликвидности своего портфеля. Пример: «Мне нужны деньги через девять месяцев. Какие позиции требуют внимания?» - -**Состав.** DSH harness; плагины чтения портфеля, метаданных облигаций и сценарного расчёта (`portfolio_read`, `bond_metadata`, `rate_scenario`, `issuer_risk`), при регулярном запуске — `recurring-tasks`; скилл аудита портфеля - -**Настройки формы.** `targetDate`, `requiredAmount`, `baseCurrency`, `maxDataAgeHours`, включение сценариев изменения ставки. Параметры стресс-сценария задаются явно. Расписание настраивается отдельной формой платформы с timezone, preview, overlap и misfire policy - -**Ход сценария.** - -1. Пользователь выбирает «Сохранить деньги» и загружает снимок портфеля либо подключает доступный read-only источник -2. Задаёт дату потребности в деньгах и сумму; платформа фиксирует конфигурацию агента -3. Плагин нормализует позиции, валюты и дату оценки, объединяет экспозиции одного эмитента -4. Инструменты рассчитывают концентрацию и заданные сценарии; агент объясняет результаты с указанием недостающих данных -5. Пользователь сохраняет отчёт. При необходимости включает еженедельный запуск и просматривает следующие срабатывания перед сохранением - -**Результат.** Сводка портфеля, концентрация по эмитентам и классам, сведения о сроках и ликвидности, сценарии и перечень пробелов. Для повторного обзора можно явно передать предыдущий результат; вывод об изменениях содержит обе даты оценки - -**Если источник устарел или недоступен.** Отчёт обозначает возраст снимка; при превышении установленного порога задача не выдаёт его за актуальный обзор. Отзыв connection останавливает расписание с причиной. Низкая ликвидность не определяется только сроком погашения - -**Критерий приёмки.** Итоги на подготовленном портфеле совпадают с эталонными расчётами, отсутствующие сведения видимы. Повторная доставка одного occurrence не создаёт второй Run. Локальное расписание работает только при запущенном daemon; удалённое выполняется на выбранном Runner - -## 3. «Капитал под цель» - -**Пользователь и цель.** Пользователь задаёт сумму и срок и хочет сравнить возможные планы накопления. Пример: «Какой ежемесячный взнос нужен для 3 млн рублей через семь лет?» - -**Состав.** DSH harness; плагины `goal_calculator`, `scenario_engine` и графиков; скилл объяснения сценарных расчётов. Брокерское подключение необязательно; доходность и инфляция могут быть заданными пользователем допущениями - -**Настройки формы.** `targetAmount`, `targetDate`, `initialCapital`, `currency`, `contributionTiming`, массив сценариев с доходностью и инфляцией. Форма явно различает будущую номинальную сумму и сумму в сегодняшних ценах; не предлагает скрытого значения «ожидаемой доходности» - -**Ход сценария.** - -1. Пользователь создаёт «Капитал под цель», заполняет цель и исходные параметры -2. Валидатор отклоняет прошедшую дату, несовместимые валюты и неполные сценарии -3. Калькулятор определяет периодичность, преобразует ставки по зафиксированной методике и рассчитывает взносы для каждого сценария -4. Агент объясняет различия; график строится из результата калькулятора, а не из чисел, придуманных моделью -5. Пользователь меняет срок или взнос через форму и получает новый расчёт, сохраняя предыдущую ревизию для сравнения - -**Результат.** Таблица сценариев, требуемый взнос, траектории накопления, исходные допущения и методика. До появления встроенного chart-компонента достаточно таблицы и файла с рядами данных; интерактивный график — отдельная возможность UI - -**Если цель недостижима при заданном взносе.** Агент показывает расчётный разрыв и чувствительность к изменению параметров. Он не увеличивает допущение доходности молча и не представляет сценарии как прогноз рынка - -**Критерий приёмки.** Калькулятор корректно обрабатывает нулевую ставку, уже достигнутую цель, момент внесения взноса и номинальные/реальные суммы. Ответ и график используют один набор данных. Сценарий доступен локально без подключения брокера - -## 4. «Эксперты с доказательствами» +## 2. «Эксперты из Пульс» **Пользователь и цель.** Читатель хочет найти и сопоставить опубликованные взгляды автора. Пример: «Что автор писал о банках до отчётности и после неё?» @@ -108,8 +66,58 @@ **Если подтверждения нет.** Агент сообщает, что позиция не найдена в выбранном корпусе и периоде. Старая публикация не превращается в утверждение о сегодняшней рекомендации. Команды внутри найденных текстов не получают полномочий управлять агентом +**Регулярная работа.** Ежедневный запуск проверяет новые и обновлённые публикации выбранных авторов, формирует дайджест и сопоставляет их с ранее найденными позициями. Источник должен поддерживать разрешённое чтение; для демо достаточно последовательных снимков корпуса. Плагин сохраняет идентификаторы и даты обновления обработанных публикаций отдельно от ExecutionSpec; отметка обработки продвигается только после сохранения результата. Повторная проверка с перекрытием интервалов не дублирует публикации. Если материалов нет, отчёт сообщает об отсутствии обновлений; ошибка доступа не трактуется как отсутствие публикаций + **Критерий приёмки.** Каждая цитата совпадает с фрагментом корпуса, автор и дата атрибутированы правильно. Тестовый конфликт показывает обе позиции; запрос без источника не порождает выдуманный ответ. Разрешения корпуса проверяются и в локальном, и в удалённом режиме +## 3. «Сохранить деньги» + +**Пользователь и цель.** Инвестору нужны деньги к определённой дате. Он хочет увидеть концентрацию, сроки и неопределённость ликвидности своего портфеля. Пример: «Мне нужны деньги через девять месяцев. Какие позиции требуют внимания?» + +**Состав.** DSH harness; плагины чтения портфеля, метаданных облигаций и сценарного расчёта (`portfolio_read`, `bond_metadata`, `rate_scenario`, `issuer_risk`), при регулярном запуске — `recurring-tasks`; скилл аудита портфеля + +**Настройки формы.** `targetDate`, `requiredAmount`, `baseCurrency`, `maxDataAgeHours`, включение сценариев изменения ставки. Параметры стресс-сценария задаются явно. Расписание настраивается отдельной формой платформы с timezone, preview, overlap и misfire policy + +**Ход сценария.** + +1. Пользователь выбирает «Сохранить деньги» и загружает снимок портфеля либо подключает доступный read-only источник +2. Задаёт дату потребности в деньгах и сумму; платформа фиксирует конфигурацию агента +3. Плагин нормализует позиции, валюты и дату оценки, объединяет экспозиции одного эмитента +4. Инструменты рассчитывают концентрацию и заданные сценарии; агент объясняет результаты с указанием недостающих данных +5. Пользователь сохраняет отчёт. При необходимости включает еженедельный запуск и просматривает следующие срабатывания перед сохранением + +**Результат.** Сводка портфеля, концентрация по эмитентам и классам, сведения о сроках и ликвидности, сценарии и перечень пробелов. Для повторного обзора можно явно передать предыдущий результат; вывод об изменениях содержит обе даты оценки + +**Если источник устарел или недоступен.** Отчёт обозначает возраст снимка; при превышении установленного порога задача не выдаёт его за актуальный обзор. Отзыв connection останавливает расписание с причиной. Низкая ликвидность не определяется только сроком погашения + +**Регулярная работа.** Еженедельный запуск получает свежий разрешённый снимок портфеля, повторяет расчёты и сравнивает результат с последним успешным отчётом. В отчёте фиксируются обе даты оценки, изменившиеся позиции и пробелы данных. Если подключён только загруженный файл, агент анализирует его с исходной датой и не обещает обновление портфеля. Обнаруженные изменения отображаются в результате; самостоятельная продажа или покупка не выполняется + +**Критерий приёмки.** Итоги на подготовленном портфеле совпадают с эталонными расчётами, отсутствующие сведения видимы. Повторная доставка одного occurrence не создаёт второй Run. Локальное расписание работает только при запущенном daemon; удалённое выполняется на выбранном Runner + +## 4. «Капитал под цель» + +**Пользователь и цель.** Пользователь задаёт сумму и срок и хочет сравнить возможные планы накопления. Пример: «Какой ежемесячный взнос нужен для 3 млн рублей через семь лет?» + +**Состав.** DSH harness; плагины `goal_calculator`, `scenario_engine` и графиков; скилл объяснения сценарных расчётов. Брокерское подключение необязательно; доходность и инфляция могут быть заданными пользователем допущениями + +**Настройки формы.** `targetAmount`, `targetDate`, `initialCapital`, `currency`, `contributionTiming`, массив сценариев с доходностью и инфляцией. Форма явно различает будущую номинальную сумму и сумму в сегодняшних ценах; не предлагает скрытого значения «ожидаемой доходности» + +**Ход сценария.** + +1. Пользователь создаёт «Капитал под цель», заполняет цель и исходные параметры +2. Валидатор отклоняет прошедшую дату, несовместимые валюты и неполные сценарии +3. Калькулятор определяет периодичность, преобразует ставки по зафиксированной методике и рассчитывает взносы для каждого сценария +4. Агент объясняет различия; график строится из результата калькулятора, а не из чисел, придуманных моделью +5. Пользователь меняет срок или взнос через форму и получает новый расчёт, сохраняя предыдущую ревизию для сравнения + +**Результат.** Таблица сценариев, требуемый взнос, траектории накопления, исходные допущения и методика. До появления встроенного chart-компонента достаточно таблицы и файла с рядами данных; интерактивный график — отдельная возможность UI + +**Если цель недостижима при заданном взносе.** Агент показывает расчётный разрыв и чувствительность к изменению параметров. Он не увеличивает допущение доходности молча и не представляет сценарии как прогноз рынка + +**Регулярная работа.** Раз в месяц агент получает актуальный капитал и фактические взносы из разрешённого источника либо явно обновлённого пользователем снимка, сравнивает их с планом и рассчитывает оставшийся взнос. Допущения доходности и инфляции остаются закреплёнными настройками, пока пользователь их не изменит. Без свежих фактических данных создаётся только плановый пересчёт с явной отметкой, что выполнение плана не проверено. Агент предлагает изменения параметров, но не сохраняет новую ревизию цели без действия пользователя + +**Критерий приёмки.** Калькулятор корректно обрабатывает нулевую ставку, уже достигнутую цель, момент внесения взноса и номинальные/реальные суммы. Ответ и график используют один набор данных. Сценарий доступен локально без подключения брокера + ## 5. «Исследовательская панель» **Пользователь и цель.** Аналитик хочет сократить сбор отчётности и расчёт сопоставимых показателей. Пример: «Сравни выбранные банки по ROE, капиталу и динамике маржи за один период» @@ -130,8 +138,20 @@ **Если документы несопоставимы.** Показатель маркируется как несопоставимый или нерассчитанный; отсутствие данных не заменяется нулём. При недоступности своего Runner задача не переносится в облачный пул автоматически. Само размещение Runner on-prem не разрешает отправлять документы внешней модели +**Регулярная работа.** Раз в неделю агент проверяет разрешённые источники на новые или исправленные отчёты выбранных компаний. При появлении документов пересчитывает сопоставимые показатели и показывает различия с предыдущим успешным исследованием, сохраняя версии документов и методики. Если новых документов нет, возвращает краткий статус без нового вывода о компании. Исправленный отчёт обрабатывается как новая версия источника, а не незаметная замена прежнего результата + **Критерий приёмки.** На подготовленном наборе документов расчёты совпадают с эталоном в заранее заданной погрешности; каждое исходное число имеет источник. Переключение на совместимый свой Runner сохраняет контракт входа/выхода и не расширяет доступы +## Общие правила регулярного запуска + +Пользователь выбирает расписание, IANA timezone, закреплённую ревизию агента и место исполнения, проверяет ближайшие срабатывания и включает задачу. Настройки расписания хранятся в Schedule, а не внутри каждого DSH-плагина. Выключение расписания прекращает будущие запуски; текущий Run отменяется отдельно + +Каждое срабатывание создаёт отдельный Run с новым входным снимком либо явно указанным режимом получения свежих данных. После создания ExecutionSpec не меняется. Данные, полученные внутри Run, сохраняются как артефакты с датами и источниками. Сравнение с историей использует явно разрешённую ссылку на предыдущий успешный результат, а не неограниченную общую память агентов + +Для мониторинга исходный вариант — overlapPolicy=skip и misfirePolicy=coalesce: занятое расписание пропускает срабатывание, после простоя выполняется максимум один пропущенный запуск. Точная семантика задана в [API расписаний](api/runs-api.md). Плагин хранит состояние мониторинга в пределах tenant и экземпляра агента; повтор не должен дважды продвигать отметку обработки. Это требование к реализации финансовых плагинов, а не новая гарантия диспетчера + +Результат доступен в истории запусков. Уведомления во внешние каналы потребуют отдельного плагина и разрешения; наличие расписания само по себе не означает отправку сообщений. Если данные недоступны, отчёт показывает проблему, а отзыв connection приостанавливает расписание согласно общему контракту + ## Связь с реализацией платформы Финансовые инструменты перечисленных шаблонов расширяют [линейку плагинов](plugins.md), но не становятся частью диспетчера. Сначала можно реализовать один ручной запуск с подготовленными данными; расписания, графики и удалённое исполнение подключаются по мере готовности соответствующих компонентов