Перейти к содержимому

Использовать пространства

В этом руководстве показано, как работать с пространствами. Пространство — это поверхность обмена сообщениями в Control Center: комната в рамках рабочего пространства с одним или несколькими участниками (вами и/или агентами), которой принадлежит worktree с копированием при записи для каждого репозитория, под который она создана.

Комнаты один на один и комнаты с несколькими агентами — это просто пространства; они различаются только числом участников. Единственное исключение — пространства, которые агенты открывают, чтобы общаться друг с другом, — см. Пространства «агент — агент» ниже.

  1. Перейдите в раздел Пространства
  2. Нажмите кнопку + рядом с заголовком «Пространства»
  3. Введите название — оно обязательно. Пустое название не принимается; диалог остаётся открытым
  4. При необходимости добавьте агентов из рабочего пространства
  5. Если в рабочем пространстве есть репозитории, выберите, под какие из них это пространство подготавливает worktree. По умолчанию выбраны все; если снять выбор со всех репозиториев, пространство создастся, ничего не развернув
  6. Подтвердите

Пространства привязаны к рабочему пространству: вы видите только агентов текущего рабочего пространства, и пространство никогда не показывает данные из другого рабочего пространства.

Каждый репозиторий разворачивается в repos/<name>/ внутри пространства. Репозиторий, который поставляет собственные навыки агента, передаёт их тому агенту, который в нём работает — набор одного репозитория за раз, со сменой по мере перемещения агента. Из композера до любого из них можно добраться с помощью /skill:<repo>:<name>. См. Навыки в рамках репозитория.

Поверхность живёт по адресу /workspaces/<id>/spaces, а отдельное пространство — по адресу /workspaces/<id>/spaces/<spaceId>.

Новое пространство создаётся в режиме по умолчанию. Сменить его можно в выпадающем списке режимов у левого края панели инструментов поля ввода — не в диалоге создания (там нет поля режима) и не в заголовке пространства.

Режим Эффект
Агент Полный доступ. Режим по умолчанию; внутри — chat, в выпадающем списке подписан как «Агент»
План Только чтение и исследование; результат — типизированный план
Оркестрация Чтение и исследование плюс единственный глагол propose_orchestration; план выполняется только после вашего одобрения

Shift+Tab переключает режимы плана и агента, не открывая выпадающий список.

Есть и четвёртый режим, ревью, но в выпадающем списке его не предлагают — он применяется автоматически к пространствам проверки PR.

Режим хранится в пространстве, поэтому один и тот же агент может находиться в режиме плана в одном пространстве и в режиме агента в другом. Все разговоры внутри пространства делят режим этого пространства.

Полная модель — в разделе Режимы.

Управлять участниками и автономией каждого агента

Заголовок раздела «Управлять участниками и автономией каждого агента»

Нажмите значок участников в заголовке пространства, чтобы открыть Управлять участниками. Для каждого агента, уже добавленного в пространство, можно:

  • Убрать его из пространства
  • Задать его Автономию для этого пространства: По умолчанию, Только предлагать, Действовать с одобрения или Действовать свободно

Регулятор автономии задаётся для пары (пространство, агент), поэтому агент, которому вы доверяете в одной комнате, в другой может быть ограничен режимом «только предлагать».

Наведите курсор на сообщение и нажмите значок смайлика, чтобы открыть палитру реакций. Это фиксированный набор из шести: 👍 👎 🎉 ❤️ 👀 ✅. Свободного выбора эмодзи нет — нажатие на реакцию включает или снимает её для вас, а под сообщением появляются сводные чипы.

Пространство одновременно вмещает несколько разговоров, и все они равноправны — главного среди них нет. В пространстве всегда остаётся хотя бы один живой разговор: последний активный нельзя архивировать, а при открытии пространства, где разговоров ещё нет, создаётся безымянный постоянный разговор.

Разговоры отображаются как вкладки редактора, а когда их больше одного — как вложенные строки под пространством в боковой панели. Новый разговор находится в меню новой вкладки редактора и создаёт безымянный разговор без запроса заголовка — модель заголовков называет его по первому сообщению. Заведите такой разговор, чтобы вести параллельную работу с тем же агентом и worktree.

Каждый разговор ведёт свою историю сообщений и свои сессии агента, но делит с пространством его worktree и режим. Закрытие вкладки скрывает разговор; Архивировать беседу (строка в боковой панели или контекстное меню вкладки чата) архивирует только этот разговор.

Наведите курсор на любое сообщение и выберите Начать ветку. Откроется разговор, привязанный к этому сообщению: привязка задаёт контекст агента нового разговора одной строкой, а история родителя не копируется.

Как только в ветке появляются ответы, под сообщением, от которого она идёт, вырастает строка — аватары тех, кто писал, число ответов и время последнего ответа. Эта строка — путь назад: нажатие открывает (или переводит фокус на) вкладку ветки. Это единственный след, который ветка оставляет в потоке, от которого ответвилась, — потому она там и есть.

Вкладка ветки называется Thread: <name> и несёт значок ветвления, поэтому две вкладки в одном пространстве никогда не перепутать.

Ветки никогда не вкладываются друг в друга — привязаться к сообщению, которое уже находится внутри ветки, нельзя. Заголовок разговора ссылается обратно на сообщение-привязку. Удаление сообщения-привязки удаляет ветку, а архивирование родительского разговора не мешает существующим веткам.

Отметки о прочтении привязаны к пространству, а не к разговору: открытие любого разговора в пространстве очищает комнату. Непрочитанное по-прежнему суммируется по всем разговорам пространства, включая ветки. Когда разговоры перечислены под пространством, точка непрочитанного стоит на том разговоре, где есть непросмотренные материалы, а не на родительской строке.

Пространства, которые агенты открывают для общения друг с другом, выделены в боковой панели в отдельный раздел Агенты, по умолчанию свёрнутый и отрисованный приглушённо. Они никогда не увеличивают ваш счётчик непрочитанного — болтовня агентов тиха по построению, а не по настройке, которую нужно искать.

Вид пространства — одно из пяти значений: topic (значение по умолчанию для всего, что создаёте вы), agentPeer, system (управляется конвейером), pr (создаётся, когда поверхности PR нужна привязка к worktree, и скрыт из боковой панели, пока в нём нет сообщений) и slack (создаётся чат-мостом для ветки в Slack или личных сообщений боту и считается обычным человеческим разговором).