Skip to Content

Jitterbit Composite Agent

Overview

Jitterbit provides the Composite Agent to all customers through Jitterbit Marketplace. This agent is designed for learning purposes to help organizations easily adopt AI.

This agent provides a single interface for interacting with multiple specialized agents within your organization. A specialized agent is an AI agent designed to handle specific types of tasks or queries in a particular domain. Examples include the Jitterbit Sales Agent and HR Agent.

The Composite Agent receives user queries, determines which specialized agent can best handle each query, and routes the request to that agent. After the selected agent responds, the Composite Agent returns the answer to the user. By using a single entry point, the Composite Agent eliminates the need for users to access separate interfaces for each agent. While this agent uses Azure OpenAI and Slack by default, you can adapt it to work with other LLMs and chat platforms such as Claude, Microsoft Teams, microservices, SaaS apps like Salesforce, or applications built using Jitterbit App Builder.

This document explains how to set up and operate this AI agent. The document covers the following topics: architecture and prerequisites, example prompts showing what the agent can do, and steps to install, configure, and operate the AI agent.

Project architecture

This project routes user queries to specialized agents. A typical workflow follows these steps:

  1. A user interacts with the Slack bot and sends a question or request.
  2. The Composite Agent analyzes the query and routes it to the appropriate specialized agent.
  3. The specialized agent processes the request and returns results.
  4. The Composite Agent delivers the response to the user.

Workflow diagram

The following diagram shows how the Composite Agent processes user queries:

