AB Notes / AI × 1C × [ ... ]
213 subscribers
18 photos
1 video
3 files
24 links
Личный тех-блокнот: ИИ, 1С и всё вокруг.
Поток мыслей - без ai-слопа и продажи услуг.

Автор: @ArtemBychkov
Архитектор в "Хомнет Консалтинг".
Бэкграунд: java-dev, руководитель корп. проектов.
Download Telegram
По горячим следам:

Задача: оптимизировать запрос и архитектуру в подсистеме динамической генерации отчетов по xml-описанию от регулятора.
Запрос на 450 строк, объемы данных во временных таблицах запроса - до 50 млн строк.

Я выделил, что оптимизировать надо и архитектуру, т.е. это не локальная задача на оптимизацию запроса, надо хорошо пособирать контекст по структуре метаданным, связанным общим модулям, выполнять запросы к БД.

Сам воркфлоу и остальные детали под NDA, да и в целом этот пост не про методологию.

Решил прогнать небольшой бенчмарк по задаче, промпт везде один и тот же, отличается только наименованием тулов.

1. Gemini Flash 3.0 в Gemini CLI - херня, составил дизайн на пару абзацев, очень быстро пробежался, видно что не заморачивался со сбором контекста. Забыл создать документ-дизайн, хотя это была последняя инструкция в промпте.

2. Gemini Flash 3.0 в Antigravity - бюджет на ризонинг явно больше, думал дольше и собирал данные дольше. Тоже забыл сделать отчет, и вообще пошел код править, хотя в промпте был указано, что нужен только документ-дизайн. Со второй попытки написал короткий отчет, но рекомендация в нем была в целом дельная.

3. Gemini 3.0 Pro с High Reasoning в Antigravity - долго думал, по итогу предложил снести 1 ключевое поле в запросе, потому что оно по его мнению не нужно. Даже opus очень удивился такой тупости gemini, когда делал ревью. Плохо.

4. GLM 4.7 в Claude Code - хорошо собирал контекст, запускал субагентов, но итоговое решение поверхностное.

5. Opus 4.5 в Claude Code - как всегда круто, хорошо собирал контекст и дергал тулы. Предложения хорошие.

6. GPT 5.2 с High Reasoning в Codex Cli - хорошо собрал контекст, предложения дельные, а одно предложение так вообще лучшее, оно как раз на архитектуру, а не просто на оптимизацию запроса.

По итогу остановился на решении GPT 5.2 + развитое через ревью опусом.

Выводы:
- Gemini расстраивает, модели умные, но ленивые и в тулинг так нормально и не научились. Но как чат-боты хороши.
- GLM 4.7 подойдет для менее сложных задач, в т.ч. на архитектуру.
- Opus 4.5 в Claude Code - "Ну камон, это же Козловский Opus"
- GPT 5.2 очень умный, отлично пользуется тулами, хороший напарник для опуса для архитектурных задач. Немного поспрашивал его на тему 1С - все еще плавает.
Т.е. для дебага и задач на доработку ок, т.к. он будет коррелировать на код рядом, но для задач (greenfield), где надо спроектировать подсистему, большие независимые блоки - надо пробовать, пока не уверен. Но сам подход к задаче, "образ мышления", предложенные решения мне очень понравились. GPT 5.0 совсем чушь предлагал, когда его тестил ранее.

И еще один вывод: как уже писал, за оркестрацией агентов (причем с моделями от разных вендоров) будущее, сейчас оркестрирую исключительно на субагентах в claude code + иногда вызовы сторонние cli через bash, но в будущем сделаю (или подожду когда сделают) более детерминированный пайплайн оркестрации с разными cli и моделями, спешить пока некуда.
🔥10👍4
Около недели назад в Claude Code завезли LSP Tool.
Пока это бета-версия, инструмент еще сырой и без документации.

Вчера Никита Федькин порадовал BSL-плагином под этот тул.

Список поддерживаемых функций LSP Tool:
- goToDefinition - переход к месту, где объявлена функция, процедура или переменная
- findReferences - поиск всех мест, где используется функция, процедура или переменная по всей кодовой базе
- hover - получение документации: сигнатура функции, описание параметров, возвращаемое значение и примеры (как всплывающая подсказка в IDE)
- documentSymbol - получение оглавления файла: список всех функций, процедур, переменных и областей с номерами строк
- workspaceSymbol - поиск функции или процедуры по имени во всём проекте (всех файлах конфигурации)

