Wiki / Core Features / Graph Assistant

Graph Assistant

Обновлено Maxime_48 · 3 часа назад · Просмотры: 99

Языки: English Français Deutsch Español Português (Brasil) Italiano Nederlands Polski Türkçe Русский 日本語 한국어 中文

Строить граф наград вручную - значит знать, какая карточка что читает, какое поле обязательно и какое сочетание молча ничего не делает. Graph Assistant делает эту часть вместе с вами: вы описываете, чего хотите, он предлагает граф, а вы решаете, вносить ли его.

✨ Что это такое

Панель чата в редакторе графов: и для графа наград Leveling, и для пользовательских команд в режиме графа. Откройте её кнопкой ✨ в правом верхнем углу холста.

Она принадлежит вашей команде, а не лично вам. Все в команде видят один и тот же разговор, так что коллега может продолжить с того места, где остановились вы, а вы видите, о чём он уже спрашивал, и не задаёте это заново.

✏️ Он редактирует ваш граф, но никогда не заменяет его

Ассистент отправляет только те изменения, которые хочет внести: добавить эту карточку, изменить то поле, соединить эти две, удалить ту. Всё, что он не назвал, остаётся ровно таким, как было.

Это важнее, чем кажется. Первая версия отвечала полным заменяющим графом, и на длинном графе модель перестраивала его по памяти и тихо теряла ветки, оставляя меньший граф, который по-прежнему выглядел совершенно корректным.

Одна честная оговорка: если модель игнорирует инструкцию и всё равно отвечает целым графом, ответ всё равно принимается, потому что отказ отвечать вообще был бы хуже. Такой ответ теперь помечается как таковой - в переписке и ещё раз в окне проверки, прямо над кнопкой «Применить», - так что вы знаете, когда перед вами перестройка, а не правка. Всё, что исчезнет, перечислено в списке удалённого, чёрным по белому. С небольшими моделями этот список стоит читать, а не пробегать глазами.

Бонусом идут два побочных эффекта: идентификаторы карточек назначает панель, а не модель, поэтому дубликатов быть не может, а удаление карточки уносит с собой её связи, так что ни одна связь не остаётся указывать в пустоту.

🔒 Он предлагает. Применяете вы.

Ничто из того, что он предлагает, никогда не применяется само. Предложение появляется в переписке с кнопками Посмотреть изменения и Отклонить, и пока вы не примените его из окна проверки, ваш граф не тронут.

👀 Окно проверки

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

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

Сводка вычисляется относительно графа, который у вас на экране в этот момент, а не того, что существовал, когда пришёл ответ, так что если вы тем временем что-то изменили, то, что вы читаете, - это то, что действительно произойдёт. Предложение, которое ничего не изменит, говорит об этом, а кнопка Применить остаётся отключённой.

Это не формальность. Граф наград - живая автоматизация на вашем сервере: он выдаёт роли, отправляет личные сообщения и начисляет XP настоящим участникам. Решение запустить её принадлежит человеку.

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

🧪 Предложение проверяется до того, как вам его покажут

Каждый предложенный граф проверяется по реальному списку карточек, прежде чем появится кнопка «Применить». Если что-то не так, вместо неё перечисляются проблемы:

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

Теперь он пытается исправить это сам. Когда предложение отклоняется, отказ и точные операции, которые его вызвали, возвращаются ассистенту, и у него есть ещё до двух попыток, прежде чем ответ будет передан вам. Вы видите, как каждая попытка появляется в переписке по ходу дела, так что исправление - это то, за чем вы наблюдаете, а не то, что приходится просить.

Если после этого предложение всё равно отклонено, проблемы перечисляются с кнопкой Спросить снова. Три попытки - это потолок намеренно: модель, которая дважды не может удовлетворить проверку, застряла на том, что иначе сформулированный вопрос решит быстрее, чем четвёртая попытка.

Именно поэтому неудачная попытка остаётся видимой в переписке, а не убирается. Это то, что ассистент читает, чтобы исправиться при следующей попытке.

👀 Наблюдаем, как он думает

Каждый ответ несёт рассуждение ассистента, свёрнутое под Показать рассуждение. Его стоит открыть, когда предложение вас удивляет: обычно оно объясняет, какое условие, по его мнению, вам нужно, и это быстрее, чем читать граф карточку за карточкой.

