ИИ-агент для финансовой аналитики: анализ портфеля Т-Инвестиций на OpenCode

Кратко: За 10 дней собрал ИИ-агента для финансовой аналитики — анализ инвестиционного портфеля в Т-Инвестициях с помощью OpenCode + GLM-5 + 20 SKILLs. Нейросеть для инвестиций, которая разбирает структуру портфеля, собирает новости с Интерфакса и РБК, анализирует настроения инвесторов на форумах, ищет торговые идеи и строит интерактивные дашборды.


Последнее время мне стали часто попадаться материалы о Personal OS и Personal AI — энтузиасты начинают применять Claude Code не для программирования, а для автоматизации своей повседневной деятельности. Примеры таких материалов я собрал тут: Что посмотреть про ИИ: AI coding, агенты и сознание.

Я решил продолжить эксперименты со SKILLs в OpenCode с GLM-5. Но на этот раз для автоматизации инвестиций.

Зачем

Мне нужен умный собеседник для принятия решений по портфелю в Т-Инвестициях (бывшие Тинькофф Инвестиции). Что продавать, как ребалансировать инвестиционный портфель, на что обращать внимание — всё это я решал раньше на интуиции.

Идея использовать ИИ-агента появилась после эксперимента с скилами для блога: я дал агенту доступ к Яндекс.Метрике, и он начал анализировать статистику посещения. ИИ-аналитика работает, а если агент справляется с аналитикой посещаемости блога, почему бы не поручить ему финансовую аналитику инвестиционного портфеля?

До этого я уже написал MCP-сервер для T-Invest API и MCP-сервер для Московской биржи. Они работали в TasK, но мне хватало агентности — мой проект работает по схеме «вопрос-ответ» и пока не умеет вести длинные цепочки рассуждений.

В этом смысле идея пересекается с FinGPT — открытыми финансовыми моделями. Но вместо обучения своей модели я пошёл путём агентной архитектуры: OpenCode подключает к GLM-5 скилы и инструменты, а LLM сама решает, когда и как их применять. Получается ИИ для аналитики, ИИ-ассистент, который умеет собирать и интерпретировать данные.

Ещё одним источником идей стал Stonki AI — он показывает свои инструменты и инструкции. Я разобрался, какие функции нужны моему агенту, и какие подходы стоит перенять.

Подход

Идея простая: даём агенту инструменты — а он решает, когда и как их использовать. Это не торговый робот, не бот для инвестиций — а именно аналитический ассистент, который помогает принимать решения.

Инструменты бывают разные:

  • MCP-серверыстандартный протокол для подключения внешних данных
  • SKILLs — текстовые инструкции, которые объясняют агенту, как работать с конкретным API или утилитой
  • CLI-утилиты — консольные команды, которые агент вызывает через bash

В случае с MCP и SKILLs агент понимает назначение инструмента по полю Description. В случае CLI-утилит и API — мы описываем правила работы в AGENTS.md (или CLAUDE.md, GEMINI.md — зависит от агента).

Получается: агент получает доступ к данным и знает, что с ними делать. Наша задача — создать правильные инструменты и написать понятные инструкции для агента.

Разработка ИИ-агента: 10 дней вместо двух

Писал код с помощью OpenCode и GLM-5. Начал 17 марта, закончил 27-го. Думал уложиться за два дня, получилось за 10.

Стек — PHP и Symfony. Да, создание ИИ-агентов на PHP — не мейнстрим, но для интеграций это работает отлично. Composer управляет зависимостями, Symfony даёт структуру, а CLI-утилиты становятся инструментами агента.

Параллельно готовил релиз TasK v0.7.0, поэтому работал в перерывах между задачами основного проекта. Может поэтому 10 дней вместо двух? 😎

Заодно проверил, как агент кодирует без AGENTS.md. На основном проекте мой AGENTS.md превратился в полноценную систему доставки кода в продакшен — роутинг документов-инструкций для всего жизненного цикла. Здесь я решил обойтись без него.

Что делал

  1. Библиотека для Московской биржи (MOEX). Попросил агента создать Symfony-проект на основе кода из MCP-сервера Московской биржи. Оформил как composer-пакет для переиспользования. За несколько итераций привели код к структуре, которую я использую в других проектах. Часть утилит для проверки качества кода агент добавил сам, часть — добавил я.

  2. Библиотека для T-Invest. То же с MCP-сервером T-Invest API — перенёс функционал в composer-пакет.

  3. Библиотека для RSS-новостей. Собрал источники экономических новостей и сделал интеграцию.

  4. Агент. Создал Symfony-проект с composer-зависимостями от трёх предыдущих библиотек. Дал агенту ссылку на статью про Stonki AI — он исследовал её и перенёс идеи в документацию проекта. Затем написали недостающий функционал.

  5. Скилы. Самая объёмная часть — много итераций с рефакторингом зависимых проектов, написанием текстов скилов и отладкой.

