Loading
IA generativa de Agentforce y Einstein
Acción invocable de agente personalizado: Clases Apex de ejemplo

Acción invocable de agente personalizado: Clases Apex de ejemplo

Llame a una acción invocable de agente personalizado desde una clase Apex para completar una tarea automáticamente con su Agente de servicio Agentforce o agente Agentforce predeterminado. La clase Apex debe devolver la respuesta del agente.

Ediciones necesarias

Disponible en: Lightning Experience
Disponible en: Enterprise Edition, Performance Edition, Unlimited Edition y Developer Edition. Las licencias complementarias requeridas varían según el tipo de agente.
Importante
Importante A partir del 17 de junio de 2025, Agentforce (Predeterminado) no incluirá nuevas funciones o mejoras y no está disponible en nuevos entornos de Salesforce. Recomendamos migrar a Agentforce Employee agente para mejoras y asistencia continuas. Si tiene intención de realizar la transición a Agentforce Employee o realizar cambios de licencia relacionados, complete la migración de sus agentes Agentforce (Predeterminado) existentes con antelación para evitar posibles interrupciones en la disponibilidad de los agentes. Si no puede completar la migración con antelación, puede crear nuevos agentes después de la transición, lo que puede implicar algo de tiempo de inactividad. Consulte Migrar de Agentforce (Predeterminado) a Agentforce Employee Agent.
Permisos de usuario necesarios
Para crear una acción invocable de agente asociada con Agentforce (Predeterminado):

Gestionar agentes de IA Y los permisos requeridos para su tipo de agente

O BIEN

Personalizar aplicación

Para crear una acción invocable de agente asociada con Agente de servicio Agentforce:

Gestionar agentes de servicio Agentforce Y Gestionar agentes de IA

O BIEN

Personalizar aplicación

Las acciones invocables por agentes personalizadas solo admiten variables de contexto. Para crear una variable de contexto, cree un campo personalizado en el objeto Sesión de mensajería y luego agréguelo como una variable en Agentforce Builder. En estos ejemplos, caseId y leadId son los nombres de API de campos personalizados.

Esta clase Apex llama al agente Agentforce predeterminado utilizando la versión 1.1.0 de la acción invocable de agente personalizado. Devuelve un correo electrónico utilizando la clase de Apex CaseEmail y un Id. de caso.

public class AgentIAInvoker {
    public static void invokeJavaAction() {
      try {
        // Create an instance of the invocable action with type ‘generateAiAgentResponse’, API name ‘Acme_Agent’, and version 1.1.0
        Invocable.Action action = Invocable.Action.createCustomAction('generateAiAgentResponse', null, 'Acme_Agent', '1.1.0');
        
        action.setInvocationParameter('userMessage', 'Generate an email with a summary of the case');
        action.setInvocationParameter('caseId', '500VW0XXXXXXXXXXXX');
        action.setInvocationParameter('apexClassName', 'CaseEmail');
        
        // Execute the action
        List results = action.invoke();
        
        // Handle the response
        System.debug('Result is: ' + results[0].getOutputParameters().get('structuredAgentResponse'));
      }
    }
}

Esta clase Apex llama a un Agente de servicio Agentforce utilizando la versión 1.0.0 de la acción invocable de agente personalizado. Devuelve un resumen basado en el Id. de candidato.

public class AgentIAInvoker {
    public static void invokeJavaAction() {
      try {
         
          // Create an instance of the invocable action with type ‘generateAiAgentResponse’ and name ‘Agentforce_Service_Agent_new’
          Invocable.Action action = Invocable.Action.createCustomAction('generateAiAgentResponse', null, 'Agentforce_Service_Agent_new', '1.0.0');
          
          action.setInvocationParameter('userMessage', 'Summarize my contact');
          action.setInvocationParameter('leadId', '500VW0XXXXXXXXXXXX');
          
          // Execute the action
          List<Invocable.Action.Result> results = action.invoke();
          Invocable.Action.Result result = results[0];

          // Handle the response
          if (result.isSuccess()) {
              // Retrieve the Session ID and Agent Response
              System.debug('Output Session ID: ' + result.getOutputParameters().get('sessionId'));
              System.debug('Output Agent Response: ' + result.getOutputParameters().get('agentResponse'));

          } else {
              System.debug('Java action execution failed: ' + result.getErrors());
          }
      } catch (Exception e) {
          System.debug('Error invoking Java action: ' + e.getMessage());
      }
    }
}
 
Cargando
Salesforce Help | Article