Зачем все это нужно: это эффективнее обычного grep, т.к. контекст, который мы скармливаем LLM, становится чище и релевантнее. Модели проще ориентироваться в кодовой базе и собирать нужные фрагменты.

Лично я жду поддержку CallHierarchy. Для анализа легаси и оценки влияния изменений при рефакторинге будет полезно.

Как подключить:

Важный нюанс: в последних релизах CC LSP Tool поломали: на 2.0.76 не работает, точно работает на 2.0.67 и возможно на 2.0.73, т.е. надо откатываться либо ждать фикса.
Для удобства запуска старой версии CC попросите LLM добавить alias-команду claude-lsp='npx @anthropic-ai/claude-code@2.0.67', чтобы 2.0.67 можно было запускать одной командой claude-lsp

Сам тестировал под WSL Ubuntu 24.04.

1. Скачать актуальный BSL LS под свою платформу https://github.com/1c-syntax/bsl-language-server/releases
2. Добавить бинарник в PATH - попросите LLM или добавьте ручками (см. BSL / 1C:Enterprise)
3. Добавить маркетплейс с LSP-серверами в CC: claude plugin marketplace add Piebald-AI/claude-code-lsps
4. Добавить сам плагин: claude plugin install bsl-lsp
5. Установить переменную среды ENABLE_LSP_TOOL=1 (наверняка можно в конфиге CC задать, но еще не разбирался)
6. Запускайте claude-lsp, можно сразу с переменной среды:
1. bash: ENABLE_LSP_TOOL=1 claude-lsp
2. powershell: $env:ENABLE_LSP_TOOL=1; claude-lsp
🔥18👍43
В Claude Code с 1 января порезали лимиты.

После рождественского буста лимитов на всех подписках (x2), вместо возврата до 1x многие пользователи (включая меня) получили откат до 0.3x - 0.5x

У меня один только autocompact сожрал 8% 5тичасовой сессии на тарифе за 100$

15 минут назад антропики наконец-то очнулись от рождественских оливье и сообщили, что разбираются с вопросом.

Баг или фича ? 🤔
Please open Telegram to view this post
VIEW IN TELEGRAM
😱8😁2
1С - это про данные, так где же MCP для данных?

Вижу перекос по MCP для 1С в сторону статики (графы метаданных, RAG по коду и т.п.), тогда как мы работаем с платформой, которая в какой-то мере является высокоуровневой абстракцией над СУБД.
1С не про системное программирование, где правят балом алгоритмы.

Посмотрим с другой стороны. Наверняка слышали, что для улучшения качества работы агентов нужен feedback-loop. Обычно этот термин употребляется в контексте тестов и линтеров (про тесты с агентами в 1С - тема отдельного разговора). Но раз мы работаем с данными - лучшая валидация гипотезы агента - это обращение к данным, то есть это еще один вариант feedback-loop.

Поэтому если еще не - навайбкодьте себе text-to-sdbl/bsl сервис, который позволит LLM выполнять запросы и сниппеты кода к вашей базе.

Можете взять за основу конструктор mcp от Владимира Харина или сделайте свой HTTP-сервис-шлюз и опишите для агента чистые питон-скрипты в качестве инструментов.

Конечно надо озаботиться вопросами доступа к чувствительным данным и правам доступа агента только на чтение. Но это также решается навайбкоженным инструментом для обфускации данных в тестовой базе. Несколько месяцев назад, когда мы только тестировали подобный MCP у себя в Хомнете и я еще не заморачивался с правами - Sonnet через "Выполнить" порефакторил мне половину элементов справочника, просто потому что посчитал, что так будет правильнее :)

—-

Вообще, сама тема работы с живыми данными - отличный маркер для проверки глубины материала. Если на курсах вам продают успешный успех внедрения агентов, но ни слова не говорят про feedback-loop через данные - есть вопросики.

Дисклеймер: я не кидаю камень ни в чей огород, курсов по LLM + 1С не проходил и их содержания не видел. Сужу исключительно по тому, что выносится в паблик.
👍7💯2🤝2
AB Notes / AI × 1C × [ ... ]
В Claude Code с 1 января порезали лимиты. После рождественского буста лимитов на всех подписках (x2), вместо возврата до 1x многие пользователи (включая меня) получили откат до 0.3x - 0.5x У меня один только autocompact сожрал 8% 5тичасовой сессии на тарифе…
Будни маленькой инди-студии Anthropic

