Loading
Agentforce y IA generativa de 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 por 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 Agent para obtener asistencia y mejoras continuas. Si tiene intención de realizar la transición a agente Empleado Agentforce 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 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 Agentforce Agente de servicio:

Gestionar agentes de servicio de Agentforce Y Gestionar agentes de IA

O BIEN

Personalizar aplicación

Las acciones invocables por agentes personalizados 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 email utilizando la clase CaseEmail Apex 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 prospecto.

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