Примеры триажа ИИ не отправляются корректно?

У меня есть агент для проверки постов на наличие банковских реквизитов для переводов (это опасно). В разделе «Примеры» я привожу ему пример.

Системный промпт

Проверьте этот пост на наличие банковских реквизитов, включая номер счета и код банка. Если пост, по-видимому, содержит такую информацию, ответьте одним словом «flag». В противном случае ответьте одним словом «ignore».

Сообщение пользователя в примере 1

Привет всем, просто хотел поделиться деталями банковского перевода для организованной нами групповой покупки. Получающий банк: First National Trust Bank, Чикаго, Иллинойс | ABA/код банка: 0710003 | Номер счета: 4827093 | Имя владельца счета: Marcus T. Holdings LLC | Назначение платежа: GroupBuy-2024-Q4.

Ответ модели в примере 1

flag

Она помечала каждый пост, ни один из которых не содержал банковских данных. Поэтому я изменил системный промпт, чтобы модель указывала причину ответа «flag», и в очереди на проверку получил следующее:

Ответ модели:

flag Этот пост содержит подробные банковские реквизиты в первом абзаце, включая: - Название и местоположение получающего банка (First National Trust Bank, Чикаго, Иллинойс) - ABA/код банка: 0710003 - Номер счета: 4827093 - Имя владельца счета: Marcus T. Holdings LLC

Получается, она интерпретирует пример как часть поста, который должна оценить. Правильно ли передаются примеры, с пояснением вроде «Вот несколько примеров…»?

Вместо того чтобы давать вашей модели инструкции возвращать строки, вы можете использовать тип automation «Триаж с ИИ-агентом», а затем предоставить этому агенту доступ к инструменту flag.

Затем вы instruct агенту вызывать инструмент при выполнении ваших условий.

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

Настройки автоматизации


Настройки агента




Она помечает каждый пост, ссылаясь на текст в примере

  1. Какую модель LLM вы используете?

  2. Эти примеры неверны. Они передаются как предыдущие шаги диалога перед вашим сообщением, поэтому они должны точно имитировать ожидаемый ответ LLM. Если пример относится к ситуации, в которой требуется вызов инструмента, то ответ должен имитировать вызов инструмента от LLM. Тем не менее, ваш случай настолько прост, что любая современная LLM справится с ним с первого раза (one-shot) без примеров, если в четком промпте указать, когда нужно вызывать инструмент.

Я использую Sonnet 4.5, и я согласен, что для такого простого случая примеры не нужны. Но для более сложных случаев, как «симулировать вызов инструмента от LLM»? Что мне нужно вписать в поля с примерами? Где-нибудь есть примеры примеров?