AI エージェント

TsgcAIAgent は、Delphi 7 から 13 のアプリケーションをエージェント対応にします。TsgcAIChat とツールを渡して Run を呼び出すと、ツールを添えてプロンプトを送信し、モデルが要求するツール呼び出しをすべて実行して結果を返送し、最終的な回答を返します。

TsgcAIAgent

AI モデルのツールループを代わりに実行します。ローカルツール、自分のオブジェクトのメソッド、MCP サーバーのツールがモデルに提示され、すべての呼び出しが検査され、必要に応じて承認されたうえで実行されます。ループは回答、ステップ上限、トークン上限、キャンセル、エラーのいずれかで終了します。

コンポーネントクラス

TsgcAIAgent

用途

あらゆる LLM プロバイダー向けのツール呼び出しエージェント

プラットフォーム

Windows、macOS、Linux、iOS、Android

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

モデルに自分のツールを使わせる

チャットを割り当て、パラメータとハンドラーを持つツールを追加して Run を呼び出します。データを変更するツールは、先に承認を求めます。

uses
  sgcAI, sgcAI_Chat, sgcAI_Agent;

procedure TForm1.AskAgent;
var
  oTool: TsgcAIAgentTool;
  vAnswer: string;
begin
  sgcAIChat1.Provider := aicpAnthropic;
  sgcAIChat1.ChatOptions.ApiKey := 'sk-ant-...';
  sgcAIChat1.ChatOptions.Model := 'claude-opus-5-5';

  sgcAIAgent1.Chat := sgcAIChat1;
  // optional: the tools of an MCP server are offered too
  sgcAIAgent1.MCPClients.Add(sgcWSAPIClient_MCP1);
  oTool := sgcAIAgent1.Tools.Add('get_weather', 'Current weather of a city');
  oTool.AddParam('city', aatpString, 'City name');
  oTool.ReadOnly := True;
  oTool.OnExecute := DoGetWeather;
  sgcAIAgent1.Options.MaxSteps := 8;
  sgcAIAgent1.OnToolApproval := DoToolApproval;

  vAnswer := sgcAIAgent1.Run('Do I need an umbrella in Paris today?');
  Memo1.Lines.Add(vAnswer);
end;

procedure TForm1.DoGetWeather(Sender: TObject; const aArguments: string;
  var aResult: string);
begin
  // aArguments is a JSON object, for example {"city":"Paris"}
  aResult := '{"city":"Paris","celsius":18,"sky":"rain"}';
end;

procedure TForm1.DoToolApproval(Sender: TObject; const aToolName,
  aArguments: string; var aApproved: Boolean);
begin
  // tools that are not ReadOnly ask before they run
  aApproved := MessageDlg('Run ' + aToolName + ' ' + aArguments + '?',
    mtConfirmation, [mbYes, mbNo], 0) = mrYes;
end;

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

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

Run と Cancel

Run(aPrompt) はツールを添えてプロンプトを送信し、各ステップの呼び出しを実行して最終的な回答を返します。Cancel は、次のモデルリクエストまたはツールの前に実行を停止します。Running、StepCount、StopReason で終了の状況がわかります。StopReason は aasrCompleted、aasrMaxSteps、aasrCancelled、aasrError、aasrMaxTokens のいずれかです。aasrMaxTokens は、回答がトークン上限で打ち切られたことを意味します。打ち切られた回答のツール呼び出しは、引数が不完全な可能性があるため実行されません。

ツール

Tools.Add(Name, Description) はツールを返します。引数は AddParam(string、integer、number、boolean、array、object)または InputSchema の生の JSON Schema で記述し、OnExecute で応答します。Tools.AddMethod は、Delphi 2010 以降でオブジェクトの public メソッドをツールに変換します。ハンドラーのないツールは OnToolCall に届きます。

MCP ツール

TsgcWSAPIClient_MCP クライアントを MCPClients に追加します。Options.ImportMCPTools を有効にすると、エージェントは各クライアントを初期化し、ツールをページ単位で一覧取得して、CallTool 経由で呼び出します。MCP のツールピンニングでブロックされたツールは提示されず、同名のローカルツールがある場合はそちらが優先されます。

承認

ReadOnly を設定したツールはすぐに実行されます。それ以外のツールは、先に OnToolApproval で承認を求めます。拒否されたツールや未知のツールはエラーテキストとしてモデルに返されるため、会話履歴は常に整合性を保ちます。チャットに TsgcAIGuardrails を割り当てると、ツール名で許可、拒否、承認要求を設定できます。

オプション

Options.MaxSteps(既定値は 10)は、1 回の実行でのモデルリクエスト数を制限します。最後に許可されたリクエストのツールは引き続き実行されてその結果が保存されるため、後続の Run は実際の結果から続行できます。Options.ImportMCPTools は MCP のインポートを有効または無効にします。

イベント

OnStep は、モデルのテキスト、ツール呼び出し、ツールの結果、拒否されたツール、最終的な回答など、すべてのステップを通知します。OnUsage は、実行中のすべてのモデルリクエストのトークン数を通知します。チャットに TsgcAIUsageMeter を割り当てると、その料金を計算できます。

すべてのプロバイダー

エージェントは TsgcAIChat のすべてのプロバイダー(OpenAI、Anthropic、Gemini、DeepSeek、Ollama、Grok、Mistral)で動作し、それぞれのツール呼び出し形式を使います。チャットのフォールバックを設定すると、プロバイダーが失敗したときに次のプロバイダーで実行を続けます。

仕様と参考資料

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

さらに詳しく

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

はじめてみませんか

無料体験版をダウンロードして、言語モデルから Delphi アプリケーションの関数を呼び出せるようにしましょう。