Перейти к документации
Документация

Матрица поддерживаемых Connections в Kavor

Connection — не просто линия на Canvas. Она объявляет, что два Nodes участвуют в одном графе, и определяет возможности, которые эта пара добавляет к работе.

Не все сочетания допустимы. У каждой поддерживаемой пары есть точный контракт: одни Connections делают контекст достижимым, другие разрешают операции через Kavor, а две передают канонические пути в Terminal с помощью переменных окружения.

Эта страница — публичный справочник по таким контрактам.

Как читать Connection

У Connection есть три разных обязанности:

  1. Существование: она соединяет Nodes в один достижимый компонент графа.
  2. Параметры: она хранит обязательную настройку, если она нужна этой паре.
  3. Guardrails: она отнимает возможности у поведения, которое обычно разрешено между двумя Nodes.

Connections — двусторонние отношения. Kavor хранит два endpoints в каноническом порядке, но этот порядок не означает поток, управление или приоритет. У сообщения по-прежнему есть отправитель и получатель, а у Trigger — цель. Эти направления относятся к выполняемой операции, а не к сохранённой Connection.

Поддерживаемые сочетания

Пара NodesЧто позволяет ConnectionПараметрыДоступный GuardrailОсновной пример
CodingAgent+SpecificationЧитать метаданные и канонический Markdown, работать с lifecycle и регистрировать долговечные outputs, когда это разрешено.Нетspecification_read_onlySpec Writer, Builder и Reviewer используют общий контракт.
CodingAgent+Sticky NoteЧитать и писать неформальную память в Markdown с контролем версий; при каждой записи выбирается append или replace.Нетsticky_note_read_onlyОткрытые решения, прогресс, наблюдения и видимые handoffs.
CodingAgent+TerminalЧитать output, выполнять команды, отслеживать или прерывать связанный запуск и взаимодействовать с foreground-процессом, когда это разрешено.Нетterminal_read_onlyДиагностика, тесты, логи или помощь в контролируемой SSH-сессии.
CodingAgent+FileСделать канонический источник в filesystem явным в графе для чтения, проверки или изменения, когда это разрешено.Нетfile_read_onlyОграничить область модулем, PDF, изображением, отчётом или конфигурацией.
CodingAgent+CodingAgentСформировать достижимый граф для асинхронных сообщений, ответов, независимой проверки и параллельной работы.НетНетBuilder запрашивает проверку у Reviewer.
Specification+TerminalЭкспортировать канонический абсолютный путь Specification в сессию Terminal.Обязательное имя переменной окруженияНетПроверить, изучить или сравнить Markdown в Specification.
File+TerminalЭкспортировать канонический абсолютный путь File в сессию Terminal.Обязательное имя переменной окруженияНетЗапустить script или использовать SQL-файл, не копируя его путь между окнами.
Trigger+CodingAgentДоставить в заданное время prompt в CodingAgent с активной сессией.НетНетРазбудить Maintainer для анализа сбоев, подготовки отчёта и запроса проверки.
Trigger+TerminalДоставить в заданное время команду в активную сессию Terminal.НетНетЗапустить тесты, проверку базы данных или script обслуживания.

Guardrails ограничивают, а не предоставляют доступ

Connection изначально предоставляет возможности, реализованные для этой пары. Guardrail хранит выбранное пользователем ограничение для такой базовой модели:

GuardrailConnectionЭффект
specification_read_onlyCodingAgent+SpecificationСохраняет чтение и запрещает через Kavor изменения lifecycle и outputs. Прямое редактирование Markdown становится явным контрактом «только для чтения».
sticky_note_read_onlyCodingAgent+Sticky NoteСохраняет чтение и блокирует append или replace содержимого.
terminal_read_onlyCodingAgent+TerminalСохраняет просмотр Terminal и блокирует операции, которые изменили бы сессию, процесс или его ввод.
file_read_onlyCodingAgent+FileОбъявляет, что agent не должен изменять канонический источник.

Guardrails принадлежат прямой Connection между CodingAgent и ресурсом. Альтернативный маршрут в графе не снимает ограничение, существующее для этой прямой пары.

Если Guardrail блокирует операцию через Kavor, она отклоняется до появления побочных эффектов. Files и содержимое Specifications также могут быть доступны через собственные filesystem-инструменты harness. В таких случаях Guardrail — видимый и контролируемый контракт, а не sandbox операционной системы.

Guardrail не создаёт Connection, не делает Node достижимым и не повышает разрешения. Если ресурс не должен участвовать в графе, не создавайте Connection.

Connections с переменными окружения

Сохранённые параметры есть только у двух пар:

  • File + Terminal;
  • Specification + Terminal.

В обоих случаях вы выбираете имя переменной окружения. Значение, предоставленное Terminal, — канонический абсолютный путь к источнику, а не содержимое файла.

Например, File, подключённый как CHECK_SQL, можно использовать в shell так:

sqlite3 app.db < "$CHECK_SQL"

Kavor применяет значение при запуске сессии Terminal. Если Connection или её параметр изменятся, пока shell открыт, интерфейс покажет, что для применения переменной требуется перезапуск сессии. TERM и COLORTERM — зарезервированные имена, которые нельзя использовать для этих параметров.

Особое ограничение Trigger

У Trigger может быть не более одной прямой цели: CodingAgent или Terminal. Он не соединяется напрямую со Specification, File или Sticky Note и не распределяет одно срабатывание между несколькими целями.

Остальная часть графа может расширить возможности цели, не расширяя её разрешения. Разбуженный Trigger CodingAgent может работать с уже достижимыми Nodes при тех же Guardrails и ограничениях сессии.

Для доставки Kavor должен быть запущен, а сессия цели — активна. Trigger не запускает оставленную вами выключенной сессию, не определяет цель работы и не превращает внешние эффекты в exactly-once операции. Каждый TriggerFiring хранит долговечный результат для последующей проверки.

Несуществующие сочетания

Kavor отклоняет любую пару, которой нет в матрице. В частности:

  • Trigger + Specification;
  • Trigger + File;
  • Trigger + Sticky Note;
  • Specification + File;
  • Specification + Sticky Note;
  • File + Sticky Note;
  • File + File;
  • Sticky Note + Terminal;
  • Sticky Note + Sticky Note;
  • Terminal + Terminal.

Node также нельзя соединить с самим собой. Перестановка двух одинаковых endpoints не создаёт другую Connection, поскольку у отношения нет сохранённого направления.

Близость на Canvas, упоминание в сообщении или участие в одном Workspace не заменяют Connection. Если сочетание отсутствует на этой странице, оно не предоставляет возможностей только потому, что визуально находится рядом с другим Node.

Выбирайте минимальную Connection, которая решает задачу

Прежде чем соединить два Nodes, спросите, какой конкретной возможности не хватает:

  • agent нужен долговечный замысел? Подключите Specification;
  • человеку и agent нужна общая рабочая память? Подключите Sticky Note;
  • agent должен выполнить или наблюдать процесс? Подключите Terminal;
  • нужно явно обозначить канонический источник? Подключите File;
  • другая точка зрения улучшит реализацию или проверку? Подключите ещё один CodingAgent;
  • время действительно должно запускать активность? Добавьте Trigger в последнюю очередь.

Хорошая Connection делает работу более явной. Если вы не можете назвать возможность, которую она добавляет, скорее всего, графу она не нужна.

Что дальше

Последняя проверка 7 авг. 2026 г.Проверено с Kavor 1.3.0Оставить отзыв о документации