Вопросы помечаются тем, кто их задал, потому что переписка общая.

⏳ Один запрос за раз

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

💬 Несколько разговоров

Графы наград и пользовательские команды больше не делят одну переписку. Начинайте новый разговор всякий раз, когда меняете тему: у каждого своя история, и только эта история видна ассистенту, так что не связанное с делом прежнее обсуждение не может его запутать.

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

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

Если запрос не удался, переписка сообщает об этом, и ассистент сразу освобождается. Когда эндпоинт отказывается принять вызов (обычная причина - незнакомое ему название модели), в переписке появляется его собственное объяснение, чтобы вы могли прочитать, что нужно изменить.

🌍 Что он может видеть и что вы ему позволяете

Кнопка ⚙ в окне чата открывает «Что ассистент может читать»: два переключателя, каждый - источник контекста, каждый - только ваш. Они следуют за вами с одного сервера и разговора на другой и ничего не меняют для ваших коллег: каждый в команде решает за себя.

Другие серверы вашей команды

Включено по умолчанию. Он может смотреть на каждый сервер, которым владеет ваша команда: какие функции включены, как они настроены и их графы. Именно это делает вопрос «настрой это так, как на моём другом сервере» тем, на что он действительно может ответить.

Отключите, и ему перестанут о них сообщать вообще. Список не строится, а потом скрывается: он не строится.

То, что бот запомнил здесь

Выключено по умолчанию. Если включена Память ИИ, бот записывает то, что узнаёт о вашем сервере из разговоров в Discord. Если это разрешить, эти заметки передаются ассистенту вместе с вашим вопросом, чтобы он мог их учесть.

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

Когда оно включено, то, что он получает, намеренно ограничено:

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

Два ограничения, которые нельзя отключить

  • Он никогда не видит ваши учётные данные. Ключи API, токены и секреты маскируются, прежде чем ему что-либо сообщат, точно так же, как и везде в панели.
  • Он только пишет граф, и только на сервере, который у вас сейчас открыт. Он не может менять настройки функций и не может трогать другой сервер.

⚙️ Какую модель он использует

По умолчанию он использует модель, настроенную платформой. Команда может вместо неё подключить свою: свой ключ API, свою модель или свой эндпоинт. Подойдёт любой эндпоинт, совместимый с OpenAI, и в этом случае ключ API не нужен.

Эндпоинт должен быть доступен по HTTPS по публичному адресу. Модель, запущенная на вашем собственном ноутбуке за роутером, таковой не является: панель - это сервер где-то в другом месте, а разрешение вызывать приватные адреса по запросу - хорошо известный способ превратить продукт в сканер собственной сети. Самостоятельный хостинг работает, когда эндпоинт опубликован; машина на вашем столе - нет.

Вы задаёте её на странице настроек команды, в разделе Assistant model. Изменить её может только владелец команды, потому что это учётные данные, а не предпочтение. Ключ сохраняется и больше никогда не показывается: оставьте поле пустым при сохранении, и сохранённый ключ останется.

List models рядом с полем модели спрашивает эндпоинт, что он реально предоставляет, и предлагает ответ в виде подсказок: используются URL и ключ, находящиеся сейчас в форме, так что вы можете проверить эндпоинт до сохранения. Поле остаётся свободным текстом: публикация списка моделей необязательна, и ряд самостоятельно размещённых серверов её не делает, поэтому, если ничего не приходит, показывается причина, а название вы вводите сами.

💡 Как получить хороший ответ

Говорите, что должно произойти и с кем, а не какие карточки использовать: решать это - его работа:

  • «Выдай роль Veteran на 25 уровне, но только бустерам».
  • «Когда кто-то решает Wordle за три попытки или меньше, начисли 200 XP и поздравь его в #general».
  • «То же, что граф моего другого сервера, но с объявлением в #levels».

Затем прочитайте рассуждение, проверьте выбранные им карточки и примените.

Просите менять что-то одно за раз. Короткий конкретный запрос даёт короткий список изменений, который гораздо проще проверить в окне проверки, чем десяток сразу.