Browse Guides

AI Agents
Reading mode
Copy Link
Link Copied!
Print
Feedback
This guide has multiple versions available:
<style>p { margin: 0; }span.fr-emoticon.fr-emoticon-img { background-repeat: no-repeat !important; font-size: inherit; height: 1em; width: 1em; min-height: 20px; min-width: 20px; display: inline-block; margin: -0.1em 0.1em 0.1em; line-height: 1; vertical-align: middle; } span.fr-emoticon { font-weight: normal; font-family: "Apple Color Emoji", "Segoe UI Emoji", "NotoColorEmoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols"; display: inline; line-height: 0; } blockquote { border-left: solid 2px #5e35b1; color: #5e35b1; margin-left:0; padding-left:5px;}blockquote blockquote{ border-color: #00bcd4; color: #00bcd4;}blockquote blockquote blockquote{ border-color: #43a047; color: #43a047;} table.grid{ border-collapse: collapse;} table.grid td, table.grid th { border: 1px solid #ddd;} .fr-fic.fr-dib{ display: block; margin: 5px auto;}.fr-fic.fr-dib.fr-fir{ text-align: right; margin: 5px 0 5px auto;}.fr-fic.fr-dib.fr-fil{ text-align: left; margin: 5px auto 5px 0;}.fr-fic.fr-dii{ float: none; margin: 5px auto;}.fr-fic.fr-dii.fr-fil{ float: left; margin: 5px auto;}.fr-fic.fr-dii.fr-fir{ float: right; margin: 5px auto;}img.fr-dib.fr-fir { margin-right: 0; text-align: right;}img.fr-dib.fr-fil { margin-left: 0; text-align: left;}img.fr-dib { margin: 5px auto; display: block; float: none;}img.fr-bordered { box-sizing: content-box; border: solid 5px #CCC;}img.fr-shadow { box-shadow: 10px 10px 5px 0px #cccccc;}img.fr-rounded { border-radius: 10px; -moz-border-radius: 10px; -webkit-border-radius: 10px; -moz-background-clip: padding; -webkit-background-clip: padding-box; background-clip: padding-box;}</style><p data-pasted="true"><strong>In this guide we will cover:</strong></p><p><br></p><p data-pasted="true"><strong>- What are AI Agents?<br></strong></p><p data-pasted="true"><strong>- API Application</strong></p><p data-pasted="true"><strong>- Creating AI Agents</strong></p><p><strong>- AI Agents in Runbooks</strong></p><p><br></p><p data-pasted="true"><strong>Admin Guides:</strong></p><ul><li style="font-weight: bold;"><a href="https://usehalo.com/haloitsm/guides/2328/" target="_blank" rel="noopener noreferrer"><strong>AI</strong></a></li></ul><p><strong>Related Guides:</strong></p><ul><li style="font-weight: bold;"><a href="https://usehalo.com/haloitsm/guides/2385/" target="_blank" rel="noopener noreferrer"><strong>Connecting AI to Halo</strong></a></li><li style="font-weight: bold;"><a href="https://usehalo.com/haloitsm/guides/2137/" target="_blank" rel="noopener noreferrer"><strong>Leveraging AI in Halo</strong></a></li><li style="font-weight: bold;"><a href="https://usehalo.com/haloitsm/guides/1630/" target="_blank" rel="noopener noreferrer"><strong>Custom Integrations/Runbooks</strong></a></li><li style="font-weight: bold;"><a href="https://usehalo.com/haloitsm/guides/2776" target="_blank" rel="noopener noreferrer"><strong>AI Abilities &nbsp;</strong></a></li></ul><p><br></p><p><br></p><p data-pasted="true"><strong><span style="font-size: 14pt;">What are AI Agents?<br></span></strong></p><p>Available from v2.234.1+, an AI Agent is a custom set of instructions that can be sent to an AI model to generate a response and perform certain tasks. The AI Agent can execute requests in your own instance via the API. Using AI Agents makes the creation of Runbooks easier, as you do not need to create your own integration method with a JSON body, instead you can just give AI instructions on what you want to do at a given step of a Runbook and it will execute the request via the API for you.</p><p><br></p><p>AI Agents currently only support OpenAI connections. The Halo default Connection and Azure OpenAI will be available for this feature from v2.236+.&nbsp;</p><p><br></p><p>From v2.236+, tickets, actions, and Knowledge Base Articles created by an AI Agent will be &quot;flagged&quot; as AI in reporting under the columns: faicreated, aacreated, and kbaicreated. The ID of the AI Agent that was used to create the entity can also be identified using the following fields: fvirtualagentid, avirtualagentid, and kbvirtualagentid. This will correlate to the ID in the VirtualAgent table.</p><p><br></p><p data-pasted="true">For more information on setting your OpenAI connection see our guide on <a href="https://usehalo.com/haloitsm/guides/2385/" target="_blank" rel="noopener noreferrer">connecting AI to Halo</a>.</p><p><br></p><p data-pasted="true"><span style="font-size: 14pt;"><strong>API Application</strong></span></p><p>Before you can set up an AI Agent you will need to create an API application with the Authentication Method &quot;Halo Automation Identity&quot;. To do this head to Configuration &gt; Integrations &gt; Halo API, click the &quot;View Applications&quot; button, click &quot;New&quot; to create a new application.&nbsp;</p><p><br></p><p>Give this application a sensible name and set the Authentication Method to &quot;Halo Automation Identity&quot;.&nbsp;</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImQ1OWZjN2ZhLThjMWQtNDA0YS04MWE1LTcwMzc2ZmFkMTQ0MSJ9.QhmFlwqJrjKmqNvrg7NKX75W3-jJx-QuD8oeVgvxTyU" class="fr-fic fr-fil fr-dib" width="1090" style="width: 1092px; height: 573.922px;" height="574"></p><p><span style="font-size: 10pt;"><strong>Fig 1. Creating an API application&nbsp;</strong></span></p><p><br></p><p>Once selected, you will need to specify an identity for the application. This informs the base level of access granted to the application. The option &quot;Application identity&quot; is recommended here, as you can use roles to control the base level of permission rather than having to pick a specific agent. When this option is selected the &quot;Identity Roles&quot; field can be used to determine which roles to use as the base level permissions.</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImM3ZGY3MGI3LTIyYTYtNGZjYy1iYjVhLTJiN2NlNTljNTNkMyJ9.xSE7vIcxZGFVUPNaB8oT6DrJNSw_fXVv576TJuV14AQ" class="fr-fic fr-fil fr-dib" width="1108" style="width: 1110px; height: 233.121px;" height="233"></p><p data-pasted="true"><span style="font-size: 10pt;"><strong>Fig 2. API application login&nbsp;</strong></span></p><p><br></p><p>Under the &quot;Permissions&quot; tab set which specific features (scopes) you would like to allow the application to have access to.</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImM0ZTNlNWRiLTVlNjYtNGE1ZS04MWUxLTBiZjIyZWI3NmE1YSJ9.VVejvcps4i97p6dIGDmlUV5IIzHVKQeDUyiGRUHuDZw" class="fr-fic fr-fil fr-dib" width="1070" height="865"><span style="font-size: 10pt;"><strong>Fig 3. API application permissions</strong></span></p><p><span style="font-size: 10pt;"><strong>&nbsp;&nbsp;</strong></span></p><p>For more information on API applications see our guide linked <a href="https://usehalo.com/haloitsm/guides/1823" target="_blank" rel="noopener noreferrer">here</a>.</p><p><br></p><p><span style="font-size: 14pt;"><strong>Creating AI Agents</strong></span></p><p>Once your application has been created you can create an AI Agent. To do this head to Configuration &gt; AI, and click the &quot;AI Agents&quot; button.</p><p><br></p><p><span style="font-size: 14pt;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjM2MDU1Nzg3LTNjMDQtNDk4Mi1hM2ZiLTVhNzZhMmY3NDNhMiJ9.ClGZr_6T5NkCPzAyeLy8S9XUZgTbGAgbQ4Mq2Fhemos" class="fr-fic fr-fil fr-dib" width="1200" style="width: 1202px; height: 328px;" height="328"></span></p><p data-pasted="true"><span style="font-size: 10pt;"><strong>Fig 4. AI Agents button</strong></span></p><p><br></p><p data-pasted="true">When you create a new AI Agent you will need to set a name, connection, and model for your AI Agent to use. You will need to set the &quot;Halo Application to authorise as&quot; to your newly created application.</p><p><br></p><p data-pasted="true">For more information on setting your OpenAI connection see our guide on <a href="https://usehalo.com/haloitsm/guides/2385/" target="_blank" rel="noopener noreferrer">connecting AI to Halo</a>.&nbsp;</p><p><br></p><p><span style="font-size: 14pt;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImZjNDUzOWY1LWJlM2QtNDM2NC05NzQ4LTM2YzQ1MWFmOGNkYiJ9.Gk5y4_LwNFFP4E5yIBA_S99OVmADXRIhUs84IDxQ13w" class="fr-fic fr-fil fr-dib" width="1203" style="width: 1205px; height: 492px;" height="492"></span></p><p data-pasted="true"><span style="font-size: 10pt;"><strong>Fig 5. Creating an AI Agent&nbsp;</strong></span><span style="font-size: 10pt;"><strong>&nbsp; &nbsp;</strong></span></p><p><br></p><p>Next you can set the instructions for your AI Agent to follow. The instructions you set here control the request that is sent to the API. You must state exactly what you want the AI Agent to do here.</p><p>These instructions can include input variables in the format &lt;&lt;variable_name&gt;&gt;, which will need to be specified in the table below. &nbsp;These variables let you change the instructions dynamically based on the event that triggered, or information obtained by the Runbook.</p><p><br></p><p data-pasted="true">If you are using your AI Agent to extract output variables for a Runbook you will want to select &quot;Force JSON response&quot;. This will make sure the response provided is in JSON format, allowing successful variable declared in the Runbook. If you force a JSON response you will also need to include the word &#39;JSON&#39; in the instructions.</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjlhMGEwMGMzLWY2NTctNGM5Yi04YWI0LWE2ZTI2MDc4N2UxYSJ9.wlTS9qAEquw3K9p-KvRecpruhkX6yt8gir7bn_aQz4U" class="fr-fic fr-fil fr-dib" width="1196" style="width: 1198px; height: 396.346px;" height="396"></p><p data-pasted="true"><span style="font-size: 10pt;"><strong>Fig 6. AI Agent instructions&nbsp;</strong></span></p><p><br></p><p data-pasted="true">Any input variables you are including in your instructions need to be added to the Input Variables table. These variables will be mapped to the variables used in the runbook later. Click &quot;Add&quot; to set the name and data type for your variable. Here you will also have the option to set the variable as mandatory, and set a description for the parameter.&nbsp;</p><p><br></p><p>Finally, you can set any functions that are available to this AI Agent. Deselecting &quot;Include all system functions&quot; will remove system functions, allowing you to add specific system and custom functions to the Functions Table. Leaving this checkbox selected will include all system functions and allow you to add additional custom functions using the table. &nbsp;&nbsp;</p><p><br></p><p data-pasted="true">The available system functions are as follows:</p><p><br></p><ul><li><strong>Action a Ticket &ndash;</strong> Allows you to add any action that is configured to be a &#39;quick action&#39; to a ticket on behalf of the agent, allowing agents to update tickets.&nbsp;</li><li><strong>Add Note to Ticket &ndash;</strong> Allows you to add a private note to a ticket on behalf of the agent, allowing agents to update tickets.</li><li><strong>Apply AI Suggestion &ndash;</strong> Applies AI suggestions to a ticket, rather than the agent having to do this from within a ticket.&nbsp;</li><li><strong>Assign to me &ndash;</strong> Re-assigns a ticket from one agent to the agent logged in.</li><li><strong>Get Assigned Tickets &ndash;</strong> Returns a list of tickets that are assigned to the agent.&nbsp;</li><li><strong>Search Knowledge Base &ndash;</strong> Searches the knowledge base based in the input from the agent. It can return resolution suggestions based on the relevant articles it finds, it can also suggest articles for the agent to read.&nbsp;</li><li><strong>Get matching Articles and Tickets for a Ticket &ndash;</strong>&nbsp; Re-runs AI ticket and article matching for a specific ticket. Beneficial when the ticket has been open for some time, in which closer matches may exist. This allows the agent to ensure the matched tickets and articles are the most up to date matches in the database.&nbsp;</li><li><strong>Get One Article &ndash;</strong> Can summarise or extract details from a specific KB article and return these to the agent.&nbsp;</li><li><strong>Get One Ticket &ndash;</strong> Return a list of tickets that are assigned to the agent.&nbsp;</li><li><strong>Get User Info &ndash;</strong> Returns the information held about the user in Halo.&nbsp;</li><li><strong>Search Service Catalogue &ndash;</strong> Search services using AI Search, and receive the names and links to any matched services, and direct the user to the relevant service where appropriate.&nbsp;</li><li><strong>Log Time &ndash;</strong> Logs a quick time entry for the agent.</li><li><strong>Search Tickets &ndash;</strong> Searches ticket content based on a prompt from the agent. Allowing it to effectively summarise and suggest replies or resolutions to tickets based on this info</li><li data-pasted="true"><strong>Search Assets (v2.236+)&nbsp;&ndash;</strong> Searches assets based on a prompt from the agent.</li><li data-pasted="true"><strong>Get One Asset (v2.236+)&nbsp;&ndash;&nbsp;</strong>Can summarise or extract details from a specific assets and return these to the agent. &nbsp;</li><li><strong>Search Users (v2.236+)&nbsp;&ndash;</strong> Searches users based on a prompt from the agent. (Only available to agents)</li><li><strong>Get One User</strong><strong data-pasted="true">&nbsp;(v2.236+) &ndash;</strong> Can summarise or extract details from a specific user and return these to the agent (only available to agents). &nbsp;&nbsp;</li><li><strong>Use specific action (v2.238+) -&nbsp;</strong>Can add an action to a ticket, including populating any fields on this action. The action must be available to use on the ticket&#39;s current workflow step, and the AI Agent must also have access to a function that allows it to check the workflow step of the ticket (such as get one ticket).&nbsp;<p><br></p></li></ul><p data-pasted="true">Custom Tools can be created with the following uses:&nbsp;</p><p><br></p><ul><li><strong>Use an AI Ability &ndash;&nbsp;</strong>Allows you to use/trigger an AI ability. See our guide on AI Abilities for information on this.</li><li><strong>Log a ticket of a certain type or template &ndash;</strong> Logs a new ticket of a specified type or template. From v2.232+ you can also use the option &quot;Any Ticket Type the user has access to&quot; to allow users/agents to log any ticket type they have access to, provided they provide the ticket type name. From v2.238+, you can set the fields to use a as parameters. This allows you to choose between including the ticket type&#39;s field list as parameters for the AI to populate, or or using the Summary and Details. &nbsp;</li><li><strong>Get Report Data &ndash;</strong> Returns the data from a specified report.&nbsp;</li><li><strong>Execute a Runbook &ndash;</strong> Executes a runbook of choice.</li></ul><p><br></p><p><strong><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjAzZDMzZGZkLWNlMTgtNDg3NS05ODNiLTkyOWUyYjc3NzA4YyJ9.gKRgVo41c9LvI8SyxivYqyF5XfkwZXO5g7hcYVRxKK8" class="fr-fic fr-fil fr-dib" width="1206" style="width: 1208px; height: 525.39px;" height="525"></strong><br></p><p data-pasted="true"><span style="font-size: 10pt;"><strong>Fig 7. AI Agent variables and functions&nbsp;</strong></span></p><p><br></p><p data-pasted="true">Now you have created your AI Agent click &quot;Save&quot;. This AI Agent can now be used in a Runbook.&nbsp;</p><p><br></p><p><span style="font-size: 14pt;"><strong>AI Agents in Runbooks</strong></span></p><p data-pasted="true">To add an AI Agent to a Runbook, head to Configuration &gt; Integrations &gt; Custom Integrations, select the &quot;Integration Runbooks&quot; button. Click a Runbook to edit, or create a new one using the &quot;Add&quot; button.</p><p>&nbsp;</p><p data-pasted="true">Against your Runbook flow you can add or edit a step of type &quot;Action&quot;. When the action type is set to &nbsp;&quot;AI Agent&quot; an additional dropdown will show, allowing you to select which AI Agent to use. Selecting this will automatically populate the variable table. You will need to set the value for this to use by typing or selecting a default Runbook-level variable from the &quot;Available Variables&quot; list, using the dropdown to select the relevant entity to filter by. For more information on Runbook-level variables, see our guide linked <a href="https://usehalo.com/haloitsm/guides/1630/" target="_blank" rel="noopener noreferrer">here</a>.&nbsp;</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImI4NWJjYjc5LTM2OGYtNDRjOS05ZjViLWJhZTlhMzM4YWZjMSJ9.fALlb7vMiO8JkNKvb3i-9TAme-qNTpeVnAIf-HImna8" class="fr-fic fr-fil fr-dib" width="1192" style="width: 1194px; height: 516.692px;" height="517"></p><p data-pasted="true"><span style="font-size: 10pt;"><strong>Fig 8. Using an AI Agent in a Runbook</strong></span></p><p><br></p><p>In the Figure 8 example, when the Runbook is triggered the Ticket ID populates the &lt;&lt;ticket^id&gt;&gt; variable. This is set as the value for the &lt;&lt;InputTicketID&gt;&gt; variable, which informs the AI Agents what Ticket to action.&nbsp;</p><p><br></p><p data-pasted="true">This tells the AI Agent to perform the instructions in response to the input variable, in this case adding a note and providing a recommended resolution and Knowledge Base article.&nbsp;</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6Ijk4YTcyYWZkLTdmYmEtNGUwNy1hNGVhLWRhODZhNjczYTIyZSJ9.JujTNx3AkpNWdKIO8h1FIraFxkLjOSa9Ryne3BkYofA" class="fr-fic fr-fil fr-dib" width="1180" style="width: 1182px; height: 729.24px;" height="729"></p><p data-pasted="true"><span style="font-size: 10pt;"><strong>Fig 9. AI Agent performing a task&nbsp;</strong></span></p>
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.