> For the complete documentation index, see [llms.txt](https://karini-ai.gitbook.io/karini-ai-documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://karini-ai.gitbook.io/karini-ai-documentation/prompt-management/agentic-prompts/create-agent-prompt.md).

# Create  Agent Prompt

A variety of **agent prompt templates** are available, enabling you to select a predefined template and efficiently generate a prompt without the need for manual creation. These templates optimize the prompt development process, ensuring consistency and operational efficiency in agent interactions. Users can seamlessly choose the most appropriate template based on their specific requirements and integrate it directly within the system.

If the you want to create a new prompt, they can refer to the following steps:

To create a new agent prompt, follow the following steps:

* On **the Prompt Playground**, start by clicking **Task** and selecting an **Agent 2.0** task from the list of available tasks.
* Set up a **unique name** for the agent prompt.&#x20;
* **Max State updates**: Defines how often the AI agent can refine its response.The default is set to 3.
* Create a prompt in natural language and define the instructions we want the agent to follow.
* **Variables:** Allows the insertion of dynamic input parameters using curly braces, like {Variable}.
* We use **double curly braces** to represent **JSON** in prompt to prevent it from being interpreted as a variable.
* The Agent Input provides user input data that the Agent will process.
* Save the prompt.

Here is an example of an Agent prompt.

```
You are a vehicle guide expert specializing in automotive manuals and answering queries based on the provided context. 
The context includes details on Keys, Doors, and Windows; Seats and Restraints; Storage; Instruments and Controls; Lighting; Infotainment System; Climate Controls; Driving and Operating; Vehicle Care; Service and Maintenance; Technical Data; Customer Information; Reporting Safety Defects; OnStar; Connected Services; 
 Only use the tools to answer the user's query. 
Your primary role is to assist users with vehicle-related inquiries, provide accurate information from the context, and send email notifications if requested.
Key Responsibilities:
{key_responsibilities}
Important Instructions:
{important_rules}
Guidelines for User Interactions:
{interaction_guidelines}

```

* After saving the agent prompts, the **Tool** tab becomes accessible. Navigate to the **Tool** tab to configure the required settings.
* When an Agent is configured with tools, the platform registers one or more tools in the agent prompt. Each tool is exposed to the LLM through:
  * A tool name.
  * A tool description.
  * An input schema.
  * A callback function that executes retrieval logic.

The agent decides which tool to invoke based on the user request and the tool descriptions available in its prompt context.

## Configuring Agent Tools

To configure an agent tool, go to the "**Tools**" tab on the prompt, and start by selecting a tool type. Currently, following tool types are supported:

### Agent

The **Agent tool** in **Agent prompt** allows you to configure and manage Karini AI agents by selecting predefined prompts integrated with various **Large Language Models (LLMs)**. It lists available agent prompts linked to LLMs, enabling users to set them up as tools for specific tasks. Setting up these agent prompts allows you to define structured workflows, automate responses, and enhance AI-powered decision-making. Once set up, the agent tool facilitates seamless interaction between the AI and external services, databases, or APIs, ensuring more **efficient, context-aware, and intelligent responses**. This functionality streamlines AI automation by leveraging LLMs to perform tasks dynamically based on user inputs and predefined logic.

**Only published agents are available as tools**. When an agent is selected, the system displays its **current version** along with **a redirect icon**, allowing users to navigate to the prompt playground for detailed agent details and make necessary modifications.

The following image illustrates the **version** and **redirect** icon.

<figure><img src="https://415930246-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7ZrVuiAUMyuYVvrK5KaB%2Fuploads%2FWw3LAI3BKGlW8n9Clv6g%2Fimage.png?alt=media&amp;token=7c3a92dd-8d9b-4187-a9a2-da5691439e76" alt=""><figcaption></figcaption></figure>

To switch to **a specific version**, click on the d**isplayed version**. This will generate a list of all associated versions. Select the required version, and the system will load the complete agent details corresponding to the selected version.

The following image displays the associated versions.

<figure><img src="https://415930246-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7ZrVuiAUMyuYVvrK5KaB%2Fuploads%2FVmwIsUSKiHPODr0QWC8W%2Fimage.png?alt=media&amp;token=22ce99df-ae0f-411a-8716-1d378b08e6d7" alt=""><figcaption></figcaption></figure>

### Browser Use

Browser Use is an open-source Python framework that enables AI agents to interact with web browsers using natural-language instructions. It connects large language model reasoning with real browser automation, allowing agents to navigate websites, click elements, enter text, scroll, complete forms, and extract data from dynamic web pages.

Browser Use can support tasks such as web research, information extraction, form filling, and multi-step browser workflows. It is LLM-agnostic and works with models.

**Configuration Parameters**

**Use Nova Act:**&#x20;

* **Disabled by default:** The configured **LLM Model** is used for browser-control reasoning, action planning, and execution.
* **When enabled:** Amazon Nova Act becomes the exclusive browser automation and action-planning engine.
* **LLM Model behavior:** The **LLM Model** parameter is automatically hidden and excluded from validation because all browser-control reasoning is delegated to Nova Act.
* **Agent Core Region:** A required parameter that specifies the AWS region where the Amazon Bedrock Agent Core browser session is provisioned. The default region is **us-east-1**. This setting can influence latency, service availability, compliance, and data residency.
* **Session Timeout (in ms):** A required integer that defines the maximum duration of the browser session. The default value is **120000 ms (2 minutes)**. The session is automatically terminated when the configured timeout is reached, regardless of task completion status.

<figure><img src="https://415930246-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7ZrVuiAUMyuYVvrK5KaB%2Fuploads%2FzfImOMEqY0gc2VgQ24Sg%2Fimage.png?alt=media&amp;token=9535e192-b77f-4ca8-b898-822d1163e06e" alt=""><figcaption></figcaption></figure>

### Catalog

A catalog is a structured data repository that organizes information in a predefined format, ensuring easy retrieval and processing. Karini AI agents use catalogs to query relevant datasets, enhancing response accuracy and decision-making. You can select from existing catalogs to integrate as a tool, enabling seamless interaction with structured data sources. For detailed instructions on creating catalog schemas, refer to the [**Catalog Schemas Documentation**](/karini-ai-documentation/catalog-schemas.md).

### Code Interpreter

The Code Interpreter Tool provides agents with the ability to dynamically generate and execute code within a secure, managed environment. The tool enables agents to write and run Python, JavaScript, or TypeScript code during a conversation, returning execution results (directly to the agent for downstream reasoning.

This capability extends agent functionality beyond static tool invocations, allowing computational tasks such as data analysis, mathematical operations, file transformations, and dynamic problem-solving to be performed in real time.

When Code Interpreter is selected as the provider, the following fields are visible:

<figure><img src="https://415930246-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7ZrVuiAUMyuYVvrK5KaB%2Fuploads%2FQv7jKhZcI6y8aoZ4xKep%2Fimage.png?alt=media&amp;token=606e06ff-dc62-49a3-9818-c1b4154910ca" alt=""><figcaption></figcaption></figure>

**Input Schema:** This is the structure of the expected input data, often defined in a JSON format. It specifies the required fields and data types. You can input this value, or have it auto-generated using Setup Schema option.

* ```json
  {
    "$schema": "http://json-schema.org/schema#",
    "type": "object",
    "properties": {
      "code": { "type": "string", "description": "The source code or code snippet to be processed" },
      "method": { "type": "string", "description": "The method or function name to be executed" },
      "Programming_language": { "type": "string", "description": "The programming language of the provided code" }
    },
    "required": ["Programming_language", "code", "method"]
  }
  ```

**Setup Schema:** You have option to automatically generate the schema using the test payload. The LLM configured as Natural Language Assistant in the Organization setting is used for this schema generation. You have an option to edit the schema if necessary.\
**Input Test Payload:** This is a sample payload that adheres to the input schema and is used to test the API endpoint. It demonstrates the format and type of data that should be sent in a request.\
Example

```json
{
  "code": "print('hello world')",
  "method": "main",
  "Programming_language": "python"
}
```

**Internet Access Configuration**

The **Internet Access** setting determines whether code executed within the enviornment can communicate with external or private network resources.

| Option                                  | Recommended Use                                                                                                                                                                                               |
| --------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Disable Internet Access** *(default)* | <p>Select when execution relies only on the provided inputs, such as calculations, data transformation, or string processing. </p><p>This is the most secure configuration and should be used by default.</p> |
| **Enable Public Internet Access**       | Select when the code must access public APIs, download dependencies, or retrieve publicly available web content.                                                                                              |
| **Enable VPC Connectivity**             | Select when the code must access private resources within your organization’s AWS VPC, such as internal databases or APIs. Additional subnet and security-group configuration is required.                    |

**Code Interpreter IAM Role&#x20;*****(Optional)***

The **Code Interpreter IAM Role** field accepts an AWS IAM role ARN, for example:

`arn:aws:iam::<account-id>:role/CodeInterpreterExecRole`

This role defines which AWS resources and actions are accessible to code executed within the enviornment. It is independent of the credentials used by the tool to connect to AWS.

* Leave the field blank to use the default execution role.
* Specify a custom role only when the executed code requires access to defined AWS resources, such as an S3 bucket or DynamoDB table.

### Database

To use the catalog tool, you must also configure the database tool. This tool allows you to execute the SQL queries you generate and retrieve the results from the database. You can provide the SQL query along with the database name and table name as input to this tool, which will return the query results.

These are the following databases available in the list:

* **Athena**
* **MySQL**
* **PostgreSQL**
* **Snowflake**
* **Redshift**
* **MS SQL**
* **Oracle**
* **Databricks Unity Catalog**
* **Teradata.**&#x20;

Select the appropriate **database** required for the **catalog** chosen in the Agent prompt. After selection, enter the corresponding credentials for the selected database.

### **Dataset (Vector Store)**

Ingestion of your data into the vector store happens during [recipe "run"](/karini-ai-documentation/recipes/knowledgebase-recipe/run-recipe.md) phase when the data ingestion pipeline is executed. You can select from an existing dataset that has been ingested into the vector store. &#x20;

* **Context Generation using Vector Search**

You can select from the following retrieval options to obtain information from the vector store. &#x20;

1. Use embedding chunks
2. Summarize chunks
3. Use document text for matching embeddings

You can provide Top-K also enable reranking of retrieved embeddings. To enable reranking, you must configure the [reranker LLM credentials](/karini-ai-documentation/organization.md#reranker-llm-credentials) in the Organization settings.&#x20;

* **Advanced Query Reconstruction**

Additionally, you can select advanced query reconstruction options to enable query rewrite for optimized and accurate search results. Refer to Dataset for details. &#x20;

1. **Multi query rewrite:** Enhance your search with multiple variations of your query to capture diverse perspectives and improve retrieval accuracy.
2. **Query expansion:** Enriches query by automatically adding related terms or phrases to retrieve more comprehensive and relevant results. Expand your search query to include additional information that can assist in answering your query effectively.

* **Enable ACL restriction**

When you enable this feature, the knowledge base will first be filtered based on the user's ACL (Access Control List) permissions. This ensures that only content the user is allowed to access is considered before performing the retrieval using semantic similarity. This step enhances security by limiting retrieval to permissible information.

* **Enable dynamic Metadata filtering**

&#x20;When enabled, this feature uses a Large Language Model (LLM) to automatically generate custom metadata filters by analyzing metadata keys and the input query. These filters are then applied to narrow down the knowledge base before performing retrieval with semantic similarity. This is an experimental feature designed to optimize retrieval based on dynamic and context-aware metadata filtering.

* **Hybrid search**

Hybrid Search enables the combination of vector-based semantic retrieval and keyword-based lexical matching within the Knowledge base . This approach improves retrieval accuracy by leveraging both deep semantic understanding and precise keyword alignment.

Hybrid Search is activated by enabling the **Enable Hybrid Search** option. Once activated, the system requires a Query Template in JSON format to define how results are retrieved and scored.

**Query Template Schema**

```

{
  "vector_weight": 0.6,
  "keyword_weight": 0.4,
  "fields": [
    "raw_chunk^2.0"
  ]
}
```

* **vector\_weight**: Specifies the contribution of vector similarity to the final relevance score. Value must be between 0 and 1.
* **keyword\_weight**: Specifies the contribution of keyword relevance. Must complement the vector\_weight to ensure balanced scoring
* **fields**: Field to which the defined scoring weight is applied during retrieval.

This configuration allows fine-grained control over hybrid ranking strategies, ensuring optimal relevance in document retrieval across varied datasets.

### Doc writer tool

he Doc Writer Tool gives agents the ability to **write, copy, and move files** within the agent's managed file space. It handles content creation across multiple file formats including Word documents, PDFs, spreadsheets, presentations, plain text, Markdown, and JSON and enables file operations such as duplicating or relocating existing files.

#### Modes of Operation

The tool operates in one of three modes, selected via the `mode` parameter:

#### 1. Writing a New File

The agent generates the content, specifies the target file path, and invokes the tool in `write` mode. The file extension in the path determines the output format. The tool converts the provided text into that format and saves the file in the agent’s file space.

**Required fields:** `content`, `filepath`

**Example : writing a Word document:**

```json
{
  "mode": "write",
  "content": "Project Overview\n\nThis document covers the Q3 roadmap.\n\nKey Milestones\n- Phase 1: Discovery\n- Phase 2: Development\n- Phase 3: Launch",
  "filepath": "reports/q3-roadmap.docx"
}
```

**Example :** **writing a PDF:**

```json
{
  "mode": "write",
  "content": "<h1>Quarterly Summary</h1><p>Revenue increased 18% YoY.</p>",
  "filepath": "reports/q3-summary.pdf"
}
```

#### 2.Copying a File

Copies a file or an entire folder from one S3 path to another within the allowed scope.

**Required fields:** `src`, `dest`

```json
{
  "mode": "copy",
  "src": "s3://karini-instance-orgid/recipe-id/thread-id/reports/q3-roadmap.docx",
  "dest": "s3://karini-instance-orgid/recipe-id/thread-id/archive/q3-roadmap.docx"
}
```

Folder copy is also supported if \`src\` points to a prefix (directory) rather than a single object, all files under that prefix are copied recursively.

#### 3.Moving a File

Moves a file or folder from the source path to the destination, removing the original after a successful copy.

**Required fields:** `src`, `dest`

```json
{
  "mode": "move",
  "src": "s3://karini-instance-orgid/recipe-id/thread-id/drafts/report.pdf",
  "dest": "s3://karini-instance-orgid/recipe-id/thread-id/final/report.pdf"
}
```

The source is deleted after a successful copy. Folder move operates the same as folder copy but removes each source file after copying.

**Output**

On success the tool returns a plain string confirming the operation and the final file location:

```
File Operation: 'write' done. File present at: s3://karini-instance-orgid/recipe-id/thread-id/reports/q3-roadmap.docx
```

The agent typically passes this path to **`get_file_tool`** to produce a user-accessible download link (citation tag).

**Storage Scoping and Security**

When using the platform IAM role (no explicit credentials), the tool enforces strict path scoping:

* All files must reside under `{recipe_id}/{thread_id}/` within the platform-managed bucket.
* `copy` and `move` operations validate that both `src` and `dest` fall within this scope before proceeding.
* The source file must exist before a `copy` or `move` is allowed.

Operations that violate these constraints return a `File Operations Not Permitted` message and are not executed.

When explicit credentials are provided, the tool verifies accessibility of the source file and destination bucket but does not enforce path restrictions.

{% hint style="info" %}
The `copy` operation preserves the source file, while the `move` operation removes it from the source location.
{% endhint %}

### Knowledge Base

The following sections describe each supported Knowledge Base provider.

#### Amazon Bedrock Knowledge Base

Amazon Bedrock Knowledge Base is an AWS-managed Retrieval-Augmented Generation service. It is used when document ingestion, chunking, embedding, vector indexing, retrieval, and optional reranking should be handled by AWS-managed infrastructure. This provider is best suited for AWS native RAG workflows, especially when documents are stored in S3 .

When **Amazon Bedrock Knowledge Base** is selected as the provider, the following fields are visible:

<figure><img src="https://415930246-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7ZrVuiAUMyuYVvrK5KaB%2Fuploads%2FHvmvf3hq93WYDdpfC9wK%2Fimage.png?alt=media&amp;token=cb98c4f4-2642-4cb1-bffb-30afb55c7580" alt=""><figcaption></figcaption></figure>

* **Knowledge Base Id** `Required`: Specifies the unique Bedrock Knowledge Base ID used for retrieval.
* **Filter Key** `Optional`: Defines the metadata field used to filter retrieved results.
* **Filter Value** `Optional`: Defines the matching value for the selected metadata filter key.
* **Number Of Results** `Required`: Sets the maximum number of relevant passages returned from the Knowledge Base.
* **Query Text**: Provides the search query sent to the Knowledge Base, either manually or from runtime input.
* **Overwrite Credentials Option** : By default, the AWS credentials configured in[ Organization](https://docs.karini.ai/organization) settings will be used to invoke AWS resource.  However, if needed, you can provide alternate AWS credentials.
* **Test**: Validates the configuration and verifies that retrieval works correctly.
* **Save** : Saves the configuration.

#### Amazon Q Accessor Retriever

Amazon Q Accessor Retriever is the retrieval-only mode for Amazon Q Business. It returns raw retrieved passages instead of a synthesized answer.This provider is useful when the workflow or agent must control the final reasoning, output format, citation handling, or combination of multiple sources.

When **Amazon Q Accessor Retriever** is selected as the provider, the following fields are visible:

<figure><img src="https://415930246-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7ZrVuiAUMyuYVvrK5KaB%2Fuploads%2FjYVtxaSheojMV5TrtaKF%2Fimage.png?alt=media&amp;token=16d5812a-ae72-403b-bfd1-013b24498790" alt=""><figcaption></figcaption></figure>

* **Application ID**: Enter the Amazon Q Business Application ID associated with your deployment.
* **Retriever ID**: Enter the unique Amazon Q Business retriever ID.
* **Application Region**: Specify the AWS region where the Amazon Q Business application is hosted.
* **IDC Application ARN**: Provide the ARN for the IAM Identity Center (IDC) client integrated with Amazon Q Business.
* **IDC Region**: Enter the AWS region where the IAM Identity Center is configured.
* **Max Results**: Set the maximum number of results to be retrieved per query.
* **Credentials**: Configures the AWS credentials used to authenticate with Amazon Q Business and related AWS services.
* **Overwrite Credentials** : Allows this  use custom credentials instead of the default credentials.
* **Save** : Saves the configured Amazon Q Accessor Retriever settings.

#### Azure AI Search

Azure AI Search is Microsoft’s managed search service for vector, keyword, and hybrid retrieval. It is used when indexed content is stored in Azure AI Search and the workflow needs semantic or hybrid search over that content.

When **Azure AI Search** is selected as the provider, the following fields are visible :

<figure><img src="https://415930246-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7ZrVuiAUMyuYVvrK5KaB%2Fuploads%2F0WgDUH6vt9ZqlD4q300R%2Fimage.png?alt=media&amp;token=4274460f-8af8-4237-8267-2fec00d7dea4" alt=""><figcaption></figcaption></figure>

* **Index Name** `Required`: Specifies the Azure AI Search index that contains the indexed documents and embeddings.
* **Embeddings Model**: Selects the embedding model used to convert queries into vectors for semantic retrieval.
* **Prompt Context**: Defines how retrieved content will be used as context in the prompt.
  * **Use Embedding Chunks**: Uses retrieved document chunks from the vector index as prompt context.
* **Top-K**: Defines the number of most relevant chunks returned from Azure AI Search.
* **Enable Reranker**: Reorders retrieved results to improve relevance before passing them to the prompt.
* **Advanced Query Reconstruction**

  Additionally, you can select advanced query reconstruction options to enable query rewrite for optimized and accurate search results. Refer to Dataset for details. &#x20;

  1. **Multi query rewrite:** Enhance your search with multiple variations of your query to capture diverse perspectives and improve retrieval accuracy.
  2. **Query expansion:** Enriches query by automatically adding related terms or phrases to retrieve more comprehensive and relevant results. Expand your search query to include additional information that can assist in answering your query effectively.
* **Enable ACL restriction**

  When you enable this feature, the knowledge base will first be filtered based on the user's ACL (Access Control List) permissions. This ensures that only content the user is allowed to access is considered before performing the retrieval using semantic similarity. This step enhances security by limiting retrieval to permissible information.
* **Enable dynamic Metadata filtering**

  &#x20;When enabled, this feature uses a Large Language Model (LLM) to automatically generate custom metadata filters by analyzing metadata keys and the input query. These filters are then applied to narrow down the knowledge base before performing retrieval with semantic similarity. This is an experimental feature designed to optimize retrieval based on dynamic and context-aware metadata filtering.
* **Hybrid search**

  Hybrid Search enables the combination of vector-based semantic retrieval and keyword-based lexical matching within the Knowledge base . This approach improves retrieval accuracy by leveraging both deep semantic understanding and precise keyword alignment.

  Hybrid Search is activated by enabling the **Enable Hybrid Search** option. Once activated, the system requires a Query Template in JSON format to define how results are retrieved and scored.

  **Query Template Schema**

  ```

  {
    "vector_weight": 0.6,
    "keyword_weight": 0.4,
    "fields": [
      "raw_chunk^2.0"
    ]
  }
  ```

  * **vector\_weight**: Specifies the contribution of vector similarity to the final relevance score. Value must be between 0 and 1.
  * **keyword\_weight**: Specifies the contribution of keyword relevance. Must complement the vector\_weight to ensure balanced scoring
  * **fields**: Field to which the defined scoring weight is applied during retrieval.

  This configuration allows fine-grained control over hybrid ranking strategies, ensuring optimal relevance in document retrieval.

#### Document Reader

Document Reader is a real-time document processing provider. It reads and extracts content from files during execution rather than relying on a pre-indexed vector store. This provider is best suited for user-uploaded files, email attachments, S3 files and other dynamic documents that are not already indexed.

When **Document Reader** is selected as the provider, the following fields are visible :

<figure><img src="https://415930246-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7ZrVuiAUMyuYVvrK5KaB%2Fuploads%2FDnWglh0CcRUJ4RvVoCe7%2Fimage.png?alt=media&amp;token=4eb9586b-7c69-44fd-ab6f-272fc1f1b4b9" alt=""><figcaption></figcaption></figure>

* **Connector Type**: Specifies the data source integration method, such as where the document will be fetched from.
* **Preprocessing Options**: Groups document-processing settings that can be applied before the content is used by the prompt.
* **Enable Transcription**: Enables speech-to-text processing for supported audio or media-based content.
* **OCR Options**: Enables text extraction from scanned documents, images, or image-based PDFs.
* **PII Masking Options**: Masks or redacts sensitive personal information before the extracted content is passed to the prompt.
* **Save** : Saves the Document Reader configuration or exits without applying changes.

To view these options in detail, refer to the [**Document Reader** ](/karini-ai-documentation/recipes/workflow-recipe/set-up-workflow-recipe.md#document-reader)section.

#### Pinecone

Pinecone is a managed vector database used for high-performance similarity search over pre-embedded document chunks. It is useful when user want a dedicated vector store that is independent of a cloud provider’s native search stack.This provider is suitable for applications with large embedding indexes, low-latency vector retrieval requirements, or existing Pinecone-based RAG infrastructure.

When **Pinecone** is selected as the provider, the following fields are visible :

<figure><img src="https://415930246-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7ZrVuiAUMyuYVvrK5KaB%2Fuploads%2FGLv2C6I3Og24La9lAiC7%2Fimage.png?alt=media&amp;token=e1ba1ce6-ee9f-4af0-b949-4645f927bc6d" alt=""><figcaption></figcaption></figure>

* **Index Name** `Required`: Specifies the Pinecone index that contains the searchable document data.
* **Namespace**: Limits retrieval to a specific namespace within the Pinecone index.
* **Index Type**: Defines the Pinecone retrieval mode; available options&#x20;
  * FTS Index
  * Dense Vector Index
* **FTS Index**: Uses a full-text-search style index for keyword-oriented retrieval and can support hybrid retrieval when enabled.
* **Dense Vector Index**: Uses dense vector similarity search to retrieve semantically relevant chunks based on embeddings.
  * **Pinecone Managed Embeddings**: Uses Pinecone-managed embedding generation for the index and query flow.
  * **BYO Embeddings**: Uses externally generated embeddings; the embedding model, vector dimension, and index configuration must match
* **Embeddings Model**: Selects the embedding model used to convert queries into vectors when the selected index type requires an external embedding model.
* **Top-K**: Defines the number of most relevant results returned from Pinecone.
* **Enable Reranker**: Reorders retrieved results after the initial search to improve relevance before sending context to the prompt.
* **Advanced Query Reconstruction**: Rewrites or improves the user query before retrieval to increase search accuracy.
* **Enable ACL Restriction**: Applies access-control rules so users only retrieve content they are authorized to access.
* **Enable Dynamic Metadata Filtering**: Applies runtime metadata filters to narrow retrieval results based on document attributes.
* **Enable Hybrid Search**: Combines keyword-based retrieval with vector similarity search when supported by the selected index type.
* **Save** : Saves the Pinecone configuration.

To view these options in detail, refer to the [**Azure AI Search**](#azure-ai-search) section.

{% hint style="info" %}
The **Embedding Source** option is displayed when **Dense Vector Index** is selected and defines how embeddings are generated for Pinecone retrieval.
{% endhint %}

#### PostgreSQL

Knowledgebase efficiently stores and retrieves data using PostgreSQL. It saves embeddings and corresponding data in the database, enabling quick and effective knowledge retrieval.

You set up PostgreSQL credentials to connect to a database and choose an embedding model for AI-powered queries.

**Postgres Credentials**&#x20;

* **Host** (Required): Specifies the server address where the PostgreSQL database is hosted.
* **User Name** (Required): The username required to authenticate and connect to the PostgreSQL database.
* **User Password** (Required): The password associated with the specified username for secure access.
* **Database**: The name of the PostgreSQL database to connect to.
* **Port**: Defines the port number used to connect to PostgreSQL (default: 5432).
* **Embeddings Model** (Required): Users can select an embedding model for AI-driven vector searches. This model is used for semantic search and querying embeddings stored in the database.
* **Top K**: Specifies the number of top results (K) to retrieve when performing an embedding-based query.
  * Example: 3 means the top 3 most relevant matches will be returned.

#### Teradata EVS

Teradata Enterprise Vector Store provides vector search capabilities within the Teradata analytics ecosystem. It is designed for organizations that already use Teradata for enterprise data warehousing and analytics. This provider allows semantic retrieval to operate close to enterprise data stored in Teradata environments.

When **Teradata EVS** is selected as the provider, the following fields are visible :

<figure><img src="https://415930246-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7ZrVuiAUMyuYVvrK5KaB%2Fuploads%2FM9BK2GxcZthhkkxCt7Sm%2Fimage.png?alt=media&amp;token=d01736a3-ada9-48e3-a9de-3619541abf0f" alt=""><figcaption></figcaption></figure>

* **Teradata EVS Table Name** `Required`: Specifies the Teradata EVS table that contains the indexed document embeddings or searchable content.
* **Embeddings Model**: Selects the embedding model used to convert queries into vectors for semantic retrieval.
* **Prompt Context**: Defines how retrieved content will be provided to the prompt during execution.
* **Use Embedding Chunks**: Uses the retrieved vector-based document chunks as context for the prompt.
* **Top-K**: Defines the number of most relevant chunks returned from Teradata EVS.
* **Enable Reranker**: Reorders retrieved results to improve relevance before passing them to the prompt.
* **Advanced Query Reconstruction**: Refines or rewrites the user query before retrieval to improve search accuracy.
* **Enable ACL Restriction**: Applies access-control rules so users retrieve only authorized content.
* **Enable Dynamic Metadata Filtering**: Applies runtime metadata filters to narrow the retrieved results.

To view these options in detail, refer to the [**Azure AI Search**](#azure-ai-search) section.

### Knowledge Graph

The **Knowledge Graph tool** in Agent prompts enables Karini AI agents to access structured and interconnected knowledge base stored in a Neo4j database. The tool enhances data retrieval by using vector-based indexing and understanding semantic relationships between data points. It integrates with Neo4j, where structured data is stored as vector indexes. This allows agents to fetch relevant information based on context rather than just relying on keyword searches, making the retrieval process more intelligent and efficient.

To enhance semantic search capabilities, users must select an embedding model, which helps the agent understand relationships between entities and provide more relevant responses. When an agent prompt is executed, the tool queries the Knowledge Graph, retrieving relevant insights based on natural language inputs. This functionality supports AI-driven decision-making, document retrieval, and contextual reasoning.&#x20;

* Input Schema: The tool includes a predefined input schema that structures data for efficient retrieval.

```
{
	"$schema": "http://json-schema.org/schema#",
	"type": "object",
	"description": "Schema for a Cypher query execution request",
	"properties": {
		"cypher_query": {
			"type": "string",
			"description": "The Cypher query to be executed on the graph database"
		},
		"args": {
			"type": "object",
			"description": "Arguments to be used in the Cypher query",
			"properties": {
				"Vector_Input": {
					"type": "string",
					"description": "Input vector representing the query",
					"default_value": "None"
				}
			},
			"required": [
				"Vector_Input"
			]
		}
	},
	"required": [
		"args",
		"cypher_query"
	]
}
```

* **Embedding Model Selection**: You must select an embedding model to enable semantic search and contextual understanding.
* **Neo4j Credentials**: A secure connection to the Neo4j database requires users to configure the necessary credentials.
  * **URI**: Specifies the Neo4j database connection endpoint (e.g., neo4j://host:port).
  * **Database Name**: Defines the specific Neo4j database to interact with.
  * **Username**: The credential for authenticating with the Neo4j database.
  * **User Password**: The password associated with the username for secure access.
  * **Processing Region**: Specifies the region for data processing (default: us-east-1).
* **Connection Testing**: The Test **Neo4j Connection** button allows you to verify the connection and ensure the database is accessible before execution.

### Lambda

The Lambda tool in agent prompts allows you to configure and invoke AWS Lambda functions directly from the agent interface. This means you can invoke serverless functions seamlessly to perform agent actions as a tool.

* **Lambda ARN:** Enter the Amazon Resource Name (ARN) of the Lambda function you want to invoke. This uniquely identifies the Lambda function within AWS.
* **Input Schema:** Specify the JSON schema that outlines the structure of the input data your Lambda function expects. This includes defining the required fields and their data types. You can input this value, or have it auto-generated using Setup Schema option.                &#x20;

```
{
    "$schema": "http://json-schema.org/schema#",
    "type": "object",
    "properties": {
        "email": {
            "type": "string",
            "description": "The user's email address."
        },
        "pii": {
            "type": "object",
            "properties": {
                "age": {
                    "type": "integer",
                    "description": "The user's age."
                },
                "location": {
                    "type": "string",
                    "description": "The user's current location."
                }
            },
            "required": [
                "age",
                "location"
            ],
            "description": "Personal Identifiable Information including age and location."
        },
        "taxes": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "year": {
                        "type": "integer",
                        "description": "The year the tax record pertains to."
                    }
                },
                "required": [
                    "year"
                ],
                "description": "An array of tax records by year."
            },
            "description": "A collection of tax information for different years."
        }
    },
    "required": [
        "email",
        "pii",
        "taxes"
    ],
    "description": "A schema for user information including email, personal details, and tax records."
}
```

* **Setup Schema:** You have option to automatically generate the schema for the Lambda function using the test payload. The LLM configured as [Natural Language Assistant ](/karini-ai-documentation/organization.md#natural-language-assistant)in the Organization setting is used for this schema generation. You have an option to edit the schema if necessary.&#x20;

Example:

```
{
  "email": "john@example.com",
  "pii": {
    "age": 30,
    "location": "California"
  },
  "taxes": [
    {
      "year": 2022
    }
  ]
}
```

* **Input Test Payload:** This is a  sample payload that will be used to test the Lambda function. This helps ensure the function behaves as expected with the provided input.

Example:

```
{
  "email": "john@example.com",
  "pii": {
    "age": 30,
    "location": "California"
  },
  "taxes": [
    {
      "year": 2022
    }
  ]
}
```

* **Overwrite Credentials:** By default, the AWS credentials configured in [Organization](/karini-ai-documentation/organization.md) settings will be used to invoke AWS resource.  However, if needed, you can provide alternate AWS credentials to invoke the Lambda function.&#x20;

### Prompt (LLM)&#x20;

Prompt tool enables an agent to perform actions using another LLM, with prompt instructions. You can select one of the existing prompts from the list, and configure it as a tool. The LLM associated with the prompt will be used to carry out the actions for the tool as per the prompt instructions. &#x20;

* **Input Schema:**  For the selected prompt, an input schema is automatically generated. The LLM configured as [Natural Language Assistant ](/karini-ai-documentation/organization.md#natural-language-assistant)in the Organization setting is used for this schema generation. You have an option to edit the schema if necessary.&#x20;

**Only published prompts are available as tools**. When a prompt is selected, the system displays its **current versio**n along with a **redirect icon**, allowing you to navigate to the prompt playground for detailed agent details and make necessary modifications.

The following image illustrates the **version** and **redirect** icon.

<figure><img src="https://415930246-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7ZrVuiAUMyuYVvrK5KaB%2Fuploads%2FTeDa00VQnOzsavcQpLNm%2Fimage.png?alt=media&amp;token=81fe31c0-d2d2-4edf-8867-6bc49a2629eb" alt=""><figcaption></figcaption></figure>

To switch to **a specific version**, click on the d**isplayed version**. This will generate a list of all associated versions. Select the required version, and the system will load the complete agent details corresponding to the selected version.

The following image displays the **associated versions**.

<figure><img src="https://415930246-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7ZrVuiAUMyuYVvrK5KaB%2Fuploads%2F3lCT4l0RFpBAOZpbqj9E%2Fimage.png?alt=media&amp;token=00d66a6c-52db-4fbf-9475-9bfd48c1b32d" alt=""><figcaption></figcaption></figure>

### REST API

You can have an agent invoke a REST API as a tool. To configure this tool, you need to provide a REST API URL and method (POST, GET, PUT) .&#x20;

* **REST URL:** The REST URL is the endpoint address where the REST API is hosted. This URL specifies the exact location of the resource that you want to interact with via the API.

&#x20;      Example:

```
http://ec2-11-111-111-111.compute-1.amazonaws.com:8000/api/extensions/dummy_api
```

* **Method:** This defines the type of HTTP request method to use when calling the API. supported methods include GET, POST and PUT.
* **Input Schema:** This is the structure of the expected input data, often defined in a JSON format. It specifies the required fields and data types. You can input this value, or have it auto-generated using Setup Schema option.                &#x20;

&#x20;   Example:      &#x20;

```
{
  "$schema": "http://json-schema.org/schema#",
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "The full name of the individual or entity."
    }
  },
  "required": [
    "name"
  ]
}
```

* **Setup Schema:** You have option to automatically generate the schema for the REST API using the  test payload. The LLM configured as [Natural Language Assistant ](/karini-ai-documentation/organization.md#natural-language-assistant)in the Organization setting is used for this schema generation. You have an option to edit the schema if necessary.&#x20;
* **Input Test Payload:** This is a sample payload that adheres to the input schema and is used to test the API endpoint. It demonstrates the format and type of data that should be sent in a request.

&#x20;    Example

```
{"name":"John"}
```

* **URL Credentials:** These are the authentication details required to access the API.
  * User name(optional)
  * User password
  * API Token

The following is the default schema for the REST API tool.

```
{
    "$schema": "http://json-schema.org/schema#",
    "type": "object",
    "properties": {
        "method": {
            "type": "string",
            "description": "HTTP method for the request (GET, POST, PUT, PATCH, DELETE, etc.)",
            "enum": ["GET", "POST", "PUT", "PATCH", "DELETE", "HEAD", "OPTIONS"]
        },
        "endpoint": {
            "type": "string",
            "description": "The API endpoint URL or path to which the request will be sent; Default value: /services/data/v62.0"
        },
        "headers": {
            "type": "object",
            "description": "HTTP headers to include in the request, such as Content-Type, Authorization, etc.",
            "additionalProperties": {
                "type": "string",
                "description": "Header key-value pairs"
            }
        },
        "query_params": {
            "type": "object",
            "description": "URL query parameters to append to the endpoint as key-value pairs",
            "additionalProperties": {
                "description": "Query parameter value"
            }
        },
        "path_params": {
            "type": "object",
            "description": "Path parameters to substitute in the endpoint URL template",
            "additionalProperties": {
                "description": "Path parameter value"
            }
        },
        "json_data": {
            "type": "object",
            "description": "JSON payload to be sent in the request body for POST, PUT, or PATCH requests",
            "additionalProperties": {
                "description": "JSON data field"
            }
        },
        "data": {
            "type": "object",
            "description": "Form-encoded or additional data to be sent in the request body",
            "additionalProperties": {
                "description": "Data field value"
            }
        }
    },
    "required": [
        "method",
        "data",
        "endpoint",
        "headers",
        "json_data",
        "path_params",
        "query_params"
    ]
}
```

### Salesforce

The Salesforce Tool enables AI agents to query and retrieve data directly from a connected Salesforce . It removes the need for manual exports or custom API integrations.

The tool supports:

* **Object Queries** for standard and custom objects such as Account, Contact, Opportunity, and Lead.
* **Report Queries** for retrieving data from Salesforce Reports.

The agent provides the query and query type, and the tool returns structured data that can be analyzed, summarized, or used in subsequent workflow steps.

**Example use cases:**

* "Show me all open opportunities over $50,000 closing this quarter"
* "How many support cases were opened last week by region?"
* "Retrieve the top 10 accounts by annual revenue"
* "Pull the latest Salesforce report on pipeline by stage"

**Configuration Parameters:**

* **Salesforce Username :**&#x54;he email address or username of the Salesforce account,
* **Salesforce Password** :The password associated with the Salesforce account.
* **Salesforce Security Token** :The security token issued by Salesforce for external API access.&#x20;
* **Query Type:** Specifies the data source to query. Available options are **Object** and **Report**.
* **Input Schema :**&#x44;isplays the JSON structure required for the selected query type, including mandatory fields, supported data types, and validation requirements.
  * ```json
    {
      "$schema": "http://json-schema.org/schema#",
      "type": "object",
      "properties": {
        "sql": {
          "type": "string",
          "description": "SQL query string to be executed"
        },
        "type": {
          "type": "string",
          "description": "Type of SQL operation or query being performed"
        }
      },
      "required": ["sql", "type"],
      "description": "Schema for SQL query execution parameters"
    }
    ```
* **Input Test :** A sample query payload used to validate the tool configuration.
  * ```json
    {
      "sql": "select * from Report limit 10",
      "type": "Object"
    }
    ```
* **Test:** Executes the sample payload to verify the query format, authentication details, and overall tool configuration.

**Query modes**

* **Object Mode (default**
  * Queries Salesforce objects directly using SQL. This is the standard mode for querying records from objects like `Account`, `Opportunity`, `Lead`, `Contact`, `Case`, and any custom object.
  * **Example query:**
  * ```sql
    SELECT Name, StageName, Amount, CloseDate
    FROM Opportunity
    WHERE StageName != 'Closed Won' AND CloseDate >= '2025-01-01'
    ORDER BY Amount DESC
    LIMIT 20
    ```
* **Report Mode**
  * Connects to Salesforce with report access enabled, allowing the agent to query pre-built Salesforce Reports as if they were tables.
  * **Example query:**
  * <pre class="language-sql"><code class="lang-sql"><strong>SELECT * FROM "Pipeline by Stage Report"
    </strong></code></pre>

{% hint style="info" %}
The query mode is set at tool configuration time via `query_type` .The agent does not switch modes at runtime.
{% endhint %}

#### SAP OData

The SAP OData Tool enables AI agents to access and manage data directly in SAP systems through the OData protocol. Agents can connect to an SAP OData service endpoint using configured credentials and perform the following operations:

* Discover available entities
* Inspect entity schemas, fields, and data types
* Retrieve records using `SELECT`
* Create records using `INSERT`
* Modify records using `UPDATE`
* Remove records using `DELETE`
* Count records with optional filter conditions
* Apply filtering, sorting, pagination, and field selection

When a task requires SAP data, the agent identifies the relevant entity, constructs the appropriate query, executes it against the SAP system, and returns structured results for further processing, analysis, or use in subsequent workflow steps.

Typical use cases include retrieving product data, sales orders, customer records, and material information, as well as updating SAP records without building custom API integrations or manually exporting data.

**Configuration Parameters:**

* **SAP OData Username :**&#x54;he username used to authenticate with the SAP OData service.
* **SAP OData Password** :The password associated with the SAP OData username.
* **SAP OData URL** :The base URL of the SAP OData service endpoint.
* **SAP CustomUrlParams** :Optional URL parameters added to SAP OData requests for additional configuration or filtering.
* **Input Schema** :Displays the JSON structure required to execute SAP OData operations, including mandatory fields, supported data types, and validation rules.
  * ```json
    {
      "$schema": "http://json-schema.org/schema#",
      "type": "object",
      "description": "Root object containing search parameters",
      "properties": {
        "query": {
          "type": "string",
          "description": "Search term or keywords used to filter results"
        }
      },
      "required": [
        "query"
      ]
    }
    ```
* **Input Test :**&#x41; sample query payload used to validate the tool configuration.
  * ```json
    {
      "entity": "Products",
      "top": 5
    }
    ```
* **Test** : Executes the sample payload to verify the query format, authentication credentials, SAP OData endpoint, and overall tool configuration.

**Example use cases:**

* "Show me all invoices for vendor 4500001818"
* "List all purchase orders with status 'Pending Approval'"
* "How many open sales orders exist in the system right now?"
* "Update the status of invoice #INV-00123 to 'Approved'"
* "What tables are available in this OData service?"

**Supported Query Operations**

* **SELECT** : Fetch records from any OData entity. Results are capped at **1,000 rows** per query.

```sql
-- Retrieve all fields from an entity
SELECT * FROM invoices

