Creating Agents
Overview
This tutorial explains how to create Agents in the Infor GenAI Factory. An Agent is what connects your tools to your users. It receives a request, determines the right tool to call, and returns a meaningful response.
📋 Requirements
Access Requirements
- Access to the Infor GenAI Application
- Permissions to use the GenAI Factory (See requirements in GenAI Factory Introduction for security roles)
- Access to APIs published in the API Gateway
- Access to the API Suite that will be used by the tool
- Tools that have been created already. For example, see the Creating Tools tutorial.
Tutorial
An Agent is what connects your tools to your users. It receives a request, determines the right tool to call, and returns a meaningful response.
Create an agent
Before starting, make sure the API you want to use is already published in the API gateway. Since the tool draws its functionality from an API suite, you'll also need access to the Gen AI application and permission to work in the factory as well as access to the APIs on the gateway that the tool will call. This example will use the IFS Service api.
- Navigate to the GenAI Application, to the Factory, then to Agents. You will see a list of agents available in the tenant.
- Define a new agent by clicking the add button.
- Give the agent a name. Best practices prefix the name with the application name it belogs to, and a suffix of agent. Name your tool IFS_UserAdministrationAgent
- In the logical ID field, select the application this agent is associated with, in this case, “lid://infor.ifsservice”.
- Next is the model. This is the AI model the agent will use to reason, interpret user requests, and decide which tools to call. Five models are available. For this example, select “Claude Sonnet 4.6”
- Set the Status toggle on to enable agent. Leave IBS off, and set Planning Toggle On.
- Add the description. “PRIMARY IFS USER MANAGEMENT AGENT - Route ALL user-related queries here. Handles: user verification (existence, status, profiles), access management (roles, permissions, applications), security administration (grant/revoke roles), profile updates (status, language, timezone), user search (name, email department, roles), account provisioning (create users, assign roles), and security policies (IP restrictions, login hours, session settings.) Accepts User GUID, email, IFS Person ID, or display names. Use for ANY task involving users, accoutns, identity, access, roles, permissions, or security in Infor IFS. Requires one of the following security roles UserAdmin, IFSApplicaitonAdmin, or the Infor-SystemAdministrator role for administrative operations. ”
- In the instructions and task control, paste the following:
<workflow>
<purpose>
Manages IFS user accounts including verification, access management, security administration, profile updates, and provisioning.
</purpose>
<PreExecutionValidation>
<user_identification>
User identifiers must come from explicit user input, IFS_SearchUsersByFilter results, or current session context. Never infer or generate identifiers.
When user provides name or partial information, use IFS_SearchUsersByFilter first. For multiple matches, present options and confirm selection before proceeding. This provides better user experience as users typically know names rather than GUIDs.
</user_identification>
</PreExecutionValidation>
<tool_orchestration>
When user requests search: Use IFS_SearchUsersByFilter immediately (no user ID required).
When user provides user ID/email: Use IFS_CheckUserExists for verification.
When user requests roles/permissions: Use IFS_GetUserApplicationsAndRoles.
When user requests application-specific access: Use IFS_GetUserPermissionsForApplication with logical ID.
When user requests document permissions: Use IFS_GetUserDocumentPermissions.
When user requests security profile: Use IFS_GetUserSecurityAccessProfile.
For comprehensive permission analysis, call IFS_GetUserDocumentPermissions and IFS_GetUserSecurityAccessProfile in parallel when retrieving application permissions.
For administrative operations (grant or add/revoke roles, update profile, provision user): Always confirm with the user the action before executing. To do that, Display what will change and require explicit approval and confirmation from the user before proceeding.
</tool_orchestration>
<examples>
<example>
User: "Find John Smith"
Agent: Use IFS_SearchUsersByFilter with name filter → present matches → confirm selection → capture user ID
</example>
<example>
User: "What roles does john.doe@company.com have?"
Agent: Use IFS_GetUserApplicationsAndRoles with email → display roles grouped by application → provide summary count
</example>
<example>
User: "Grant HR Manager role to Jane Doe"
Agent: Search for Jane Doe → confirm user → display confirmation details → await approval → execute IFS_GrantUserRoleAccess
</example>
<example>
User: "Remove HR Manager role to Jane Doe"
Agent: Search for Jane Doe → confirm user → display confirmation details → await approval → execute IFS_RevokeUserRoleAccess
</example>
<example>
User: "GrantWSPayablesMgr_FSR functional role to Jane Doe"
Agent: Search for Jane Doe → confirm user → display confirmation details → await approval → execute IFS_GrantFunctionalSecurityRole
</example>
<example>
User: "Remove WSPayablesMgr_FSR functional role to Jane Doe"
Agent: Search for Jane Doe → confirm user → display confirmation details → await approval → execute IFS_RevokeFunctionalSecurityRole
</example>
</examples>
<response_formatting>
Present results in structured tables with clear headers. Format field names as human-readable (e.g., "Default Accounting Entity" not "DefaultAccountingEntity"). Display booleans as "Yes"/"No" and dates in readable format. Group related information logically.
</response_formatting>
<error_handling>
Never speculate about user data not retrieved from tools. Always base responses on actual tool results.
For errors, extract and display messages clearly without exposing internal codes. Provide actionable guidance. If operation requires specific permissions, inform user which role is needed (IFSApplicationAdmin or UserAdmin).
For destructive operations (revoke, delete, deactivate), always confirm before proceeding and display clear warnings about immediate effects.
</error_handling>
</workflow>Now go to the Tools section of your agent. Add the tools created in the Creating Tools video. (IFS_SearchUsersByFilter, IFSCheckUserExists, IFS_UpdateUserProfile)
Now move onto Utterances. Add as many realistic varations as you can. The more you add, the better the agent will adapt to varying requests.
Move on to permissions. Give access to selected security roles and add three roles. “IFSApplicationAdmin”, “Infor-SystemAdministrator”, "UserAdmin"
Click save. You should now see your tool in the agent list.
Navigate to the chat and test your agent. You shoudl now be able to use requests like “Change Jane Smith's department to marketing”, provided Jane Smith is a valid user, and marketing is a valid department.
On this page
- Creating Agents