Прошло уже 9 дней с начала года, а антропики до сих пор не могут пофиксить проблему с утекающими лимитами в Claude Code.

Приходится помогать: https://github.com/anthropics/claude-code/issues/16157#issuecomment-3728647584

Между тем, всего за несколько дней этот ишуз на гитхабе стал самым комментируемым среди всех 5000 issues в репозитории Claude Code.

Но когда у тебя 80% выручки идет от b2b, а не от b2c, можно себе и не такое позволить )

Пока единственное сообщение, что я видел от разработчиков: "We're not seeing this in our metrics".

Херовые у вас метрики, получается.
😁4🤯3🤬1😈1
Немного полезной статистики

Активно пилю новый пет-проект на Java

За чуть меньше недели с ИИ написано: 36к строк кода, 49к тестов, 67к строк документации.

⚽️🏀⚾️🥎
- 5 подписок на ChatGPT Plus за 20$ каждая использованы полностью = 100$
- 1 подписка Claude Max 5x использована на 80% = 100$

1 Plus-подписка ChatGPT дает около 3.5 x полных 5-часовых лимитов в неделю
1 Max 5x подписка Claude дает около 9 x полных 5-часовых лимитов в неделю

В недельные лимиты упираюсь, в пятичасовые изредка.
Еще бы посчитать сколько токенов/денег в ценах API дают в рамках одного лимитного окна.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥3🤝21😱1
AB Notes / AI × 1C × [ ... ]
Джва года ждал! В Claude Code в LSP Tool завезли иерархию вызовов🤟! С BSL LS работает из коробки.
Повторюсь: анализ вызовов через LSP полезен для рефакторинга, анализа влияния на зависимые функции при доработках, сбора контекста для задачи.

В отличие от grep по всей кодовой базе работает моментально и практически бесплатен по контексту.

Ниже пример вывода промпта А можешь пример вывода дерева (call hierarchy) на пару уровней?
Forwarded from Artem Bychkov
❯ А можешь пример вывода дерева (call hierarchy) на пару уровней? 

● Построю дерево на 2 уровня для ИзвлечьТекстИзHTML:

● LSP(operation: "incomingCalls", file: "src/cf/CommonModules/СтроковыеФункцииКлиентСервер/Ext/Module.bsl")
⎿ Found 3 callers across 3 files (ctrl+o to expand)

● Теперь получу второй уровень для каждого из 3 вызывающих:

● LSP(operation: "incomingCalls", file: "src/cf/Catalogs/УчетныеЗаписиСинхронизацииФайлов/Forms/ФормаЭлемента/Ext/Form/Module.bsl")
⎿ Found 0 callers

● LSP(operation: "incomingCalls", file: "src/cf/CommonModules/ПолучениеФайловИзИнтернетаСлужебный/Ext/Module.bsl")
⎿ Found 1 caller (ctrl+o to expand)

● LSP(operation: "incomingCalls", file: "src/cf/CommonModules/ФормированиеЭкземпляровXBRL/Ext/Module.bsl")
⎿ Found 0 callers

● Продолжу ещё на уровень:

● LSP(operation: "incomingCalls", file: "src/cf/CommonModules/ПолучениеФайловИзИнтернетаСлужебный/Ext/Module.bsl")
⎿ Found 0 callers

● Лучше покажу на outgoingCalls — там нагляднее:

● LSP(operation: "outgoingCalls", file: "src/cf/CommonModules/ОбщегоНазначения/Ext/Module.bsl")
⎿ Found 2 callees across 2 files (ctrl+o to expand)

● LSP(operation: "outgoingCalls", file: "src/cf/CommonModules/ОбщегоНазначения/Ext/Module.bsl")
⎿ Found 8 callees across 3 files (ctrl+o to expand)

● LSP(operation: "outgoingCalls", file: "src/cf/CommonModules/СтроковыеФункцииКлиентСервер/Ext/Module.bsl")
⎿ Found 1 callee (ctrl+o to expand)

● Вот дерево outgoingCalls на 2 уровня:

Дерево исходящих вызовов (outgoingCalls)

ЗначениеРеквизитаОбъекта (ОбщегоНазначения:407)

