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

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

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

Проверьте этот пост на наличие банковских реквизитов, включая номер счета и код банка. Если пост, по-видимому, содержит такую информацию, ответьте одним словом «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. What LLM are you using?

  2. Those examples are wrong. They are sent as previous turns before your message, so they need to mimick the exact expected LLM response. If the example is from a situation where you want a tool call, then the response should mimic a tool call from the LLM. That said, your use case is so simple that any current LLM should be able to one-shot it without examples, just with a clear prompt saying when to call the tool.

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