--- config: flowchart: padding: 20 nodeSpacing: 100 --- flowchart classDef default fill:white, stroke:black, stroke-width:3px, rx:15px, ry:15px JSP@{ shape: hex, label: "
Jitterbit Studio
Composite Agent" } SCI[fab:fa-slack
Slack bot chat interface] JCA@{ shape: hex, label: "
Jitterbit API Manager
custom API" } AZR[Azure OpenAI REST call] AZM@{ shape: hex, label: "Azure OpenAI model" } SAG@{ shape: hex, label: "Specialized Agent" } SCI -->| Sends question| JCA JCA -->| Triggers request handler| JSP JSP -->| Query| AZR AZR --> AZM AZM --> AZR AZR -->| Routing decision| JSP JSP -->| Routed query| SAG SAG -->| Agent response| JSP JSP -->| Answer| SCI classDef plain fill:white, stroke:black, stroke-width:3px, rx:15px, ry:15px

Prerequisites

You need the following components to use this AI agent.

Harmony components

You must have a Jitterbit Harmony license with access to the following components:

Azure resources

You must have a Microsoft Azure subscription with permissions to create an Azure OpenAI resource with a deployed gpt-4o or gpt-4.1 model.

Tip

For pricing information, see the Azure OpenAI pricing page.

Supported endpoints

The AI agent incorporates the following endpoints. You can accommodate other systems by modifying the project's endpoint configurations and workflows.

Large language model (LLM)

The AI agent uses Azure OpenAI as the LLM provider for query analysis and routing decisions.

Chat interface

The AI agent uses Slack as the default chat interface for interacting with the Composite Agent.

If you want to use a different application as the chat interface, you can modify the project's workflows to integrate with your preferred platform.

Example prompts

The following table illustrates how the Composite Agent decides whether to respond to a query directly or delegate it to a specialized agent, based on the query's nature and the available specialized agents.

Query type Example query Composite Agent action
General knowledge "What is the capital of the USA?" Answered directly, as it is a general knowledge question that does not require routing to a specialized agent.
Specialized knowledge (Sales) "Give me the sales orders for customer ABC Inc." Routed to a specialized Sales Agent because the request requires access to sales-related data.

Installation, configuration, and operation

Follow these steps to install, configure, and operate this AI agent:

  1. Download customizations and install the Studio project.
  2. Review project workflows.
  3. Create Microsoft Azure resources.
  4. Prepare Jitterbit Cloud Datastore.
  5. Configure project variables.
  6. Test connections.
  7. Deploy the project.
  8. Create the Jitterbit custom API.
  9. Create the Slack app, test the Slack connection, and redeploy the project.
  10. Trigger the project workflows.
  11. Troubleshooting.

Download customizations and install the project

Follow these steps to download customization files and install the Studio project:

  1. Log in to the Harmony portal at https://login.jitterbit.com and open Marketplace.

  2. Locate the AI agent named Jitterbit Composite Agent. To locate the agent, you can use the search bar or, in the Filters pane under Type, select AI Agent to filter the display.

  3. Click the AI agent's Documentation link to open its documentation in a separate tab. Keep the tab open to refer back to after starting the project.

  4. Click Start Project to open a two-step configuration dialog to download customizations and import the AI agent as a Studio project.

    Note

    If you have not yet purchased the AI agent, Get this agent will be displayed instead. Click it to open an informational dialog, then click Submit to have a representative contact you about purchasing the AI agent.

  5. In configuration step 1, Download Customizations, you can use the following file to create the Slack app. Select the file and click Download Files:

    • Slack app manifest file: slack_app_manifest.json

    Tip

    The configuration dialog includes a warning not to import the template before applying endpoint customizations. That warning does not apply to this AI agent and you can ignore it. Follow the recommended order of steps in this documentation.

  6. Click Next.

  7. In configuration step 2, Create a New Project, select an environment where you want the Studio project to be created, then click Create Project.

  8. A progress dialog will be displayed. Once it indicates that the project is created, use the dialog link Go to Studio or open the project directly from the Studio Projects page.

Review project workflows

In the open Studio project, review the workflows and the descriptions in the following table to understand what each workflow does.

Workflow name Trigger type Description
Main - Slack API Request Handler API Handles incoming Slack bot requests.
Main - AI Agent Tools Logic Called by other workflows Analyzes queries and routes them to specialized agents.
Specialized Agent API Call Called by other workflows Executes API calls to specialized agents.
Utility - Bot Chat Cloud Datastore Called by other workflows Stores bot chat history for conversation context.

Main - Slack API Request Handler

This workflow manages incoming Slack bot requests. A Jitterbit custom API triggers the workflow each time a user interacts with the Slack bot chat interface. To learn how to configure the Jitterbit custom API, see Create the Jitterbit custom API.

Main - AI Agent Tools Logic

This workflow handles user queries received from the Main - Slack API Request Handler workflow. It manages the interaction with the LLM, captures the response, and routes the request to the appropriate specialized agent.

To add or remove specialized agents for routing, make the following modifications to this workflow:

  1. Modify function calls: Edit the Build Routing Tools Request script within the Add Tools Call operation to add or remove function calls.
  2. Update tools handling: Adjust the Tools Decision operation to manage and handle the addition or removal of tools, based on the functions defined in the Build Routing Tools Request script within the Add Tools Call operation.

Specialized Agent API Call

This workflow executes an API call to a specialized agent. The Main - AI Agent Tools Logic workflow determines the specific URL for the specialized agent. You can modify the Agent Call operation in this workflow to match the API requirements of your target agent.

Utility - Bot Chat Cloud Datastore

This workflow stores bot chat history, which provides conversation context to the LLM. The workflow uses Jitterbit Cloud Datastore for this purpose.

Create Microsoft Azure resources

Create the following Microsoft Azure resources and retain the information for configuring the AI agent. To create and manage these resources, you must have a Microsoft Azure subscription with the appropriate permissions.

Azure OpenAI resource

You must create an Azure OpenAI resource and deploy a gpt-4o or gpt-4.1 model through the Azure AI Foundry portal.

You need the deployment name, Azure OpenAI endpoint URL, and API key to configure the Azure OpenAI project variables. To find these values, follow these steps:

  1. In the Azure AI Foundry portal, open the specific OpenAI resource.

  2. On the landing page for the resource, find the values for the endpoint URL (azure_openai_base_url) and API key (azure_openai_api_key).

  3. In the navigation menu under Shared resources, select Deployments. The deployment name (Azure_OpenAI_Deployment_Name) appears in the list.

Prepare Jitterbit Cloud Datastore

Create two key storages in Jitterbit Cloud Datastore named askjb_user_session and askjb_q_and_a. Configure the fields with the names and types listed in the following tables.

As you add custom fields, use the tables to determine whether to toggle each field to Required in the Cloud Datastore user interface. The AlternativeKey and Value fields are default fields that you cannot remove or toggle.

You can leave blank the values of fields that the system auto-populates or does not use.

User session storage (askjb_user_session)

This key storage maintains session information for users.

Name Type Required Value definition Description
Key Text Yes Auto-populated The email address of the user. The system auto-generates this value during execution. No manual entry is required.
AlternativeKey Text No Auto-populated The session for the user. The system auto-generates this value during execution. No manual entry is required.
Value Text No Not used Not used.

Chat history (askjb_q_and_a)

This key storage retains bot chat history to provide conversation context for the LLM. It stores question and answer history. The system automatically enters all data during workflow execution.

Name Type Required Value definition Description
Key Text Yes Auto-populated The unique identifier that the system assigns to a message.
AlternativeKey Text No Auto-populated The unique identifier that the system assigns to a chat session.
Value Text No Not used Not used.
slackChannel Text Yes Auto-populated The Slack channel ID from which the user sends the message.
User Text Yes Auto-populated The Slack username of the user who sends the message.
FirstName Text No Auto-populated The first name of the user who sends the message.
LastName Text No Auto-populated The last name of the user who sends the message.
Email Text Yes Auto-populated The email address of the user who sends the message.
MessageTimestampText Text Yes Auto-populated The timestamp text of the message.
UserQuestion Big Text Yes Auto-populated The question or message that the user submits to the AI agent.
AIAnswer Big Text Yes Auto-populated The response that the AI agent generates for the user's question.
ai_reformulate_question Big Text No Auto-populated The user's question after the AI reformulates or rephrases it to improve understanding.

Configure project variables

In the Studio project, you must set values for the following project variables.

To configure project variables, use the project's actions menu to select Project Variables. This opens a drawer along the bottom of the page where you can review and set the values.

Cloud Datastore

Variable name Description
Cloud_Datastore_Access_Token Cloud Datastore access token for authentication.

Specialized agents configuration

The following variables configure the first specialized agent (Agent1):

Variable name Description
Agent1_URL The base URL endpoint for communicating with the first specialized agent. The Composite Agent uses this URL to send routed queries and receive responses.
Agent1_API_Key_Header The name of the HTTP header that the Composite Agent uses to send the API key when making requests to the first specialized agent.
Agent1_API_Key The API key for the Composite Agent to access the first specialized agent, if authentication is required.
Agent1_Function_Description A description of the first specialized agent's role and purpose. The LLM uses this description to determine whether to route a user query to this agent.

The following variables configure the second specialized agent (Agent2):

Variable name Description
Agent2_URL The base URL endpoint for communicating with the second specialized agent. The Composite Agent uses this URL to send routed queries and receive responses.
Agent2_API_Key_Header The name of the HTTP header that the Composite Agent uses to send the API key when making requests to the second specialized agent.
Agent2_API_Key The API key for the Composite Agent to access the second specialized agent, if authentication is required.
Agent2_Function_Description A description of the second specialized agent's role and purpose. The LLM uses this description to determine whether to route a user query to this agent.

The following variable configures testing mode:

Variable name Description
Testing A Boolean flag that indicates whether the Composite Agent operates in test mode. When set to true, the Composite Agent returns a simulated response instead of making an API call to the actual agent.

Azure OpenAI

Variable name Description
Azure_OpenAI_Deployment_Name The name of the Azure OpenAI deployment that you use to access the model.
azure_openai_base_url The base URL for accessing the Azure OpenAI service. Example: https://<your-resource-name>.openai.azure.com.
azure_openai_api_key The API key that you use to authenticate requests to the Azure OpenAI service.
ai_prompt The system prompt for the LLM that defines routing behavior. This prompt instructs the model to select one function (specialized agent) based on the user's query from a list of available functions. Special functions include NeedClarificationFunction for unclear queries and AnswerGeneralQuestion for general knowledge questions.

Slack

Variable name Description
bot_oauth_user_token The Slack bot token that you obtain after creating the Slack app. You use this token for the Bot user OAuth access token in the Slack connection.

Note

You create the Slack app in a later step. You can leave this variable blank for now.

Test connections

Test the endpoint configurations to verify connectivity using the defined project variable values.

To test connections, go to the design component palette's Project endpoints and connectors tab, hover over each endpoint, and click Test.

Deploy the project

Deploy the Studio project.

To deploy the project, use the project's actions menu to select Deploy.

Create the Jitterbit custom API

Create a custom API for the Slack Bot Request operation in the Main - Slack API Request Handler workflow.

To create the API, use the operation's actions menu to select Publish as an API or Publish as an API using AI.

Configure the following settings:

Setting Value
Method POST
Response Type System Variable

Save the API service URL of the published API for use when creating the Slack app. To find the service URL, go to the API details drawer on the Services tab, hover over the service's Actions column, and click Copy API service URL.

Create the Slack app, test the connection, and redeploy the project

To create the chat interface in Slack, create a Slack app using the Slack app manifest file provided with this AI agent's customization files. Alternatively, create the app from scratch.

If you use the provided Slack app manifest file (slack_app_manifest.json), replace the following placeholders with your own configuration values.

Placeholder Description
{{Replace with Slack bot name}} The name you want your Slack bot to have, as displayed to users. Replace this value in two places in the manifest.
{{Replace with Jitterbit API URL}} The service URL of the Jitterbit custom API you created in Create the Jitterbit custom API.

After you install the Slack app, obtain its bot token.

Open the project variables configuration again and enter the bot token for the bot_oauth_user_token project variable value.

After you set the bot token, test the Slack connection and redeploy the project.

Trigger the project workflows

To use the Composite Agent, send a direct message to the Slack app. This triggers the Main - Slack API Request Handler workflow through the Jitterbit custom API.

All other workflows run automatically as part of the main workflow and are not intended to run independently.

Troubleshooting

If you encounter issues, review the following logs for detailed troubleshooting information:

For additional assistance, contact Jitterbit support.