Relace Repos — это система контроля версий, созданная специально для ИИ-агентов. Она полностью совместима с git, поддерживает высокочастотные операции чтения/записи и глубоко интегрирована с моделями Relace.
По мере того как всё большая часть кода пишется автономными агентами, возникает необходимость в создании нового класса инструментов разработки для их поддержки. Мы начали с контроля версий.
GitHub для агентов
ИИ-агенты пишут код принципиально иначе, чем люди. Им требуется на порядки более высокая пропускная способность для операций с файловой системой, и они вовсе не взаимодействуют с визуальными интерфейсами.
Для безопасного выполнения вызовов инструментов агенты также работают в кратковременных «песочницах», защищенных от атак путем внедрения кода. Правильная сегментация пользователей требует оснащения каждой «песочницы» набором детально настроенных прав доступа к репозиториям, которые она может редактировать.
Традиционные системы контроля версий, такие как GitHub, не проектировались с учетом этих сценариев использования. GitHub создан для поддержки развитого пользовательского интерфейса, ограничивает количество репозиториев до 100 тысяч на организацию и допускает не более 15 тысяч запросов в час на операции клонирования, отправки (push) и получения (pull) кода.
Мы создали Repos, чтобы сделать работу с агентами удобной:
- Нативная поддержка git. Поддерживаются стандартные команды, такие как git clone, git commit и git push. Запустите «песочницу», клонируйте репозиторий и используйте команды git для синхронизации исходного кода по мере внесения изменений агентом.
Нативная поддержка git. Поддерживаются стандартные команды, такие как git clone, git commit и git push. Запустите «песочницу», клонируйте репозиторий и используйте команды git для синхронизации исходного кода по мере внесения изменений агентом.
- Гибкие лимиты запросов. Поддержка высокочастотных git-операций при десятках одновременных запусков агентов. Мы сосредоточены на поддержании низкой задержки для критически важных операций, таких как clone, push и pull.
Гибкие лимиты запросов. Поддержка высокочастотных git-операций при десятках одновременных запусков агентов. Мы сосредоточены на поддержании низкой задержки для критически важных операций, таких как clone, push и pull.
- Безопасность, оптимизированная для «песочниц». Детально настраиваемые права доступа к репозиториям с использованием API-ключей с ограниченной областью действия, разработанных для эфемерных контейнеров. Каждая «песочница» получает ровно тот уровень доступа, который ей необходим.
Безопасность, оптимизированная для «песочниц». Детально настраиваемые права доступа к репозиториям с использованием API-ключей с ограниченной областью действия, разработанных для эфемерных контейнеров. Каждая «песочница» получает ровно тот уровень доступа, который ей необходим.
Поиск по кодовой базе
Контекстная инженерия всё чаще становится ключом к повышению производительности агентов. Люди разработали такие методы, как списки задач, выборочное сжатие контекста и рекурсивные языковые модели, и это лишь некоторые из них.
Однако в основе своей каждый агент по написанию кода должен просматривать базовую кодовую базу, чтобы найти файлы, наиболее релевантные запросу пользователя. В наших экспериментах этот этап составлял более 50% от общего объема используемых токенов в работе агентов.
Вы можете оснастить своего агента инструментом семантического поиска в качестве первого шага, чтобы направить последующий агентский поиск по наиболее релевантным узлам дерева файлов. Сочетание этого метода с обычными инструментами просмотра файлов и grep значительно сокращает количество посторонних файлов, просматриваемых агентом.
Быстрый и точный семантический поиск, который остается синхронизированным по мере редактирования кода агентом, требует серьезной инфраструктуры. Repos абстрагирует эту сложность благодаря встроенному двухэтапному поиску.
Автоматическая индексация с помощью моделей Relace
Предварительное вычисление эмбеддингов кодовой базы и выполнение векторного поиска по запросу пользователя происходит быстро, но с низкой точностью. С другой стороны, ранжирующие модели (rerankers) обеспечивают лучшую точность, но требуют больших вычислительных затрат, так как стоимость поиска масштабируется вместе с размером кодовой базы.
Запуск ранжирующей модели на всей кодовой базе означает необходимость жесткого ограничения количества параметров модели, что сказывается на производительности.
Лучший подход — это гибридная система, где векторный поиск используется для предоставления сокращенного набора файлов-кандидатов для ранжирующей модели.
Создание такой системы сопряжено с рядом проблем:
- Модели эмбеддингов и ранжирования имеют жесткое ограничение на размер входных файлов, что означает необходимость разбиения больших файлов на части.
Модели эмбеддингов и ранжирования имеют жесткое ограничение на размер входных файлов, что означает необходимость разбиения больших файлов на части.
- Эмбеддинги должны храниться в векторной базе данных и поддерживаться в актуальном состоянии в соответствии с исходным кодом.
Эмбеддинги должны храниться в векторной базе данных и поддерживаться в актуальном состоянии в соответствии с исходным кодом.
- Вычисление эмбеддингов — медленный процесс; это означает, что он должен выполняться асинхронно, что создает риск возникновения состояний гонки.
Вычисление эмбеддингов — медленный процесс; это означает, что он должен выполняться асинхронно, что создает риск возникновения состояний гонки.
Relace Repos берет на себя всю эту сложность и позволяет нам использовать в 10 раз более крупные модели эмбеддингов и ранжирования при тех же затратах и задержках.
Что дальше?
Repos закладывает основу для нашей способности совместно оптимизировать набор небольших специализированных моделей для написания кода с использованием инфраструктуры с низкими накладными расходами. До сих пор наши модели были сосредоточены на базовых, неагентских возможностях.
В ближайшие несколько месяцев мы выпустим наш набор агентов Relace, обученных для выполнения комплексных задач, таких как быстрое перемещение по кодовым базам, автоматическое разрешение конфликтов и интеллектуальный рефакторинг кода.
С помощью Repos эти субагенты будут легко интегрироваться в агентские рабочие процессы с помощью таких команд, как repo.search(), repo.merge() и repo.refactor(). Мы считаем, что модели должны быть оптимизированы совместно с лучшей инфраструктурой, чтобы вывести «vibe coding» на новый уровень.
Если вы хотите начать работу с Repos, узнайте больше в нашей документации или напишите на support@relace.ai.