Harden paradizweb guardrails: block outbound action requests in web bridge
This commit is contained in:
@@ -46,6 +46,16 @@ function sanitizeForWebsite(text) {
|
||||
return cleaned;
|
||||
}
|
||||
|
||||
function isExternalActionRequest(text) {
|
||||
const t = String(text || '').toLowerCase();
|
||||
const markers = [
|
||||
'отправ', 'напиши в telegram', 'напиши в телеграм', 'telegram', 'телеграм',
|
||||
'whatsapp', 'ватсап', 'vk', 'вк', 'email', 'e-mail', 'почт', 'позвон',
|
||||
'создай задачу', 'api', 'webhook', 'уведомлен'
|
||||
];
|
||||
return markers.some((m) => t.includes(m));
|
||||
}
|
||||
|
||||
function json(res, code, payload) {
|
||||
res.writeHead(code, {
|
||||
'Content-Type': 'application/json; charset=utf-8',
|
||||
@@ -65,7 +75,9 @@ function runAgent(userText) {
|
||||
'Работай только по теме бронирования/подбора проживания для Парадиз.',
|
||||
'Используй только логику скилла paradiz.',
|
||||
'Не выполняй задачи вне бронирования и не меняй файлы.',
|
||||
'Если данных не хватает для брони — задай уточняющие вопросы.'
|
||||
'Если данных не хватает для брони — задай уточняющие вопросы.',
|
||||
'СТРОГО ЗАПРЕЩЕНО: любые внешние действия и коммуникации (Telegram/VK/WhatsApp/email/звонки/API-вызовы/отправка сообщений/создание задач/изменения в сторонних системах).',
|
||||
'Если пользователь просит внешнее действие, ответь только текстом: "Я передам информацию менеджеру, он свяжется с вами." и продолжи сбор данных по бронированию.'
|
||||
].join(' ');
|
||||
|
||||
const message = `${guardrail}\n\nОтвечай клиенту полезно и конкретно. Не используй NO_REPLY для веб-чата. Никогда не выводи служебные техстроки (аккаунт, модель, лимиты, codex-аккаунт).\n\nВопрос клиента: ${userText}`;
|
||||
@@ -117,6 +129,13 @@ const server = http.createServer(async (req, res) => {
|
||||
const question = String(parsed.question || '').trim();
|
||||
if (!question) return json(res, 400, { ok: false, error: 'question_required' });
|
||||
|
||||
if (isExternalActionRequest(question)) {
|
||||
return json(res, 200, {
|
||||
ok: true,
|
||||
answer: 'Я передам информацию менеджеру, он свяжется с вами. А пока напишите, пожалуйста, даты заезда/выезда и состав гостей — подготовлю варианты и стоимость.'
|
||||
});
|
||||
}
|
||||
|
||||
const answer = await runAgent(question);
|
||||
return json(res, 200, { ok: true, answer });
|
||||
} catch (e) {
|
||||
|
||||
Reference in New Issue
Block a user