AIトリアージの例が正しく送信されていない?

私は、投稿内の銀行振込情報を確認するエージェントを持っています(これは危険です)。Examples セクションに例を示しています。

システムプロンプト

この投稿を銀行振込情報(口座番号とルート番号を含む)について検査してください。投稿に振込情報が含まれていると思われる場合は、単一の単語「flag」で返信してください。そうでない場合は、単一の単語「ignore」で返信してください。

例 1 ユーザーメッセージ

皆さん、こんにちは。私たちが組織したグループ購入の送金詳細を共有したく思います。受取銀行:First National Trust Bank、シカゴ、IL | ABA/ルート番号:0710003 | 口座番号:4827093 | 口座名義:Marcus T. Holdings LLC | 参照:GroupBuy-2024-Q4。

例 1 モデルの応答

flag

すべての投稿がフラグ付けされていましたが、銀行情報は含まれていませんでした。そこで、システムプロンプトを変更して「flag」と返信した理由を説明させるようにしました。その結果、レビューキューで以下のような応答が返ってきました。

モデルからの応答:

flag この投稿の最初の段落には詳細な銀行振込情報が含まれています。具体的には以下の通りです:

  • 受取銀行名と所在地(First National Trust Bank、シカゴ、IL)
  • ABA/ルート番号:0710003
  • 口座番号:4827093
  • 口座名義:Marcus T. Holdings LLC

つまり、モデルは例を評価対象の投稿の一部として解釈しているようです。例は「いくつかの例を示します…」といった説明とともに正しく送信されているでしょうか?

モデルに文字列を返すよう指示する代わりに、AI エージェントによるトリアージの#automation タイプを使用し、このエージェントにflag ツールへのアクセス権を付与します。

その後、条件が満たされたときにエージェントがツールを呼び出すよう指示します。

その方がよりきれいな解決策ですね。私もそのように対応しましたが、問題は解決しませんでした。依然としてすべての投稿がフラグ付けされてしまいます。例が単なる例であるという認識が働いていないようです。

自動化設定


エージェント設定




すべての投稿がフラグ付けされ、例内のテキストが理由として挙げられています

  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からのツール呼び出しを模倣」すればよいのでしょうか?例ボックスには何を入力すべきでしょうか?どこかに例の例はありますか?