-- Retrieve specific fields with a filter
SELECT invoice_number, vendor_id, amount, status
FROM invoices
WHERE status = 'OPEN'

-- Table names with special characters must be double-quoted
SELECT * FROM "PurchaseOrders" WHERE DocumentDate >= '2025-01-01'
```

**Output:**

```json
{
  "columns": ["invoice_number", "vendor_id", "amount", "status"],
  "rows": [
    { "invoice_number": "4500001818", "vendor_id": "V001", "amount": 12500.00, "status": "OPEN" }
  ],
  "count": 1
}
```

* **INSERT :** Insert a new record into an OData entity.

```sql
INSERT INTO "PurchaseOrders" (VendorID, DocumentDate, Amount)
VALUES ('V001', '2025-07-01', 5000.00)
```

**Output:**

```json
{
  "success": true,
  "affected_rows": 1,
  "message": "Query executed successfully. 1 row(s) affected."
}
```

* **UPDATE** : Update one or more records matching a condition.

```sql
UPDATE "invoices" SET status = 'APPROVED' WHERE invoice_number = '4500001818'
```

**Output:**

```json
{
  "success": true,
  "affected_rows": 1,
  "message": "Query executed successfully. 1 row(s) affected."
}
```

* **DELETE** : Delete records that match a given condition.

```sql
DELETE FROM "invoices" WHERE invoice_number = '4500001818'
```

**Output:**

```json
{
  "success": true,
  "affected_rows": 1,
  "message": "Query executed successfully. 1 row(s) affected."
}
```

#### Web Search&#x20;

The Web Search Tool enables AI agents to retrieve current, publicly available information from the internet during workflow execution. It is designed for tasks that require up-to-date or external data, such as recent news, product pricing, market information, technical documentation, and product specifications.

When needed, the agent generates a relevant search query, submits it through the configured provider, and receives structured results such as titles, URLs, snippets, and publication dates. The agent then evaluates and synthesizes this information to produce an accurate and timely response.

**Example use cases:**

* "What is the latest stable version of Python?"
* "Summarize today's top news in AI."
* "What are the current AWS EC2 pricing tiers for `m5.large`?"
* "Find the official documentation for the OpenAI Chat Completions API."
* "Is there a known CVE for Log4Shell and what is the current patch status?"

#### Provider

The **Provider** dropdown specifies the search service used by the Web Search Tool to execute queries. Each provider differs in authentication requirements, search coverage, and response format. Select the provider based on the workflow’s setup, data requirements, and expected search quality.

<figure><img src="https://415930246-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7ZrVuiAUMyuYVvrK5KaB%2Fuploads%2FLgcD0g0zik4lI3BYypsX%2Fimage.png?alt=media&amp;token=59e80225-01d4-499b-b7c4-9fb71dd8f131" alt=""><figcaption></figcaption></figure>

* **DuckDuckGo**
  * Requires no API key.
  * Requires no additional configuration.
  * Suitable for:
    * General-purpose web searches
    * Development and testing
    * Workflows that require quick, credential-free setup
* **Google**
  * Uses the Google Programmable Search Engine API.
  * Requires:
    * **API Key:** Authenticates requests to the Google Custom Search JSON API.
    * **Search Engine ID:** Identifies the configured Programmable Search Engine and defines its search scope.
  * Suitable for:
    * Broad web coverage
    * Google-ranked search results
    * Workflows requiring a configurable search index
* **Tavily**
  * Uses a search API optimized for AI agents and LLM-based workflows.
  * Requires:
    * **API Key:** Authenticates requests to the Tavily Search API.
  * Suitable for:
    * Structured and machine-readable results
    * Automated reasoning and summarization
    * Retrieval-augmented generation workflows

#### MCP Server

The **MCP Server** option is available under the **Tools** section.

<figure><img src="https://415930246-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7ZrVuiAUMyuYVvrK5KaB%2Fuploads%2FiBlaPt2fwjvxCSxmz7Vf%2Fimage.png?alt=media&amp;token=7e4654a8-dda3-4615-89bf-538c0e32e8ec" alt=""><figcaption></figcaption></figure>

Once a server is enabled in MCP registry, it automatically appears in the **MCP Server** section under **Agent Prompts**, providing a consolidated view of all available MCP server connections.

To assign a specific MCP server to an agent:

1. Open **Agent Prompts**.
2. Navigate to the **MCP Server** section.
3. Select the required MCP server from the available list.
4. Click **Save** to apply and persist the configuration.

<figure><img src="https://415930246-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7ZrVuiAUMyuYVvrK5KaB%2Fuploads%2FRNLOlKN8SeWhCSG4KNFx%2Fimage.png?alt=media&amp;token=05e2f3ec-e132-49cf-97f3-02e72fcf51d1" alt=""><figcaption></figcaption></figure>

#### Authorization in Prompt Playground

In **Prompt Playground**, users can authorize the MCP Server connections required by an agent. Authorization behavior is as follows:

* Users must authorize MCP Server connections before using the agent, if not already authorized, by clicking the **Connect** button.

<figure><img src="https://415930246-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7ZrVuiAUMyuYVvrK5KaB%2Fuploads%2FqWV1NgC0l2kExTeps7ey%2Fimage.png?alt=media&amp;token=22b9984c-c6ea-4d73-9946-5f80d4f3b493" alt=""><figcaption></figcaption></figure>

* If a connection was previously authorized, prompt playground reuses the persisted authorization from the **MCP Registry**.
* If a user attempts to test an agent with an unauthorized MCP Server connection, the system displays an **authorization pop-up** to complete the approval flow.

<figure><img src="https://415930246-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F7ZrVuiAUMyuYVvrK5KaB%2Fuploads%2FQQfKROjTnaqBVV1062Gr%2Fimage.png?alt=media&amp;token=bd04781f-9c9f-4d0a-9fab-23cb8f326b23" alt=""><figcaption></figcaption></figure>

<br>
