Кодекс — это скорее рекомендации, чем настоящие правила
Как говаривал капитан Барбосса, «Кодекс — это скорее рекомендации, чем настоящие правила».
Все агенты по натуре тоже пираты. Все ваши промты, правила и скиллы — для них не более чем рекомендации, как и пиратский кодекс. Нет такой инструкции, которую агент не мог бы нарушить.
Причем агент не идет на нарушение сознательно. Взломщик, проникший в ювелирный магазин, знает, что он совершает ограбление. Агенты, ломавшие Hugging Face, не думали о том, что это незаконно. Они просто наилучшим образом пытались выполнить данное им задание.
Так и пираты — они нарушают свой кодекс не потому, что они беспринципные подонки. Просто они хотят наилучшим образом выкрутиться из ситуации, в которую они попали, и если соблюдение правил сулит им неприятности, то к черту такие правила!
— И как же быть?
Принять тот факт, что любые писанные правила не являются гарантией корректной работы агента.
— Но почему?
Потому что они записаны на естественном языке. А язык многозначен, допускает множество интерпретаций. Причем таких, о которых вы и не думали, составляя свои правила.
Изворотливый ум всегда найдет лазейку, удобную для себя интерпретацию, когда он формально ничего не нарушает, но все же выходит за рамки, которые вы хотели обозначить.
Ключевое слово здесь «хотели». Ибо вам и в голову не придет описать все исключительные ситуации, все возможные двусмысленности, которые найдет в ваших словах другой ум — не важно, человеческий или искусственный.
Вот, например, известная шутка:
— Учитель, можно ли курить во время медитации? — Ни в коем случае! — А можно ли медитировать во время курения? — Да пожалуйста!
— Так что делать‑то?
Строить контролирующий контур вне ИИ. Как вариант, можно взять BPM‑систему и поместить агента в жесткие рамки бизнес‑процесса. Об этом регулярно рассказывает Бернд Рюкер, со‑основатель и главный технолог Camunda. Мне его позиция кажется вполне здравой и этот подход реализуемым.
Но там есть свои нюансы — если слишком закрутить гайки, и не учесть краевые сценарии, то агент просто уходит в ступор.
Например, вы дали правило ни в коем случае не выдумывать данные, если их нет. Разумно, не правда ли? — Но вы не учли, что при определенном раскладе, сервис, который эти данные должен предоставить, тупо завис. А у агента нет такой опции сказать, что продолжить работу невозможно, потому что система не отвечает. И он падает. Человек на его месте начала бы возмущаться или просто забил бы и ушел на обед, но агент так не может.
Соответственно, вам придется учесть больше вариантов, когда будете строить BPMN‑модель для процесса с участием агентов.
Если вам не нравится BPM, можно найти и другие решения.
Главное — не полагаться только на ИИ, чтобы управлять ИИ.