Что такое пространство (рабочая область агента)?
Изолированный контейнер с разговорами, документами и памятью одного клиента — с изоляцией на уровне базы данных, так что материал одного клиента не может всплыть в разговоре с другим.
Пространство — это единица приватности. Оно заводится на каждого конечного клиента, и всё, что относится к этим отношениям, — о чём он спрашивал, что загружал, что агент помнит — лежит внутри.
Почему это не просто фильтр
Соблазнительный способ построить ИИ на много клиентов — держать всё в одной куче и добавлять к каждому запросу идентификатор клиента. Работает ровно до того запроса, который написали без фильтра. А дальше отказ происходит тихо и в худшую сторону: кто-то читает чужие документы.
Изоляции место слоем ниже, в базе данных, — чтобы запрос без области видимости возвращал пустоту, а не всё подряд.
Как это сделано здесь
Изоляция — это не WHERE customer_id = ?, о котором должен помнить каждый запрос. В agent4.io
разговоры, загруженные документы и память клиента привязаны к его пространству, а следит за этим
row-level security в самой базе данных: запрос, пришедший без области видимости, возвращает пустоту,
а не всё. Тела документов вдобавок зашифрованы ключом, принадлежащим этому клиенту.
Это та же граница, за которой стоит клиентская база знаний. Именно поэтому клиентов можно приглашать загружать паспорта, справки о доходах и истории отказов — и это не становится вашей новой проблемой.
Что это даёт бизнесу
Память по каждому клиенту, которую не страшно хранить. Агент может помнить, что этот клиент после шести предпочитает WhatsApp, что в его деле фигурирует супруга, что выписки он уже прислал, — именно потому, что эта память не может протечь в разговор с кем-то другим.
Ответ на вопрос о безопасности, который не стыдно дать. «Как вы разделяете файлы наших клиентов» спрашивает любой серьёзный покупатель, и «мы фильтруем по идентификатору клиента» — не тот ответ, с которым комфортно.
Место, куда положить чувствительное. Паспорта, истории отказов, финансовые документы — они приходят независимо от того, закладывались вы на них или нет.
Постраничный инструктаж для агента — фон, который он должен знать заранее, первая реплика и несколько подсказанных вопросов, — подбираемый автоматически по URL страницы, с которой посетитель открыл чат.
Работа, которую агент берёт на себя к конкретному будущему моменту — последующее касание или повторяющееся напоминание, — исполняемая точно в срок планировщиком, а не ожиданием, пока кто-нибудь заговорит первым.
Небольшая форма, которую агент составляет прямо по ходу разговора — варианты, число, дата, — показанная как то, по чему можно нажать, а не как абзац вопросов, на которые надо отвечать текстом.
Атака, при которой текст, предоставленный пользователем или скрытый внутри документа, веб-страницы или электронного письма, которые читает агент, воспринимается моделью как новая инструкция, а не как контент. Это заставляет агента отказаться от своих правил, изменить свою личность или раскрыть свой системный промпт. Эту проблему нельзя решить, написав более строгий промпт, поскольку атака поступает через тот же канал, что и легитимный ввод; защитные механизмы, которые работают, находятся до модели и после неё.