> For the complete documentation index, see [llms.txt](https://api.docs.blockbrain.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://api.docs.blockbrain.ai/concepts/knowledge-bots.md).

# Knowledge Bots

**Knowledge Bots** are agent configurations (bots) specialized for retrieving, synthesizing, and governing knowledge across your sources. They run on Cortex, use conversations (data rooms) to maintain context, and leverage artifacts like attachments, emails, and especially Insights to create durable, reusable knowledge.

#### What Knowledge Bots are

* **Configured agents**: Parameterized with system prompts, tools, and policies.
* **Retrieval-aware**: Can reference documents and past messages; surface document refs in outputs.
* **Insight-centric**: Produce and consume Insights (notes) to capture and reuse key takeaways.
* **Governed**: Centralized control over access, sharing, logging, and audit via Cortex.

### Core concepts

* **Bot**: A configured agent definition (system message, tools, strategies, policies).
* **Parent bot inheritance**: Reuse a `parentCortexBot` to standardize prompts and defaults across variants.
* **Data room (conversation)**: Persistent context for multi-turn interactions and artifacts.
* **Artifacts**: Attachments, emails, and Insight notes linked to the conversation.
* **Insights**: Durable knowledge units created/consumed by the bot for publishing and reuse.

### Typical lifecycle

1. Choose or create a bot (optionally inheriting from a parent bot for shared defaults).
2. Create a conversation (data room) for your session or task.
3. Ask questions or provide instructions; the bot retrieves content and generates responses.
4. Curate Outputs into Insights; attach documents or emails as needed.
5. Publish Insights to your knowledge base and reuse in future conversations.

### Bot Types

**Pre-defined Knowledge Bots (in Workshop) and Active Knowledge Bots (in Dashboards)**

![Bot Relationship](/files/ErbO6NeCZ7EAg0dDLv7a)

* **Workshop**: Knowledge Bots in workshop serves as templates - **Pre Defined Bots** - for all users.
* **Dashboard**: When an user "Adds" a workshop bot, a replicated version of that bot - **Active Bot** - is created for that user, and will appears in the Dashboard together with their Custom Bots. Data Rooms will be created **inside the Active Bot**.

## Knowledge Bots Configuration Parameters

### Basic Settings

* `name`: `string` The display name of the bot
* `description`: `string` A brief description of the bot's purpose and capabilities
* `iconUrl`: `string` Path to the bot's display icon, see [Bot and User Avatars](broken://pages/tIaCeg7i8YbMJxXgePOk)
* `defaultGreetings`: `string` Initial message displayed when starting a conversation, this message doesn't affect the bot's behavior, but it should introduce your bot's purpose while outlining its key capabilities.

### 2 types of Knowledge Bots

* `botTemplate`: `enum` ( `retriever` or `nexus`) The template style used for the bot, default to `nexus`

| Template    | Description                                                                             |
| ----------- | --------------------------------------------------------------------------------------- |
| `nexus`     | An all-in-one assistant that helps you create & share knowledge and automate workflows. |
| `retriever` | A simple Q\&A bot that answers questions based on an existing knowledge base.           |

### AI Model Configuration

* `model`: `enum` The AI model to use, default to `azure-gpt-4o`. For more details which models are available, see [AI Models](broken://pages/IJQsqqyLn92hmD6vPVgn)
* `topk`: `int` Number of top results to fetch from connected database(s), min to 1, default to 5, with a maximum value varies per each AI model, see [AI Models - Max topk](broken://pages/IJQsqqyLn92hmD6vPVgn#max-topk-value)
* `systemMessage`: `string` Instructions that define the bot's personality and response style. Our default recommended instructions:

```
Your task is to provide precise and relevant information.
Your communication should be professional yet easy to understand.
Your responses must be thorough and detailed, using professional formatting.

Clarify Ambiguous or General Inquiries:
Ask specific questions to gather additional context. If a query can have multiple interpretations or answers, ask the user for clarification.
Inform Users About the Scope of Answers:
Let users know that answers may not always be exhaustive, indicating that further research and verification might be necessary. Encourage users to consult the original documents in the reference if they wish to look up more information themselves, or they can ask follow-up questions for further assistance.
Methodical Approach:
Guide users through the answer to their question methodically. Clearly state the steps to be taken and, where possible, refer to specific sections, figures, and tables in the guidelines and forms.

Your ultimate goal is to enhance the expertise and efficiency of users, enabling them to perform their tasks more effectively through quicker access to relevant information.
```

#### Advanced Options

Inside the `advanceOptions` object, you can configure advanced parameters for the AI model, such as `temperature`, `topP`, `presencePenalty`, and `frequencyPenalty`.

* `temperature`: `float` The model's sampling temperature, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.
* `topP`: `float` An alternate mether of sampling to temperature, called nucleus sampling, where the model considers the results of the tokens with top\_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered.
* `presencePenalty`: `float` Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.
* `frequencyPenalty`: `float` Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.

### Feature Toggles

* `isDefaultBot`: `boolean` **For Workshop Only** Controls whether this bot should be added to new user's dashboard on their first login
* `isEnableInitialQuestions`: `boolean` Controls whether initial questions are shown
* `followUp`: `string[]` Array of initial questions, maximum of 4 questions can be configured
* `enableVisualRetrieval`: `boolean` Controls whether the bots should include images exported from the indexed documents in its' responses
* `enableVoiceInput`: `boolean` Enables voice input functionality
* `enableInlineCitation`: `boolean` Controls whether the bot should try to compose and include citations (to reference documents) in its' responses
* `enableDefaultIntentAgent`: `boolean` Controls whether intent agent functionality should be turned on by default
* `enableDefaultWebSearch`: `boolean` Controls whether web search functionality should be turned on by default

### Voice Settings

* `ttsOption`: `enum | null` (`OpenAI` or `ElevenLabs` or `null`) Text-to-speech provider configuration
* `voiceId`: `string` Identifier for the voice to be used, see

| Provider   | Voice options                                                                                        | Example                                   |
| ---------- | ---------------------------------------------------------------------------------------------------- | ----------------------------------------- |
| OpenAI     | [OpenAI voices](https://platform.openai.com/docs/guides/text-to-speech#voice-options)                | `voiceId`: `alloy` (Alloy)                |
| ElevenLabs | [ElevenLabs voices](https://elevenlabs.io/docs/product/voices/default-voices#current-default-voices) | `voiceId`: `Xb7hH8MSUJpSbSDYk0k2` (Alice) |

* `elvLabApiKey`: `string` your `ElevenLabs` API key (if `ttsOption` is set to `ElevenLabs`)

### Knowledge Management

* `knowledgeBase`: `string[]` Array of databases to be connected to a data room by default (when a new data room is created)
* `searchMethodType`: `int` Method used for searching in the connected databases

| `searchMethodType` | Method        | Description                                                             |
| ------------------ | ------------- | ----------------------------------------------------------------------- |
| `1`                | AI Search     | Ultilizing Embedding models and semantic search for knowledge retrieval |
| `2`                | Hybrid Search | Combining AI Search and Index Search                                    |
| `3`                | Index Search  | Performing BM25 full-text search on indexed documents                   |

### Advanced Settings

#### advancedFeatures

`advancedSetting` can be used to toggle on / off the feature access on UI, as well as button placement for the action buttons.

* The following features can be enabled/disabled through `advancedFeatures`:
  * Setup
  * Model configuration
  * Capabilities and skills
  * Agent settings
  * Workflow management
  * Chat mode
  * Reranker
  * Agent retrieval
  * Insights
  * File management
  * Database integration
  * Knowledge destination
  * Email service
  * Context management
  * Prompt preview
  * Language settings
  * Web search

#### actionButtons

`actionButtons` can be used to customize the toolbar The following features can be enabled/disabled or positioned through `actionButtons`:

* Agent actions
* Pin
* Contribute
* Right side area
* Reply
* Copy (Rich/Plain/Markdown)
* Rewind
* Save insight
* Bad response reporting
* Hide in menu
* Message deactivation
* Delete
* Knowledge graph
* Voice controls
* Langfuse integration

### Workflow and Tasks

* `workflows`: Array of configured workflows, see [Workflow](broken://pages/SMlzZHX6PnN6YSx6UyOk)
* `agentTasks`: Array of tasks assigned to the agent [Agent](/concepts/knowledge-bots/prompts.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://api.docs.blockbrain.ai/concepts/knowledge-bots.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
