ym104432846
Вставьте ссылку на видео из Youtube, Rutube, VK видео
Задайте вопрос по видео
Что вас интересует?
00:00:37
Проблемы поиска по коду:
  • Агенты используют grep, что приводит к большим объёмам данных и снижению производительности.
  • Проблемы с эффективностью возникают на крупных проектах с десятками тысяч файлов.
00:02:40
Решение – Ast Index:
  • Ast Index решает проблемы grep за счет структурированного поиска по коду.
  • Позволяет значительно ускорить и повысить точность поиска по коду.
00:03:28
Преимущества Ast Index:
  • Высокая скорость поиска благодаря предварительной индексации и использованию SQLite.
  • Снижение количества ошибок и повышение точности поиска за счет синтаксического дерева AST.
  • Поддержка множества языков программирования.
00:05:30
Метрики эффективности:
  • Индексирование большого проекта занимает порядка 120-130 секунд.
  • Поиск по индексированной базе данных выполняется за миллисекунды.
  • Экономия до 600 раз по сравнению с традиционным поиском.
00:08:04
Использование в корпоративной среде:
  • Интеграция с CI/CD системами для эффективного применения.
  • Оптимизация затрат на API, снижение потребления токенов.
  • Инструмент широко применяется и развивается командой Яндекс Go.
00:19:32
Практическое применение и интеграция:
  • Настройка Ast Index через CLI-команды и Brew-пакет.
  • Возможности настройки через YAML-файлы и интеграция с агентами.
  • Автоматическая индексация при запуске сессий.
00:14:48
Вопросы аудитории и ответы:
  • Обсуждение альтернативных подходов и инструментов.
  • Сравнение с другими решениями, такими как Language Server Protocol и LSP-индексы.
  • Рекомендации по оптимизации работы агентов.
01:05:30
Процесс внедрения AI-инструментов:
  • Продуктовые команды внедряют AI самостоятельно через амбассадоров.
  • Отсутствие централизованного подхода, ориентир на внутренние потребности.
  • Развитие инфраструктуры и культуры работы с AI внутри компании.
