План развития¶
Всё ниже выполнено 2026-08-29, включая переименование: пакет и идентификатор
каталога теперь ai_agent, отображаемое имя — «AI Agent».
Что дальше, по порядку. Список пересмотрен после сравнения плагина с
каталогом плагинов QGIS — в частности с карточкой
GeoGPT AI Agent, занимающей
старый слаг qgis_ai_agent. У того плагина нет ни одной выпущенной версии и не видно
исходников, так что сравнение идёт с его заявлениями, а не с кодом; но
заявления всё равно очерчивают территорию, которую пользователи ждут от
агента.
Блокер первой публикации устранён¶
- Готово — переименовано в
ai_agent. Отдельный идентификатор пакета и каталога не пересекается с существующей карточкойqgis_ai_agent. Первая публичная подача — 0.1.0, без флага experimental.
Выполнено 2026-08-29¶
- Готово — рецепты анализа в скиллах. Кластеризация, поиск хотспотов и регрессия
уже достижимы через
run_processing, но модель вынуждена угадывать цепочку алгоритмов. Раздел рецептов вskills/processing/SKILL.md— задача, цепочка, подводные камни — превращает «найди хотспоты кафе» в один проход вместо исследования. - Готово — рельеф и интерполяция. Той же формы: уклон и отмывка по DEM, интерполяция TIN и IDW как задокументированные цепочки поверх существующих тулов processing.
- Готово (узко) — домен 3D-вида.
open_3d_viewоткрывает именованный вид текущих слоёв, если сборка QGIS предоставляет нужный API. Рельеф, камера и преувеличение по-прежнему настраиваются через видимый и отдельно одобряемый запасной ходrun_python. - Готово — домен аннотаций. Текстовые заметки и маркеры хранятся в главном слое аннотаций проекта; их можно перечислить и удалить по id.
- Готово — журнал прогона. Прогоны с применёнными изменениями записывают
краткий Markdown-журнал в
ai_agent_runsактивного профиля QGIS и сообщают путь. Права доступа ограничивают каталог и файлы владельцем, где это поддерживается; содержимое, постоянное хранение и очистка описаны на странице конфиденциальности. - Готово — пресет Gemini через его OpenAI-совместимый эндпоинт. Он доступен рядом с другими пресетами провайдеров и использует общий диалект OpenAI.
Добавлено по пути¶
- Домен web —
search_web(с громким фолбэком на Википедию в закрытых сетях),fetch_urlиgeocode; bbox из геокодера подаётся прямо вdownload_osm.
Качество агента — аудит 2026-09-03¶
Найдено при чтении ядра от начала до конца, в порядке ожидаемого влияния на то, насколько хорошо работает агент:
- Готово 2026-09-03 — ретраи в транспорте. Один 429, 502/503 или оборванное соединение
завершают прогон ошибкой;
core/llm/client.pyиstream_runner.pyделают ровно одну попытку. Нужен ограниченный повтор с паузой на 429/5xx и обрывах соединения, со строкой «повторяю…» в ленте. - Готово 2026-09-03 — кэширование промпта на Anthropic. Системный промпт и схемы тулов
между ходами одного прогона одинаковы и оплачиваются каждый ход заново.
Пометить статичный префикс
cache_controlвllm/anthropic.py; динамический хвост (план, очередь, контекст проекта) держать последним, чтобы и префиксный кэш OpenAI-подобных эндпоинтов срабатывал. - Готово 2026-09-03 — стартовый контекст проекта был скуден — только имена слоёв и геометрия, и
почти каждый прогон тратит первый ход на
list_layers. Добавить CRS, число выделенных объектов и, где дёшево, число объектов; не выходя за метаданные. - Загрузка скилла стоила ход на домен. Сделано сейчас: промпт просит
грузить всё нужное одним ходом, а
/skillподгружает до первого хода. Дальше: разрешитьload_skillпринимать список имён. - Нет оценочного стенда. Правки промпта и скиллов оцениваются на ощупь. Записывать реальные транскрипты (вызовы тулов с результатами) и проигрывать их против цикла со сценарной моделью — регрессионный набор для поведения агента, самый большой рычаг для «он должен работать хорошо».
- Проверка всегда идёт полным кругом. Тривиальная одношаговая невизуальная правка всё равно стоит 3–4 хода проверки; пропускать или укорачивать, когда в батче один шаг, подтверждаемый одним чтением.
- Уплотнение выбрасывает, а не суммирует. После
KEEP_FULL_RESULTSстарые результаты сжимаются до строки-заметки; сводка выброшенного участка держала бы связность сорокаходовых прогонов. - В журнале нет чисел. Он пишет шаги, но не токены и не время каждого хода — две цифры, показывающие, куда ушёл медленный прогон.
Рассмотрено и отложено¶
- QField / мобильная интеграция — другой продукт со своей средой выполнения; из цикла агента туда не переносится ничего.
- Многопользовательская работа — агент по замыслу однопользовательский; совместная работа принадлежит хранилищу проекта, а не ассистенту.
- Страновые статистические интеграции (прогноз населения, национальные
статистические API) — это источники данных, а не способности агента; общий
ответ —
add_service_layer,run_pythonи, где сервис говорит по HTTP, скрипт на стороне пользователя.