ガードレール

TsgcAIGuardrails は、アプリケーションと言語モデルの間に位置します。個人データはリクエストがアプリケーションを出る前にプレースホルダーに置き換えられ、回答では元に戻されます。ツールは名前で許可、拒否、承認要求が設定され、構造化された回答は JSON スキーマで検証されます。

TsgcAIGuardrails

AI 機能を本番運用する前に必要なルールを 1 つのコンポーネントにまとめました。TsgcAIChat.Guardrails に割り当てると、チャットのすべてのリクエストと、そのチャット上のエージェントのすべての実行が、どのプロバイダーが応答しても同じルールに従います。

コンポーネントクラス

TsgcAIGuardrails

用途

PII マスキング、ツールルール、回答の検証

プラットフォーム

Windows、macOS、Linux、iOS、Android

エディション。TsgcAIGuardrails は sgcAI、sgcWebSockets Enterprise、All-Access に含まれ、TsgcAIChat と同じエディションです。2026.11.0 の新機能です。sgcAI は単体で完結しており、コンポーネントの土台となる sgcWebSockets Core ランタイムを含みます。Delphi 7 から Delphi 13 と C++ Builder で利用できます。

個人データと危険なツールを管理する

マスキングを有効にし、許可するツールと拒否するツールを列挙し、スキーマを設定して、ガードレールをチャットに割り当てます。

uses
  sgcAI, sgcAI_Chat, sgcAI_Guardrails;

procedure TForm1.ProtectChat;
var
  vText, vError: string;
begin
  // personal data never leaves the application
  sgcAIGuardrails1.PII.Enabled := True;
  sgcAIGuardrails1.PII.CustomPatterns.Add('EmployeeId=EMP-####');
  // read and search tools are allowed, deleting never is
  sgcAIGuardrails1.AllowedTools.Add('read_*');
  sgcAIGuardrails1.AllowedTools.Add('search_*');
  sgcAIGuardrails1.DeniedTools.Add('*delete*');
  sgcAIGuardrails1.ToolApproval := aigaNotReadOnly;
  // structured answers must match the schema
  sgcAIGuardrails1.Schema.Enabled := True;
  sgcAIGuardrails1.Schema.JSONSchema := '{"type":"object","properties":' +
    '{"price":{"type":"number","minimum":0}},"required":["price"]}';

  sgcAIChat1.Guardrails := sgcAIGuardrails1;
  sgcAIAgent1.Chat := sgcAIChat1; // the agent follows the same tool rules

  vText := sgcAIGuardrails1.Redact('Mail bob@example.com, call +34 600 111 222');
  Memo1.Lines.Add(vText); // Mail [EMAIL_1], call [PHONE_1]
  Memo1.Lines.Add(sgcAIGuardrails1.Restore(vText)); // the original text
  if not sgcAIGuardrails1.ValidateJSON('{"price":"cheap"}',
    sgcAIGuardrails1.Schema.JSONSchema, vError) then
    Memo1.Lines.Add(vError); // $.price: expected number
end;

主なプロパティとメソッド

最もよく使うメンバーです。

PII マスキング

PII.Enabled を有効にすると、メールアドレス、電話番号、カード番号(Luhn 検査)、IBAN(mod 97 検査)、IPv4 および IPv6 アドレスが、リクエストの送信前に [EMAIL_1] のようなプレースホルダーに置き換えられ、PII.RestoreInAnswers が有効な間は回答で元に戻されます。PII.Kinds で対象の種類を選択します。

カスタムパターン

PII.CustomPatterns は、独自の識別子を Name=Pattern の形式で追加します。# は数字、@ は英字、? は任意の 1 文字、* は単語の残りを表します。たとえば EmployeeId=EMP-#### は [EMPLOYEEID_1] になります。

ツールルール

AllowedTools と DeniedTools は、* ワイルドカードを含むツール名を受け取り、大文字小文字を区別せずに比較します。拒否された名前は常に優先されます。拒否されたツールはモデルに提示されず、モデルがそれでも呼び出した場合は再度拒否されます。OnToolBlocked は、すべての拒否をその理由とともに通知します。

承認

ToolApproval は、実行前に TsgcAIAgent.OnToolApproval で承認を求めるツールを決めます。値は aigaNone、aigaNotReadOnly(既定値)、aigaAll のいずれかです。

スキーマ検証

Schema.Enabled を有効にすると、構造化された回答が Schema.JSONSchema に対して検証されます。検証項目は type、required、properties、additionalProperties、enum、const、minimum、maximum、長さ、項目数です。違反があると $.price: expected number のようなパスとともに OnSchemaViolation が発生し、チャットは回答を保存せずにエラーを報告します。

メソッド

Redact、Restore、ValidateJSON、IsToolAllowed は、チャットなしで単独でも使えます。ClearRedactions は、プレースホルダーの対応表を消去します。

仕様と参考資料

このコンポーネントが利用するサービスとプロトコルの一次情報です。

さらに詳しく

オンラインヘルプsgcAI コンポーネントの完全な API リファレンスと利用ガイドです。
sgcAI の全コンポーネントすべての sgcAI コンポーネントの機能一覧を確認できます。
無料体験版をダウンロード自分の API キーで試せます。
価格Single、Team、Site の各ライセンス。完全なソースコード付きです。
最もお得な選択: All-AccesseSeGeCe の全製品にプレミアムサポートが付いて、年間 €1,059 からご利用いただけます。
All-Access の価格を見る

はじめてみませんか

無料体験版をダウンロードして、言語モデルがユーザーに届く前にルールを設けましょう。