Una de las solicitudes más comunes que se les pide a nuestros amigos en la gerencia de talentos que hagan es ayudar a entrenar a alguien a través de una conversación difícil o para mejorar como líder. Si bien esta es a menudo una de las partes más agradables del trabajo, puede ser un desafío proporcionar el tipo de entrenamiento de necesidades de gerente o empleado sin el conjunto completo de datos. Además, puede ser útil juegos de roles algunas de las conversaciones de antemano para asegurarse de que tengan todos los puntos de conversación.
Afortunadamente, aquí es donde el agente de talento SDK y la intersección de RRHH y realmente brilla. Echemos un vistazo a la construcción de un agente de entrenamiento rápido en Slack que ayude a resolver este problema.
Requisitos previos
Vamos a dejar que el agente SDK haga la mayor parte del trabajo pesado aquí y atraiga al agente de HRBP y al agente de analistas de recursos humanos para ayudarnos. Para simplificar, también confiaremos en la integración Slack integrada en el SDK y este tutorial supone que ya tiene esa configuración.
- Primero, comuníquese con PeopLelogic.dev para asegurar una caja de area para el agente SDK
- A continuación, Clone el agente SDK Starter de https://github.com/peoplelogic/agent-sdk-starter
- Luego, habilitemos el HRBP y el analista de recursos humanos dentro de
src/foremost/assets/utility.properties
:
peoplelogic.agent.HRBusinessPartnerAgent.enabled=true
peoplelogic.agent.HRAnalystAgent.enabled=true
Para agregar la funcionalidad de entrenamiento al agente HRBP, necesitamos crear una nueva herramienta. Si recuerdas del Guía de inicionecesitamos hacer esto a través de un nuevo @PeoplelogicTool
componente. También vamos a cablear en varios de los otros componentes SDK con los que necesitaremos trabajar.
@PeoplelogicTools("hrbp-coaching-tools")
public class HRBPCoachingTools {
@Autowired
PersonalContentRetriever personalContentRetriever;
@Autowired
@Qualifier("apmContentRetriever")
ContentRetriever apmContentRetriever;
@Autowired
CustomerKnowledgeContentRetriever customerKnowledgeContentRetriever;
@Autowired
ChatMemoryProvider chatMemoryProvider;
@Autowired
ChatModel chatLanguageModel;
@Autowired
HRAnalystAgent analyst;
HRBusinessPartnerAgent agentWithFiles;
}
Hasta ahora, tan bien: hemos traído componentes que nos ayudan a obtener datos de la organización y también cargados a través de la conversación y hemos traído algunos componentes básicos como el modelo de chat y la memoria para que podamos configurar algunos anulaciones de nuestros agentes. Pero, ¿de qué sirve un agente de entrenamiento, sin el aviso de teaching! Agreguemos el nuevo mensaje justo debajo del agentWithFiles
definición:
personal ultimate String COACHING_CONVERSATION_SEGMENT = "You're offering structured teaching steerage for managers based mostly on company-provided coaching supplies, efficiency documentation, values, worker historical past, and engagement insights. " +
"Your objective is to assist managers facilitate productive, constructive, and values-driven teaching conversations with their direct experiences. " + "Use the corporate handbook, management ideas, efficiency documentation (together with APM), and engagement developments from PersonalContentRetriever to information greatest practices." +
"Don't simply present generic teaching recommendation - immediate the consumer for added data by way of the questions under to tailor the recommendation particularly for the customers questions. " +
"nnHere are the steps to take and the small print to offer:n" +
"**1) Perceive the Context:**n" +
" * Determine the worker’s position, tasks, and up to date efficiency developments.n" +
" * Reference latest efficiency critiques, suggestions, and IDP objectives to align teaching with private improvement areas.n" +
" * Retrieve related firm values, management ideas, or coaching supplies to tell the dialog.n" +
" * Take into account engagement information: Has the worker reported decrease motivation? Are they flagged for burnout threat? Have survey responses indicated disengagement or stress?n" +
" * Overview prior teaching conversations for continuity.n" +
"n **2) Put together a Teaching Plan:**n" +
" * Summarize key strengths and up to date achievements of the worker.n" +
" * Spotlight areas for development, specializing in talent improvement, management behaviors, or objective alignment.n" +
" * Determine any efficiency considerations and put together structured, constructive suggestions.n" +
" * Recommend dialog starters that align with firm teaching frameworks (e.g., open-ended questions, values-based suggestions, and action-oriented dialogue).n" +
"n **3) Incorporate Engagement Insights:**n" +
" * If latest engagement information is out there, summarize key findings.n" +
" * Spotlight any early warning indicators of burnout, stress, or disengagement.n" +
" * Advocate particular management actions to deal with motivation considerations, comparable to elevated recognition, rebalancing workload, or offering profession development alternatives.n" +
" * If the worker has excessive engagement scores, counsel methods to maintain momentum going (e.g., stretch assignments, mentorship roles).n" +
"n **3) Dealing with Particular Teaching Eventualities:**n" +
" **Situation: Teaching an Underperforming Worker**n" +
" * Determine the particular efficiency gaps based mostly on critiques, OKRs, and supervisor suggestions.n" +
" * Present a script for addressing efficiency considerations utilizing a structured strategy (e.g., SBI: State of affairs-Habits-Impression).n" +
" * Advocate follow-up actions, comparable to expertise coaching, mentorship, or reassigning work to raised match strengths.n" +
" **Situation: Excessive-Potential Teaching & Profession Progress**n" +
" * Acknowledge latest achievements and set expectations for management improvement.n" +
" * Recommend stretch assignments, cross-functional initiatives, or studying alternatives.n" +
" * Align development plans with firm objectives to maximise impression.n" +
" **Situation: Addressing Low Engagement or Burnout Danger**n" +
" * Overview latest engagement information to grasp considerations (e.g., workload, supervisor relationships, profession stagnation).n" +
" * Present dialog starters to uncover underlying challenges.n" +
" * Recommend management interventions (e.g., workload changes, elevated flexibility, profession pathing discussions).n" +
" **Situation: Giving Suggestions Primarily based on Firm Values**n" +
" * Retrieve firm values and management ideas from the PersonalContentRetriever.n" +
" * Construction suggestions utilizing real-world examples that reinforce these values.n" +
" * Advocate actions that align with cultural expectations (e.g., collaboration, innovation, buyer focus).n" +
"n **4) Set Subsequent Steps:**n" +
" * Summarize key takeaways from the dialog.n" +
" * Present actionable follow-ups, comparable to scheduling a check-in, setting measurable objectives, or recommending further assist.n" +
" * If wanted, generate a follow-up message or electronic mail summarizing key factors for the worker.n" +
"n **5) Generate Further Prompts for the Person:**n" +
" * 'How can I coach Alice on enhancing management expertise based mostly on her efficiency overview?'n" +
" * 'What suggestions ought to I give Bob in our 1:1 based mostly on firm values?'n" +
" * 'How can I deal with engagement considerations with my direct report in a training session?'n" +
" * 'Give me a script for a training dialog based mostly on Charlie’s latest efficiency developments.'n" +
" * 'How can I coach Derek to tackle a extra strategic management position within the firm?'n" +
" * 'What actions ought to I take if an worker’s engagement scores have dropped?'";
¡Todo el aviso, pero nadie dijo que el teaching fue fácil! Con eso fuera del camino, solo necesitamos ajustar un poco el agente HRBP. Puede ver que hemos hecho auto en el hranalystagent con su configuración predeterminada, es porque queremos llamarlo con todas sus herramientas disponibles. Ahora, necesitamos ajustar el HRBP para que cuando lo llamemos desde dentro de nuestra herramienta no use ninguna otra herramienta, solo el conocimiento que le estamos dando. Agregue este método en la parte inferior de su clase:
personal HRBusinessPartnerAgent getAgentWithPersonalFiles() {
if (agentWithFiles == null) {
agentWithFiles = AiServices.builder(HRBusinessPartnerAgent.class)
.retrievalAugmentor(PeoplelogicRetrievalAugmentor.builder()
.queryTransformer(ExpandingQueryTransformer.builder().chatModel(chatLanguageModel).construct())
.queryRouter(new DefaultQueryRouter(apmContentRetriever, personalContentRetriever, customerKnowledgeContentRetriever))
.construct())
.chatMemoryProvider(chatMemoryProvider)
.chatModel(chatLanguageModel)
.instruments(Collections.emptyList()).construct();
}
return agentWithFiles;
}
Con eso fuera del camino, podemos llegar al trabajo actual: construyamos nuestra herramienta.
Construyendo el entrenador
Para construir el entrenador actual, necesitaremos crear un método que podamos tener la llamada SDK cuando quiera ayudar a alguien con teaching de liderazgo. Agregue el método a continuación a su clase de herramientas de entrenamiento.
@Device("Offers an interactive coach or roleplay situation to assist HR and managers have a training dialog with an worker. " +
"That you must ask who the worker is. If no particular subject supplied after prompting, simply assume common efficiency teaching." +
"You need to ask if there may be any further data the consumer desires to offer (surveys, okrs, and many others) related to the dialog. " +
"You too can ask for the worker's job description (elective) simply so we all know the roles and tasks." +
"If further particulars should not supplied and job description just isn't supplied, you could ask the consumer in the event that they'd like the knowledge retrieved from linked instruments." +
"This device will at all times output the complete teaching plan or the components which were compiled thus far.")
@SneakyThrows
public String roleplayOrProvideCoachingAdviceHelpMeCoachAnEmployee(@ToolMemoryId String memoryId, @P("Worker Title") String employeeName,
@P("Particular subject for teaching") String specificTopic,
@P(worth = "Filenames of further inputs - excluding job descriptions", required = false) String additionalFiles,
@P(worth = "Worker's Job Description", required = false) String jobDescription) {
}
Como puede ver, estamos dando a la herramienta una descripción muy detallada y un nombre detallado para que el LLM tenga tanta información como sea posible para llamar a nuestra herramienta. También estamos aprobando tanto en las entradas requeridas (nombre y tema common) como en las entradas opcionales, como revisiones recientes, OKR e incluso la descripción del trabajo del empleado.
Una versión más avanzada de esta herramienta podría optar por usar la API de talento common para obtener todos estos detalles e incluirlos en la respuesta sin la necesidad de cargas.
Ahora echemos un vistazo a cómo podríamos usar toda esta información:
String userQuery = "Assist me have a training dialog with " + employeeName + " round " + specificTopic + ". " +
"If further recordsdata are supplied, attempt to use these. It needs to be an interactive dialog. " +
"On the finish, at all times present me with the extra questions I could ask you to proceed the dialog or counsel some eventualities to roleplay based mostly on the knowledge supplied and the particular subject.";
// Setup the critiques and surveys processing by way of the HR Analyst and look forward to recordsdata to be uploaded
if (additionalFiles != null && !additionalFiles.isEmpty()) {
additionalFiles = getFilenamesAsJoinedString(additionalFiles);
String analysisQuery = "analyze these okr cycles, engagement outcomes and overview outcomes situated in recordsdata '" + additionalFiles + "'. All recordsdata have been supplied already - don't ask for them once more. All the things is confirmed - no extra required.";
SearchFileContext.setCurrentFiles(additionalFiles.break up(","));
if (!waitForUpload(analysisQuery, personalContentRetriever)) {
return "There was an issue importing the recordsdata to investigate. Please strive once more.";
}
// Name the HR Analyst and append the outcomes to the consumer question
Outcome analystResults = analyst.acceptWork(memoryId + "_coaching", analysisQuery, "");
userQuery = userQuery + "nn" + analystResults.content material().getResponse();
}
Llegaremos esto en algunas partes por simplicidad. Primero, vamos a configurar la instrucción básica para ir con nuestro mensaje del sistema anterior: ¡recuerde, cada llamada a los agentes necesita ambos! Luego, necesitamos hacer una limpieza de las entradas adicionales y asegurar que se hayan cargado realmente. Finalmente, vamos a llamar al analista de recursos humanos y dejar que trabaje en su magia que analice cualquier revisión, encuesta u OKR e incluya aquellos en lo que queremos pasar a la herramienta de entrenamiento.
// Verify if we have now supplied a job description
if (jobDescription != null && !jobDescription.isEmpty()) {
additionalFiles = getFilenamesAsJoinedString(additionalFiles + ", " + jobDescription);
String analysisQuery = "analyze these okr cycles, engagement outcomes, job descriptions and overview outcomes situated in recordsdata '" + additionalFiles + "'. All recordsdata have been supplied already - don't ask for them once more. All the things is confirmed - no extra required.";
SearchFileContext.setCurrentFiles(additionalFiles.break up(","));
if (!waitForUpload(analysisQuery, personalContentRetriever)) {
return "There was an issue importing the recordsdata to investigate. Please strive once more.";
}
}
String outcome = getAgentWithPersonalFiles().answerWithPrompt(memoryId + "_coaching", userQuery, COACHING_CONVERSATION_SEGMENT);
return "Right here is the plan - output it in full to the consumer: " + outcome;
Todo lo que queda es manejar el archivo de descripción del trabajo y luego enviar toda esta información al agente HRBP que configuramos anteriormente. Una vez más, estamos haciendo una comprobación básica de limpieza y seguridad en caso de que se proporcione la descripción del trabajo y luego llamamos al agente HRBP con todo lo que hemos reunido hasta ahora y devuelve el resultado al LLM.
El entrenador en acción
Ahora que hemos escrito las indicaciones, configuramos los agentes, creamos las herramientas, solo necesitamos decirle al agente HRBP incorporado sobre su nueva herramienta. Volvamos a SRC/Important/Assets/Software.Properties y agregue lo siguiente:
peoplelogic.agent.HRBusinessPartnerAgent.instruments=hrbp-coaching-tools
¡Eso es todo! Implemente sus agentes o cargue la aplicación localmente y luego cargamos nuestra aplicación Slack y vemos si la herramienta funciona.
This is a structured teaching plan to your dialog with Brian about his promotion readiness:
*1. Begin with Positivity
• Opening Assertion "Brian, I wish to begin by acknowledging the nice work you've got been doing. Your ardour, curiosity, and empathy actually shine by way of in your position. Let's have fun a few of your latest accomplishments."
• Rejoice Wins "You have made vital strides in making our releases extra predictable and enhancing communication between product and engineering, which has led to fewer re-opens. Your efforts in tightening our product technique are additionally noteworthy."
*2. Focus on Strengths
• Spotlight Strengths "Your potential to write down prolifically and your fixed drive to study and analysis new issues are unimaginable strengths. These expertise are important to your position and contribute vastly to our crew's success."
*3. Discover Progress Alternatives
• Progress Areas "Wanting forward, I see a chance so that you can stability speedy gross sales alternatives with long-term breakthrough successes. It is vital to push boundaries whereas guaranteeing we will successfully talk our worth propositions."
• Ability Improvement "Persevering with to reinforce your organizational expertise and understanding market calls for will probably be essential. Participating extra with clients to grasp their future instructions can present worthwhile insights."
*4. Focus on Promotion Readiness
• Promotion Readiness "Let's discuss what it means to be prepared for a promotion. Past your technical expertise, management qualities comparable to influencing others and strategic considering are key. How do you're feeling about your readiness in these areas?"
*5. Actionable Subsequent Steps
• Set Targets "Let's set some objectives collectively. How about specializing in strengthening your affect throughout the crew and externally with shoppers? Moreover, engaged on strategic messaging for our merchandise might be an ideal space to develop additional."
*6. Have interaction in Open Dialogue
• Open-Ended Query "What do you assume are the most important challenges you face in getting ready for a promotion, and the way can I assist you in overcoming them?"
*7. Conclude with Encouragement
• Encouragement "I am assured in your skills, Brian. Together with your ardour and dedication, I imagine you may obtain nice issues and be prepared for the subsequent step in your profession."
Further Inquiries to Proceed the Dialog
• "What particular management expertise do you assume it's worthwhile to develop to be prepared for a promotion?"
• "How can we align your private improvement objectives with the crew's aims?"
• "What assets or assist do you want from me that will help you succeed?"
Instructed Roleplay Eventualities
• Situation 1 Roleplay a scenario the place Brian must current a brand new product technique to senior administration.
• Situation 2 Simulate a buyer assembly the place Brian has to deal with complicated questions on product differentiation.
• Situation 3 Observe a peer suggestions session centered on enhancing crew collaboration and communication.
¡Bastante impresionante! El agente incorporó los archivos que subimos, nos dio excelentes iniciadores de conversación basados en las revisiones recientes y el progreso de los objetivos, y cuando se les solicitó detalles, incluso tomó la iniciativa para aprovechar otra herramienta que el HRBP tiene disponible, creando un nuevo IDP (plan de desarrollo particular person) para usar en la conversación. ¡Todo esto será de gran ayuda para tus amigos en RRHH!
Mejoras futuras
Si bien este ejemplo es excelente, hay algunos lugares que definitivamente podríamos mejorar en el futuro. Por ejemplo:
¡Siéntase libre de sugerir otras mejoras mientras trabaja en el tutorial y, como siempre, la codificación feliz!