diff --git a/quill/channels/discord-bot.mdx b/quill/channels/discord-bot.mdx index 6c7a4d99e6..b06f41201f 100644 --- a/quill/channels/discord-bot.mdx +++ b/quill/channels/discord-bot.mdx @@ -216,7 +216,7 @@ The new channel appears in the **Channels** section: 2. **Status** **Active**: the channel is enabled; **Disabled**: the channel is paused. Pausing and resuming a channel is described in - [Dashboard: Channels view](../dashboard/channels-view.mdx#pausing-and-resuming-a-channel). + [App: Channels view](../dashboard/manage-an-app/channels-view.mdx#pausing-and-resuming-a-channel). 3. **Active links** Embed links belong to web widget channels; a Discord bot channel has none, so the column shows a dash. @@ -340,7 +340,7 @@ A constant value suits a channel whose users all share the value, like the bot a Once added, the channel is managed from its details view, described in -[Dashboard: Channels view](../dashboard/channels-view.mdx#the-channel-s-details-view): the view's header carries the +[App: Channels view](../dashboard/manage-an-app/channels-view.mdx#the-channel-s-details-view): the view's header carries the **Pause**/**Resume** button and the **⋮** menu with **Edit** and **Delete**, common to every channel type, and the tabs below the header are specific to the channel type. @@ -360,8 +360,8 @@ To pause or resume the channel, click **Pause**/**Resume** in the header; to del ![Pause and the channel's menu in the details view's header](./assets/discord-bot_channel-menu.png) Both actions are explained in the Channels view article, in -[Pausing and resuming a channel](../dashboard/channels-view.mdx#pausing-and-resuming-a-channel) and -[Deleting a channel](../dashboard/channels-view.mdx#deleting-a-channel). Each of them also has a Discord side, explained here: +[Pausing and resuming a channel](../dashboard/manage-an-app/channels-view.mdx#pausing-and-resuming-a-channel) and +[Deleting a channel](../dashboard/manage-an-app/channels-view.mdx#deleting-a-channel). Each of them also has a Discord side, explained here: * A paused bot stops answering, and Quill closes its connection to Discord, so the bot appears offline on Discord. Messages users send while the channel is paused do not reach Quill, and will not be answered when the channel is resumed. diff --git a/quill/channels/overview.mdx b/quill/channels/overview.mdx index 7eda6ebcc3..cb00824eeb 100644 --- a/quill/channels/overview.mdx +++ b/quill/channels/overview.mdx @@ -61,7 +61,8 @@ A channel's type is selected in the **Add channel** menu, described in [Adding a -A channel is added for one of the app's agents, and carries conversations to this agent alone. +A channel is added for one of the app's [agents](../dashboard/manage-an-app/app-agents-view.mdx), and carries +conversations to this agent alone. The following holds for channels of every type: * **An agent can serve several channels at once.** @@ -78,16 +79,16 @@ The following holds for channels of every type: Channels of every type are added and managed in the same places of Quill's management dashboard, described in -[Dashboard: Channels view](../dashboard/channels-view.mdx). +[App: Channels view](../dashboard/manage-an-app/channels-view.mdx). * **Adding a channel starts with selecting the channel's type in the Add channel menu.** - The menu opens from the [Channels view](../dashboard/channels-view.mdx#adding-a-channel), from the - [channels list in the app's Overview](../dashboard/channels-view.mdx#an-additional-entry-point-the-channels-list-in-the-overview), + The menu opens from the [Channels view](../dashboard/manage-an-app/channels-view.mdx#adding-a-channel), from the + [channels list in the app's Overview](../dashboard/manage-an-app/channels-view.mdx#an-additional-entry-point-the-channels-list-in-the-overview), and at the last stage of the [Add agent wizard](../getting-started/adding-an-ai-agent.mdx#saving-the-agent), right after an agent is created. Selecting a type opens the type's form, described in the type's article. * **Once added, a channel is managed from its details view.** - The [details view](../dashboard/channels-view.mdx#the-channel-s-details-view) opens from the channel's box in the Channels view. + The [details view](../dashboard/manage-an-app/channels-view.mdx#the-channel-s-details-view) opens from the channel's box in the Channels view. The view's header carries the **Pause**/**Resume** button and the **⋮** menu with **Edit** and **Delete**, common to every channel type, and the tabs below the header are specific to the channel type. The tabs and the other type-specific parts of the view are described in the type's article. @@ -96,15 +97,16 @@ Channels of every type are added and managed in the same places of Quill's manag -Some agents have **parameters**: values the agent's queries require, and that must come from the channel rather than be chosen by -the LLM, like the phone number of the customer whose orders the agent looks up. +Some agents have [parameters](../dashboard/manage-an-app/app-agents-view.mdx#agent-parameters): values the agent's +queries require, and that must come from the channel rather than be chosen by the LLM, like the phone number of the +customer whose orders the agent looks up. Agent parameters are bound by the channel, and the source of a parameter's value depends on the channel type: * A **bot channel** binds each parameter when the channel is added, to a constant value or to a selected detail of each user who sends the channel a message; the user details that can be bound differ by platform, and are listed in each bot's article. A parameter left unbound, e.g., a parameter added to the agent after the channel was added, stops the bot from answering until the parameter is bound in the **Parameters** tab of the - [channel's details view](../dashboard/channels-view.mdx#the-channel-s-details-view). + [channel's details view](../dashboard/manage-an-app/channels-view.mdx#the-channel-s-details-view). * A **chat widget** binds the parameters into each embed link [when the link is generated](../getting-started/adding-a-chat-widget.mdx#setting-the-link-limits), and a link cannot be generated until every parameter has a value. @@ -150,9 +152,9 @@ Agent parameters are bound by the channel, and the source of a parameter's value gets the reply "I can only read text messages right now." * **Pausing a channel takes it out of service; deleting a channel removes it.** Both actions are described in the Channels view article, in - [Pausing and resuming a channel](../dashboard/channels-view.mdx#pausing-and-resuming-a-channel) and - [Deleting a channel](../dashboard/channels-view.mdx#deleting-a-channel). The conversations a deleted channel carried remain - available in the app's **Conversations** view. + [Pausing and resuming a channel](../dashboard/manage-an-app/channels-view.mdx#pausing-and-resuming-a-channel) and + [Deleting a channel](../dashboard/manage-an-app/channels-view.mdx#deleting-a-channel). The conversations a deleted channel carried remain + available in the app's [Conversations view](../dashboard/manage-an-app/conversations-view.mdx). What each action means for the channel's users, and for a bot on its platform, depends on the channel type and is described in the type's article. * **The messages a channel sends on its own have a default text set by Quill.** diff --git a/quill/channels/slack-bot.mdx b/quill/channels/slack-bot.mdx index 8acd232b84..a6256d4628 100644 --- a/quill/channels/slack-bot.mdx +++ b/quill/channels/slack-bot.mdx @@ -335,7 +335,7 @@ Back in Quill, you can now see the new channel in the Overview's **Channels** se 2. **Status** **Active**: the channel is enabled; **Disabled**: the channel is paused. Pausing and resuming a channel is described in - [Dashboard: Channels view](../dashboard/channels-view.mdx#pausing-and-resuming-a-channel). + [App: Channels view](../dashboard/manage-an-app/channels-view.mdx#pausing-and-resuming-a-channel). 3. **Active links** Embed links belong to web widget channels; a Slack bot channel has none, so the column shows a dash. @@ -447,7 +447,7 @@ A constant value suits a channel whose users all share the value, like the bot a Once added, the channel is managed from its details view, described in -[Dashboard: Channels view](../dashboard/channels-view.mdx#the-channel-s-details-view): the view's header carries the +[App: Channels view](../dashboard/manage-an-app/channels-view.mdx#the-channel-s-details-view): the view's header carries the **Pause**/**Resume** button and the **⋮** menu with **Edit** and **Delete**, common to every channel type, and the tabs below the header are specific to the channel type. @@ -467,8 +467,8 @@ To pause or resume the channel, click **Pause**/**Resume** in the header; to del ![Pause and the channel's menu in the details view's header](./assets/slack-bot_channel-menu.png) Both actions are explained in the Channels view article, in -[Pausing and resuming a channel](../dashboard/channels-view.mdx#pausing-and-resuming-a-channel) and -[Deleting a channel](../dashboard/channels-view.mdx#deleting-a-channel). Each of them also has a Slack side, explained here: +[Pausing and resuming a channel](../dashboard/manage-an-app/channels-view.mdx#pausing-and-resuming-a-channel) and +[Deleting a channel](../dashboard/manage-an-app/channels-view.mdx#deleting-a-channel). Each of them also has a Slack side, explained here: * A paused bot stops answering. Nothing changes on Slack: the bot remains installed, and Slack keeps delivering the users' messages, which Quill discards. diff --git a/quill/channels/telegram-bot.mdx b/quill/channels/telegram-bot.mdx index 2dc5c05dfa..ea929ea92d 100644 --- a/quill/channels/telegram-bot.mdx +++ b/quill/channels/telegram-bot.mdx @@ -170,7 +170,7 @@ The new channel appears in the **Channels** section: 2. **Status** **Active**: the channel is enabled; **Disabled**: the channel is paused. Pausing and resuming a channel is described in - [Dashboard: Channels view](../dashboard/channels-view.mdx#pausing-and-resuming-a-channel). + [App: Channels view](../dashboard/manage-an-app/channels-view.mdx#pausing-and-resuming-a-channel). 3. **Active links** Embed links belong to web widget channels; a Telegram bot channel has none, so the column shows a dash. @@ -214,7 +214,7 @@ A user can also start afresh at any moment by sending `/clear`. The bot confirms In the chat above, the question answered before `/clear` can no longer be answered after it, since the list the question referred to is no longer part of the conversation. -Clearing also deletes the conversation from the app's **Conversations** view in the management dashboard. +Clearing also deletes the conversation from the app's [Conversations view](../dashboard/manage-an-app/conversations-view.mdx) in the management dashboard. @@ -320,7 +320,7 @@ A new channel, even one added for the same bot, knows nothing of earlier shares Once added, the channel is managed from its details view, described in -[Dashboard: Channels view](../dashboard/channels-view.mdx#the-channel-s-details-view): the view's header carries the +[App: Channels view](../dashboard/manage-an-app/channels-view.mdx#the-channel-s-details-view): the view's header carries the **Pause**/**Resume** button and the **⋮** menu with **Edit** and **Delete**, common to every channel type, and the tabs below the header are specific to the channel type. @@ -340,8 +340,8 @@ To pause or resume the channel, click **Pause**/**Resume** in the header; to del ![Pause and the channel's menu in the details view's header](./assets/telegram-bot_channel-menu.png) Both actions are explained in the Channels view article, in -[Pausing and resuming a channel](../dashboard/channels-view.mdx#pausing-and-resuming-a-channel) and -[Deleting a channel](../dashboard/channels-view.mdx#deleting-a-channel). Each of them also has a Telegram side, explained here: +[Pausing and resuming a channel](../dashboard/manage-an-app/channels-view.mdx#pausing-and-resuming-a-channel) and +[Deleting a channel](../dashboard/manage-an-app/channels-view.mdx#deleting-a-channel). Each of them also has a Telegram side, explained here: * A paused bot stops answering, and messages users send meanwhile are held by Telegram for up to 24 hours, to be answered if the channel is resumed within this time. diff --git a/quill/dashboard/manage-an-app/app-agents-view.mdx b/quill/dashboard/manage-an-app/app-agents-view.mdx new file mode 100644 index 0000000000..4b292ae9d4 --- /dev/null +++ b/quill/dashboard/manage-an-app/app-agents-view.mdx @@ -0,0 +1,359 @@ +--- +title: "App: Agents view" +sidebar_label: Agents view +sidebar_position: 3 +description: "The Agents view of a Quill app: the agents that answer your users, listed with their status and activity, and an agent's configuration, where its basic settings, parameters, query tools, and actions are modified, and the agent is tested, saved, or deleted." +--- + +import Admonition from '@theme/Admonition'; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +import Panel from "@site/src/components/Panel"; +import ContentFrame from "@site/src/components/ContentFrame"; + +# App: Agents view + + +* An [AI agent](../../overview.mdx#ai-agent) answers your users from the app's internal database. + The **Agents** view lists the agents you already created, with their status and activity, and allows you to add new + agents, open an agent to modify and test its configuration, and delete an agent. + +* The Agents view is opened from the app's sidebar, where it is listed under the **Database** group. + The app's [Overview](../../dashboard/manage-an-app/app-overview.mdx) page also lists the existing agents, + to provide an overall view of the app's activity, agents, and channels. + +* An agent is added using the **Add agent** wizard, described in + [Getting started: Adding an AI agent](../../getting-started/adding-an-ai-agent.mdx). + +* In this article: + * [Opening the Agents view](#opening-the-agents-view) + * [The agent's configuration](#the-agent-s-configuration) + * [Basic settings](#basic-settings) + * [Agent parameters](#agent-parameters) + * [Agent tools](#agent-tools) + * [Agent actions](#agent-actions) + * [Deleting an agent](#deleting-an-agent) + * [An additional entry point: the agents list in the Overview](#an-additional-entry-point-the-agents-list-in-the-overview) + + + + + +To open the Agents view, select the app in Quill's management dashboard and click **Agents** in the sidebar, under **Database**. + +![The Agents view](./assets/app-agents-view_agents-view.png) + +1. **Agents** + Open the Agents view. +2. **Add agent** + Add an agent to the app. See + [Getting started: Adding an AI agent](../../getting-started/adding-an-ai-agent.mdx). +3. **The agents list** + Lists the details and actions available for each agent, one row per agent. +4. **Agent information** + Each row shows the following details for a single agent: + * **Agent name** + The agent's name. + * **Status** + The agent's status, **Active** or **Disabled**. + * **Model** + The chat model the agent uses, taken from the AI connection string set for the agent. + A dash is shown when the model cannot be resolved. + * **Last run** + The hour at which the agent's most recent conversation started. + This time does not change while an earlier conversation continues. + * **Conversations** + The number of conversations the agent has held. + * **Prompts** + The number of messages the users have sent the agent. + * **Tokens** + The number of tokens the agent's conversations have consumed. +5. **Edit agent** + Review and modify the agent's configuration. See [The agent's configuration](#the-agent-s-configuration). +6. **Delete agent** + Delete the agent from the app. See [Deleting an agent](#deleting-an-agent). + + + + + +An agent's behaviour is set by its configuration. +To review and modify an agent's configuration, click the agent's pencil icon in the agents list. + +![The agent's configuration](./assets/app-agents-view_agent-view.png) + +You can expand or collapse each configuration section: [Basic settings](#basic-settings), +[Agent parameters](#agent-parameters), [Agent tools](#agent-tools), and [Agent actions](#agent-actions). + +1. **The agent's details** + The agent's name and status, the model it uses, and the channels the agent serves. +2. **The agent's menu** + Holds a single entry, **Delete**. See [Deleting an agent](#deleting-an-agent). +3. **Basic settings** + The agent's name, AI connection string, and system prompt. + + + + ### Basic settings + + ![Basic settings](./assets/app-agents-view_agent-view_basic-settings.png) + + * **A. Agent name** + The **Agent name** field is disabled; it cannot be modified since the agent's identifier is derived from its name + and is set once when the agent is created. + * **B. Connection string** + The [AI connection string](../../dashboard/ai-connection-strings.mdx) that provides the chat model the agent uses. + You can select the connection string the agent uses, remove the current string using the clear icon, or click + **Add connection string** to define a new string. + * **C. System prompt** + Define the instructions the agent follows throughout a conversation. + + + +4. **Agent parameters** + Values that the agent's queries can use. Each value is provided when a conversation starts, and the LLM cannot + override it. + + + + ### Agent parameters + + Expanding the **Agent parameters** section shows the parameters defined for the agent. + The image below lists a single parameter, `customerPhone`. + + ![Agent parameters](./assets/app-agents-view_agent-parameters.png) + + Adding or editing a parameter reveals the following fields: + + ![Configure parameter](./assets/app-agents-view_agent-parameters_configure.png) + + * **A. Parameter name** + The name by which agent queries refer to the parameter. + * **B. Parameter type** + Select a type for the parameter's value: **String**, **Number**, **Boolean**, **String[]**, **Number[]**, **Boolean[]**, + **Any**, or **Null**. + Quill checks the parameter's value against the selected type each time a conversation starts, and the conversation + will not start if the value is of another type. + **Any** applies no type validation. + * **C. Description (optional)** + A description of the parameter's content. + The description is passed to the LLM along with the parameter's value, unless **Send to model** (see below) is set + to **Off**. + * **D. Forbid model generation** + Select whether the LLM may generate a value for this parameter when another agent uses this agent as a sub-agent. + **Default**: the LLM may generate a value for the parameter. + **Forbid model generation**: the LLM may not generate a value. The value can only be inherited from a parameter of + the same name in the calling agent, and the call will fail if the calling agent has no such parameter. + * **E. Send to model** + Set whether the parameter's value is included in the text sent to the LLM, + **On** (default): the parameter's value is sent to the LLM, and the agent's queries receive the value as well. + **Off**: the parameter's value is **not** sent to the LLM. The agent's queries still receive the value. + + + +5. **Agent tools** + Query tools you provide in this section can be used by the agent to query Quill's internal database. + The LLM that the agent uses knows of these tools and is free to use them as needed. + The LLM **cannot** access Quill's database directly: to retrieve data from the database, it must request the agent + to use a query tool. + + + + ### Agent tools + + Expanding the **Agent tools** section shows the query tools defined for the agent. + The image below lists two such tools, `getCustomerByPhone` and `findCategoryProducts`. + + ![Agent tools](./assets/app-agents-view_agent-tools.png) + + Adding or editing a query tool reveals the following fields: + + ![Configure query tool](./assets/app-agents-view_agent-tools_configure.png) + + * **A. Tool name** + The name the LLM uses to trigger the query. + A name can be used only once; you cannot give the same name to two query tools, or to a query tool and an + [action](#agent-actions). + * **B. Description** + A description of the data the query returns. + * **C. Query** + Query tools can only **read** from Quill's internal database, never write into it. + When a `$name` placeholder is included in the query, Quill replaces the placeholder at runtime, each time the query + tool is called, with the value set by an agent parameter of the same name. + When no agent parameter carries the placeholder's name, the value is taken from the parameters the LLM provides + when it requests the query, defined in **D** below. + The query will fail if neither an agent parameter nor the LLM provides a value for the placeholder. + * **D. Sample parameters object / Parameters JSON schema** + Define, either as a **sample object** or as a **JSON schema**, the parameters the LLM provides when it + requests this query. + Defining a sample object is usually easier, since you can describe the parameters in natural language. + e.g., the sample object and the JSON schema in the example below define two parameters, `customerPhone` and + `maxOrders`. + + + + ```json + { + "customerPhone": "The phone number the customer gave", + "maxOrders": "The number of recent orders to return" + } + ``` + + + ```json + { + "type": "object", + "properties": { + "customerPhone": { + "type": "string", + "description": "The phone number the customer gave" + }, + "maxOrders": { + "type": "number", + "description": "The number of recent orders to return" + } + }, + "required": ["customerPhone", "maxOrders"] + } + ``` + + + + Either a sample object or a JSON schema must be defined. If you define both, the schema will be applied. + * **E. Allow model queries** + Select whether the LLM is allowed to run this query tool. + **True**: the LLM can run the tool whenever needed. + **False**: this tool is not offered to the LLM at all. + * **F. Add to initial context** + Select when Quill runs this query tool. + **Default**: run this tool only when the LLM requests its query. + **True**: also run this tool before the conversation starts, and hand the results to the LLM. + e.g., a query that returns the list of product categories can be added to the initial context, so the LLM will + have this data before the first question arrives. + + + + A query that runs before the conversation starts cannot take values from the LLM, since the LLM has not been + called yet. + + + + + +6. **Agent actions** + The agent can use **actions** you define here, that ask Quill to call systems outside Quill. + + * The LLM that the agent uses knows of these actions and is free to apply them as needed. + * The LLM **cannot** call an outside system directly: it can only request an action from the agent, providing values + for any defined parameters, so Quill will make the call. + * An outside system's response is passed back to the LLM as a text, indicating whether the call succeeded, the + status code, notable headers, the response body (up to the set limit), and, when the body is cut, a truncation + marker pointing it out. + + e.g., during a conversation with one of your users, it may turn out that a support ticket should be opened on an + outside system. The LLM will request the `create_ticket` action, Quill will call the address configured for it, + and once the response arrives the LLM will continue the conversation with your user. + + + + ### Agent actions + + Expanding the **Agent actions** section shows the actions defined for the agent. + The image below lists a single action, `create_ticket`. + + ![Agent actions](./assets/app-agents-view_agent-actions.png) + + Adding or editing an action reveals the following fields: + + ![Configure action](./assets/app-agents-view_agent-actions_configure.png) + + * **A. Action name** + The name the LLM uses to trigger this action. + A name can be used only once; you cannot give the same name to two actions, or to an action and a query tool. + * **B. Description** + A description of the situation in which the agent should trigger this action. + * **C. Sample parameters object / Parameters JSON schema** + Define, either as a **sample object** or as a **JSON schema**, the parameters the LLM provides when it triggers + this action. + e.g., + + + + ```json + { + "customerPhone": "The phone number the customer gave", + "issueSummary": "A short summary of the issue the customer described" + } + ``` + + + ```json + { + "type": "object", + "properties": { + "customerPhone": { + "type": "string", + "description": "The phone number the customer gave" + }, + "issueSummary": { + "type": "string", + "description": "A short summary of the issue the customer described" + } + }, + "required": ["customerPhone", "issueSummary"] + } + ``` + + + * **D. Webhook URL** + The address Quill calls when the agent triggers the action. + The address must be absolute, and start with `http://` or `https://`. + * **E. Secret** + An optional value Quill sends with every call, for the receiver to check. + * **F. Max response size (optional)** + The number of response bytes passed back to the agent, 4096 by default and 256 KB at most. + + + +7. **Cancel** + Leave the configuration without saving your changes. +8. **Test agent** + Chat with the agent to try the configuration currently in the form, unsaved changes included. + The button stays disabled until the agent name, the system prompt, and the connection string are all set. +9. **Save changes** + Save the modified configuration. + A save attempted while any configuration section still requires your attention opens all four sections, and marks + each section that needs it with an error icon. + + + + + +Deleting an agent removes it from the app irrevocably along with its configuration and the addresses and secrets set +for its actions. +An agent is deleted using the trash icon in the [agents list](#opening-the-agents-view), or the **Delete** entry in the +agent's menu described in [The agent's configuration](#the-agent-s-configuration). A confirmation is asked first. + +An agent cannot be deleted as long as any channel is bound to it; delete the agent's channels from the +[Channels view](../../dashboard/manage-an-app/channels-view.mdx) first, and only then the agent. + +![Deleting an agent that channels are bound to](./assets/app-agents-view_delete-refused.png) + +The conversations the agent has held are kept, and remain available in the app's [Conversations view](../../dashboard/manage-an-app/conversations-view.mdx). + + + + + +Similarly to the Agents view discussed here, the app's [Overview](../../dashboard/manage-an-app/app-overview.mdx) page +lists your existing agents and allows you to add an agent or edit an existing agent's configuration. + +![The agents list in the Overview](./assets/app-agents-view_overview-agents.png) + +1. **Add agent** + Start the [Add agent wizard](../../getting-started/adding-an-ai-agent.mdx) to add an agent to the app. +2. **The agents list** + Each row lists a single agent, allowing you to [see the agent's details](#opening-the-agents-view), + [modify its configuration](#the-agent-s-configuration), or [delete the agent](#deleting-an-agent). + + diff --git a/quill/dashboard/manage-an-app/app-overview.mdx b/quill/dashboard/manage-an-app/app-overview.mdx index 748d51a1be..bf108d7b2a 100644 --- a/quill/dashboard/manage-an-app/app-overview.mdx +++ b/quill/dashboard/manage-an-app/app-overview.mdx @@ -98,7 +98,7 @@ A chart is not shown when the selected period contains only one bucket. 2. **Conversations** The number of conversations users started with any of this app's agents. A conversation is a single chat thread between a user and an agent, carried over a [channel](../../overview.mdx#channels). - {/* TODO: add a link to the app-conversations article when merged ... Learn more in [App: conversations](../todo..) */} + Learn more in [App: Conversations view](../../dashboard/manage-an-app/conversations-view.mdx). {/* TODO: add a link to the channel overview article when merged instead of to the general overview */} 3. **Prompts** @@ -135,7 +135,9 @@ A chart is not shown when the selected period contains only one bucket. ![App overview - Agents](./assets/app-overview-3.png) The table lists every agent configured in the app. -If the app has no agents, the table displays **No agents yet.** +If the app has no agents, the table displays **No agents yet.** +The agents themselves are added, modified and deleted in the +[App: Agents view](../../dashboard/manage-an-app/app-agents-view.mdx). 1. **Agent name** The name assigned to the agent when it was created. diff --git a/quill/dashboard/manage-an-app/assets/app-agents-view_agent-actions.png b/quill/dashboard/manage-an-app/assets/app-agents-view_agent-actions.png new file mode 100644 index 0000000000..1c22cdfc7b Binary files /dev/null and b/quill/dashboard/manage-an-app/assets/app-agents-view_agent-actions.png differ diff --git a/quill/dashboard/manage-an-app/assets/app-agents-view_agent-actions_configure.png b/quill/dashboard/manage-an-app/assets/app-agents-view_agent-actions_configure.png new file mode 100644 index 0000000000..2809c5bdb9 Binary files /dev/null and b/quill/dashboard/manage-an-app/assets/app-agents-view_agent-actions_configure.png differ diff --git a/quill/dashboard/manage-an-app/assets/app-agents-view_agent-parameters.png b/quill/dashboard/manage-an-app/assets/app-agents-view_agent-parameters.png new file mode 100644 index 0000000000..fdfd353401 Binary files /dev/null and b/quill/dashboard/manage-an-app/assets/app-agents-view_agent-parameters.png differ diff --git a/quill/dashboard/manage-an-app/assets/app-agents-view_agent-parameters_configure.png b/quill/dashboard/manage-an-app/assets/app-agents-view_agent-parameters_configure.png new file mode 100644 index 0000000000..8e5598bf3c Binary files /dev/null and b/quill/dashboard/manage-an-app/assets/app-agents-view_agent-parameters_configure.png differ diff --git a/quill/dashboard/manage-an-app/assets/app-agents-view_agent-tools.png b/quill/dashboard/manage-an-app/assets/app-agents-view_agent-tools.png new file mode 100644 index 0000000000..c20372af2b Binary files /dev/null and b/quill/dashboard/manage-an-app/assets/app-agents-view_agent-tools.png differ diff --git a/quill/dashboard/manage-an-app/assets/app-agents-view_agent-tools_configure.png b/quill/dashboard/manage-an-app/assets/app-agents-view_agent-tools_configure.png new file mode 100644 index 0000000000..bb6423bd28 Binary files /dev/null and b/quill/dashboard/manage-an-app/assets/app-agents-view_agent-tools_configure.png differ diff --git a/quill/dashboard/manage-an-app/assets/app-agents-view_agent-view.png b/quill/dashboard/manage-an-app/assets/app-agents-view_agent-view.png new file mode 100644 index 0000000000..7f053e81cd Binary files /dev/null and b/quill/dashboard/manage-an-app/assets/app-agents-view_agent-view.png differ diff --git a/quill/dashboard/manage-an-app/assets/app-agents-view_agent-view_basic-settings.png b/quill/dashboard/manage-an-app/assets/app-agents-view_agent-view_basic-settings.png new file mode 100644 index 0000000000..8f640ff864 Binary files /dev/null and b/quill/dashboard/manage-an-app/assets/app-agents-view_agent-view_basic-settings.png differ diff --git a/quill/dashboard/manage-an-app/assets/app-agents-view_agents-view.png b/quill/dashboard/manage-an-app/assets/app-agents-view_agents-view.png new file mode 100644 index 0000000000..a446fdf0fb Binary files /dev/null and b/quill/dashboard/manage-an-app/assets/app-agents-view_agents-view.png differ diff --git a/quill/dashboard/manage-an-app/assets/app-agents-view_delete-refused.png b/quill/dashboard/manage-an-app/assets/app-agents-view_delete-refused.png new file mode 100644 index 0000000000..0d5e4c39f2 Binary files /dev/null and b/quill/dashboard/manage-an-app/assets/app-agents-view_delete-refused.png differ diff --git a/quill/dashboard/manage-an-app/assets/app-agents-view_overview-agents.png b/quill/dashboard/manage-an-app/assets/app-agents-view_overview-agents.png new file mode 100644 index 0000000000..ca17334fcd Binary files /dev/null and b/quill/dashboard/manage-an-app/assets/app-agents-view_overview-agents.png differ diff --git a/quill/dashboard/assets/channels-view_box-actions.png b/quill/dashboard/manage-an-app/assets/channels-view_box-actions.png similarity index 78% rename from quill/dashboard/assets/channels-view_box-actions.png rename to quill/dashboard/manage-an-app/assets/channels-view_box-actions.png index 5ab50d5e69..772895b9b5 100644 Binary files a/quill/dashboard/assets/channels-view_box-actions.png and b/quill/dashboard/manage-an-app/assets/channels-view_box-actions.png differ diff --git a/quill/dashboard/assets/channels-view_channel-details.png b/quill/dashboard/manage-an-app/assets/channels-view_channel-details.png similarity index 88% rename from quill/dashboard/assets/channels-view_channel-details.png rename to quill/dashboard/manage-an-app/assets/channels-view_channel-details.png index 7a11c08c3d..458ba2345e 100644 Binary files a/quill/dashboard/assets/channels-view_channel-details.png and b/quill/dashboard/manage-an-app/assets/channels-view_channel-details.png differ diff --git a/quill/dashboard/assets/channels-view_channel-menu.png b/quill/dashboard/manage-an-app/assets/channels-view_channel-menu.png similarity index 55% rename from quill/dashboard/assets/channels-view_channel-menu.png rename to quill/dashboard/manage-an-app/assets/channels-view_channel-menu.png index f7fbfee385..81f07ef59f 100644 Binary files a/quill/dashboard/assets/channels-view_channel-menu.png and b/quill/dashboard/manage-an-app/assets/channels-view_channel-menu.png differ diff --git a/quill/dashboard/assets/channels-view_channel-paused.png b/quill/dashboard/manage-an-app/assets/channels-view_channel-paused.png similarity index 86% rename from quill/dashboard/assets/channels-view_channel-paused.png rename to quill/dashboard/manage-an-app/assets/channels-view_channel-paused.png index d18908c473..502994a940 100644 Binary files a/quill/dashboard/assets/channels-view_channel-paused.png and b/quill/dashboard/manage-an-app/assets/channels-view_channel-paused.png differ diff --git a/quill/dashboard/assets/channels-view_channels-view.png b/quill/dashboard/manage-an-app/assets/channels-view_channels-view.png similarity index 96% rename from quill/dashboard/assets/channels-view_channels-view.png rename to quill/dashboard/manage-an-app/assets/channels-view_channels-view.png index b97dff7f31..33d336d918 100644 Binary files a/quill/dashboard/assets/channels-view_channels-view.png and b/quill/dashboard/manage-an-app/assets/channels-view_channels-view.png differ diff --git a/quill/dashboard/assets/channels-view_delete-channel.png b/quill/dashboard/manage-an-app/assets/channels-view_delete-channel.png similarity index 80% rename from quill/dashboard/assets/channels-view_delete-channel.png rename to quill/dashboard/manage-an-app/assets/channels-view_delete-channel.png index 24ef437d6d..f777aa3e35 100644 Binary files a/quill/dashboard/assets/channels-view_delete-channel.png and b/quill/dashboard/manage-an-app/assets/channels-view_delete-channel.png differ diff --git a/quill/dashboard/assets/channels-view_edit-channel.png b/quill/dashboard/manage-an-app/assets/channels-view_edit-channel.png similarity index 90% rename from quill/dashboard/assets/channels-view_edit-channel.png rename to quill/dashboard/manage-an-app/assets/channels-view_edit-channel.png index 0e506b147d..704fd30e67 100644 Binary files a/quill/dashboard/assets/channels-view_edit-channel.png and b/quill/dashboard/manage-an-app/assets/channels-view_edit-channel.png differ diff --git a/quill/dashboard/assets/channels-view_new-channel-menu.png b/quill/dashboard/manage-an-app/assets/channels-view_new-channel-menu.png similarity index 90% rename from quill/dashboard/assets/channels-view_new-channel-menu.png rename to quill/dashboard/manage-an-app/assets/channels-view_new-channel-menu.png index 1ef8d42f50..b4ad82966e 100644 Binary files a/quill/dashboard/assets/channels-view_new-channel-menu.png and b/quill/dashboard/manage-an-app/assets/channels-view_new-channel-menu.png differ diff --git a/quill/dashboard/assets/channels-view_overview-channels.png b/quill/dashboard/manage-an-app/assets/channels-view_overview-channels.png similarity index 90% rename from quill/dashboard/assets/channels-view_overview-channels.png rename to quill/dashboard/manage-an-app/assets/channels-view_overview-channels.png index 98e07b1040..11efd1877b 100644 Binary files a/quill/dashboard/assets/channels-view_overview-channels.png and b/quill/dashboard/manage-an-app/assets/channels-view_overview-channels.png differ diff --git a/quill/dashboard/manage-an-app/assets/conversations-view_conversations-view.png b/quill/dashboard/manage-an-app/assets/conversations-view_conversations-view.png new file mode 100644 index 0000000000..5b64a35570 Binary files /dev/null and b/quill/dashboard/manage-an-app/assets/conversations-view_conversations-view.png differ diff --git a/quill/dashboard/manage-an-app/assets/conversations-view_parameters.png b/quill/dashboard/manage-an-app/assets/conversations-view_parameters.png new file mode 100644 index 0000000000..4a5182bb01 Binary files /dev/null and b/quill/dashboard/manage-an-app/assets/conversations-view_parameters.png differ diff --git a/quill/dashboard/manage-an-app/assets/conversations-view_period-selector.png b/quill/dashboard/manage-an-app/assets/conversations-view_period-selector.png new file mode 100644 index 0000000000..15555df449 Binary files /dev/null and b/quill/dashboard/manage-an-app/assets/conversations-view_period-selector.png differ diff --git a/quill/dashboard/manage-an-app/assets/conversations-view_period-selector_arrows.png b/quill/dashboard/manage-an-app/assets/conversations-view_period-selector_arrows.png new file mode 100644 index 0000000000..1c3ed44af4 Binary files /dev/null and b/quill/dashboard/manage-an-app/assets/conversations-view_period-selector_arrows.png differ diff --git a/quill/dashboard/manage-an-app/assets/conversations-view_system-prompt.png b/quill/dashboard/manage-an-app/assets/conversations-view_system-prompt.png new file mode 100644 index 0000000000..cf08f8be3e Binary files /dev/null and b/quill/dashboard/manage-an-app/assets/conversations-view_system-prompt.png differ diff --git a/quill/dashboard/manage-an-app/assets/conversations-view_tool-call.png b/quill/dashboard/manage-an-app/assets/conversations-view_tool-call.png new file mode 100644 index 0000000000..95d8413401 Binary files /dev/null and b/quill/dashboard/manage-an-app/assets/conversations-view_tool-call.png differ diff --git a/quill/dashboard/manage-an-app/assets/conversations-view_transcript.png b/quill/dashboard/manage-an-app/assets/conversations-view_transcript.png new file mode 100644 index 0000000000..aed62d1907 Binary files /dev/null and b/quill/dashboard/manage-an-app/assets/conversations-view_transcript.png differ diff --git a/quill/dashboard/manage-an-app/assets/conversations-view_transcript_open-transcript.png b/quill/dashboard/manage-an-app/assets/conversations-view_transcript_open-transcript.png new file mode 100644 index 0000000000..bd00ad5d39 Binary files /dev/null and b/quill/dashboard/manage-an-app/assets/conversations-view_transcript_open-transcript.png differ diff --git a/quill/dashboard/manage-an-app/assets/snagit/app-agents-view_agent-actions.snagx b/quill/dashboard/manage-an-app/assets/snagit/app-agents-view_agent-actions.snagx new file mode 100644 index 0000000000..276568efeb Binary files /dev/null and b/quill/dashboard/manage-an-app/assets/snagit/app-agents-view_agent-actions.snagx differ diff --git a/quill/dashboard/manage-an-app/assets/snagit/app-agents-view_agent-actions_configure.snagx b/quill/dashboard/manage-an-app/assets/snagit/app-agents-view_agent-actions_configure.snagx new file mode 100644 index 0000000000..fcb59d6704 Binary files /dev/null and b/quill/dashboard/manage-an-app/assets/snagit/app-agents-view_agent-actions_configure.snagx differ diff --git a/quill/dashboard/manage-an-app/assets/snagit/app-agents-view_agent-parameters.snagx b/quill/dashboard/manage-an-app/assets/snagit/app-agents-view_agent-parameters.snagx new file mode 100644 index 0000000000..8007d0cc71 Binary files /dev/null and b/quill/dashboard/manage-an-app/assets/snagit/app-agents-view_agent-parameters.snagx differ diff --git a/quill/dashboard/manage-an-app/assets/snagit/app-agents-view_agent-parameters_configure.snagx b/quill/dashboard/manage-an-app/assets/snagit/app-agents-view_agent-parameters_configure.snagx new file mode 100644 index 0000000000..c10799c941 Binary files /dev/null and b/quill/dashboard/manage-an-app/assets/snagit/app-agents-view_agent-parameters_configure.snagx differ diff --git a/quill/dashboard/manage-an-app/assets/snagit/app-agents-view_agent-tools.snagx b/quill/dashboard/manage-an-app/assets/snagit/app-agents-view_agent-tools.snagx new file mode 100644 index 0000000000..2d4ee5814d Binary files /dev/null and b/quill/dashboard/manage-an-app/assets/snagit/app-agents-view_agent-tools.snagx differ diff --git a/quill/dashboard/manage-an-app/assets/snagit/app-agents-view_agent-tools_configure.snagx b/quill/dashboard/manage-an-app/assets/snagit/app-agents-view_agent-tools_configure.snagx new file mode 100644 index 0000000000..8aefb16399 Binary files /dev/null and b/quill/dashboard/manage-an-app/assets/snagit/app-agents-view_agent-tools_configure.snagx differ diff --git a/quill/dashboard/manage-an-app/assets/snagit/app-agents-view_agent-view.snagx b/quill/dashboard/manage-an-app/assets/snagit/app-agents-view_agent-view.snagx new file mode 100644 index 0000000000..6cbfe1dca8 Binary files /dev/null and b/quill/dashboard/manage-an-app/assets/snagit/app-agents-view_agent-view.snagx differ diff --git a/quill/dashboard/manage-an-app/assets/snagit/app-agents-view_agent-view_basic-settings.snagx b/quill/dashboard/manage-an-app/assets/snagit/app-agents-view_agent-view_basic-settings.snagx new file mode 100644 index 0000000000..fa7f2874ba Binary files /dev/null and b/quill/dashboard/manage-an-app/assets/snagit/app-agents-view_agent-view_basic-settings.snagx differ diff --git a/quill/dashboard/manage-an-app/assets/snagit/app-agents-view_agents-view.snagx b/quill/dashboard/manage-an-app/assets/snagit/app-agents-view_agents-view.snagx new file mode 100644 index 0000000000..0028dcff44 Binary files /dev/null and b/quill/dashboard/manage-an-app/assets/snagit/app-agents-view_agents-view.snagx differ diff --git a/quill/dashboard/manage-an-app/assets/snagit/app-agents-view_overview-agents.snagx b/quill/dashboard/manage-an-app/assets/snagit/app-agents-view_overview-agents.snagx new file mode 100644 index 0000000000..17f2ac243e Binary files /dev/null and b/quill/dashboard/manage-an-app/assets/snagit/app-agents-view_overview-agents.snagx differ diff --git a/quill/dashboard/assets/snagit/channels-view_box-actions.snagx b/quill/dashboard/manage-an-app/assets/snagit/channels-view_box-actions.snagx similarity index 100% rename from quill/dashboard/assets/snagit/channels-view_box-actions.snagx rename to quill/dashboard/manage-an-app/assets/snagit/channels-view_box-actions.snagx diff --git a/quill/dashboard/assets/snagit/channels-view_channel-details.snagx b/quill/dashboard/manage-an-app/assets/snagit/channels-view_channel-details.snagx similarity index 100% rename from quill/dashboard/assets/snagit/channels-view_channel-details.snagx rename to quill/dashboard/manage-an-app/assets/snagit/channels-view_channel-details.snagx diff --git a/quill/dashboard/assets/snagit/channels-view_channel-paused.snagx b/quill/dashboard/manage-an-app/assets/snagit/channels-view_channel-paused.snagx similarity index 100% rename from quill/dashboard/assets/snagit/channels-view_channel-paused.snagx rename to quill/dashboard/manage-an-app/assets/snagit/channels-view_channel-paused.snagx diff --git a/quill/dashboard/assets/snagit/channels-view_channels-view.snagx b/quill/dashboard/manage-an-app/assets/snagit/channels-view_channels-view.snagx similarity index 100% rename from quill/dashboard/assets/snagit/channels-view_channels-view.snagx rename to quill/dashboard/manage-an-app/assets/snagit/channels-view_channels-view.snagx diff --git a/quill/dashboard/assets/snagit/channels-view_delete-channel.snagx b/quill/dashboard/manage-an-app/assets/snagit/channels-view_delete-channel.snagx similarity index 100% rename from quill/dashboard/assets/snagit/channels-view_delete-channel.snagx rename to quill/dashboard/manage-an-app/assets/snagit/channels-view_delete-channel.snagx diff --git a/quill/dashboard/assets/snagit/channels-view_edit-channel.snagx b/quill/dashboard/manage-an-app/assets/snagit/channels-view_edit-channel.snagx similarity index 100% rename from quill/dashboard/assets/snagit/channels-view_edit-channel.snagx rename to quill/dashboard/manage-an-app/assets/snagit/channels-view_edit-channel.snagx diff --git a/quill/dashboard/assets/snagit/channels-view_new-channel-menu.snagx b/quill/dashboard/manage-an-app/assets/snagit/channels-view_new-channel-menu.snagx similarity index 100% rename from quill/dashboard/assets/snagit/channels-view_new-channel-menu.snagx rename to quill/dashboard/manage-an-app/assets/snagit/channels-view_new-channel-menu.snagx diff --git a/quill/dashboard/assets/snagit/channels-view_overview-channels.snagx b/quill/dashboard/manage-an-app/assets/snagit/channels-view_overview-channels.snagx similarity index 100% rename from quill/dashboard/assets/snagit/channels-view_overview-channels.snagx rename to quill/dashboard/manage-an-app/assets/snagit/channels-view_overview-channels.snagx diff --git a/quill/dashboard/manage-an-app/assets/snagit/conversations-view_conversations-view.snagx b/quill/dashboard/manage-an-app/assets/snagit/conversations-view_conversations-view.snagx new file mode 100644 index 0000000000..3c87695c75 Binary files /dev/null and b/quill/dashboard/manage-an-app/assets/snagit/conversations-view_conversations-view.snagx differ diff --git a/quill/dashboard/manage-an-app/assets/snagit/conversations-view_period-selector.snagx b/quill/dashboard/manage-an-app/assets/snagit/conversations-view_period-selector.snagx new file mode 100644 index 0000000000..e7449de2b6 Binary files /dev/null and b/quill/dashboard/manage-an-app/assets/snagit/conversations-view_period-selector.snagx differ diff --git a/quill/dashboard/manage-an-app/assets/snagit/conversations-view_period-selector_arrows.snagx b/quill/dashboard/manage-an-app/assets/snagit/conversations-view_period-selector_arrows.snagx new file mode 100644 index 0000000000..474c33c9e6 Binary files /dev/null and b/quill/dashboard/manage-an-app/assets/snagit/conversations-view_period-selector_arrows.snagx differ diff --git a/quill/dashboard/manage-an-app/assets/snagit/conversations-view_transcript.snagx b/quill/dashboard/manage-an-app/assets/snagit/conversations-view_transcript.snagx new file mode 100644 index 0000000000..d484c68da4 Binary files /dev/null and b/quill/dashboard/manage-an-app/assets/snagit/conversations-view_transcript.snagx differ diff --git a/quill/dashboard/manage-an-app/assets/snagit/conversations-view_transcript_open-transcript.snagx b/quill/dashboard/manage-an-app/assets/snagit/conversations-view_transcript_open-transcript.snagx new file mode 100644 index 0000000000..8a122c4a0d Binary files /dev/null and b/quill/dashboard/manage-an-app/assets/snagit/conversations-view_transcript_open-transcript.snagx differ diff --git a/quill/dashboard/channels-view.mdx b/quill/dashboard/manage-an-app/channels-view.mdx similarity index 84% rename from quill/dashboard/channels-view.mdx rename to quill/dashboard/manage-an-app/channels-view.mdx index 5928e5ff66..e88f4c6d6b 100644 --- a/quill/dashboard/channels-view.mdx +++ b/quill/dashboard/manage-an-app/channels-view.mdx @@ -1,7 +1,7 @@ --- -title: "Dashboard: Channels view" +title: "App: Channels view" sidebar_label: Channels view -sidebar_position: 14 +sidebar_position: 5 description: "The Channels view of a Quill app: the channels the app serves its users through, listed by type, with the actions common to every channel type: adding a channel, opening its details view, editing, pausing and resuming, and deleting it." --- @@ -9,10 +9,10 @@ import Admonition from '@theme/Admonition'; import Panel from "@site/src/components/Panel"; import ContentFrame from "@site/src/components/ContentFrame"; -# Dashboard: Channels view +# App: Channels view -* A [channel](../overview.mdx#channels) carries the conversations between your users and one of your app's agents: a chat widget +* A [channel](../../overview.mdx#channels) carries the conversations between your users and one of your app's agents: a chat widget on your site, a Telegram bot, a Slack app, or a Discord bot. The **Channels** view lists the channels you already created, and allows you to view and modify channel settings, add new channels, check each channel's status, and perform other channel-related tasks like pausing or deleting a channel. @@ -23,7 +23,7 @@ import ContentFrame from "@site/src/components/ContentFrame"; * This page covers Channels view features that are common to all channel types. Features and behaviors specific to each channel type are covered in the pages dedicated to the various types, listed in - [Channels: Overview](../channels/overview.mdx#channel-types). + [Channels: Overview](../../channels/overview.mdx#channel-types). * In this article: * [Opening the Channels view](#opening-the-channels-view) @@ -65,7 +65,7 @@ To open it, open the app in Quill's management dashboard and click **Channels** The channel box depicted above is for a Telegram bot. A web widget's box also carries a **Generate link** icon, which opens - [the dialog for generating an embed link](../getting-started/adding-a-chat-widget.mdx#generating-an-embed-link) for the widget. + [the dialog for generating an embed link](../../getting-started/adding-a-chat-widget.mdx#generating-an-embed-link) for the widget. @@ -73,7 +73,8 @@ To open it, open the app in Quill's management dashboard and click **Channels** -A channel is added for one of the app's agents, and carries conversations to this agent alone. +A channel is added for one of the app's [agents](../../dashboard/manage-an-app/app-agents-view.mdx), and carries +conversations to this agent alone. Adding a new channel starts with selecting the channel's type: click **New channel** in the Channels view (or **Add channel** in the [Overview's channels list](#an-additional-entry-point-the-channels-list-in-the-overview)) to open the menu of types, and select a type to open its form. @@ -83,14 +84,14 @@ The form for each type and what it asks for are described on the type's own page 1. **Web widget** A chat widget embedded in a page of your site. - See [Getting started: Adding a chat widget](../getting-started/adding-a-chat-widget.mdx). + See [Getting started: Adding a chat widget](../../getting-started/adding-a-chat-widget.mdx). 2. **Telegram bot** - A bot your users chat with on Telegram. See [Channels: Telegram bot](../channels/telegram-bot.mdx). + A bot your users chat with on Telegram. See [Channels: Telegram bot](../../channels/telegram-bot.mdx). 3. **WhatsApp Personal** and **WhatsApp Business** Not available yet; **Coming soon**. 4. **Slack** and **Discord** A Slack app, or a Discord bot, that your users message directly. - See [Channels: Slack bot](../channels/slack-bot.mdx) and [Channels: Discord bot](../channels/discord-bot.mdx). + See [Channels: Slack bot](../../channels/slack-bot.mdx) and [Channels: Discord bot](../../channels/discord-bot.mdx). @@ -100,7 +101,7 @@ Clicking a channel's box in the Channels view, or **Open details** in the [Overview's channels list](#an-additional-entry-point-the-channels-list-in-the-overview), opens the channel's details view. The view's header is the same for every channel type. The tabs below the header change per channel type: those depicted in the image below, for example, are a web widget's tabs. The tabs provided for each channel type are described in the type's dedicated -page, e.g., [Channels: Telegram bot](../channels/telegram-bot.mdx#managing-the-channel). +page, e.g., [Channels: Telegram bot](../../channels/telegram-bot.mdx#managing-the-channel). ![The channel's details view](./assets/channels-view_channel-details.png) @@ -140,11 +141,11 @@ The agent the channel was added for cannot be changed; to serve another agent, a Change the name shown for the channel in the Channels view and in the Overview's channels list. 2. **Allowed origins** The section that belongs to the channel's type. For the web widget shown here: the sites the widget may be embedded in - (see [Restrict where the widget loads](../developer-access/embed-the-chat-widget.mdx#restrict-where-the-widget-loads)); + (see [Restrict where the widget loads](../../developer-access/embed-the-chat-widget.mdx#restrict-where-the-widget-loads)); for a Telegram bot: the option to replace the bot token (see - [Channels: Telegram bot](../channels/telegram-bot.mdx#rotating-the-bot-token)); for a Slack bot: the option to rotate the - credentials (see [Channels: Slack bot](../channels/slack-bot.mdx#rotating-the-credentials)); for a Discord bot: the option to - replace the bot token (see [Channels: Discord bot](../channels/discord-bot.mdx#rotating-the-bot-token)). + [Channels: Telegram bot](../../channels/telegram-bot.mdx#rotating-the-bot-token)); for a Slack bot: the option to rotate the + credentials (see [Channels: Slack bot](../../channels/slack-bot.mdx#rotating-the-credentials)); for a Discord bot: the option to + replace the bot token (see [Channels: Discord bot](../../channels/discord-bot.mdx#rotating-the-bot-token)). 3. **Save changes** Click to save the changes. **Cancel** closes the form without saving. @@ -174,16 +175,16 @@ What a pause means for the channel's users depends on the channel type: * **Telegram bot** A paused Telegram bot will stop answering. Messages users send meanwhile are held by Telegram for up to 24 hours, and answered if the channel is resumed within this time. - See [Channels: Telegram bot](../channels/telegram-bot.mdx#pausing-and-deleting-the-channel). + See [Channels: Telegram bot](../../channels/telegram-bot.mdx#pausing-and-deleting-the-channel). * **Slack bot** A paused Slack bot will stop answering. Slack keeps delivering the users' messages, which Quill discards; messages sent while the channel is paused are not answered when the channel is resumed. - See [Channels: Slack bot](../channels/slack-bot.mdx#pausing-and-deleting-the-channel). + See [Channels: Slack bot](../../channels/slack-bot.mdx#pausing-and-deleting-the-channel). * **Discord bot** A paused Discord bot will stop answering and appear offline on Discord. Messages users send while the channel is paused do not reach Quill, and are not answered when the channel is resumed. - See [Channels: Discord bot](../channels/discord-bot.mdx#pausing-and-deleting-the-channel). + See [Channels: Discord bot](../../channels/discord-bot.mdx#pausing-and-deleting-the-channel). @@ -196,7 +197,7 @@ A channel is deleted using the trash icon or the **Delete** menu entry described ![The Delete channel dialog](./assets/channels-view_delete-channel.png) -The conversations the channel carried are kept, and remain available in the app's **Conversations** view. +The conversations the channel carried are kept, and remain available in the app's [Conversations view](../../dashboard/manage-an-app/conversations-view.mdx). What else the deletion means depends on the channel type: * **Web widget** @@ -205,17 +206,17 @@ What else the deletion means depends on the channel type: * **Telegram bot** A deleted Telegram bot channel will stop the bot. The bot itself remains yours on Telegram, and its token can be used to connect it again, to this app or to another. - See [Channels: Telegram bot](../channels/telegram-bot.mdx#pausing-and-deleting-the-channel). + See [Channels: Telegram bot](../../channels/telegram-bot.mdx#pausing-and-deleting-the-channel). * **Slack bot** A deleted Slack bot channel will stop the bot. The bot itself remains installed in the workspace, and its credentials can be used to connect it again, in a new channel with a new request URL. - See [Channels: Slack bot](../channels/slack-bot.mdx#pausing-and-deleting-the-channel). + See [Channels: Slack bot](../../channels/slack-bot.mdx#pausing-and-deleting-the-channel). * **Discord bot** A deleted Discord bot channel will stop the bot. The bot itself remains yours in the Discord Developer Portal, and a member of your server; its token can be used to connect it again. - See [Channels: Discord bot](../channels/discord-bot.mdx#pausing-and-deleting-the-channel). + See [Channels: Discord bot](../../channels/discord-bot.mdx#pausing-and-deleting-the-channel). @@ -239,7 +240,7 @@ The list's **Add channel** button opens the same menu of channel types as the Ch The channel row depicted above is for a Telegram bot. A web widget's row also carries a **Generate link** icon, which opens -[the dialog for generating an embed link](../getting-started/adding-a-chat-widget.mdx#generating-an-embed-link) for the widget. +[the dialog for generating an embed link](../../getting-started/adding-a-chat-widget.mdx#generating-an-embed-link) for the widget. diff --git a/quill/dashboard/manage-an-app/conversations-view.mdx b/quill/dashboard/manage-an-app/conversations-view.mdx new file mode 100644 index 0000000000..09b01f8808 --- /dev/null +++ b/quill/dashboard/manage-an-app/conversations-view.mdx @@ -0,0 +1,143 @@ +--- +title: "App: Conversations view" +sidebar_label: Conversations view +sidebar_position: 4 +description: "The Conversations view of a Quill app: the conversations the app's agents held with your users, listed with their parameters, last exchange, and activity time, and each conversation's full transcript, including the tools the agent ran." +--- + +import Admonition from '@theme/Admonition'; +import Panel from "@site/src/components/Panel"; +import ContentFrame from "@site/src/components/ContentFrame"; + +# App: Conversations view + + +* A **conversation** is the exchange between one of your users and an + [AI agent](../../overview.mdx#ai-agent), carried over a [channel](../../overview.mdx#channels). + +* Quill records the conversations held by the app's agents and lists them in the **Conversations view**, where you + can follow their history and statistics, find conversations by their properties, and read conversation transcripts. + Conversations can be read in this view, but not edited or deleted. + +* A conversation's **transcript** shows the full correspondence between your user and the agent as well as the + instructions the agent followed and the tools the agent ran while answering. + +* Conversations are kept available in the Conversations view even after the agents that held them or the channels + that carried them are deleted. + +* In this article: + * [Opening the Conversations view](#opening-the-conversations-view) + * [The conversation's transcript](#the-conversation-s-transcript) + + + + + +To open the Conversations view, select the app in Quill's management dashboard and click **Conversations** in the +sidebar, under **Database**. + +![The Conversations view](./assets/conversations-view_conversations-view.png) + +1. **Conversations** + Open the Conversations view. +2. **Period selector** + Use these controls to select the time period for which conversations are reported and listed. + - Click **Year**, **Month**, or **Day** to pick a period span. + - Click the period label to pick a specific year, month, or day. + ![The period picker](./assets/conversations-view_period-selector.png) + - Use the arrows to select an earlier or a later period. + An arrow is disabled at the end of the available range, which starts with the period in which the app was + created and ends with the current period. + ![The period arrows](./assets/conversations-view_period-selector_arrows.png) +3. **Activity counters** + These counters report the activities of conversations that **started** during the selected period, + for the **entire duration** of the conversations, including their activities **after** the selected period. + e.g., if the selected period is **August** and a conversation started on August 31 and ended on September 1, + the counters will include the conversation's activities for both August 31 and September 1. + * **Conversations** + The number of conversations your users **started** with the app's agents within the selected period. + Conversations that started **before** the selected period are not counted, even if they span through + this period and are therefore shown in the conversations list. + * **Prompts** + The number of messages your users sent during the conversation runtime. + Agent replies are not counted. + * **Tokens** + The number of tokens consumed during the conversation runtime, as reported by the LLM provider. +4. **Search messages or sessions** + Enter text to filter the conversations. + Quill will match the text against conversations' agent name, channel name, parameter names and values, + and last exchange. +5. **The state filter** + Filter the listed conversations by their state. + - **All** lists all conversations. + - A toggle is added for each state found among the listed conversations. + Each state has a colour, carried by the dot on its toggle: + **active** (green) - list conversations whose last message arrived less than an hour ago. + **idle** (amber) - list conversations whose last message arrived between one and 24 hours ago. + **closed** (grey) - list conversations whose last message arrived more than 24 hours ago. +6. **The agent and channel filters** + Restrict the listed conversations to a single agent or to a single channel. + - The agent filter offers only the agents that appear in the conversations currently listed. + - The channel filter offers only the channels that appear in the conversations currently listed. +7. **The conversations list** + Lists the conversations, one row per conversation, the most recently active first. +8. **Conversation information** + Each row shows the following details for a single conversation: + * **Agent** + The identifier of the agent that held the conversation, derived from the agent's name. + Open the agent's configuration from the + [Agents view](../../dashboard/manage-an-app/app-agents-view.mdx#the-agent-s-configuration). + * **Channel** + The channel that carried the conversation. + The cell is empty when the conversation was held in the agent's test chat, or when the channel that carried the + conversation has since been deleted. + Open the channel's details from the + [Channels view](../../dashboard/manage-an-app/channels-view.mdx#the-channel-s-details-view). + * **Parameters** + The agent parameters bound for the conversation, each with the value it was given. + A dash is shown when the conversation has no parameters. + * **Last exchange** + The agent's last reply, and the prompt the agent answered. + * **Last activity** + The time of the last message in the conversation, preceded by a dot in the colour of the conversation's state. +9. **View transcript** + Open the full transcript of the conversation. See [The conversation's transcript](#the-conversation-s-transcript). +10. **Paging** + Each page lists up to 50 conversations. Use the arrows to move to the previous or the next page. + The search box, the three filters, and the number each state toggle shows apply only to the current page. + + + + + +![Open transcript](./assets/conversations-view_transcript_open-transcript.png) + +To read a full conversation and review its properties, click the transcript icon at the end of the conversation's row +in the conversations list. +The transcript sheet holds the conversation as it ran, including the user prompts, agent replies, and tools run by the agent. + +![The conversation's transcript](./assets/conversations-view_transcript.png) + +1. **Agent and channel names** + The agent that held the conversation, and the channel that carried it. +2. **Parameters** + Expanding the **Parameters** section shows any + [agent parameters](../../dashboard/manage-an-app/app-agents-view.mdx#agent-parameters) bound for the conversation, + each with the value it was given. + ![The conversation's parameters](./assets/conversations-view_parameters.png) +3. **System prompt** + The instructions the agent followed throughout the conversation. + Quill adds to the instructions a description of each parameter that is sent to the LLM, so the entry can hold more + than the system prompt set in the agent's configuration. + ![The system prompt](./assets/conversations-view_system-prompt.png) +4. **A prompt** + A message your user sent. + Every entry in the transcript carries a timestamp indicating the time it was recorded. +5. **The tools the agent ran** + Lists each query tool or action the agent ran while answering, labelled with the tool's name. + Expanding an entry shows any parameters the LLM provided while requesting the tool, and the tool's response. + ![An expanded tool call](./assets/conversations-view_tool-call.png) +6. **The agent's reply** + The answer the agent returned to your user. + + diff --git a/quill/dashboard/my-apps.mdx b/quill/dashboard/my-apps.mdx index f0ed726034..91dc4336a3 100644 --- a/quill/dashboard/my-apps.mdx +++ b/quill/dashboard/my-apps.mdx @@ -132,7 +132,8 @@ Until the first app is added, the table is replaced by **No apps added yet** and MariaDB sources are shown as **MySQL**. 3. **Agents** - The number of agents configured in the app. + The number of agents configured in the app. + See [App: Agents view](../dashboard/manage-an-app/app-agents-view.mdx). 4. **Channels** The channel types configured for the app, such as **Web widget**. diff --git a/quill/getting-started/adding-an-ai-agent.mdx b/quill/getting-started/adding-an-ai-agent.mdx index 898e634ab2..973495d64a 100644 --- a/quill/getting-started/adding-an-ai-agent.mdx +++ b/quill/getting-started/adding-an-ai-agent.mdx @@ -365,7 +365,8 @@ to **Add a channel**, the last stage. ![Agent created](./assets/adding-an-ai-agent_agent-created.png) -The created agent is listed in the app's **Agents** table. +The created agent is listed in the app's **Agents** table, where its configuration can be reviewed and modified at any +time. See [App: Agents view](../dashboard/manage-an-app/app-agents-view.mdx). ![Agent listed](./assets/adding-an-ai-agent_agent-listed.png) diff --git a/quill/overview.mdx b/quill/overview.mdx index 3d0ddf0d59..2d0fc9d571 100644 --- a/quill/overview.mdx +++ b/quill/overview.mdx @@ -259,7 +259,7 @@ The dashboard opens with the deployment's apps; each app then has an overview of 1. The welcome banner tracks the app's three setup steps: a connected data source, a first agent, and a channel. 2. The Activity tiles follow the app's conversations, messages, and usage over the selected period. -3. The Agents table lists the app's agents, each with its status, model, and activity. +3. The [Agents table](dashboard/manage-an-app/app-agents-view.mdx) lists the app's agents, each with its status, model, and activity. 4. The Channels table lists the app's channels, each with its type, status, and active embed links. The sidebar leads to the app's sections: the data source, the agents, the conversations, and settings like channels