0: Всем привет, меня зовут Александр Иванов, я разработчик мобильных приложений в яндекс go. Сегодня я расскажу про основную проблему, что приводит
1: К тому, что агенты начинают тормозить на больших кодовых базах, которые там 30, 50, 100000 файлов и начинают уходить куда-то в сторону при решении вашей задачи также начинают тупить или забывать какие-то
2: Важные вещи, которые были связаны с решением проблемы бага, написанием новой фичи. Вот 1 проблема. Это у нас как раз-таки поиск по коду в наш
3: Проекте есть 3 основные проблемы. 1, это Греп. Агенты базово используют Греп, но в основном рип Греп более быструю версию и начинают искать в проекте какие-то паттерны. Ещё что
4: И часто у нас там какой-нибудь интерактор, ещё какое-нибудь название, они встречаются очень часто в коде. Вот, особенно в мобильной разработке. Это приводит к тому, что у нас на вход к агенту прилетает условно, там, 5010.
5: Тысяч 15000 строк текста, которые ему нужно придумать как отфильтровать. Это засоряет его контекст и приводит к тому, что он начинает забывать какие-то важные вещи, дополнительные итерации, добавлять, тормозить.
6: Из за этого и уходить в сторону от вашей изначальной задачи также есть ограничения вообще студий например android studio или xcode жрут достаточно много ресурсов в виде оперативной памяти, если вы начинаете условно работать там в 2 3.
7: 4 окна с агентами, и каждый там начинает работать с кодом. У вас несколько окон студии, то у вас ноут просто начинает умирать, то есть там начинает тормозить, вы замедляетесь, агенты замедляются, и это все приводит к тому, что просто перезагружаете ваш ноутбук и
8: Начинаете там что-то заново делать уже в 1 2 окнах и в итоге не ускоряетесь вообще никак. И regex базовая проблема в том, что агенту нужно придумать, как правильно сматчить нужный код паттерн.
9: И вот это вот все решение в январе сидел, смотрел, искал по студии что-то параллельно с агентом, потому что агент очень долго искал что-то грепал там, уходил куда-то в сторону и не мог найти.
10: Базовую какую-то вещь. Я просто открыл студию, там дважды шифт нажал, ввёл и смотрю, блин, зачем я открыл студию то вообще почему агент не может так же просто искать по коду, как и мы с помощью студии и
11: И начал разгонять эту идею, и вот так появился аст индекс, который написан на расте, и он в виде cli, которая встраивается в терминал и используется с помощью Скилов правил вашим агентом можете пока отсканить.
12: QR-код и перейти в репозиторий гите там в самом верху есть инструкция по установке и можете пока там условно поставить, скачать, пока я рассказываю презентацию, чтобы настроить себе хотя бы базовый инструмент далее.
13: Основные вообще преимущества, что даёт нам аст, поиск, это abstract syntax tree, то есть поиск по уже структурный поиск по коду 1 это скорость, то есть мы изначально тратим время на ребилт вашего кода.
14: Условно там project 30000 файлов индексируется где-то за 20:30 секунд и дальше уже ищем по Эскель лайт базе с фтс 5 поиском за миллисекунды, то есть агент получает структурный ответ в виде аст, также находит файлы, символы.
15: Связи в вашем коде и за счёт этого может достаточно быстро навигироваться по проекту не требуется какие-то сильно большие знания в него запихивать в базовый контекст. 2, это точность как раз за счёт того, что у нас аст это позволяет
16: Не попадать в какие-то комментарии, доки, ещё что-то при работе с кодом, которые часто очень быстро затухают, мешают агенту и ложные срабатывания происходят. 3 это
17: Языки сейчас там поддержано. У нас 34 языка программирования с помощью 3 Ситтер библиотек. Парсеры достаточно просто подключаются. Это парсер плюс библиотечка, тристер для языка. Вот. Ну и мобилка инструмент позволяет.
18: Индексировать также и ресурсы v андроиде в айосе, что позволяет агенту намного лучше и быстрее находить какие-то важные вещи по проекту, как это вообще работает, то есть у нас есть исходный код вашего проекта услов.
19: Вы запускаете инструмент, команду ребилд. Для индексации. Оно все проходит через входную точку и парсеры Трестер по расширению файлов. Дальше извлекаются символы, и все это складывается.
20: Транзакциями в sql lite, базу и по которой уже полнотекстовый поиск дальше работает вот немножко метричек, метрики взяты на наших проектах, в общем, разного размера и, например,
21: Там вот на проекте 100000 файлов, там индекс, ну тут немножко старая информация. 370 секунд был, но потом я ускорил это примерно в 3 раза. И сейчас где-то 120, 130 секунд занимает сам индекс проекта и
22: Ускорение там идёт до 600 раз именно за счёт того, что ваш агент не входит в новый цикл поиска разработки, не ошибается задачей и находит все необходимое архитектурно и связанное там вызовы.
23: За 1 проход. Это позволяет как раз-таки также ещё и тратить токенов меньше на наших пайплайнах, кубиках. Там выходит где-то 40, 50% экономии токенов на реальных задачах продуктовых, то есть, ну, аб, тестом
24: Вот, но относительно рип грёб аст не сильно быстрее, потому что рип грёб многопоточный, на условных, там, 30000 файлах, он чуть чуть медленнее будет. Вот. Но на более больших проектах это уже сильно заметно, немного метрик.
25: Так, на этом графике представлено среднее время вызова команд в зависимости от размера проекта у нас в инфре, в общем, инструмент сейчас добавлен в нашу инфраструк.
26: Duru и собираются метрики через нашу инфру. Вот тут видно, что там условно проект 50000 файлов при примерно, ну короче 50 95 персентиль это меньше 1 секунды и
27: И там вот 95, это 1 секунда, там 10, да, вот 10, 3 миллисекунд, это 1 секунда и 10 4, там уже к 200 двухста 50000 файлов. Вот по индексации также.
28: Тут графичек с метриками и далее. Текущее использование вообще команд в нашей инфре, количество их вызовов на данный момент уже дошло до того, что вызывается там условно ребятами до 30000 команд в день. Агент
29: При работе и это хорошо коррелирует с тем, что условно мао уже достиг практически 2500, а wow 1500 юзеров в яндексовой инфре разработчиков, которые
30: Работают с инструментом, притом они в основном сами его подключают, и там примерно растёт на 50 уникальных юзеров в день, в будни. Вот. Ну, ребята подключают, настраивают в своих проектах и начинают использовать аст, индекс.
31: Вместе с кодом, вот, ну, распределение команд тут на самом деле, достаточно интересное. Выходит, что условно на 10 основных команд приходится почти все использование инструмента. И тут я немного
32: Задавался вопросом, а нужны ли остальные команды? Но на самом деле выходит, что там ещё 15% в этих командах, и кто-то их использует. Поэтому, видимо, нужны, ну, условно, вот 393000 вызовов за последние 30 дней различных команд.
33: Основной поиск это вот серч, потом юзедж, это использование класса апдейт, это инкрементальное обновление, так как у нас тресите, то мы можем инкрементально обновлять отдельные файлы, которые изменились от предыдущего индекса. То есть нам не надо каждый раз пере,
34: Страивать проект, индексированную базу. Достаточно просто вызвать апдейт, либо повесить команду вотч, которая на любое изменение будет постоянно обновлять индекс в баске. Вот, и есть прям интересная команда.
35: Outline она на лету позволяет распарсить файл в аст за несколько миллисекунд и вычитать агенту именно аст дерево файла условно у вас файл, например, там 500000 1500.
36: Строк. Ну, условно, там, вот. И вместо того, чтобы агент его полностью вычитывал, достаточно сначала ас дерево этого файла вычитать, а затем агент смотрит. Ага, методы на таких строчках. Тут такие зависимости посмотрел.
37: И прочитал файл в конкретных строках в диапазоне. В итоге, потратив на файл, там условно не 5, не 10, не 15000 токенов, а 200, 300 токенов. И вычитав нужные строки кода. Вот, а что это вообще даёт?
38: Условно, если мы по api условно каком-то кубике с аплайн, автоматизация решатель, который делает ваши задачки, гоняем таски, то условно без аст, индекс, ну вообще просто без.
39: Именно по аст обычным грепом, то примерно вот как раз 40 50% разницы в трате токенов уходит, и если пересчитывать это в актуальные цены по api, то это может достаточно хорошо сказаться на бюджете.
40: Компании. Вот, особенно если это масштабируется на компанию, у вас становится больше разработчиков, которые работают по ip с агентами и так далее. То есть, чтобы сделать first компанию, нужно как по мне.
41: Строить инструменты, навыки, правила, которые достаточно экономны по токенам и умеют за минимальное количество ресурсов делать максимум и максимум точности выдавать. Иначе мы в
42: Мире полностью разоримся. Ну, любой человек разорится на токены с текущими ценами, особенно когда там условный мифос выйдет 80 $ за 1000000 токенов анонсам.
43: Там будет, ну, по 1, вот.
44: Мире полностью разоримся. Ну, любой человек разорится на токены с текущими ценами, особенно, когда там условный мифос выйдет, там 80 $ за 1000000 токенов будет, ну, по 1 анонсам. Вот.
45: Интеграция с иай и де по сути, инструмент достаточно легко подключается к любым агентам, так как это силайт уза, которая встраивается в консоль на макбуке на ci, на linux машинке, где-то на бэкенде.
46: У нас там.
47: Интеграция с иай и де у нас, по сути, инструмент достаточно легко подключается к любым агентам, так как это силайт уза, которая встраивается в консоль на макбуке на ci, на linux машинке, где-то на бэкенде, там.
48: Ну неважно, можно через brew поставить npm вингет на windows тоже вот и полностью использовать её вот с курсором, ну по сути с любым агентом, который умеет использовать bash команды, так как все агенты очень хорошо научены.
49: Использовать всякие bash, слайс, тулзы и писать питонячие скрипты, которые как раз-таки они могут использовать с клишком, то есть условно агент может написать себе сам скрипт.
50: В рантайме, где-то в песочнице, который будет оборачивать книжку, несколько её вызовов соединять вместе и получить какую-то набор вызовов последовательных, очень удобных под себя. Вот.
51: Использование 1 это как раз рефакторинг вашего кода, то есть условно с агентами можно достаточно быстро за счёт навигации по асту, не закидывая сильно много дополнительного контекста, находить базовые паттерны, как что-то пишется.
52: И рефачить под точно такой же вид и генерация фичей. Это когда вы там условно какие-то экранчики делаете, продуктовые фичи тоже можно быстро найти паттерны, классы, все вот это и сделать с мобилкой удобно то, что
53: Ресурсы агент может быстро находить там неиспользуемые ресурсы можно ещё почистить и основное это иай на ci cd, так как инструмент индексируется всего за 2 гигабайта оперативной памяти по ресурсам и не требует сильно много.
54: Памяти на саму базу, то это позволяет на сиайсиди достаточно дёшево это делать. Это скорее основная причина условно, когда у вас начинается массовая работа Кубиков с агентами.
55: Которые делают какие-то таски, рефакторинги, технические задачи, там, ну любого спектра задачи, то ресурсы железа на бэкендах, они ограничены, если у вас будут какие-то инструменты, которые тратят операти,
56: Память или занимает очень много памяти для базы условно и так далее, то это приведёт к тому, что вы просто никаких денег не напасётесь на инфраструктуру. Вот, и это приведёт тоже к дополнительным затратам, особенно с тем, что железо сейчас очень сильно дорожает послед.
57: Время. Так, ну этот слайд. Так, да, по презентации все. Смотрите, сейчас перейдём к самому лайф демо, вы можете перейти в репозиторий, взять
58: Пока установить инструмент, в основном лайф демо пойдёт в следующем формате, что я буду показывать с кодексом что-либо. И также в это время я буду ждать от вас любые вопросы. То есть
59: Во время всего live demo можно сразу будет задавать вопросы. Да, сейчас вот с презентацией закончим и.
60: Вот так кто попросит?
61: Да, вот теперь можно вопросы задавать, там микрофоны, я думаю, поднесут.
62: Вот так, да, вот теперь можно вопросы задавать. Там микрофоны, я думаю, поднесут, кто попросит.
63: Как подключиться к вай фаю?
64: Понятно. Вопрос хороший.
65: Привет. Спасибо за презентацию, сефар. Очень интересно. Мне любопытно было какое-то исследование подобных решений. Исследовал ли кто-то оптимизацию работы в таком направлении до вас?
66: Ну, ты спрашиваешь скорее про инструменты, которые есть для индексации типа сирены, код графа и вот этого всего, да, на самом деле, когда я в январе ещё делал аст, индекс, сначала изучил инструменты, которые
67: Подобного. Вот я.
68: Ну, ты спрашиваешь скорее про инструменты, которые есть для индексации, типа сирены, код графа и вот этого всего подобного, да, на самом деле, когда я в январе ещё делал аст индекс, вот я сначала изучил инструменты, которые
69: Вообще существуют на гите в опенсорсе вот сирена от антропиха, которая в виде эмсипи. И в тот момент, в январе, наверное, это было единственное решение. Ну, ещё элсишины.
70: Вот, но с сиреной 1 недостаток это mcp, я достаточно много сравнивал бенчмаркал эмсипи против силай по контексту пожирания его даже с lazy to call за счёт схем.
71: Спишке выходит сильно кратно. Короче, больше пожирания токенов в рантайме, чем у клишки клишки. 1 раз загружает свой скилл правила в кэш. И после этого у тебя идёт условно работа.
72: Уже за кэшированным правилом а mcp ки они их только антропихе сейчас пытаются оптимизировать как-то, но пока у них это ещё не получилось. И вот эта вот схема, которая есть у этих серверов, по сути, ну.
73: Counter протокол, вот она очень потребляет много токенов, то есть там сравнение, если сделать 100 вызовов эмсипи и 100 вызовов силай, то там примерно в 10 раз разница будет потребление. Вот, ну если у них
74: Одинаковый функционал.
75: Спасибо, тогда, если позволят ещё вопрос вдогонку а почему известно, почему тропики выбрали подход с mcp, они изначально начали делать через cli.
76: Одинаковый функционал спасибо тогда, если позволят ещё вопрос вдогонку а почему известно, почему тропики выбрали подход с mcp, они изначально начали делать через cli.
77: Антропихе вообще ж создали изначально эмсипи как своё детище. Это изначально их, насколько я помню, идея, и они не хотят от неё отказываться. Вот кли и скиллы появились в январе.
78: А mc пишки уже почти 2 года наверное поэтому многие ну у многих эмсипи на слуху достаточно, а клишки нет вот по life демо сейчас что я сделал вообще я запустил 1 прогон.
79: Условно сравнение агента, у которого только grep и агента, у которого есть аст плюс grep, условно вот тут запущен тред с грепом, тут запущен тред с астом вот.
80: Пока они делают, я скорее переключусь вот сюда и расскажу вообще, как базово настраивать агентов, чтоб они лучше работали с условно тем же асстом. Вот. И вообще с любым
81: Другим инструментом, который вам нужно базово чаще использовать, чем базовый инструмент. Агент. Вот есть такое, такая вещь. Как правило, они базово складываются условно агенту в контекст.
82: И я сторонник именно использования маленьких правил, там условно по 200 500 токенов, которые решают какую-то маленькую задачу. То есть это условно маленький кирпичик идеальный, который полностью отлажен. Вы его Отевалиев настроили.
83: Прогнали несколько раз на разных агентах и получили идеальный кусочек вашей системы. Условно, вам нужен там кличка на трекер, там, ну, правила, на него, правила, ну, вообще правила на инфраструктуру.
84: Правила работы в вашем репозитории там с гитом правила там mount репозитория ещё что-то вот и это все раскладывается на маленькие кирпичики которые раскладываются по разным уровням. Условно инфраструктура это у вас?
85: Лежит.
86: Например?
87: Лежит, например.
88: Пока это работает. Ну вот условно в Папке дефенд лежит инфраструктурные штуки, которые, например, точка клауд. У нас вот. И вот тут уже есть папочка рулс. Ну тут разные штуки.
89: Есть setting джесон рулс. И вот в рулах лежат различные условно инфраструктурные штуки. Вот ещё из такого, как раз, пока агент работает, перейдём к репозиторию, как его
90: Вообще настроить как раз 1, ну можно через brew поставить условно, мы выполняем там терминале. Так, сейчас.
91: Нормально же видно. Да, да.
92: Вот, и ставим сам инструмент. Просто в терминале, в гитовой версии инструмента нет никаких метрик, нет никаких сетевых запросов. И если
93: Вам нужно как-то условно под вашу инфру или компанию. Если вы его добавляете обложить метриками, то я делаю следующим образом. Я беру гитовый релиз, форкаю его в нашем инфровые, который
94: Собирает релиз, на него накатываю патч с телеметрией, и он уже собирается и в с 3 выкладывается у нас в инфре компании. Вот условно мы поставили новую версию аста и можем, например,
95: Во первых, в самой тулзе есть команда help, которой можно просмотреть разные вещи, которые в ней есть, то есть основное это rebuild у нас это позволяет в Папке, в которой включён инструмент.
96: Вызвать индексацию апдейт это инкрементальное обновление изменённых файлов статс, просто статистика, там version и вот интересная команда вотч позволяет включить в бэкграунде
97: Наблюдение за изменением в вашем проекте. Остальные команды уже для поиска навигации, там по модулям для мобилки как раз вот это вот набор команд, вот из полезного ещё есть. Вот корс и кол 3, то есть
98: 3 это вызов, можно построить древо вызовов вашего метода полностью для агента в ширь и в высоту вот с помощью тулзы, ну также там под андроид ресурсы и под ios это.
99: Уже другие там. Вот. И по сути можно, например, вызвать аст.
100: Так, а не пишу, агент.
101: Также у каждой команды есть help дополнительный, если хочется посмотреть, какие есть команды, например, у ребилда есть последняя вещь полезная вещь, как новый игнор.
102: Позволяет вам запустить индексацию без учёта гит игнор файлов вот, и также из полезного есть ещё yaml, который можно прописать в корне, откуда вы будете вызывать тулзу, который включить пути.
103: Которые вам нужно индексировать, например, вы не хотите запускать агента из рабочей папки, а хотите откуда-то там, ну, из Корня, например, прям вот вы можете в корне положить вот такой ямлик с путями, которые вам нужно индексировать, или
104: И проигнорировать, и запускать индексацию оттуда, и просто с агентом прям работать с разными проектами сразу же с единым индексом.
105: Вот так. Ну и из полезного. Тут в Гайде по настройке лежит базовое правило. Оно полностью отточено именно на нашем проекте, рабочем в
106: Андроиде и в айосе, но под каждый проект условно ребята его чуть чуть тюнят, где то что-то более специфичное, более нужен, ну нужнее другие команды и так далее. Там на бэкенде ещё где-нибудь в мобиле.
107: В айосе. Вот ребята под себя чуть чуть правят и складывается это именно как раз в клауд слэш рулс. Вот если есть вопросы, можете задавать тоже, да, во время всего этого.
108: Александр, привет. Привет. Крутой инструмент. А скажи, пожалуйста, ты его сравнивал вот с ленгвич сервис, протокол технологии, вот microsoft в 2016 году её изобрёл. Ну вот сравни, пожалуйста, с этой технологией. Какие мысли?
109: Смотри, в общем сравнивал у нас есть проблема ну почему вообще пошли в инструмент такой scp это ж по сути такая же штука у которой под капотом 3 Ситтер библиотеки, парсинг и поверх вот этого.
110: Всего индекса у них накручено очень много дополнительных вещей в виде подсветки кода, ещё чего-то, что на самом деле агенту не нужно, то есть агенту нужно просто ядро вот этого элспи, да, которое достаточно лёгкое, но за счёт того, что все scp
111: Накручены ещё поверх для людей, они становятся неэффективны там на сиае, на больших проектах. Вот у нас, например, android проект с элспи просто вешается студия сразу же, и поэтому мы пошли вот в такой инструмент легковесный достаточно который позволяет агенту
112: Работать с минимумом Нужных ему вещей, потому что, ну, подсветка кода агенту, ну, не нужна вообще. Спасибо.
113: Можно вопросик, а вот call 3 поймает вызовы через получается, интерфейс, объявленный или, например, через рефлексию, ну то есть там, где вообще?
114: Строками че-нибудь объявлю этим. Типа нормально ловило.
115: Ну, вроде проблем не было с
116: Можно вопросик, а вот call 3 поймает вызовы через получается, интерфейс объявленный или, например, через рефлексию ну то есть там, где вообще строками че-нибудь объявлю ну вроде проблем не было, с этим типа нормально ловило.
117: Через цепочку вызовов строит, через связи, там референсы, оно через связи постра, ну, строит вот эту вот цепочку.
118: И?
119: Соответственно, если я укажу, я уточню просто про Котлин язык вопрос, если у меня референс на fun.
120: Через цепочку вызовов строит, через связи там референсы, и оно через связи постра, ну, строит вот эту вот цепочку. Соответственно, если я укажу, я уточню просто про Котлин язык, вопрос, если у меня референс на fun.
121: Это тоже сможете?
122: Найти. Ну это как раз для функции и есть штука. Вот. Ну и инструмент начинался с Котлина, и потому что я андроид разработчик, вот там есть ещё
123: Джавы. Все, понял. Спасибо. Да, изначально вопрос, да.
124: Это тоже сможете найти. Ну, это как раз для функции и есть штука. Вот. Ну и инструмент начинался с Котлина и джавы. Все, понял. Спасибо. Да, потому что я андроид разработчик изначально. Вот там есть ещё вопрос, да.
125: Добрый день, у меня такой вопрос. А можно ли не вводить команды в терминале, открыть курсоре и попросить настроить
126: Ваш мди.
127: Аст через, да, да, можно, ну, вообще ничего не вводить. На самом деле, я просто
128: Добрый день, у меня такой вопрос. А можно ли не вводить команды в терминале, открыть курсоре и попросить настроить аст через ваш мди? Да, да, можно, ну, вообще ничего не вводить. На самом деле, я просто
129: Вот, для демонстрации показывал вот это, на самом деле, руками это не нужно делать, потому что вы говорите агенту. Вот репозиторий там есть. User guide. Поставь все. И потом
130: Посмотри команды, которые есть в инструменте, и оцени, что лучше всего ложится на наш проект условно, да, типа можно построить вместе с агентом правила, отберать его, отладить, чтобы он использовал аст вместо базовых.
131: Креп команд. Вот.
132: Так, да, вопросик можно, да, давайте, привет. Такой вопрос по поводу продолжение вопроса про кол 3. Насколько эффективно работает в проекте, где есть вжуха и swift и бриджинг между ними?
133: Интересный вопрос. Вот тут я честно не отвечу, потому что там сейчас у меня 34 языка, и я живу на том, что ребята приносят ко мне, если есть какие-то проблемы. Вот. Но с айоса ко мне давно уже
134: Не приходили. Это первые ребята, кому я принёс аст в проект. Вот если есть проблемы, можете ишью открывать в репозиторий, он открытый, так что или пол реквесты приносить как
135: Делают некоторые люди.
136: Привет, можно вопрос? Да, тестировал пару тройку месяцев назад индекс. У меня была такая проблема, что аишка скатывалась с аст обратно на грёб. Собственно, рулы. Я так понимаю, они полностью решают эту проблему?
137: Ну, у меня, да, полностью. И у других ребят тоже полностью решили эту проблему. Именно ты пишешь небольшой рул, который отдельный от всего, от cloud мд, в котором он, часть, бывает, забывает ещё что-то. И у тебя вот этот полностью отлаженный идеальный кирпичик в виде рула.
138: Который агент соблюдает и всегда держит в памяти.
139: Вот, я, ну просто тоже прописывал, я видел там условно олвейс, юз, ну это rule, да, окей, ладно, понял. А можно ещё вопрос, получается у каждого разраба локальная индексация.
140: Который агент соблюдает и всегда держит в памяти. Вот я, ну просто тоже прописывал, я видел там условно олвейс, юз, ну это rule, да? Окей. Ладно, понял. А можно ещё вопрос. Получается у каждого разраба локальная индексация.
141: Происходит каждый руками переиндексирует или можно немножко автоматизировать процесс.
142: Ну, смотри, у тебя же индекс строится под ветку, на которой ты работаешь, и если условно она сильно отличается от транка, то будто бы тебе лучше свой индекс иметь.
143: Происходит каждый руками переиндексирует или можно немножко автоматизировать процесс. Ну смотри, у тебя же индекс строится под ветку, на которой ты работаешь. И если условно она сильно отличается от транка, то будто бы тебе лучше свой индекс иметь.
144: И плюс он строится на самом деле, у нас, ну, его не агент вызывает, он вызывается хуком на старте сессии. То есть вот тут у нас прописан условно. Тут есть пример как раз в user guide с хуком на старт сессии на ребил.
145: Аст индекса, то есть добавляет условные там 15 20 секунд. Если у вас гид репозиторий, который не fuse, то там вообще за 8 10 секунд можно индексировать. Но когда фьюз репозиторий, то там индексация за счёт выкачки файлов по
146: Линкам достигает там, ну, 40 секунд 50 за счёт этого как раз у нас и долгая индексация при большом количестве файлов, потому что когда проход 1 идёт по дереву, там всего 1 проход идёт выкачка по симлинкам репозито.
147: Понял. Хорошо. Спасибо большое.
148: Ещё такой вопросик. А как работает watch, он запускает какой-то процесс фоновый или как-то?
149: Отслеживает, да? Ну вот, по сути, можно вот так сделать. Ну, можно агенту сказать, это тоже самое, там в репозитории прописано, по сути, вот так команда
150: Ещё такой вопросик. А как работает watch, он запускает какой-то процесс фоновый или как-то отслеживает? Да? Ну вот по сути можно вот так сделать. Ну можно агенту сказать, это тоже самое там в репозитории прописано по сути вот так команда
151: Выглядит собачка. Ну, точнее, вот это вот символ для того, чтобы в фоне запускалось по сути.
152: Все, у нас воч, в фоне запущен и оно будет следить за как раз изменением файлов и обновлять индекс инкрементально на каждый файл сразу же за пару миллисекунд. Понял? Спасибо. Да, у нас тут агенты за
153: Кончили работу, тут есть. Так?
154: Вот. Ну, в общем, агент с грепом, на самом деле, если тут посмотреть, я очень много запусков делал всего этого дела. И, ну, с агент с грепом тут также менее плотно собирает.
155: Информацию. У меня есть файл об который это все валидируется воркшоп идёт на репозиториях андроид и ios, телеграмма в андроиде, там 14000 файлов, AVIOSETAM26000 файлов, там на самом деле можете этот проект найти у меня.
156: Также в репозитории он называется workshop, там есть все 3 шага, которые будут в самом демо и вы сможете их также, если захотите, прогнать вот относительно.
157: Так, сейчас, извиняюсь, вылетела из головы мысль.
158: Короче, относительно грепа аст позволяет именно структурно более точно собирать информацию, но эта разница проявляется более сильно, когда у вас проект становится больше, то есть условно на проекте 10000.
159: Файлов там 14, как у андроида. Телеграмма. Разница будет не сильно большая во времени они примерно одинаковые будут. Разница будет именно в структурно собранной информации. Вот. А что вообще полезного ещё можно?
160: Сделать для ваших проектов, чтоб агенты намного лучше работали. Вот как раз 2 шаг у меня связан с картами проекта.
161: Извиняюсь, микрофон включился не там.
162: С картами. Что такое вообще карта? Это когда вы просите агента построить полностью структурную архитектурную связи, сеть, где лежит юай и так далее в вашем проекте.
163: Которые позволяют агенту получить базовый контекст о вашем проекте или ваших модулях команды, например, вы занимаетесь там какими-то платежами, занимаетесь там кор, частью приложения, ещё что-то. И у вас достаточно много модулей.
164: И агенту нужно как-то сказать, а вот это лежит там, а вот это там и вам нужна какая-то основа для того, чтобы агент каждый раз не начинал искать информацию, не Шёл грепать по проекту и не пытался найти
165: Какую-то информацию дополнительную. Вот.
166: Да что вообще можно сделать как раз построить, попросить агента с помощью инструментов или самостоятельно пойти по проекту и построить архитектурную карту с базовыми основным.
167: Вещами, которые есть в проекте, которые можно использовать для входного контекста на все следующие сессии. Условно, у вас карта будет весить там 5, 15000 токенов, но этот импут дополнительный будет позволять вам экономить там
168: Десятки тысяч токенов выходных у агента, а так как связь у них, условно, там 5 $ за 1000000 инпо, то 25 за выход, то вы получаете достаточно большую экономию по токенам в разрезе любой фичи Зада.
169: Условно там задачка, которая делалась за 50 $, по api, будет делаться там за 5 7 баксов, если у вас достаточно хороший импут для вашего агента в проекте вот карты.
170: Вообще бывают разные. Можно построить карту всего проекта, как сейчас делает агент, но это немножко неэффективно, так как она будет огромная, дорогая и не нужна. На самом деле агенту в контексте сразу же вся карта вашего проекта.
171: Поэтому в идеале, как вариант построить сначала всю, а потом либо по частям строить, а потом выстроить базу знаний у вас, например, на ямлах ещё чем-нибудь на связанных с ссылками на Вики, ссылками на то, где что лежит.
172: Чтоб агент имел в контексте именно вот эту вот структурку в виде ямла, с тем, как у вас построена база знаний. И, например, когда он работает с юаем, например, на компоузе с вашей дизайн системой, он такой, ага, мне надо вот это вот прочитать. Пошёл.
173: Прочитал такой. Угу. Понятно, как навигация устроена как вот compose экрана навигируют, какие компоненты используют для экрана. Пошёл в фигму, посмотрел по книжке какой дизайн надо сделать и собрал на дизайн компонентах полностью ваш экран.
174: Условно это позволяет как раз-таки точечно решать проблему недостатка знаний агента. Вот так вопросов нет пока.
175: Спасибо за доклад. Вопрос у меня в продолжение вопроса про лсп. У него же под капотом где-то должен быть индекс, который он уже строит. Ты пробовал на него сесть, чтоб 2 раз не индексировать? Вот нет.
176: Этим на самом деле мы не занимались. По идее, можно, ну, разобрать элспи и залезть под капот, там, подключиться к его индексу, да, но, по сути, он все равно стоит слишком много дополнительных вещей, например, андроид студии.
177: Там условный со своим индексом достаточно долго индексируется. Ну да и не знаю, тут тут скорее на любителя.
178: Бесплатный. Ну то есть идешка уже его поддерживает в актуальном состоянии.
179: Там условный со своим индексом достаточно долго индексируется бесплатный. Ну то есть идешка уже его поддерживает в актуальном состоянии. Ну да и не знаю, тут, тут скорее на любителя.
180: Я не захотел лезть под капот самой липики, чтобы её разбирать, переделывать, подумали, и проще оказалось создать под себя решение, которое мы сами поддерживаем, развиваем в инфре, там можем зарелизить легко и так далее, и под все языки.
181: Единый инструмент условно у нас я tool штука, которая при маунте Аркадии, там вот нашего репозитория доступна всем сразу же людям. Вот, и поэтому её можно сразу же поставить моментально всем за счёт нашей инфры.
182: Есть не опционально, да, это
183: Единый инструмент условно у нас есть. Я tool штука, которая при маунте Аркадии, там вот нашего репозитория доступна всем сразу же людям не опционально да, это вот. И поэтому её можно сразу же поставить моментально всем за счёт нашей инфры.
184: Да, а можно 2 вопрос, если там в каком виде аутпут вот этой тулзы? То есть грёб, это ж просто строки. Да, да, да. У тебя output вот твоей тулзы.
185: Да, можно, можно, можешь в микрофон говорить это.
186: Да, а можно 2 вопрос? Если там, да, можно, можно в каком виде аутпут вот этой тулзы? То есть грёб, это ж просто строки. Можешь в микрофон говорить это. Да, да, да. У тебя output вот твоей тулзы.
187: Ст. Он похож на грёб. Это просто строки или это какой джессон? Это
188: Чистые строки. Смотри, с джесоном. Есть проблема. В нём очень много кавычек, скобочек, запятых, которые
189: Ст. Он похож на грёб. Это просто строки или это какой джессон? Это чистые строки. Смотри, с джесоном есть проблема. В нём очень много кавычек, скобочек, запятых, которые
190: Жрут контекст, они не нужны. Типа агенту нужен сухой структурный вывод в виде просто строчек текста. Там, может быть с путями в зависимости от команды, да, какую команду он вызвал там, если искал какой-то файл, то да, с путями. Если искал что-то другое, ну,
191: Уже по пути, то там аст дерево файла, если аутлайн использовал, то есть именно зависит от задачи, но в основном это сухой сжатый вывод.
192: Спасибо. Вот да.
193: Так, ещё вопросик.
194: Уже по пути, то там аст дерево файла, если аутлайн использовал, то есть именно зависит от задачи. Но в основном это сухой сжатый вывод. Спасибо. Вот. Да. Так, ещё вопросик от мапс, ты говорил?
195: Сильно экономит контекст токены и так далее. И как ты видишь вот этот файл, можешь поподробнее описать и как думаешь я здесь привет, да подходит ли для такого набор Скилов, у которого
196: Условно в дескрипшене будет, ну, краткое описание там модулей, фичей и так далее. Внутри более подробное бизнесовое описание и так далее для связки там задач, ну, описание там, в джире, тикете в код, например, ну,
197: Тут скорее получается про базу знаний, да, как раз.
198: Ну, база знаний, да, то есть, получается, дискрипшены же, ну, они это условно краткое описание, но сразу в контексте иишки и про весь проект. Ну, смотри, мы
199: Тут скорее, получается, про базу знаний, да, как раз, ну, база знаний, да, то есть, получается, дискрипшены же, ну, они это условно краткое описание, но сразу в контексте иишки и про весь проект. Ну, смотри, мы
200: Сейчас по сути строим такую штуку достаточно сложную в которой есть связи на наши Вики связи на код, где лежит например для бэкэнда, вот например да, помогаю ребятам с бэкэнда делать там где service лежит, где какой его кусочек, да.
201: Где кодогенерация Вики по частям, какие-то продуктовые части, ссылки на тикеты, что агент может взять книжку, если что, пойти посмотреть тикет. Почему? Типа, зачем было сделано? Ну только при необходимости, там вот и дополнительные
202: Там связи, что как пишется, там кодстайлы всякие такие доки для бэкендов, там как код генерацию запускать, где она генерится, как проверять это все там на машинках бэкендов, как подключиться к бекендовой машинке и про
203: Это на тестинге, там и так далее. То есть, например, вот я условно, там, когда какой-нибудь бэкэнд пишу, типа, с агентом, то типа, я прогоняю с ним полностью на машинке, агент подключается по ssh, там гоняет, это все смотрит, типа
204: Тесты код генерации с помощью базы знаний как раз знает как это все сделать. Ок, это не ок. Смотри скиллы.
205: Вот так. Сейчас ещё раз упустил. А все-таки база знаний в виде Скилов, это по твоему?
206: Тесты, код генерации с помощью базы знаний как раз знает как это все сделать. Вот так. Сейчас ещё раз упустил а все-таки база знаний в виде Скилов это по твоему ок. Это не ок. Смотри, скиллы.
207: Имеют. Ну давай так. Люди начали использовать скилы не так, как должны были изначально скилы были придуманы, чтобы автоматизировать какие-то вещи, там может скриптики, работа с каким-то инструментом, ещё что-то там.
208: Какую-то часть воркфлоу, но часть людей начали использовать скиллы как базу знаний, что вот типа триггер в самом начале триггернулся, типа сработал скилл. Вот получай порцию знаний и иди работай. Но, во первых, скиллы имеют функцию
209: Срабатывать. Во вторых, они имеют функцию не срабатывать. Вот. И в третьих, будто бы складывать все это в скилы. Это просто архитектурно, неправильно с точки, а это уже перебор, как по мне, это трата денег.
210: Времени и сил других ребят, чтобы потом это разгрести. Особенно если у тебя какой-то есть скилл стор, ещё что-то, которое подключается там, и человек себе условно случайно подключил твои скилы, да, и они просто будут выжирать контекст, подключаясь
211: Знания, которые не нужны или давать не те знания. Вот поэтому база знаний должна быть какой-то полностью отдельной сущностью, которую вы делаете под ваши проекты, да, то есть её нужно архитектурно спланировать.
212: Продумать, как что будет связано, оттестировать все это, отвалить на агентах, там, как они решают с этой базой знаний задачки, как они продуктовые вещи делают. Там, условно у вас должно быть аб тестирование. Условно, агент гонится с
213: С 1 и тем же харнесс м на ci кубиках. Там 100 задач без базы знаний. И эти же 100 же задач от той же самой ревизии идут с базой знаний. Вот, и тогда можно будет её полностью оценить. Окей, я понял.
214: Спасибо большое.
215: Всем привет. У меня такой вопрос. Получается аст, индексирование. Ну, потому что я услышал на докладе это мастхэф для всех репозиториев и для всех проектов, которые используют
216: Агентскую разработку, потому что за счёт него мы сокращаем количество токенов, а токены это самый главный ресурс, да, и получается вот это некий, ну, как мне кажется, стандарт, который нужно
217: Продвигать и нужно использовать во всех. То есть я, например, вижу, что в курсоре происходит какая-то индексация проекта. И это, наверное, вот что-то из связанного с аст индексацией.
218: Ну да, агентские системы, на самом деле.
219: Продвигать и нужно использовать во всех. То есть я, например, вижу, что в курсоре происходит какая-то индексация проекта. И это, наверное, вот что-то из связанного с аст индексацией. Ну да, агентские системы на самом деле.
220: Сейчас как cloud, там курсор, ну курсор изначально Шёл в индексацию какую-то, но она у них немножко упортая, но вообще в любом виде аст, да, неважно, там аст, индекс, там, code graph, сирена. Ну, неважно.
221: Да, оно позволяет агенту намного лучше работать с кодом. И вот именно подход в виде ас, когда у тебя структурно подаётся код агенту, это как раз то, что нам необходимо в реалиях для экономии времени токенов и для
222: Того, чтобы повысить качество исполняемых задач.
223: Получается, мы придём когда-то к тому, что это станет стандартом, потому что вот проблема ии индустрии в том, что каждый придумывает какой-то свой
224: Того, чтобы повысить качество исполняемых задач. Получается, мы придём когда-то к тому, что это станет стандартом, потому что вот проблема ии индустрии в том, что каждый придумывает какой-то свой
225: Фреймверк и пытается его продвигать. А вот здесь я вижу, как будто бы, ну вот эта индексация, это вот то, что должны сделать все.
226: Да, но смотри, есть ещё 1 нюанс. Например, в рамках компании, насколько ты готов.
227: Фреймверк и пытается его продвигать. А вот здесь я вижу, как будто бы, ну вот эта индексация, это вот то, что должны сделать все, да, но смотри, есть ещё 1 нюанс, например, в рамках компании, насколько ты готов
228: Давать сирени индексацию кодовой базы вашей всей рабочей, ну, проектов. Вот антропихе сделали свой индексатор, они завтра захотят туда добавить какую-нибудь сетевую штуку. Так, а все слышно.
229: Сетевую штуку, которая отправляет какую-то информацию о вашем коде куда-то, да, и как бы, кажется, лучше внутри компании иметь какое-то своё решение, которое позволяет обезопасить. Да, все, понял, да, что получается вот это
230: Минус того, чтобы использовать в агентах вот этот свой, да?
231: То есть то, что сейчас в опенсорсе, вы ж не знаете, что завтра разработчик там сделает, поэтому, типа, люди как раз форкают, переписывают ещё что-то и дальше уходят.
232: Минус того, чтобы использовать в агентах вот этот свой, да, то есть то, что сейчас в опенсорсе. Вы ж не знаете, что завтра разработчик там сделает. Поэтому, типа, люди как раз форкают, переписывают ещё что-то и дальше уходят.
233: Во что-то своё, именно внутри компании, чтобы обезопасить себя от каких-то утечек, кода и всякого такого ещё вот как раз минус, например, рип грепа на fuze репозиториях в том, что он, когда грепает, начинает выкачивать
234: Там файлы и все, он зависает, типа, на вечность, там просто все понял. Спасибо. Ну, это, мне кажется, важный поинт. Да, тут у нас агенты, в общем, завершили строить карту, она тут выглядит из
235: Из частей остальных основных, как там репозитории, слои потом, ну типа лайфсайкл, то есть оба android и ios проекта, были построены одинаковые карты, и, например, сейчас можем запустить
236: 2 агентов. 1 условно будет с картой что-то делать, другой агент будет делать ту же самую задачу без карты. То есть основное сейчас карты построены, но на самом деле вот в таком формате они немножко неоптимальны.
237: Потому что агентам также не нужны какие-то списки, ещё что-то форматирование, потому что это человекочитаемый формат, а для агентов нужен более сжатый и более сухой вариант. То есть условно вы построили 1 версию карты. А, да.
238: Дальше вы её оптимизируете по токенам, сохраняя полностью качество вашей карты для агента. То есть валлите её запускаете агента с картой. Смотрите, он сделал окей, чуть чуть оптимизировали карту, там ужали на 30.
239: Процентов контекста. Посмотрели, прогнали снова. Угу. Все отлично. И до тех пор, пока качество сохраняется, её можно подожимали. Но должен быть определённый пул, задачек, который позволяет это протестировать полностью. То есть у вас должно
240: Быть условные эвала. Да, там вопрос есть. Угу.
241: Да, смотрите, 2 вопроса. Созрело в начале был слайд про то, что в разных ди это работает клауд код, курсор и так далее. Вопрос такой, действительно ли аст индекс одинаково хорошо работает во всех? Иди. Или все-таки лучше использовать?
242: Конкретно смотри, по крайней мере, у меня есть и клод, и, ну вот тут вот у меня с астом репози открыта вкладочка, но у меня, в общем, и клауд есть, и кодекс.
243: Так вот, и они, по крайней мере, плюс минус одинаково используют. У кодекса есть нюанс, он очень любит свои песочницы, и поэтому
244: У меня немного, ну, используется такой лайфхак. Я в конфиг томл прописал home папку, как юзер дефендед, ну, свою корневую папку, и поэтому аст нормально работает, и остальные тулзы тоже. Но у кодекса есть проблемы.
245: Вообще с любыми инструментами, потому что если у вас инфра завязана на ваш макбук, например, или связь, ну, с инфрой компании, да, и он пытается в песочнице вызвать там трекер, ещё что-то, да, он получает такой, о, блин, а то
246: Нет, и не может достучаться. Поэтому нужно у некоторых агентов прописывать дополнительные штуки, чтобы он это делал не в песочность определённой команды. Понятно. Вот, вот. И 2 вопрос. Допустим, в компании развёрнута локальная элем, ну, условно.
247: Jim, да, надо ли что-то дополнительно будет работать её. Если у вас именно ещё и локальный харнесс, то, скорее всего, нужно будет настроить как инструмент. Вот. А так, если вы используете условно джим
248: Настраивать или все?
249: Jim, да, надо ли что-то дополнительно настраивать, или все будет работать её. Если у вас именно ещё и локальный харнесс, то, скорее всего, нужно будет настроить как инструмент. Вот. А так, если вы используете условно джим,
250: Кого там cloud код, например, как он стал опенсорсом пару месяцев назад. Вот, то в принципе можно просто рулы прописать. По идее, глм его будет также использовать, но у китайцев есть нюанс, они сильно хуже используют
251: Вот, поэтому тут нужно именно Быч марать под определённую модель, в принципе, любой инструмент, любую кли там трекер. Неважно, если у вас есть какой-то скил, он на самом деле обычно Быч марается у людей, сейчас они приносят результат.
252: Для определённой 1 модели. И если мы этот скилл возьмём с другой модели, он будет работать по другому. И поэтому банчмарки на самом деле должны быть более массовыми, они должны проверяться на пуле различных моделей основных в компании, да, например, которые используются там
253: Ещё что-нибудь у вас поднято? Там локально развёрнуто и вот на них должно это бенчмаркать полностью, иначе скилл на самом деле будет невалиден для 90% юзеров у вас в компании.
254: Вот у меня тоже, да, вопрос, да, вы сказали, вот когда карта построена, дальше оптимизировать с точки зрения разметки для человека не человек.
255: А под агента агент, да я базы не смотри, сейчас лучше уходить в
256: Имею ввиду, то есть вы предлагаете держать 2 знаний 1 для людей, другую для
257: А под агента агент, да, я имею ввиду, то есть вы предлагаете держать 2 базы знаний. 1 для людей, другую для не смотри, сейчас лучше уходить в сторону.
258: Какой-то базы знаний для агентов, как мне кажется. И мы вот такое как раз делаем. Есть, да, человекочитаемые Вики, которые агенту все равно мы дадим, и они человекочитаемые останутся, потому что, ну, они людям нужны тоже, чтоб понимать что-то, но в проекте
259: Именно под инфру, под навигацию по проекту. Карта проекта это её не надо людям вычитывать. Типа вы должны её построить достаточно качественно под агентов и с минимальной затратой токенов. То есть в ней не должно быть каких-то штук, которые
260: Тратят контекст, типа там кавычки, ещё что-то, списки, таблицы, вот таблицы очень много сжирают, на самом деле токенов. А они агенту не нужны вообще. А вы не смотрели? Вот сейчас некоторые агенты пробуют строить вот эту вот
261: Документацию для агентов именно не в мд разметке, а в xml ну да, есть такая информа ну с xml на самом деле там есть проблема 1 что как до определённого размера xml выгоднее да, но.
262: Там начинали бенчмаркать насколько знаю ребята и получается, что в 1 момент xml файл достигает такого размера, что агент начинает его просто забывать, терять кучу информации в нём и не находить какие-то ссылки вот.
263: Вот. Ну в xml же все равно очень много вот этих кавычек там вот этого всего что просто не нужно нужен какой-то более простой формат типа ямлов там и так далее, которые меньше шума несут в себе.
264: Понятно. Спасибо. Да, смотрите, сейчас мы как раз запустили ещё 2 агентов, которые уже выполняют какую-то, какую-то задачу. 1 с картой, 2 без карты просто.
265: Ну вот, и он начнёт искать. A1 уже пишет условный вывод по задаче, которую его хотят, он там пару вызовов сделал информацию там.
266: Перепроверил и пошёл 2 агент. Сейчас ещё будет достаточно долго времени искать необходимую ему информацию, а
267: Да, показываю, извиняюсь. Вот.
268: Тут условно 2 треда ееще запустино. И как раз 1 с картой, вот он уже её пишет, скоро допишет. И 2 пошёл искать по проекту, так как у него нету базовой информации, и он будет достаточно долго работать, чтобы со
269: И придумать как сделать какую-то новую фичу. Вот.
270: Да, давай ты имеешь.
271: А можно ещё такой вопрос? Он про обжектив си, но я думаю, что это актуально для других Языков. Обджектив си есть такой паттерн, как вызов функции через селектор, двоеточие, да, то есть, по сути, вызови функцию с таким-то названием.
272: Да, давай. А можно ещё такой вопрос? Он про обжектив си, но я думаю, что это актуально для других Языков. Обджектив си есть такой паттерн, как вызов функции через селектор, двоеточие ты имеешь, да, то есть, по сути, вызови функцию с таким-то названием, соответственно, будет ли
273: Вот этот подход находить эту back на креп.
274: Функцию. Да, я, мне недавно ребята принесли с плюсов такой репорт, что
275: Вот этот подход находить, эту функцию, да, я back на креп, мне недавно ребята принесли с плюсов такой репорт, что типа
276: Короче, когда ты двоеточие, двоеточие, бар, оно не находит, типа, и я сидел, короче, копался и в итоге поддержал эту штуку. Вот. Но на обжект си не проверял, но если что
277: Пишешь фу.
278: Короче, когда ты пишешь, фу, двоеточие, двоеточие, бар, оно не находит, типа, и я сидел, короче, копался и в итоге поддержал эту штуку. Вот. Но на обжект си не проверял, но если что
279: На issue там или пулреквест вот.
280: Хорошо, спасибо.
281: На issue там или пулреквест вот хорошо, спасибо.
282: Так, окей, есть ещё вопросики. Так, хорошо. Окей. Но агент 1 уже закончил как раз, который с картой у нас изначально он потратил всего условно, там 2 минуты.
283: И набросал план, как реализовать в telegram дополнительную фичу для звонков вот, ну тут, если захотите, сможете потом в репозитории найти папочку, воршоп и более подробно сами прогнать.
284: Так как мне не очень удобно показывать, что внутри происходит у агентов в таком формате. Вот что ещё вообще из такого как раз клишки.
285: Инфраструктуры, то, о чем ребята чуть раньше говорили, и скилы. Если у вас в компании ещё нету таких инструментов, то это, кажется, 1 вещь, с которой вам надо начать внедрение и агентов, и вообще построение воркфлоу.
286: Различных ребят у вас в проекте, то есть чтобы сделать first компанию, надо сначала построить базовую инфраструктуру, с которой могут работать различные агенты и улучшить опыт ваших ребят. Вот
287: Как-то так. Ну, мы как раз начали с ребятами, с клишекофе системы. И, например, чтоб условно посчитать метрики, я сам руками уже не лез в нашу инфру, там, условно в хранилище агент просто сделал.
288: Вопросы и посчитал информацию у него есть права на чтение он вытащил все нужные данные, таблички и построил необходимые графики с метриками по инструменту.
289: Да, да, да. Возможно. Глупый вопрос. Смотри, в начале у тебя было, что можно использовать кодекс, курсор и так далее. Я обычно пользуюсь связкой курсор плюс gpt, да.
290: Да. Угу. Вот. И это будет работать с индексом? Или можно ли вообще забыть про кодекс? Там же можно выбрать в курсоре, там, gpt или кодекс.
291: Да, в курсоре можно также настроить. Я ребятам изначально в курсоре настраивал, просто ты с агентом просишь его.
292: Да. Угу. Вот. И это будет работать с индексом. Или можно ли вообще забыть про кодекс? Там же можно выбрать в курсоре, там, gpt или кодекс, да, в курсоре можно также настроить. Я ребятам изначально в курсоре настраивал. Просто ты с агентом просишь его.
293: Написать себе правило, как использовать инструмент в проекте, он себе его закидывает, дальше использует. Вот. Ну, можно просто с репозитория это базовое правило взять. Вот.
294: Да, в общем, сейчас потихоньку агент 2 доработает по 3 шагу у нас с планом и без плана, и он спроекти.
295: Полностью фичу под обе платформы. Вот как-то так поэтому я готов пока ещё на вопросики отвечать потому что я че то это
296: Раз, раз, саш, да, большое спасибо. Я аст индекс подключил к себе и теперь поиск по кинопоиску стал быстрее. Хотел спросить, можешь ты какие-то примеры привести? Вот.
297: Используете ли вы у себя на ci аст индекс для каких-то проверок более строгих правил типа продвинутого детекта, например?
298: Не, ну смотри, в таком формате мы его не используем сейчас, но у нас есть условно решатель.
299: Используете ли вы у себя на ci аст индекс для каких-то проверок более строгих правил типа продвинутого детекта? Например? Не, ну смотри, в таком формате мы его не используем сейчас, но у нас есть условно решатель.
300: Ну, в яндексе, ты знаешь, у нас строятся кубики, такие решателя, которые могут в различных проектах решать задачки. Ты ему закидываешь тикет, и он тебе выплёвывает пулреквест, полностью готовый, который он собирает информацию с тикетов, то, что там
301: Написано и в проекте. Базу знаний тоже используют, там аст подключены и так далее и у нас там именно выстроено так, что 1 ci кубик индексирует условный транк, от которого запускается данный решатель и
302: Дальше эта баска индексированная, перекидывается на все другие кубики, на которых запускается агент, ну, чтоб 1 раз индексировать условно транк, да, там и на всех на ревизии этой же сразу же с индексом пустить. Вот она, пере.
303: Кидывается и агент начинает работать уже с готовым индексом под проект. Вот как-то tag используем сейчас то есть
304: Это вот наше вот это дженерик решение, оно как бы автоматически работает для всех решателей.
305: Кидывается и агент начинает работать уже с готовым индексом под проект. Вот как-то tag используем сейчас. То есть это вот наше вот это дженерик решение, оно как бы автоматически работает для всех решателей.
306: Это сейчас.
307: Сделано с решателем 1 основным, который, ну, короче, не знаю, можно его имя называть или нет.
308: Это сейчас сделано с решателем 1 основным, который, ну, короче, не знаю, можно его имя называть или нет.
309: Окей, нельзя да, тут просто ещё есть нюанс, что не все вещи как раз можно называть и
310: Окей, спасибо. Понял. Можно ещё вопрос? Можешь рассказать какие-то, может быть?
311: Окей, нельзя. Окей, спасибо. Понял. Да, тут просто ещё есть нюанс, что не все вещи как раз можно называть и можно ещё вопрос. Можешь рассказать какие-то может быть.
312: Инструменты используешь именно для дебага подсчёта, там токенов при сравнении разных кейсов, там использование с аст, без аст и так далее для отладки.
313: Я использовал не токены, а деньги, то есть.
314: Инструменты используешь именно для дебага подсчёта, там токенов при сравнении разных кейсов, там использование с аст, без аст и так далее. Я использовал для отладки не токены, а деньги. То есть
315: У нас кубики запускаются по api, работают полностью и есть определённое количество денег, которое выжирает задача, да, там, смотришь, задача сожрала 7 $ типа с этой ревизии, без аста, с астом там условно 3 с половиной, с той же самой ревизии задач.
316: И ты вот так прогоняешь, потом смотришь и у тебя - 500 $ на api ушло за 1 прогон на 100 тасок как-то так. Это достаточно дорогая история, чтобы сравнивать и бенчмаркать ну именно на кубиках.
317: Окей, ладно, понял.
318: И ты вот так прогоняешь, потом смотришь и у тебя - 500 $ на api ушло за 1 прогон на 100 тасок как-то так. Это достаточно дорогая история, чтобы сравнивать и бенчмаркать. Окей, ладно, понял. Ну, именно на кубиках.
319: То есть у нас же у каждого там условно своё, вот.
320: Фото и
321: То есть у нас же у каждого там условно своё фото и вот
322: Смотри, ты говорил о том, что ai инфраструктуру лучше начинать с внедрения на ci. Не знаю секретная информация это или нет, но с чего вы начали сами. То есть какое самое 1 правило было, с чего начали, если короче да не
323: Да, да.
324: Смотри, ты говорил о том, что ai инфраструктуру лучше начинать с внедрения на ci. Да да, не знаю секретная информация это или нет, но с чего вы начали сами. То есть какое самое 1 правило было, с чего начали, если короче, да не
325: Продать эту, который достаточно.
326: Историю мы начали ещё в сентябре с агентами все это строить условно, просто вот был разработчик, много вышки, уже до этого начал вкладываться.
327: Продать эту историю мы начали ещё в сентябре с агентами все это строить условно. Просто вот был разработчик, который достаточно много вышки уже до этого начал вкладываться.
328: Изучать и так далее. Он просто пришёл условно и показал там, ну, пример того, как можно делать, рассказал про клода и так далее, и сказал, вот, берите, типа, стодолларовую подписку, там условно и так далее. Ну, неважно, да, типа, или вот используйте
329: И нашу внутреннюю для внутренних задач, для внешних, там, условно, если это не рабочие проекты, идите там в клода, пробуйте петпроекты, пишите там, изучайте и получайте опыт. Вот с этого мы начали дальше уже
330: Сначала появились эмси пишки, но они выжирали просто огромное количество контекста. Там, условно ты подключаешь эмсипи, у тебя - 100000 токенов, ну, несколько эмсипи - 100000 токенов. Чата сразу же улетает, и ты такой смотришь, и
331: И думаешь блин, а что я могу сделать на оставшееся? Типа вот. И мы пошли в сторону того, что начали писать как раз книжки для трекера, для арканума ну это вот пулл реквесты, чтоб смотреть это вот аналог guitar.
332: У нас идёт полностью там для Вики, чтоб агент мог сходить посмотреть на Вики документацию, кодстайл, там ещё что-то, вот это где-то было в ноябре. То есть условно я там, у меня стояла задача полностью избави.
333: Джавы в платежах. Вот я платежами занимаюсь, и у нас было там на тот момент, в ноябре, где-то 30, 35000 строк на джаве. Ну вот кода и я сел, пописал.
334: Там правила, ещё что-то настроил, это все погонял сначала на нескольких задачах, а потом просто потоком задачи запулил, и там вышло примерно за 70 задачек за неделю, за которые java была полностью переписана.
335: И её не осталось ещё, и багов не вышло ни 1. Вот. Ну, потом, через месяц чуть чуть отстрелило, но быстро починили. Вот как-то так.
336: То есть не бояться пробовать чуть чуть отпустить в плане того, что да, вы можете что-то сломать, может что-то сломаться в коде, но, блин, люди тоже ломают все постоянно, что-то там, баги в рц, ещё что-то. И поэтому
337: В этом плане тут нужно просто поменять позицию и взгляды на то, как вы работаете с иай, не думать, что, ну, блин, он плохо пишет, он плохо пишет, потому что вы не переложили условно на него свои знания, свой контекст. Да, почему вы хорошо
338: Пишите код в вашем проекте, потому что вы много знаете, понимаете, вот тут контекст локальный, имеете тут ещё что-то. И за счёт этого получается то, что вы знаете, как точно решить задачу. И ваш контекст сужен до вашего рабочего проекта. Агент это, по сути, всезнай.
339: Которая имеет достаточно много знаний, понимает, как что-то писать. Паттерны ещё там модные штуки какие-то, которые в неё засунули при обучении, но она не имеет контекста вашего проекта. И вот, кажется нужно идти в это, чтоб у вас разработчики уходили от того,
340: Что, блин, оно не может сначала в то, что, блин, он классный помощник кучу буллере кода он может дописать, если что, я дорев, накину ему комментов, и он поправит их. Вот условно, с чего я начинал. Это агент пишет код.
341: Я прям на пол накидываю ему комментарии от себя, себе же пишу типа комментарии, это выглядит немного странно, но это работает, ты потом агенту говоришь, а теперь сходи в arcanum и типа забери комменты, он говорит, я вижу там только комменты от тебя, я так.
342: Да, делай, типа исправляй. И вот, вот так вот, типа с этого начать, а потом постепенно вы будете это отпускать процесс, все прочее, прочее. Вы будете отлаживать систему, он будет меньше ошибаться. Лучше писать в ваш стиль, код.
343: Стиль проекта плюс добавить ему нужный инструмент, который ci чеки может посмотреть условно, пулреквест он создал, а там че то красное стало. Ну и вы говорите, просто почини все. Типа он сам смотрит, это такой, ага.
344: Отдебажил и починил. Вот как-то так. Там ещё вопрос.
345: Был, да, да. Ещё вопрос чуть больше процессный, я так понимаю. И насколько я видел, продуктовые команды занимаются экспериментами, там оптимизация.
346: Отдебажил и починил. Вот как-то так, там ещё вопрос был. Да, да, ещё вопрос чуть больше процессный, я так понимаю. И насколько я видел, продуктовые команды занимаются экспериментами, там оптимизация.
347: Возможно бы марками, валами и так далее. Ну и ai амбассадоры во первых процесс на, ну как это выглядит, что продуктовая команда таким занимается, как это планируется и так далее и 2. Есть ли отдельная команда?
348: Который занимается аи направлением в разработке ну, из dlc.
349: Да, у нас есть на самом деле несколько команд. Их скорее 2, которые я знаю, достаточно крупные, которые и решениями занимаются.
350: Который занимается аи направлением в разработке. Ну, из dlc. Да, у нас есть на самом деле несколько команд, их скорее 2, которые я знаю, достаточно крупные, которые и решениями занимаются.
351: В компании. Ну, наверное, их нельзя тоже называть, да?
352: Ну да, я не знаю, можно на самом деле назвать. Ну, короче, есть команда Лёши Острикова, это иай марвел. И есть ещё команда, там у вадима Максютова, которая тоже занимается иай решателями, которые делают общие штуки.
353: На весь яндекс. И ещё есть Павел Федотовский, который делает скилл сторож ещё. Вот, да.
354: А ещё есть я.
355: На весь яндекс. И ещё есть Павел Федотовский, который делает скилл сторож. А ещё есть я ещё вот, да.
356: Как-то так. Ну то есть у нас есть paul людей, которые занимаются общими штуками для яндекса, они все между собой на самом деле коммуницируют, вот, и пытаются построить что-то общее для всех яндексоидов, там для эйчаров, ещё для кого-то, то есть для анали.
357: Ритиков, там, в общем, такие инструменты, которыми могут пользоваться все. И они как раз отвечают за качество всего вот этого решения. И общие, например, домики для поднятия таких агентов на весь яндекс. Вот.
358: Я понял. А вот, ну, конкретно в твою сторону, да, предыдущий докладчик, кажется, продуктовые юниты и процессно, как это происходит, это в рамках задачи продуктовой какой-то выделяется время.
359: Смотри, у меня история такая, что я
360: Я понял. А вот, ну, конкретно в твою сторону, да, предыдущий докладчик, кажется, продуктовые юниты и процессно, как это происходит, это в рамках задачи продуктовой какой-то выделяется время. Смотри, у меня история такая, что я
361: Вообще продуктовый разработчик в мобилке, но сейчас я и мобилку пишу, и backend, и ещё че то делаю там. Ну, короче, достаточно много всего за счёт агентов позволило пойти вообще в ширь, там и backend где-то пописать, и
362: И в мобилку, и посмотреть в айосе что-то кроме андроида и аст индекс, например, я просто делал под себя инструмент изначально и ребятам просто понравилось. Сказал, давай в яндекс затащим типа и будем развивать дальше. Типа вот так получилось и
363: Яйками все, что делаю, оно как раз в отдельное время. То есть у меня есть продукт, но за счёт агентов я его сейчас очень быстро закрываю, там, условно менеджер что-то придумывает. 2 недели у меня уходит где-то пару часов, чтобы полностью фичу реализовать и
364: И отправить её в prod, и дальше делать свои технопроект, там ещё что-то участвовать в разных штуках для стажёров и так далее, ну чтоб их обучение, вот эти всякие школы, ну то есть делать то, что мне нравится ещё вокруг. Понял?
365: Спасибо большое. Я, кстати хочу дополнить ещё немножко про процесс. Ну, если я наверное правильно услышал вопрос, типа, как это организовано в продуктовых командах, внедрение вот этого в dlc именно и тут
366: Кажется, что в каждой команде на самом деле есть свои вот такие амбассадоры, как раз-таки, которые этим и занимаются, потому что и Егор как раз говорил, что он в своей команде активно это продвигает. Саша тоже самое, по сути, делает. И нет на самом деле задачи сделать какой-то
367: Там централизованный на всех вот это внедрение, потому что у каждой команды свои процессы, свои вообще подходы. И правильно, чтобы люди изнутри этой команды это делали, а не пытаться там сверху сбоку насадить че то централизованно. Ну да, тут
368: Получается, что есть люди, которые коммитят, это все им прям нравится, их это зажигает. Ну вот тебе, например, нравится какое-то дело или петпроект, и ты вот сидишь его и делаешь. Тут такая же история получается, что в компании
369: Создали, например, условия, которые позволяют разработчикам вливаться в ai, там, ну, квоты как раз на апишку, использование агентов там и так далее. Инфра под них вся. И то есть ты начинаешь это использовать. Тебе нравитс?
370: Ты какие-то штуки придумываешь, и люди говорят, это круто, и ты идёшь это масштабировать, либо ещё что-то и в общем, вкладываешься в общее вот это вот такое дело в компании по развитию агентов, и у нас как раз есть what чатики, там, где-то там 3000.
371: Человек по айкам, там регулярно холивары идут про то, как правильно это все настроить, что ты неправильно делаешь. Нет, ты неправильно делаешь там и вот такие вот споры постоянно, что нет, я это моё решение, оно правильное, ваше неправильное.
372: Короче, достаточно весело в этом всем вариться, потому что сейчас это достаточно новая сфера. И как, например, когда мобилка развивалась, да, тоже, ну, было же куча библиотек, которые появлялись и все говорили, вот наша библиотека лучше нет.
373: Наша библиотека лучше. И вот с агентами тоже самое пока это только зарождается. Это начало сейчас очень большое поле непаханных таких инструментов, ещё чего-то, вот как аст и так далее. На самом деле, скорее всего ещё куча решений
374: Лежит на поверхности, который просто никто не заметил, как, например, индексация, да, вот начало сейчас появляться, там code graph тоже, ну, в общем, под индексацию начали появляться решения, потому что люди заметили, что а нету решения для агентов и, скорее всего, ещё
375: Много разных направлений, где есть инструменты, удобные для людей, но они совершенно неудобны для агентов и неэффективны, которые стоило бы, наверное, заменить сейчас. То есть, возможно, кто-то уже даже тут, в зале.
376: Сидящий придумал такой инструмент, но просто ещё не реализовал, а на самом деле сесть с клодом месяцок, с ним поработать и родится инструмент, то есть аст. Я, например, до полной, нормальной
377: Версии довёл, которая прям и по перфомансу, и по всему меня устраивала примерно за месяц вечерами с клодом. Типа, я прям очень много времени убил и потом ещё каждый день с самого января какие-то штуки в него дорабатывал. Вот.
378: То есть уже почти полгода.
379: То есть, ну, в айподе можно, но, типа, и достаточно много там всего сделано. Сначала был питон, потом раст, потому что он оказался быстрее и как-то так. Вот, спасибо за вопрос.
380: Так, все, наверное, есть вопросы ещё там было вопросов надо выбрать ещё.
381: Вижу, что вопросов, кажется, не осталось. Да, да, у тебя будет сложная задача. Ты сам себе её поставил. Ты разрешил задавать?
382: Так, все, наверное, есть вопросы. Ещё вижу, что вопросов, кажется, не осталось. Там было вопросов надо выбрать ещё. Да, да. У тебя будет сложная задача. Ты сам себе её поставил, ты разрешил задавать?
383: Просто в процессе их было много, их было полтора часа практически, но тебе нужно выбрать 1 лучший. Я даже, к сожалению, тебе не помогу. Хорошая идея. Давайте, кстати, по памяти.
384: Встаньте, те, кто вопросы задавали.
385: Просто в процессе их было много. Их было полтора часа практически. Но тебе нужно выбрать 1 лучший. Я даже, к сожалению, тебе не помогу. Встаньте. Те, кто вопросы задавали. Хорошая идея. Давайте, кстати, по памяти.
386: Визуально можно будет?
387: Так, да, давайте, вот, давайте я примерно помню, но не все вопросы прям.
388: Можем. Кстати, у нас есть немножко время, мы можем попросить ребят очень коротко не повторить вопрос, типа ключевые слова. Давайте по порядку. Вот давайте я прям буду
389: Так, можем, кстати, у нас есть немножко время, мы можем попросить ребят очень коротко не повторить вопрос. Да, давайте вот, типа ключевые слова. Давайте я примерно помню, но не все вопросы прям давайте по порядку. Вот давайте я прям буду
390: Преподносить микрофон и вы пару ключевых слов про че вопрос был про использование аст индекс в ci.
391: У меня про же динамические вызовы, но ещё вопрос про вай Фай, я спрашивал про language server protocol, почему индекс не переиспользовать и спрашивал про output.
392: Вот этого инструментария.
393: Спрашивал про анализ конкурентов, какие были ещё решения.
394: Спрашивал про разделение документации между людьми и машинами и про переход на xml разметку я спрашивал про стандарт аст и курсор, я уже
395: Не помню, что я спрашивал, но хочу, но больше всего мне понравился ответ на вопрос с чего начали.
396: Я спрашивал про лсп, что старый уже старая технология. Старый продукт. Как сравниваете с вашим решением. Угу.
397: Так я спрашивал про про кол 3 и как он работает в проекте, смешанном с абжук и свифтом.
398: Так, ну, часть вопросов, а ты задавил вопросами, да, да. Про процессы внедрения, там продуктовые команды, амбассадоры и так далее. То, что иишка скатывается с аст индекса обратно в
399: Помогает ли рулы при этом про про инструменты для дебага, Замера там токенов и так далее в экспериментах, чтобы сравнивать разницу про ох ты ж.
400: Да, деле там было.
401: Так че вы говорите? Уже все вы нашли? Отлично. Человеку с классным пулом вопросов дарим.
402: Победителя. Ну да, давай вот человек, он там на самом классных пул вопросов и давай тогда вот.
403: Да. Так, че вы говорите уже все? Вы нашли победителя? Ну да, давай, вот человек, он там, на самом деле, там было классных пул вопросов. И давай тогда вот отлично. Человеку с классным пулом вопросов дарим.
404: Подарочек. Да, давайте похлопаем. И мне сказали, что раз уж у нас так много вопросов было, то можно. Ещё 1. Давай.
405: Вот с чего начинали. Вот ещё человек присел в серой, начинали внедрение яй.
406: Кофте. О чем вопрос? Ага, все с чего?
407: Подарочек. Да, давайте похлопаем. И мне сказали, что раз уж у нас так много вопросов было, то можно ещё 1. Давай. Вот с чего начинали. Вот ещё человек присел в серой кофте. О чем вопрос. Ага, все, с чего начинали внедрение яй.
408: Все отлично. И 2 подарочек мы тебе сейчас принесём тоже. Так, на че мы заканчиваем? Да, все правильно, все, давайте ещё раз поаплодируем все вместе, Саше.
409: Все рассказал.
410: Все отлично. И 2 подарочек мы тебе сейчас принесём тоже. Так, на че мы заканчиваем? Да, все правильно, все рассказал. Все, давайте ещё раз поаплодируем все вместе. Саше.