├─► ЗначенияРеквизитовОбъекта (ОбщегоНазначения:141)
│ │
│ ├─► ЗначенияРеквизитовОбъектов (ОбщегоНазначения:449)
│ ├─► ПредопределенныйЭлемент (ОбщегоНазначения:765)
│ ├─► ПодсистемаСуществует (ОбщегоНазначения:1703)
│ ├─► ОбщийМодуль (ОбщегоНазначения:1730)
│ ├─► ОбъектМетаданныхПоПолномуИмени (ОбщегоНазначения:4435)
│ ├─► НайтиОшибкуДоступностиРеквизитовОбъекта (ОбщегоНазначения:6925)
│ ├─► ЗначениеВМассиве (ОбщегоНазначенияКлиентСервер:772)
│ └─► ПодставитьПараметрыВСтроку (СтроковыеФункцииКлиентСервер:198)

└─► ПодставитьПараметрыВСтроку (СтроковыеФункцииКлиентСервер:198)

└─► ПодставитьПараметрыСПроцентом (СтроковыеФункцииКлиентСервер:1520)

Как это построено:
1. outgoingCalls(ЗначениеРеквизитаОбъекта) → 2 вызова
2. outgoingCalls(ЗначенияРеквизитовОбъекта) → 8 вызовов
3. outgoingCalls(ПодставитьПараметрыВСтроку) → 1 вызов

Каждый уровень — отдельный запрос к LSP.
🔥12👍3
Forwarded from Желтый вайб (Petr Tsap)
Очень крутая и интересная работа от Евгения Андреева по адаптации рекомендаций Антропиков для 1С
https://github.com/AndreevED/1c-ai-feature-dev-workflow
В текущем виде заточена под Claude Code, модель Opus, может потреблять много токенов/лимитов подписки из-за трех одновременных субагентов.
Есть много чего дополнить и изменить под себя, но работа проведена большая, очень круто!
Желтый вайб
Очень крутая и интересная работа от Евгения Андреева по адаптации рекомендаций Антропиков для 1С https://github.com/AndreevED/1c-ai-feature-dev-workflow В текущем виде заточена под Claude Code, модель Opus, может потреблять много токенов/лимитов подписки из…
По горячим следам - ловите поток сознания

- 3 детерминированных агента-эксплорера - зачем ? надо копать вглубь, а не просто параллельно смотреть на одно и то же. Пусть оркестратор сам решает сколько агентов ему нужно для изучения функциональности на основе предварительного анализа задачи, здесь детерминизм только мешает и ухудшает качество.

- 3 агента на проектирование архитектуры. Для мультисэмплинга - дорого, но ок. Для ре-ревью - да. Для "минимальных абстраций, чистой архитектуры, баланса" - нет, это 1 агент все может сделать, еще и останется.

- 3 ревьюера на код с разным фокусом. Оверинжиниринг . Если задача большая, и этапы изолированы, то можно нарезать горизонтально и каждый агент проревьюит свою часть. И самое важное-то забыли: есть 3 ревьюера, но нет ревьюера на соответствие кода спеке/плану/дизайну ?

- Нет ревью дизайна/плана. Валидировать надо до написания кода, а не после. Чем раньше найдена ошибка, тем дешевле исправлять. А ошибки там будут даже на GPT-5.2-Xhigh, т.к. окно внимания ограничено у любой модели.

Еще добавить коммиты на каждый этап для аудируемости и документации для ИИ; нарезку тасок на сабтаски (вместо хранения в едином плане) с quality-гейтами в каждой таске или хотя бы критериями приемки и пр.

Как демонстрация идеи - круто, но для реального применения - дорого-богато и оторвано от реалий 1С да и в целом энтерпрайз-разработки.

Но никакого хейта, Евгений молодец, все равно очень многое из такого пайплайна можно почерпнуть, просто надо понимать что все эти SDD - это в среднем по больнице (причем по больнице с питонами и JS) и эти методологии надо адаптировать (в каких-то случаях полностью выбрасывать) почти под любой сколько-нибудь серьезный проект, о чем Петр в заключении и пишет.
👍7💯51
v0 тизерят релиз Sonnet 5 в 21-00 по Москве
🔥8👍1
AB Notes / AI × 1C × [ ... ]
v0 тизерят релиз Sonnet 5 в 21-00 по Москве
Anthropic второй день подряд пытаются выкатить модель.

Sonnet 5 успешно замещает разработчиков: она уже запорола несколько релизов
😁13
Шок-контент
Пользователи курсора уведите детей от экрана

