Client-side API

Starting an AI Agent

Starting an agent within your Web application involves calling the profound.ai.startAgent() API and passing a configuration object parameter. For example:

profound.ai.startAgent({ agent: "HR.agent.json", embed: true });

After an agent is started, you can use various methods of profound.ai.agent to control it. For example:

profound.ai.agent.hide(); // Hide the agent profound.ai.agent.show(); // Show the agent

It is also possible to manage multiple instances of an agent by using the profound.ai.Chat class. For example:

// Show the Sales Assistant initially const salesAgent = new profound.ai.Chat(); salesAgent.init({ agent: "sales.agent.json", heading: "Sales Assistant" }); salesAgent.show(); // Now, hide the Sales Assistant and show the Support Assistant salesAgent.hide(); const supportAgent = new profound.ai.Chat(); supportAgent.init({ agent: "support.agent.json", heading: "Support Assistant" }); supportAgent.show();

Configuration Properties

agent

Specifies the server-side definition file for the AI Agent. The file should end in “.agent.json”.

embed

When set to true, instead of starting the agent interface immediately, a chat icon is rendered in the bottom right corner of the application.

heading

Overrides the heading text for the chat interface.

greeting

Overrides the greeting message to show at the top of the chat interface.

server

Optional URL of the Profound AI server. This property should be specified if the application is running on a server is that is separate from Profound AI.

jwt

Provides a JSON Web Token to facilitate authentication into Profound AI. The token can be supplied either as a static value to be used at the start of an agent conversation or as a function. When provided as a function, the token will be re-evaluated with every agent interaction.

theme

Sets the theme of the chat interface (e.g., "light" or "dark").

brandColor

Overrides the brand color used in the chat interface. If a brand color is not specified, the default CSS rules are used.

container

The DOM element where the agent user interface will be created. If not specified, the document body is used.

closeButton

Boolean indicating if the close button should be present.

closeTitle

The tool tip text for the close button.

sendTitle

The tool tip text for the send button.

embedIconTitle

The tool tip text for the embed icon.

promptPlaceHolder

Placeholder text for the prompt box.

pollInterval

Time interval for polling in milliseconds.

loaderMessage

Default message displayed by the loader.

data

Variable instruction data that is specified as an object of key/value pairs or a function that returns an object of key/value pairs. The values can either be simple values, such as strings or numbers, or more complex values, such as a list of records. See Application Variables under Agent Guidance for details on how utilize variable data. Examples:

Methods

init(config)

Initializes the agent with the given configuration.

show()

Displays the agent interface.

hide()

Hides the agent interface.

add(info)

Adds a message to the chat UI. The info object should contain these properties:

  • message (string)

  • type (string) - The type controls both the functionality and the look and feel. It corresponds to the equivalent CSS class. Values can include “user-message”, “agent-response”, “greeting”.

clear()

Clears the chat messages and starts a new thread with the agent.

setTheme(newTheme)

Sets the theme of the chat interface (e.g., "light" or "dark").

setBrandColor(newBrandColor)

Sets the brand color of the chat interface. If a brand color is not specified or a null value is passed, the default CSS rules are used for the brand color.

send()

Sends the message from the prompt box to the Profound AI server.

poll()

Polls the server for responses.

showLoader(loaderMessage)

Displays the loading animation. If a loader message is not provided as a parameter, the default loader message is used.

hideLoader()

Hides the loading animation.

isLoading()

Checks if the loader is currently displayed, which indicates that the server is currently processing the user’s request.

removeEmbedIcon()

Removes the embedded chat icon in the corner of the screen. You can use this method when navigating away from a screen in a single page application. The method is accessible both from the profound.ai.agent and the profound.ai client-side objects. The following 2 method calls are equivalent:

destroy()

Destroys the chat user interface and cleans up resources.