Использование инструментов в качестве псевдо-агентов для специализированных директив

Надеюсь, на этот вопрос уже не давали развернутого ответа в другом месте — я искал, но не нашел прямой дискуссии об этом подходе.

Проблема

В настоящее время, похоже, нет способа вызывать других агентов (персон) в рамках разговора с Discourse AI. Под «агентом» я подразумеваю вызов другой персоны, обладающей специализированными возможностями или инструкциями, которых нет в основном системном промпте.

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

Рабочее решение: инструменты как инжекторы директив

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

  1. Держать основной системный промпт сфокусированным на основной идентичности и типичных поведенческих паттернах.
  2. Создать инструмент с общим параметром, например:
    - topic: string: Тема пограничного случая или решаемая проблема (обязательно)
    
  3. Встроить специализированные директивы непосредственно в JavaScript инструмента, возвращаемый при вызове.
  4. Добавить небольшой блок инструкций в основной промпт, определяющий, когда вызывать этот инструмент.

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

Пример сценария использования

Рассмотрим ИИ-ассистента общего назначения, который время от времени нуждается в переключении в специальный режим — например, для детального технического устранения неполадок или глубокого синтеза исследований. Вместо загрузки этих обширных протоколов при каждом разговоре (большинство из которых представляют собой рутинные вопросы), инструмент может внедрять специализированные директивы только тогда, когда контекст разговора этого требует. Основной промпт остается лаконичным и сфокусированным на обычных задачах, а специальный режим активируется только при срабатывании триггера.

Вопросы к сообществу

  1. Что вы думаете об этом паттерне? Использование инструментов не для внешних вызовов API или извлечения данных, а как контейнеров для специализированных наборов инструкций, активируемых контекстуально.

  2. Планируется ли внедрение или уже существуют методы для вызова других агентов/персон и добавления их в разговоры? Что-то вроде вызова специализированной персоны в середине разговора, которая привносит свой собственный системный промпт в контекст.

  3. Есть ли какие-то подводные камни, на которые мне стоит обратить внимание? В настоящее время я использую это только в контексте личных сообщений ИИ.

Интересно, исследовали ли кто-то еще этот подход или есть ли более элегантное решение, которое я упускаю.