Скрин 1 - Cursor Ultra, 285$ за 672 миллионов токенов
Скрин 2 - (мой) 5x подписок openai plus. 100$ за 7.8 миллиардов токенов.
😱8😁3🤔3
AB Notes / AI × 1C × [ ... ]
Шок-контент Пользователи курсора уведите детей от экрана Скрин 1 - Cursor Ultra, 285$ за 672 миллионов токенов Скрин 2 - (мой) 5x подписок openai plus. 100$ за 7.8 миллиардов токенов.
upd по курсору: 285$ это в ценах условного API, а не в ценах подписки.
Подписка за 200$, как подсказал автор скрина, даст потратить около 500$ в ценах API.

но сути дела это не меняет, т.к. и мои данные по 7.8 млрд токенов - это активное использование, а не использование до пределов подписки.

Итого: за 200$ в курсоре получаем около 1.2 млрд токенов, за 100$ баксов в openai получаем минимум 8 млдр токенов. (и в ближайшие пару месяцев еще x2 от этого в рамках промо)
👍6🤯2
Давно хотел причесать большой Java-модуль со сложной бизнес-логикой (около 80 классов, 25k loc кода и 25k loc тестов), т.к. со временем логика там сильно задублировалась и рассинхронизировалась.

Решил поэкспериментировать и заваншотить такой рефакторинг, хотя изначально планировал дробить на разные фазы и ветки. Сделал несколько исследований и набросал черновик дизайна с Opus 4.5. И тут как раз выкатили новые модели.

Решил сравнить ревью дизайна на Opus 4.6 и GPT-5.3 Codex XHigh с одним и тем же промптом.

Наблюдения:
- Хоть я ставил на GPT, но Opus 4.6 справился лучше. Прогресс по сравнению с 4.5 заметен сразу: уровень дотошности и педантичности сопоставим с GPT-5.2. Он отловил кучу мелочей, которые пропустил 4.5. Но сравнение не совсем честное - тут явно зарешали субагенты и новый режим Agent Teams/teammates (его тоже потестил).
- GPT-5.3 тоже выдал достойное ревью, но чуть менее глубокое в данном контексте. Отмечу, что заметно увеличили скорость, теперь с опусом примерно паритет, раньше же был гораздо медленнее.

Про аппетиты: Opus 4.6 жрет лимиты как не в себя. Одно такое ревью съело 35% пятичасовой сессии. По моим грубым подсчетам, одна 5-часовая сессия — это ~40 млн токенов с кэшем (или ~3 млн без кэша). Если считать очень грубо, в неделю у нас ~10 сессий. Итого в месяц получаем около 1.8 млрд токенов. Это всё равно сильно меньше, чем дает openai. Но так как кэш у антропиков в подписке вроде не тарифицируется, честнее смотреть на токены без кэша.

Сделал несколько итераций ревью, составил план, подробил на эпики, отдал Codex и пошел спать. За 1.5 часа Codex управился ваншотом: +5279 / -3000 строк. (На скриншоте цифры больше, т.к. туда попал еще и рефакторинг документации)
👍7
AB Notes / AI × 1C × [ ... ]
Почему-то хайп от AI IDE проходит мимо самого очевидного - VS Code с GitHub Copilot Прайс за запросы, как в старые добрые времена в Cursor: подписка $10 за 300 запросов, причём Claude Sonnet 4.5 тарифицируется как 1 запрос (в Cursor было x2). А Haiku так…
Новое в VS Code + Copilot:

Реализовали запуск Claude Code прямо из чата в рамках Copilot-подписки. Тарификация стандартная: одно сообщение = 1 запрос из лимита подписки (300 запросов за 10$).

Самое интересное: у Claude Code внутри нет ограничений контекста в 128к, и он может спавнить субагентов, которые не тарифицируются! Я даже переспросил разраба этой интеграции в твиттере - он подтвердил.

Родных субагентов теперь можно запускать параллельно.

Появился индикатор заполнения контекстного окна. Из минусов: видно, что у большинства моделей окно пока обрезано до 128k, но обещают исправить (для 5.2-codex уже 200+).

Copilot CLI тоже прокачали для запуска "флота" субагентов - теперь используют SQLite в качестве общей базы задач.

В VSCode Insiders реализовали отправку сообщений работающему агенту и добавили хуки (Codex, блет, где хуки?) + более тесную интеграцию с copilot cli.
👍8
This media is not supported in your browser
VIEW IN TELEGRAM
Китайский Seedance 2.0
Впечатляет
🔥4😁1😎1