Не попадитесь на накрученные каналы! Узнайте, не накручивает ли канал просмотры или
подписчиков
Проверить канал на накрутку
Телеграм канал «Vitaliy Zarubin | @keygenqt»
Vitaliy Zarubin | @keygenqt
1.2K
79
70
46
897
Привет! Я инженер-программист компании ОМП. За свою карьеру я сменил много платформ и языков: технологии для меня - просто инструмент, не религия. Сейчас я занимаюсь поддержкой Flutter для ОС Аврора и пишу pet-проекты в различных направлениях.
Разгоняться сложнее, чем пилить на готовой базе. Но и чужая база не спасает, если она написана левой ногой. Поэтому сейчас главное - не фичи, а архитектура. Она должна быть понятной всем: LLM, человеку и мне =) Приложение будет большим, и базу хочу заложить так, чтобы потом фича была лёгкой прогулкой.
Как передать контекст по большому проекту LLM?
Допустим, у нас проект на 10к файлов. Описать такой проект в AGENTS.md полностью невозможно. Сделать директорию с объяснением структуры и т.д. — сложно контролировать. Позволить шариться агенту по проекту в надежде, что он все найдет через grep — сомнительно и дорого.
В vibe-studio я подошел к передаче контекста LLM серьезно. Нужна тонкая середина, где есть автоматизация, а где контекст продолжает контролировать человек.
👉 AGENTS.md — да, это общее описание важных деталей проекта и общее представление о нем. В нем не должно быть вещей, которые меняются при каждой новой фиче. Такие файлы должны быть компактные, чтобы можно было контролировать, что в них написано, и они не превращались в устаревшие артефакты.
👉 Директория agents — у меня сложный проект, несколько слоев и прослоек с разными задачами. Для этого для каждой корневой директории я создал файл, в котором будет строго общая информация по важным деталям конкретных компонентов проекта. В корневых директориях не должно валяться то, что не отвечает этой логике.
👉 И последнее — и самое важное — я придумал систему тегов. Когда мы хотим сделать какую-то задачу в проекте, есть файлы, которые с ней связаны. Например, мы хотим добавить компонент с состоянием. У меня в проекте есть 4 слоя для этого:
React — UI, где живет компонент
Tauri — тонкий слой общения между бизнес-логикой на Rust и JS
Core — слой, отвечающий за общий интерфейс Rust
States — крейт с базой данных, который управляет состояниями в ней
Каждый файл имеет тег, связанный с конкретной задачей. Когда я хочу сделать компонент с состояниями — я выполняю одну команду и получаю срез всех файлов всех четырех слоев, связанных с задачей.
Проект целиком LLM не нужен. Ему нужны важные файлы в рамках задачи.
Цель - лёгкая и быстрая студия для работы с LLM. Я уже много разных попробовал. Делал MR-ы в Cherry-Studio. Но есть у них у всех проблема - в большинстве случаев это тормознутый TS на 9к файлов с кучей не пойми чего... Ну как пример 130 провайдеров, часть из которых дублируют друг друга. Я не могу отрефакторить чужие проекты - но я могу написать свой - на Tauri 2 + Rust, UI на React.
Пока взял Tauri для скорости, но в идеале я хотел бы нативный UI. React сразу закладываю как тонкий клиент бэкенда на Rust. Семейство крейтов vibe-* растёт =)
Цель - лёгкая и быстрая студия для работы с LLM. Я уже много разных попробовал. Делал MR-ы в Cherry-Studio. Но есть у них у всех проблема - в большинстве случаев это тормознутый TS на 9к файлов с кучей не пойми чего... Ну как пример 130 провайдеров, часть из которых дублируют друг друга. Я не могу отрефакторить чужие проекты - но я могу написать свой - на Tauri 2 + Rust, UI на React.
Пока взял Tauri для скорости, но в идеале я хотел бы нативный UI. React сразу закладываю как тонкий клиент бэкенда на Rust. Семейство крейтов vibe-* уже растёт =)