Как устроен Cusp
Одна модель за всеми функциями — определения превращаются в запуски, запуски выполняются в определённом месте и начинаются по триггеру, а всё, что требует вашего участия, попадает во Входящие.
Сессии, субагенты, гонки, ревью, участники команды и запланированные задачи выглядят как разные функции. В Cusp это одно и то же, только под разными углами. Когда вы понимаете эту модель, любой экран приложения читается одинаково, а то, что вы узнали в одном месте, применимо и в остальных.
Строительные блоки
| Блок | Что это | Примеры |
|---|---|---|
| Определение | Многократно используемое описание того, кто и что делает: промпт, инструменты, навыки, модель, разрешения | Файл агента .md, навык, роль в команде, скрипт процесса, уровень ревью |
| Запуск | Одно выполнение определения. Каждый запуск — это сессия: журнал событий со статусом, стоимостью и местом | Ваша основная сессия, субагент, дорожка гонки, ревью, смена участника команды |
| Место | Где выполняется запуск и к чему у него есть доступ | Ваша папка, изолированный worktree (отдельная рабочая копия), облачная песочница (скоро) |
| Триггер | Почему запуск начался | Вы отправили сообщение, его запустил родительский агент, сработало расписание, кто-то упомянул @cusp в GitHub |
| Участник | Постоянный исполнитель, которому со временем принадлежат запуски, с памятью и бюджетом | Участник команды, вы |
| Канал | Как запуски и люди общаются друг с другом | Сообщения между агентами, общая комната команды, комментарии к PR |
| Артефакт | Что остаётся после запуска | Дифф, ветка или PR, замечания ревью, план, чек расходов |
Большинство функций — это сочетание этих блоков:
- Субагент — дочерний запуск, который начинает родитель, в той же папке (только чтение) или в собственном worktree (когда он что-то пишет).
- Гонка — несколько запусков одного запроса на разных моделях, каждый в своём worktree. См. Гонка.
- Ревью — запуск или небольшая группа запусков, которые читают дифф и сообщают о замечаниях. См. Ревью.
- Участник команды — участник, чьи смены — это запуски, которые начинаются по расписанию, по событиям и по сообщениям.
- Запланированная задача — триггер, привязанный к определению.
Раз всё это запуски, ведут они себя одинаково: любой можно открыть, прочитать его переписку, посмотреть, сколько он стоил, продолжить его или ответвить.
Единый барьер для побочных эффектов
Любой запуск любого вида, прежде чем изменить файл, выполнить команду или обратиться к сети, проходит через один и тот же движок разрешений. Политики подтверждений команды, флаги CLI, колбэк canUseTool в Agent SDK и ваши собственные правила — всё это входные данные одного барьера. Обходного пути нет, поэтому написанное вами правило применяется к субагенту, дорожке гонки и участнику команды так же, как к вам.
За барьером стоит песочница: она ограничивает, что может сделать уже запущенная команда оболочки.
Общие службы
Cusp построен вокруг четырёх общих служб. Каждая существует в одном экземпляре, и ею пользуется каждый запуск.
| Служба | Что делает | Сейчас |
|---|---|---|
| Барьер | Решает, может ли произойти побочный эффект | Готово: движок разрешений и песочница |
| Журнал расходов | Записывает использование и стоимость каждого запуска и хранит бюджеты | Частично: чеки за каждый ход и страница использования работают; бюджеты предупреждают, но пока не могут приостановить сессию. См. Бюджеты и чеки |
| Супервизор | Планирует запуски, распределяет лимиты запросов провайдеров между всеми запусками и отступает при ошибках | Превью: создан и протестирован как библиотека, но пока не работает в демоне |
| Общая доска (blackboard) | Общее состояние запусков: доска задач, захват файлов, замечания | Превью: создана и протестирована как библиотека, но пока не работает в демоне |
Супервизор и общая доска находятся в предварительной версии. Пока они не подключены к демону, сессии планируются независимо, лимиты запросов провайдеров обрабатываются в каждой сессии отдельно с повторными попытками, а параллельные записи разводятся по разным worktree, а не через захват файлов. Что работает уже сейчас, описано в разделе Параллельные агенты.
Где эта модель видна вам
Над всеми запусками есть два представления:
- Входящие собирают все места, где запуск ждёт вас: запрос разрешения, вопрос, план на одобрение, упавшую проверку, PR, готовый к слиянию. См. Входящие.
- Центр управления — актуальная картина того, что выполняется, что ждёт и с чем работает каждый запуск, с элементами управления, чтобы скорректировать, приостановить или остановить. Сейчас эта картина распределена между боковой панелью сессий, доской и офисом команды.
Единое представление центра управления для всего дерева запусков, с паузой и пересмотром бюджета для любой его ветки, скоро появится.
Как должна идти параллельная работа
Правила Cusp для одновременной работы многих агентов:
- Распараллеливание дёшево и безопасно. Помощники только для чтения работают в вашей папке. Всё, что пишет параллельно, получает собственный worktree.
- Координация до столкновения. Пишущие запуски сообщают, какие файлы правят, поэтому пересечения всплывают как сообщение, а не как конфликт слияния.
- Готовая работа попадает в код через очередь, которая делает rebase, запускает ваши проверки и выполняет слияние по одному изменению за раз.
- Результаты остаются компактными. Дочерние запуски возвращают краткую сводку и ссылки; родитель читает подробности, только когда они ему нужны.
- Любой запуск можно корректировать на ходу, пока он работает.
- Сколько запусков выполняется одновременно, решает планировщик, а не модель.
Правила 1 и 5 работают уже сейчас, и субагенты уже возвращают результат, а не всю свою переписку. Правила 2, 3 и 6 зависят от общей доски, очереди слияния и супервизора, которые находятся в предварительной версии. В разделе Параллельные агенты это разобрано подробно.
Агенты тоже могут управлять Cusp
Всё, что вы можете сделать в Cusp, агент должен уметь сделать из чата — через те же операции и тот же барьер. Чтение состояния и действия в пределах собственного запуска — обычные инструменты. Всё, что создаёт постоянную работу, тратит деньги, публикует или действует от чужого имени, превращается в запрос на подтверждение во Входящих.
Инструменты управления из чата находятся в предварительной версии. Семейство инструментов команды (crew.status, crew.hire, crew.assign и другие) спроектировано и протестировано, но в сессиях чата пока недоступно. См. Команда.
Что дальше
- Сессии: запуск, на котором построена каждая функция.
- Разрешения: барьер.
- Работа с агентами: гонка, Входящие, бюджеты, ревью и параллельная работа.
Импорт вашей настройки
Перенесите инструкции, настройки, навыки, субагентов, команды, хуки и MCP-серверы из агентов, с которыми вы уже работаете.
Провайдеры и шлюзы
Все провайдеры, шлюзы и локальные среды выполнения, которые поддерживает Cusp, как он их определяет и как подстраивается под каждое семейство моделей.