Что получилось

graph TB A["T-Invest Agent"] --> B["moex-core"] A --> C["t-invest-core"] A --> D["news-core"] A --> E["memory-core"] A --> F["20 SKILLs"] B --> G["MOEX ISS API"] C --> H["T-Invest API"] D --> I["RSS-ленты"]

Репозитории

  • T-Invest Agent — основной проект: AGENTS.md + 20 SKILLs
  • news-core — агрегация и поиск финансовых новостей из RSS-лент
  • moex-core — работа с MOEX ISS API (Московская биржа)
  • t-invest-core — работа с T-Invest API (Т-Инвестиции)
  • memory-core — память агента: профиль инвестора и предпочтения

Скилы по категориям

Рыночные данные:

Аналитика:

Новости и настроения:

  • News RSS — новости из Интерфакс, ТАСС, РБК, Коммерсант
  • News Web Search — поиск новостей по сайтам
  • Social Sentiment — анализ настроений на SmartLab, MFD, Banki.ru

Управление:

  • Dashboard — интерактивные HTML-дашборды с ECharts
  • Recipe — торговые идеи с уровнями входа, стопа и цели
  • Monitor — алерты и автоматические проверки цен
  • Memory — профиль инвестора и предпочтения

Мне это напомнило советский конструктор — из одного набора деталей можно собрать разные штуки. Каждый скил работает сам по себе, однако вместе они дают агенту полную картину рынка.

Тестирование в Kilo Code

Тестировал в Kilo CLI (ранее назывались Kilo Code CLI) с моделью GLM-5-turbo. Kilo Code — форк OpenCode с оркестрацией и другими наворотами. Использую такие кейсы для изучения нового.

Первый запрос: «Что в моём портфеле творится»

Агент построил план обработки: выбрал нужные скилы, подключился к T-Invest API и Московской бирже (MOEX), собрал данные, выдал отчёт по анализу инвестиционного портфеля.

Агент размышляет и строит план:

Обзор по секторам:

Топ-10 позиций по стоимости:

Главные проблемы портфеля:

Главные достижения:

Контекст рынка из новостей:

Рекомендации:

Второй запрос: «Какой ещё важной информацией по портфелю ты можешь поделиться?»

Агент снова ушёл собирать данные — и вернулся с новой порцией аналитики.

Агент собирает дополнительные данные:

Ближайшие дивиденды:

Прогноз дивидендов на год:

Компании, которые не платят дивиденды:

Позиции для продажи:

Торговые идеи (рецепты):

Рецепты агент создал сам — взял идею из stonki.ai. Я ещё не разобрался, как с ними работать.

Облигационный портфель:

Резюме:

Третий запрос: «Сделай красивый дашборд»

Результат:

Полная HTML-версия дашборда: portfolio-dashboard-20260327

Как ИИ помогает в финансовой аналитике

Заменит ли ИИ аналитиков? Скорее всего, нет — у меня нет нужных знаний и навыков в финансах, чтобы грамотно построить агента в одиночку. А сильный финансовый аналитик сможет сделать классного помощника и вместе с ним принимать решения продуктивнее.

Мой агент не принимает решения за меня — он экономит часы на сборе данных и подсчётах. Я по-прежнему решаю сам, но теперь у меня есть ассистент, который за минуты собирает то, на что раньше уходили часы: структуру портфеля, свежие новости, настроения на форумах, дивидендный календарь.

ИИ для финансовой аналитики — это не замена человеку, а автоматизация рутины. Агент готовит данные, а человек их интерпретирует и принимает решения.

Итог

За 10 дней я получил работающего ИИ-аналитика для портфеля в Т-Инвестициях на GLM-5. Вот что выяснил в процессе:

  1. Кодить без AGENTS.md можно, но рискованно. Агент ведёт себя непредсказуемо: может закоммитить без апрува, не запустить статанализаторы или линтеры. Если у вас есть свои правила кодирования и git-workflow — пропишите их.

  2. Много скилов — нужна система пакетов. У меня получилось 4 отдельные библиотеки — и их можно переиспользовать в других проектах. Я буду, и другие люди могут подключать к себе через Composer.

  3. Некоторые сайты не отдают данные ИИ-агентам. Приходится маскироваться под браузер.

  4. Контекст — узкое место. OpenCode быстро сжирает контекст, после 70K–100K токенов GLM-5 начинает нести бред в размышлениях. Приходилось руками вызывать /compact при приближении к критическим значениям.

  5. Финансовая аналитика требует доменной экспертизы. Чтобы написать осмысленные инструкции в скилах, создать нужные инструменты и составить промпты — нужно разбираться в финансах. ИИ не заменит знания предметной области.


Источники:

php + AI = ❤️