AI Agent

O TsgcAIAgent deixa o seu aplicativo Delphi 7 a 13 pronto para agentes. Entregue a ele um TsgcAIChat e as suas ferramentas, chame Run, e ele envia o prompt com as ferramentas, executa cada chamada de ferramenta que o modelo pede, devolve os resultados e retorna a resposta final.

TsgcAIAgent

O loop de ferramentas de um modelo de IA, pronto. Ferramentas locais, métodos dos seus próprios objetos e as ferramentas dos seus servidores MCP são oferecidos ao modelo, cada chamada é verificada, aprovada quando necessário e executada, e o loop termina na resposta, em um limite de passos, no limite de tokens, em um cancelamento ou em um erro.

Classe do componente

TsgcAIAgent

Finalidade

Agente com tool calling para todos os provedores de LLM

Família

Chat e agentes

Plataformas

Windows, macOS, Linux, iOS e Android

Edições. O TsgcAIAgent vem no sgcAI, no sgcWebSockets Enterprise e no All-Access, as mesmas edições do TsgcAIChat. Novidade da versão 2026.11.0. O sgcAI é autossuficiente: inclui o runtime sgcWebSockets Core sobre o qual o componente foi construído. Disponível para Delphi 7 a Delphi 13 e C++ Builder.

Deixe o modelo usar as suas ferramentas

Atribua o chat, adicione uma ferramenta com seus parâmetros e o manipulador, chame Run. Ferramentas que alteram dados pedem aprovação antes.

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;

Principais propriedades & métodos

Os membros que você usa com mais frequência.

Run e Cancel

Run(aPrompt) envia o prompt com as ferramentas, executa as chamadas de cada passo e retorna a resposta final. Cancel interrompe uma execução antes da próxima requisição ao modelo ou da próxima ferramenta. Running, StepCount e StopReason informam como terminou: aasrCompleted, aasrMaxSteps, aasrCancelled, aasrError ou aasrMaxTokens. aasrMaxTokens significa que uma resposta foi cortada pelo limite de tokens, e as chamadas de ferramenta de uma resposta cortada não são executadas porque seus argumentos podem estar incompletos.

Ferramentas

Tools.Add(Name, Description) retorna uma ferramenta. Descreva seus argumentos com AddParam (string, integer, number, boolean, array ou object) ou com um JSON Schema bruto em InputSchema, e responda em OnExecute. Tools.AddMethod transforma um método público de um objeto em ferramenta no Delphi 2010 e posteriores. Uma ferramenta sem manipulador chega a OnToolCall.

Ferramentas MCP

Adicione clientes TsgcWSAPIClient_MCP a MCPClients. Com Options.ImportMCPTools o agente inicializa cada cliente, lista suas ferramentas página por página e as chama por meio de CallTool. Uma ferramenta bloqueada pela fixação de ferramentas MCP (tool pinning) nunca é oferecida, e uma ferramenta local com o mesmo nome tem prioridade.

Aprovação

Uma ferramenta marcada como ReadOnly executa na hora. Qualquer outra ferramenta pergunta antes a OnToolApproval. Uma ferramenta negada ou desconhecida volta ao modelo como texto de erro, então o histórico da conversa permanece sempre válido. Atribua um TsgcAIGuardrails ao chat para permitir, negar ou exigir aprovação pelo nome da ferramenta.

Opções

Options.MaxSteps (10 por padrão) limita as requisições ao modelo de uma execução. As ferramentas da última requisição permitida ainda executam e seus resultados são guardados, então um Run posterior continua com resultados reais. Options.ImportMCPTools liga ou desliga a importação MCP.

Eventos

OnStep reporta cada passo: texto do modelo, chamada de ferramenta, resultado da ferramenta, ferramenta negada e resposta final. OnUsage reporta os tokens de cada requisição ao modelo da execução. Atribua um TsgcAIUsageMeter ao chat para calcular o custo deles.

Todos os provedores

O agente funciona com todos os provedores do TsgcAIChat: OpenAI, Anthropic, Gemini, DeepSeek, Ollama, Grok e Mistral, cada um no seu próprio formato de tool calling. Com fallbacks no chat, uma execução continua no próximo provedor quando um falha.

Especificações & referências

Fontes oficiais dos serviços e protocolos que este componente usa.

Continue explorando

Ajuda onlineReferência completa da API e guia de uso dos componentes sgcAI.
Todos os componentes sgcAIExplore a matriz de recursos de todos os componentes sgcAI.
Baixar avaliação gratuitaExperimente com suas próprias chaves de API.
PreçosLicenças Single, Team e Site, código-fonte completo.
Melhor custo-benefício: All-AccessTodos os produtos da eSeGeCe, com Suporte Premium incluído, a partir de €1,059/ano.
Ver preços do All-Access

Pronto para começar?

Baixe a avaliação gratuita e deixe um modelo de linguagem chamar as funções do seu aplicativo Delphi.