diff --git a/cloud/cloud-account.mdx b/cloud/cloud-account.mdx index cf105dc2c6..ad98e76531 100644 --- a/cloud/cloud-account.mdx +++ b/cloud/cloud-account.mdx @@ -18,8 +18,8 @@ import LanguageContent from "@site/src/components/LanguageContent"; *RavenDB Cloud* allows you to manage your payment information, access, and other user roles. * In this page: - * [Account roles](../cloud/cloud-account.mdx#account-roles) - * [Multi-account configuration](../cloud/cloud-account.mdx#multi-account-configuration) + * [Account roles](#account-roles) + * [Multi-account configuration](#multi-account-configuration) ## Account roles diff --git a/cloud/cloud-api.mdx b/cloud/cloud-api.mdx index 03f89e9057..657b29859c 100644 --- a/cloud/cloud-api.mdx +++ b/cloud/cloud-api.mdx @@ -62,7 +62,7 @@ RavenDB Cloud does not send reminders about upcoming API key expiration. You can change the expiration date or extend it for another *12 months*. -For more details, please check the [Edit API Key](../cloud/portal/cloud-portal-api-tab.mdx#edit-api-key) section. +For more details, please check the [Edit API Key](./portal/cloud-portal-api-tab.mdx#edit-api-key) section. diff --git a/cloud/cloud-aws-marketplace.mdx b/cloud/cloud-aws-marketplace.mdx index bc8a5c3c1b..99d6f75782 100644 --- a/cloud/cloud-aws-marketplace.mdx +++ b/cloud/cloud-aws-marketplace.mdx @@ -18,10 +18,10 @@ import LanguageContent from "@site/src/components/LanguageContent"; Access to *RavenDB Cloud* services is available through the *AWS Marketplace*. * In this page: - * [Overview](../cloud/cloud-aws-marketplace.mdx#overview) - * [Supported countries](../cloud/cloud-aws-marketplace.mdx#supported-countries) - * [Registration process](../cloud/cloud-aws-marketplace.mdx#registration-process) - * [Subscription cancellation process](../cloud/cloud-aws-marketplace.mdx#subscription-cancellation-process) + * [Overview](#overview) + * [Supported countries](#supported-countries) + * [Registration process](#registration-process) + * [Subscription cancellation process](#subscription-cancellation-process) ## Overview @@ -43,7 +43,7 @@ Countries and regions outside this list do not currently have automated tax hand If your country is not listed below, you can still use *RavenDB Cloud* by signing up directly at [cloud.ravendb.net](https://cloud.ravendb.net) and paying via credit card or wire transfer. -See [Pricing, Payment and Billing](../cloud/cloud-pricing-payment-billing.mdx) for more details. +See [Pricing, Payment and Billing](./cloud-pricing-payment-billing.mdx) for more details. The following countries and regions are currently supported: diff --git a/cloud/cloud-backup-and-restore.mdx b/cloud/cloud-backup-and-restore.mdx index 759588a3c1..137b13887d 100644 --- a/cloud/cloud-backup-and-restore.mdx +++ b/cloud/cloud-backup-and-restore.mdx @@ -15,22 +15,22 @@ import LanguageContent from "@site/src/components/LanguageContent"; # Cloud: Backup And Restore -* RavenDB cloud instances of the [Free](../cloud/cloud-instances.mdx#a-free-cloud-node) and - [Production](../cloud/cloud-instances.mdx#a-production-cloud-cluster) tiers are regularly and automatically backed up. +* RavenDB cloud instances of the [Free](./cloud-instances.mdx#a-free-cloud-node) and + [Production](./cloud-instances.mdx#a-production-cloud-cluster) tiers are regularly and automatically backed up. * You can also define custom backup tasks, as you would with an on-premises RavenDB server. -* [Development](../cloud/cloud-instances.mdx#a-development-cloud-server) products do **not** offer mandatory backup by RavenDB Cloud. +* [Development](./cloud-instances.mdx#a-development-cloud-server) products do **not** offer mandatory backup by RavenDB Cloud. You **can** define custom backup tasks for them. * In this page: - * [The Mandatory-Backup Routine](../cloud/cloud-backup-and-restore.mdx#the-mandatory-backup-routine) - * [Tier Requirements and Failure Disclaimer](../cloud/cloud-backup-and-restore.mdx#tier-requirements-and-failure-disclaimer) - * [Backup storage](../cloud/cloud-backup-and-restore.mdx#backup-storage) - * [Charging For Backup storage](../cloud/cloud-backup-and-restore.mdx#charging-for-backup-storage) - * [Backup Encryption](../cloud/cloud-backup-and-restore.mdx#backup-encryption) - * [Creating a Custom Backup](../cloud/cloud-backup-and-restore.mdx#creating-a-custom-backup) - * [Restore Mandatory-Backup Files](../cloud/cloud-backup-and-restore.mdx#restore-mandatory-backup-files) + * [The Mandatory-Backup Routine](#the-mandatory-backup-routine) + * [Tier Requirements and Failure Disclaimer](#tier-requirements-and-failure-disclaimer) + * [Backup storage](#backup-storage) + * [Charging For Backup storage](#charging-for-backup-storage) + * [Backup Encryption](#backup-encryption) + * [Creating a Custom Backup](#creating-a-custom-backup) + * [Restore Mandatory-Backup Files](#restore-mandatory-backup-files) ## The Mandatory-Backup Routine @@ -45,7 +45,7 @@ The mandatory backup process cannot be disabled. We keep your backup files for no less than 14 days. -You can [contact support](../cloud/portal/cloud-portal-support-tab.mdx) to prolong this period, but not reduce it. +You can [contact support](./portal/cloud-portal-support-tab.mdx) to prolong this period, but not reduce it. #### The Backup Task @@ -94,16 +94,16 @@ of resources during the backup run. Upgrade your product tier to resolve the iss -See [Tiers and Instances](../cloud/cloud-instances.mdx) for a full comparison of available tiers +See [Tiers and Instances](./cloud-instances.mdx) for a full comparison of available tiers and their resource allocations. ## Backup storage #### Mandatory-Backup Storage -Backups created by the [mandatory backup routine](../cloud/cloud-backup-and-restore.mdx#the-mandatory-backup-routine) are stored in a RavenDB +Backups created by the [mandatory backup routine](#the-mandatory-backup-routine) are stored in a RavenDB cloud you have no direct access to. -You can [view and restore](../cloud/cloud-backup-and-restore.mdx#restore-mandatory-backup-files) them using your portal's Backups tab and the +You can [view and restore](#restore-mandatory-backup-files) them using your portal's Backups tab and the management Studio. @@ -121,7 +121,7 @@ Upon backup geographically closest AWS S3 bucket is used for backup storage e.g. - if your RavenDB Cloud cluster has been created in the US, it backs up to AWS S3 buckets in the US. #### Custom-Backup Storage -[Custom-backup](../cloud/cloud-backup-and-restore.mdx#creating-a-custom-backup) files can be kept using an Amazon service +[Custom-backup](#creating-a-custom-backup) files can be kept using an Amazon service (S3 or S3 Glacier) or a Microsoft service (Azure). We recommend that you use a backup method **local to your host cloud**. If your product is hosted by Amazon AWS for example, you can store your backup files on an Amazon S3 bucket. diff --git a/cloud/cloud-instances.mdx b/cloud/cloud-instances.mdx index ec25691df2..9eb42eed35 100644 --- a/cloud/cloud-instances.mdx +++ b/cloud/cloud-instances.mdx @@ -16,39 +16,39 @@ import LanguageContent from "@site/src/components/LanguageContent"; -- Use your portal's [Products tab](../cloud/portal/cloud-portal-products-tab.mdx) to raise or modify +- Use your portal's [Products tab](./portal/cloud-portal-products-tab.mdx) to raise or modify a Free node, a Development node, a Production cluster, or a Serverless product. - Free and Development nodes, as well as Production "basic" grade clusters, are operated by -[burstable instances](../cloud/cloud-overview.mdx#burstable-vs-reserved-clusters). -- The Production cluster grades [Standard](../cloud/cloud-instances.mdx#standard-grade-production-cluster) -and [Performance](../cloud/cloud-instances.mdx#performance-grade-production-cluster) are -[Reserved clusters](../cloud/cloud-overview.mdx#burstable-vs-reserved-clusters). +[burstable instances](./cloud-overview.mdx#burstable-vs-reserved-clusters). +- The Production cluster grades [Standard](#2-standard-grade-production-cluster) +and [Performance](#3-performance-grade-production-cluster) are +[Reserved clusters](./cloud-overview.mdx#burstable-vs-reserved-clusters). In this page: -* [A Free Cloud Node](../cloud/cloud-instances.mdx#a-free-cloud-node) -* [A Development Cloud Server](../cloud/cloud-instances.mdx#a-development-cloud-server) -* [A Production Cloud Cluster](../cloud/cloud-instances.mdx#a-production-cloud-cluster) - - [Basic-grade Production Cluster](../cloud/cloud-instances.mdx#1-basic-grade-production-cluster) - - [Standard-grade Production Cluster](../cloud/cloud-instances.mdx#2-standard-grade-production-cluster) - - [Performance-grade Production Cluster](../cloud/cloud-instances.mdx#3-performance-grade-production-cluster) -* [A Serverless Cloud Product](../cloud/cloud-instances.mdx#a-serverless-cloud-product) - - [Autoscaling](../cloud/cloud-instances.mdx#autoscaling) - - [Billing](../cloud/cloud-instances.mdx#billing) - - [Switching to Regular Deployment](../cloud/cloud-instances.mdx#switching-to-regular-deployment) +* [A Free Cloud Node](#a-free-cloud-node) +* [A Development Cloud Server](#a-development-cloud-server) +* [A Production Cloud Cluster](#a-production-cloud-cluster) + - [Basic-grade Production Cluster](#1-basic-grade-production-cluster) + - [Standard-grade Production Cluster](#2-standard-grade-production-cluster) + - [Performance-grade Production Cluster](#3-performance-grade-production-cluster) +* [A Serverless Cloud Product](#a-serverless-cloud-product) + - [Autoscaling](#autoscaling) + - [Billing](#billing) + - [Switching to Regular Deployment](#switching-to-regular-deployment) ## A Free Cloud Node Free RavenDB cloud nodes are great for experiments and evaluation. They are equipped with the most basic configuration and capabilities. They have a single node and no Service-Level Agreement (SLA). -You can run only one free node per [account](../cloud/cloud-overview.mdx#your-account). +You can run only one free node per [account](./cloud-overview.mdx#your-account). -To raise a free cloud node, use the [Products tab](../cloud/portal/cloud-portal-products-tab.mdx) +To raise a free cloud node, use the [Products tab](./portal/cloud-portal-products-tab.mdx) to create a **free**-tier instance. !["Tiers and Instances: Free"](./assets/tiers-and-instances-001-free.png) -* A free instance is identical to a development [Dev10](../cloud/cloud-instances.mdx#a-development-cloud-server) instance. +* A free instance is identical to a development [Dev10](#a-development-cloud-server) instance. It comes with a monthly credit of **$14**, used to cover the cost of the instance and incidentals like backup storage and traffic. @@ -67,10 +67,10 @@ A development server is equipped with all of RavenDB's [features](https://ravend but is **not** suitable for production for the following reasons: * A single-node configuration (no [replication](../7.2/server/clustering/replication/replication-overview)). -* [Burstable](../cloud/cloud-overview.mdx#burstable-instances) CPU usage, suitable for small to medium production loads. +* [Burstable](./cloud-overview.mdx#burstable-instances) CPU usage, suitable for small to medium production loads. Burstable instances can become throttled if usage exceeds allocated resources. -* Lack of [backup](../cloud/cloud-backup-and-restore.mdx#cloud-backup) procedure. -* No [Service Level Agreement](../cloud/cloud-support#available-support-options). +* Lack of [backup](./cloud-backup-and-restore.mdx#cloud-backup) procedure. +* No [Service Level Agreement](./cloud-support.mdx#available-support-options). To raise a cloud Development server, create a product using the Products tab and select the **Development** tier. @@ -109,7 +109,7 @@ with a **higher number of nodes** to further distribute the cluster's workload. [Contact Support](https://ravendb.net/contact) to provision customized cloud-based clusters with configurations that suit your needs. -*Production tier* clusters can be also extended by [additional product nodes](../cloud/portal/cloud-portal-products-tab.mdx#nodes-additional-product-nodes). +*Production tier* clusters can be also extended by [additional product nodes](./portal/cloud-portal-products-tab.mdx#nodes-additional-product-nodes). This option is not available for **PS** instance types. @@ -124,28 +124,28 @@ Please be aware that cloud cluster nodes are provided with dynamic IP addresses The production tier offers three instance levels: -1. [Basic](../cloud/cloud-instances.mdx#1-basic-grade-production-cluster) -2. [Standard](../cloud/cloud-instances.mdx#2-standard-grade-production-cluster) -3. [Performance](../cloud/cloud-instances.mdx#3-performance-grade-production-cluster) +1. [Basic](#1-basic-grade-production-cluster) +2. [Standard](#2-standard-grade-production-cluster) +3. [Performance](#3-performance-grade-production-cluster) The tier you select must have sufficient compute, memory, and disk resources to run backups on top of your normal workload. Undersized tiers can cause backup jobs to fail. -See [Tier Requirements and Failure Disclaimer](../cloud/cloud-backup-and-restore.mdx#tier-requirements-and-failure-disclaimer) +See [Tier Requirements and Failure Disclaimer](./cloud-backup-and-restore.mdx#tier-requirements-and-failure-disclaimer) for details. #### 1. Basic-grade Production Cluster -Basic production clusters are [burstable](../cloud/cloud-overview.mdx#burstable-instances). +Basic production clusters are [burstable](./cloud-overview.mdx#burstable-instances). While suitable for low to medium workloads, they trade-off peak efficiency for lower costs. - If burstable instances use more than their allocated budget, they can become [throttled](../cloud/cloud-overview.mdx#budget-credits-and-throttling). + If burstable instances use more than their allocated budget, they can become [throttled](./cloud-overview.mdx#budget-credits-and-throttling). !["Production: Basic"](./assets/tiers-and-instances-0031-production-basic.png) #### 2. Standard-grade Production Cluster -The resources of standard production clusters are [reserved](../cloud/cloud-overview.mdx#reserved-clusters). +The resources of standard production clusters are [reserved](./cloud-overview.mdx#reserved-clusters). The cluster can utilize them at all times, and is equipped to handle constant production load. Use the slide-bars to select your Standard Production cluster's configuration and storage. @@ -168,7 +168,7 @@ high I/O latencies, RavenDB will alert you to the issue so you can upgrade the t number of IOPS reserved for your instances. #### 3. Performance-grade Production Cluster -Performance tier cluster are special [reserved](../cloud/cloud-overview.mdx#reserved-clusters) production clusters featuring high-throughput and low latency with a directly mapped local NVMe storage. When multiple NVME disks are available, in order to achieve the best possible throughput and to get as many IOPS as possible, multiple NVME volumes are striped together with RAID0. +Performance tier cluster are special [reserved](./cloud-overview.mdx#reserved-clusters) production clusters featuring high-throughput and low latency with a directly mapped local NVMe storage. When multiple NVME disks are available, in order to achieve the best possible throughput and to get as many IOPS as possible, multiple NVME volumes are striped together with RAID0. **Scaling up and ephemeral drives** @@ -209,7 +209,7 @@ Serverless is available on **On-Demand** billing only. It is not available for y For instructions on how to create a Serverless product, see -[Provisioning a New Product](../cloud/portal/cloud-portal-products-tab.mdx#provisioning-a-new-product). +[Provisioning a New Product](./portal/cloud-portal-products-tab.mdx#provisioning-a-new-product). !["Serverless Product Details"](./portal/assets/portal-product-details-serverless.png) @@ -229,5 +229,5 @@ The billing period closes on the **25th of each month (UTC)**. ### Switching to Regular Deployment For instructions on how to convert a Serverless product to a regular deployment, see -[Maintenance and Danger Zones](../cloud/portal/cloud-portal-products-tab.mdx#maintenance-and-danger-zones). +[Maintenance and Danger Zones](./portal/cloud-portal-products-tab.mdx#maintenance-and-danger-zones). diff --git a/cloud/cloud-microsoft-azure-marketplace.mdx b/cloud/cloud-microsoft-azure-marketplace.mdx index 7394e16369..a596ce4016 100644 --- a/cloud/cloud-microsoft-azure-marketplace.mdx +++ b/cloud/cloud-microsoft-azure-marketplace.mdx @@ -18,11 +18,11 @@ import LanguageContent from "@site/src/components/LanguageContent"; Access to *RavenDB Cloud* services is available through the *Microsoft Azure Marketplace*. * In this page: - * [Overview](../cloud/cloud-microsoft-azure-marketplace.mdx#overview) - * [Supported countries](../cloud/cloud-microsoft-azure-marketplace.mdx#supported-countries) - * [Registration process](../cloud/cloud-microsoft-azure-marketplace.mdx#registration-process) - * [Subscription cancellation process](../cloud/cloud-microsoft-azure-marketplace.mdx#subscription-cancellation-process) - * [Conversion from a regular Cloud Account to an Azure Marketplace Account](../cloud/cloud-microsoft-azure-marketplace.mdx#conversion-from-a-regular-cloud-account-to-an-azure-marketplace-account) + * [Overview](#overview) + * [Supported countries](#supported-countries) + * [Registration process](#registration-process) + * [Subscription cancellation process](#subscription-cancellation-process) + * [Conversion from a regular Cloud Account to an Azure Marketplace Account](#conversion-from-a-regular-cloud-account-to-an-azure-marketplace-account) ## Overview @@ -44,7 +44,7 @@ Countries and regions outside this list do not currently have automated tax hand If your country is not listed below, you can still use *RavenDB Cloud* by signing up directly at [cloud.ravendb.net](https://cloud.ravendb.net) and paying via credit card or wire transfer. -See [Pricing, Payment and Billing](../cloud/cloud-pricing-payment-billing.mdx) for more details. +See [Pricing, Payment and Billing](./cloud-pricing-payment-billing.mdx) for more details. The following countries and regions are currently supported: diff --git a/cloud/cloud-migration.mdx b/cloud/cloud-migration.mdx index c02cffeece..24c0c17924 100644 --- a/cloud/cloud-migration.mdx +++ b/cloud/cloud-migration.mdx @@ -30,10 +30,10 @@ You can easily migrate your database using the [import data from RavenDB](../7.2 In order to do so, the **source server** needs to have the **destination server's cluster certificate**. Open the [Management Studio](../7.2/studio/overview) of each server. -Each server's Studio is available in the [Portal](../cloud/portal/cloud-portal.mdx#cloud-portal)'s -[Product tab](../cloud/portal/cloud-portal-products-tab.mdx#cloud-account-portal-products). +Each server's Studio is available in the [Portal](./portal/cloud-portal.mdx#cloud-portal-overview)'s +[Product tab](./portal/cloud-portal-products-tab.mdx#cloud-account-portal-products). -Learn how to [install the certificate and access RavenDB Cloud Studio](../cloud/cloud-overview.mdx#ravendb-studio---graphic-user-interface) if this is your first time using Cloud Studio. +Learn how to [install the certificate and access RavenDB Cloud Studio](./cloud-overview.mdx#ravendb-studio---graphic-user-interface) if this is your first time using Cloud Studio. If you have already installed the certificate and accessed Studio, click the URLs in the Products tab to open a Studio GUI for each node. diff --git a/cloud/cloud-overview.mdx b/cloud/cloud-overview.mdx index e7455d96eb..d36272b785 100644 --- a/cloud/cloud-overview.mdx +++ b/cloud/cloud-overview.mdx @@ -21,29 +21,29 @@ like adding or removing nodes, and run recurring tasks like backing up your data * **Our and your administration** Ridding you of administrative chores that don't require your attention is complemented by providing you with - comfortable control over your data and database management via your account's [Portal](../cloud/portal/cloud-portal.mdx) + comfortable control over your data and database management via your account's [Portal](./portal/cloud-portal.mdx) and the cloud version of our [Studio](../7.2/studio/overview) management GUI. * **Resources** Some of your products may share their resources with other applications and users, while other products may occupy machines - reserved for their usage only. Read about [reserved clusters](../cloud/cloud-overview.mdx#reserved-clusters), - [burstable instances](../cloud/cloud-overview.mdx#burstable-instances), and [credits](../cloud/cloud-overview.mdx#budget-credits-and-throttling) + reserved for their usage only. Read about [reserved clusters](#reserved-clusters), + [burstable instances](#burstable-instances), and [credits](#budget-credits-and-throttling) to understand more about your choices. * In this page: - * [Your Account](../cloud/cloud-overview.mdx#your-account) - - [Register](../cloud/cloud-overview.mdx#register-your-account) - - [Login](../cloud/cloud-overview.mdx#login-to-your-account) - - [Login with a magic link](../cloud/cloud-overview.mdx#login-with-a-magic-link) - - [Login with GitHub or Google](../cloud/cloud-overview.mdx#login-with-github-or-google) - * [RavenDB on the Cloud](../cloud/cloud-overview.mdx#ravendb-on-the-cloud) - * [Instances, Provisioning and RavenDB Products](../cloud/cloud-overview.mdx#instances-provisioning-and-ravendb-products) - * [RavenDB Tiers: Free, Development and Production](../cloud/cloud-overview.mdx#ravendb-tiers) - * [Burstable vs. Reserved clusters](../cloud/cloud-overview.mdx#burstable-vs-reserved-clusters) - * [Budget, Credits and Throttling](../cloud/cloud-overview.mdx#budget-credits-and-throttling) - * [RavenDB Studio - Graphic User Interface](../cloud/cloud-overview.mdx#ravendb-studio---graphic-user-interface) - * [Accessing RavenDB Cloud Studio](../cloud/cloud-overview.mdx#accessing-ravendb-cloud-studio) - * [What you can do with RavenDB Studio](../cloud/cloud-overview.mdx#what-you-can-do-with-ravendb-studio) + * [Your Account](#your-account) + - [Register](#register-your-account) + - [Login](#login-to-your-account) + - [Login with a magic link](#login-with-a-magic-link) + - [Login with GitHub or Google](#login-with-github-or-google) + * [RavenDB on the Cloud](#ravendb-on-the-cloud) + * [Instances, Provisioning and RavenDB Products](#instances-provisioning-and-ravendb-products) + * [RavenDB Tiers: Free, Development and Production](#ravendb-tiers) + * [Burstable vs. Reserved clusters](#burstable-vs-reserved-clusters) + * [Budget, Credits and Throttling](#budget-credits-and-throttling) + * [RavenDB Studio - Graphic User Interface](#ravendb-studio---graphic-user-interface) + * [Accessing RavenDB Cloud Studio](#accessing-ravendb-cloud-studio) + * [What you can do with RavenDB Studio](#what-you-can-do-with-ravendb-studio) ## What do you get? @@ -52,18 +52,18 @@ Some of the key reasons for running RavenDB on the cloud are - * The high availability of a cloud service. * The constant monitoring and healthcare of your products and their accommodating equipment. * Your insulation from the cloud infrastructure's administration as we handle and continuously optimize it. -* The high [security](../cloud/cloud-security.mdx) level. -* Regular [backups](../cloud/cloud-backup-and-restore.mdx) to your database and settings. -* Our [support](../cloud/portal/cloud-portal-support-tab.mdx). +* The high [security](./cloud-security.mdx) level. +* Regular [backups](./cloud-backup-and-restore.mdx) to your database and settings. +* Our [support](./portal/cloud-portal-support-tab.mdx). ## Your Account Your cloud-RavenDB account gathers your products' information, your details, and your contracts and -billing data. We create your account and send you a link to its [Portal](../cloud/portal/cloud-portal.mdx) +billing data. We create your account and send you a link to its [Portal](./portal/cloud-portal.mdx) as soon as you finish registering, so you can immediately start creating and handling your -[cloud products](../cloud/portal/cloud-portal-products-tab.mdx). +[cloud products](./portal/cloud-portal-products-tab.mdx). ## Register Your Account @@ -72,10 +72,10 @@ and allow the wizard to walk you through the 5 simple stages of the registration You can also start registration by clicking **Login via GitHub** or **Login via Google** on the -[login page](../cloud/cloud-overview.mdx#login-to-your-account). If no Cloud account exists yet for +[login page](#login-to-your-account). If no Cloud account exists yet for the email reported by the provider, a registration link is sent to that address and the registration form opens with the email already filled in. -See [Login with GitHub or Google](../cloud/cloud-overview.mdx#login-with-github-or-google). +See [Login with GitHub or Google](#login-with-github-or-google). 1. **Email** @@ -121,7 +121,7 @@ Click the **Skip Billing Information** button if you prefer to evaluate the clou - The sign-up process will send a registration link to your email. - Click the link to enter your account. No password required. -- The link will expire after a while, use the [login page](../cloud/cloud-overview.mdx#login-to-your-account) to re-visit your account. +- The link will expire after a while, use the [login page](#login-to-your-account) to re-visit your account. @@ -149,7 +149,7 @@ You can sign in either with a **magic link** sent to your email, or by using you - We advise you to enable 2FA. Setup is described [here](../cloud/cloud-security.mdx#enable-mfa). + We advise you to enable 2FA. Setup is described [here](./cloud-security.mdx#enable-mfa). #### Login with GitHub or Google @@ -200,13 +200,13 @@ Each server or cluster-node occupies a single cloud instance. Different instances are equipped to your specifications to accommodate your different products and may be considerably different from each other in features, capabilities, and cost. The instances of -a basic production cluster, for example, are [burstable](../cloud/cloud-overview.mdx#burstable-instances), -while those of a higher-grade production cluster are [reserved](../cloud/cloud-overview.mdx#reserved-clusters). +a basic production cluster, for example, are [burstable](#burstable-instances), +while those of a higher-grade production cluster are [reserved](#reserved-clusters). ## RavenDB Tiers There are three types of RavenDB cloud products. They are explained in detail in the -[Tiers and Instances ](../cloud/cloud-instances.mdx) section, in the meantime - here are +[Tiers and Instances ](./cloud-instances.mdx) section, in the meantime - here are a few words about each. #### The Free Tier This tier offers a single product: a single-node RavenDB cloud server designated for experiments and evaluation. @@ -226,8 +226,8 @@ HW selection or a multi-region cluster. | **Tier** | **Sub-tiers** | **CPU** | **Options** | **SLA** | | -- | -- | -- | -- | -- | | Free | - | Very low | None | No | -| Development | Dev10-Dev70 | Very low - High | All | [Yes](../cloud/portal/cloud-portal-support-tab.mdx#support-entitlement) | -| Production | **By CPU Priority** (Basic/Standard/Performance)
**By Cluster Size**| Up to extra performance, high network and reserved NVMe | All | [Yes](../cloud/portal/cloud-portal-support-tab.mdx#support-entitlement) | +| Development | Dev10-Dev70 | Very low - High | All | [Yes](./portal/cloud-portal-support-tab.mdx#support-entitlement) | +| Production | **By CPU Priority** (Basic/Standard/Performance)
**By Cluster Size**| Up to extra performance, high network and reserved NVMe | All | [Yes](./portal/cloud-portal-support-tab.mdx#support-entitlement) | ## Burstable vs. Reserved clusters @@ -265,7 +265,7 @@ Credits are **consumed** when the instance uses computing and I/O resources, and * **Burstable CLUSTERS and throttling** - [Basic-grade production clusters](../cloud/cloud-instances.mdx#basic-grade-production-cluster) are burstable: each node of such a cluster + [Basic-grade production clusters](./cloud-instances.mdx#1-basic-grade-production-cluster) are burstable: each node of such a cluster is accommodated by a burstable instance. When the budget of a burstable cluster is drained or nearly so, the cluster automatically shifts the workload to cluster nodes that still have credits to work with. @@ -274,7 +274,7 @@ Credits are **consumed** when the instance uses computing and I/O resources, and **Use a suitable configuration**. The stronger your burstable instances are, the less susceptible they are to budget drainage and throttling. -If you are regularly warned or your product is actually throttled, consider [upscaling](../cloud/cloud-scaling.mdx) its configuration. +If you are regularly warned or your product is actually throttled, consider [upscaling](./cloud-scaling.mdx) its configuration. #### Throttling Warnings Your instances will warn you when their credits are about to finish, and inform you when throttling is performed. @@ -315,7 +315,7 @@ RavenDB provides a built-in [GUI to monitor and manage](../7.2/studio/overview) when trying to access the Studio. 5. **Product Labels** Product labels describe current alerts for given product. Product alerts are described - on [Maintenance & Troubleshooting](./cloud-maintenance-troubleshooting) page. + on [Maintenance & Troubleshooting](./cloud-maintenance-troubleshooting.mdx) page. ### What you can do with RavenDB Studio * [Your RavenDB servers](../7.2/studio/server/manage-server) @@ -334,7 +334,7 @@ RavenDB provides a built-in [GUI to monitor and manage](../7.2/studio/overview) * Manage documents and their extensions. * Adjust settings. * Occasionally, cloud instance settings are different than general RavenDB defaults. - See [cloud-specific settings](../cloud/cloud-settings.mdx). + See [cloud-specific settings](./cloud-settings.mdx). diff --git a/cloud/cloud-pricing-payment-billing.mdx b/cloud/cloud-pricing-payment-billing.mdx index f15181854f..90915aa14d 100644 --- a/cloud/cloud-pricing-payment-billing.mdx +++ b/cloud/cloud-pricing-payment-billing.mdx @@ -20,16 +20,16 @@ You can run a product and pay for it using a credit card or a wire transfer (we details in any case). You can pay per minute without any commitment, or use one of the yearly-payment models for a substantial discount. * In this page: - * [Pricing](../cloud/cloud-pricing-payment-billing.mdx#pricing) - - [On-Demand Payment](../cloud/cloud-pricing-payment-billing.mdx#on-demand-payment) - - [Yearly with NO Upfront payment](../cloud/cloud-pricing-payment-billing.mdx#yearly-with-no-upfront-payment) - - [Yearly WITH an Upfront payment](../cloud/cloud-pricing-payment-billing.mdx#yearly-with-an-upfront-payment) - - [Viewing your current configuration price](../cloud/cloud-pricing-payment-billing.mdx#viewing-current-configuration-price) - - [Additional Expenses](../cloud/cloud-pricing-payment-billing.mdx#additional-expenses) - * [Payment](../cloud/cloud-pricing-payment-billing.mdx#payment) - * [Billing](../cloud/cloud-pricing-payment-billing.mdx#billing) - - [Charging Failures](../cloud/cloud-pricing-payment-billing.mdx#charging-failures) - - [Pay Now](../cloud/cloud-pricing-payment-billing.mdx#pay-now) + * [Pricing](#pricing) + - [On-Demand Payment](#on-demand-payment) + - [Yearly with NO Upfront payment](#yearly-with-no-upfront-payment) + - [Yearly WITH an Upfront payment](#yearly-with-an-upfront-payment) + - [Viewing your current configuration price](#viewing-current-configuration-price) + - [Additional Expenses](#additional-expenses) + * [Payment](#payment) + * [Billing](#billing) + - [Charging Failures](#charging-failures) + - [Pay Now](#pay-now) @@ -84,15 +84,15 @@ Committing for a year and **paying for it all in advance**, grants you a **10% d ![Yearly Upfront](./assets/pricing-004-payment-models-yearly-upfront.png) -Yearly contracts are relevant only for [production products](../cloud/cloud-instances.mdx#a-production-cloud-cluster). -[Development products](../cloud/cloud-instances.mdx#a-development-cloud-server) can only use the on-demand model. +Yearly contracts are relevant only for [production products](./cloud-instances.mdx#a-production-cloud-cluster). +[Development products](./cloud-instances.mdx#a-development-cloud-server) can only use the on-demand model. #### Viewing current configuration price -While [provisioning or editing](../cloud/portal/cloud-portal-products-tab.mdx) your product, +While [provisioning or editing](./portal/cloud-portal-products-tab.mdx) your product, costs are shown in the **Your Order** slot. The overall price is an outcome of your hardware configuration and pricing model, -with possible [additional expenses](../cloud/cloud-pricing-payment-billing.mdx#additional-expenses). +with possible [additional expenses](#additional-expenses). See for example the price differences between the production basic-grade configurations PB10 and PB20: @@ -102,7 +102,7 @@ See for example the price differences between the production basic-grade configu * Production Basic 20: ![PB30](./assets/pricing-001-PB30.png) -You will also be able to find your products' costs in the [Billing & Costs tab](../cloud/portal/cloud-portal-billing-tab.mdx). +You will also be able to find your products' costs in the [Billing & Costs tab](./portal/cloud-portal-billing-tab.mdx). #### Additional Expenses Your pricing model does **not** cover incidental expenses over - @@ -131,7 +131,7 @@ Your pricing model does **not** cover incidental expenses over - You can currently pay by credit card or wire transfer. #### Credit Card You can provide your credit card details while creating your account, or skip this stage and return to it later. -To provide your credit card details at any time, enter your [Account tab](../cloud/portal/cloud-portal-account-tab.mdx) +To provide your credit card details at any time, enter your [Account tab](./portal/cloud-portal-account-tab.mdx) and click the Add Credit Card button. Select your main credit card using the **Active** button, so we know which card to try first. If charging your active card fails, we'll try to charge other cards you may have provided. @@ -143,7 +143,7 @@ Approach our Support personnel to use wire transfer or purchase order. ## Billing -Your Portal's [Billing & Costs tab](../cloud/portal/cloud-portal-billing-tab.mdx) summarizes your +Your Portal's [Billing & Costs tab](./portal/cloud-portal-billing-tab.mdx) summarizes your outstanding charges and past invoices. Additional data you can see there includes Daily cost, Total cost, and the expected charge at the end of this month. #### Charging failures diff --git a/cloud/cloud-scaling.mdx b/cloud/cloud-scaling.mdx index c8f723d61f..5648aea58f 100644 --- a/cloud/cloud-scaling.mdx +++ b/cloud/cloud-scaling.mdx @@ -15,10 +15,10 @@ import LanguageContent from "@site/src/components/LanguageContent"; # Cloud: Scaling -After a RavenDB [Cloud instance](../cloud/cloud-instances.mdx) has been set up, you can **scale it** up and down to modify the +After a RavenDB [Cloud instance](./cloud-instances.mdx) has been set up, you can **scale it** up and down to modify the workload it can handle. -Instances of the [Development Tier](../cloud/cloud-instances.mdx#a-development-cloud-server) and [Production Tier](../cloud/cloud-instances.mdx#a-production-cloud-cluster) can be scaled up or down **within their own Tier**. +Instances of the [Development Tier](./cloud-instances.mdx#a-development-cloud-server) and [Production Tier](./cloud-instances.mdx#a-production-cloud-cluster) can be scaled up or down **within their own Tier**. Instance cannot be moved between Tiers, but data can be [migrated](cloud-migration) between any two RavenDB instances using: - [Import/Export](cloud-migration#import-from-live-ravendb-instance) @@ -26,16 +26,16 @@ two RavenDB instances using: - [Replication](https://ravendb.net/docs/article-page/6.0/csharp/studio/database/tasks/ongoing-tasks/external-replication-task) * In this page: - * [Scaling Up/Down - General](../cloud/cloud-scaling.mdx#scaling-updown---general) - - [Change instance type](../cloud/cloud-scaling.mdx#scaling---change-instance-type) - - [Change storage](../cloud/cloud-scaling.mdx#scaling---change-storage) + * [Scaling Up/Down - General](#scaling-updown---general) + - [Change instance type](#scaling---change-instance-type) + - [Change storage](#scaling---change-storage) * [Additional product nodes - General](#additional-product-nodes---general) - [Adding a node to a database group](#additional-product-nodes---adding-a-node-to-a-database-group) ## Scaling Up/Down - General -To scale a RavenDB Cloud instance, open your [portal](../cloud/portal/cloud-portal.mdx)'s [Products tab](../cloud/portal/cloud-portal-products-tab.mdx) +To scale a RavenDB Cloud instance, open your [portal](./portal/cloud-portal.mdx)'s [Products tab](./portal/cloud-portal-products-tab.mdx) and click the **Manage** button for the product you want to change. ![Manage product](./assets/portal-product-list-manage-button.png) @@ -43,20 +43,20 @@ and click the **Manage** button for the product you want to change. In the main section, you can find controls to **Change Instance Type** or **Change Storage**. -The scaling buttons are presented only for [Development](../cloud/cloud-instances.mdx#a-development-cloud-server) and -[Production](../cloud/cloud-instances.mdx#a-production-cloud-cluster) products. -The [Free](../cloud/cloud-instances.mdx#a-free-cloud-node) product doesn't show them because its Tier includes only one configuration. +The scaling buttons are presented only for [Development](./cloud-instances.mdx#a-development-cloud-server) and +[Production](./cloud-instances.mdx#a-production-cloud-cluster) products. +The [Free](./cloud-instances.mdx#a-free-cloud-node) product doesn't show them because its Tier includes only one configuration. ![Scaling buttons](./assets/portal-product-edit-storage-and-instance-type-area.png) -**1.** Click [Change Instance Type](../cloud/cloud-scaling.mdx#scaling---change-instance-type) to reconfigure your product. -**2.** Click [Change Storage](../cloud/cloud-scaling.mdx#scaling---change-storage) to modify your product's storage parameters. +**1.** Click [Change Instance Type](#scaling---change-instance-type) to reconfigure your product. +**2.** Click [Change Storage](#scaling---change-storage) to modify your product's storage parameters. -Scaling a [Development](../cloud/cloud-instances.mdx#a-development-cloud-server) product **brings it down** +Scaling a [Development](./cloud-instances.mdx#a-development-cloud-server) product **brings it down** temporarily, while its single-node instance is being reconfigured. -Scaling a [Production](../cloud/cloud-instances.mdx#a-production-cloud-cluster) product does **not** bring it down, +Scaling a [Production](./cloud-instances.mdx#a-production-cloud-cluster) product does **not** bring it down, because it is a multi-node cluster and the nodes are updated in a **rolling update** - one node at a time. @@ -177,7 +177,7 @@ There are two ways to start using **Premium SSD v2**: 2. **Upgrade an existing Premium Single Data disk to Premium SSD v2** — if your product already runs on a **Premium** *Single Data Disk* and is eligible, the **Upgrade to Premium V2** button is shown in the *Storage* section of the product page. See - [Managing an Existing Product](../cloud/portal/cloud-portal-products-tab.mdx#change-instance-type-and-storage) + [Managing an Existing Product](./portal/cloud-portal-products-tab.mdx#change-instance-type-and-storage) in the portal documentation. !["Figure - Upgrade to Azure Premium SSD v2 modal with IOPS and Throughput fields"](./assets/portal-product-details-upgrade-to-premium-v2-modal.png) diff --git a/cloud/cloud-security.mdx b/cloud/cloud-security.mdx index 64b9ff0dd3..8a3e5222a5 100644 --- a/cloud/cloud-security.mdx +++ b/cloud/cloud-security.mdx @@ -21,9 +21,9 @@ import LanguageContent from "@site/src/components/LanguageContent"; * [Using the initial client certificate](cloud-security#using-the-initial-client-certificate) * [Managing allowed IPs](cloud-security#managing-allowed-ips) * [Using additional certificates](cloud-security#using-additional-certificates) - * [MFA](../cloud/cloud-security.mdx#mfa) - - [Enable MFA](../cloud/cloud-security#enable-mfa) - - [Disable MFA](../cloud/cloud-security#disable-mfa) + * [MFA](#mfa) + - [Enable MFA](#enable-mfa) + - [Disable MFA](#disable-mfa) @@ -40,7 +40,7 @@ The certificate will be automatically regenerated **30 days** before its expirat #### Download certificate -Go to the [Products tab](../cloud/portal/cloud-portal-products-tab.mdx) in the cloud [portal](../cloud/portal/cloud-portal.mdx) +Go to the [Products tab](./portal/cloud-portal-products-tab.mdx) in the cloud [portal](./portal/cloud-portal.mdx) and click the **Download Certificate** button. !["Download Certificate"](./assets/security-001-download-certificate.png) @@ -93,15 +93,15 @@ Cross-instance communication **inside the cluster** is **not** subject to these Your initial [operator-level](../7.2/server/security/authorization/security-clearance-and-permissions#operator) certificate allows you to perform operations like creating and deleting databases, managing access to the cluster, and inspecting the cluster's state. -Operations like adding and removing cluster nodes are left for your [products administrators](../cloud/cloud-overview.mdx#ravendb-on-the-cloud-overview). +Operations like adding and removing cluster nodes are left for your [products administrators](./cloud-overview.mdx#ravendb-on-the-cloud-overview). We recommend that you generate and use **different certificates** for your client applications, for maximum security. -If your instance runs on a [burstable CPU](../cloud/cloud-overview.mdx#burstable-vs-reserved-clusters), especially if it is a low-end one, -RavenDB may take a while to generate certificates and spend a lot of your [CPU credits](../cloud/cloud-overview.mdx#budget-credits-and-throttling) in the +If your instance runs on a [burstable CPU](./cloud-overview.mdx#burstable-vs-reserved-clusters), especially if it is a low-end one, +RavenDB may take a while to generate certificates and spend a lot of your [CPU credits](./cloud-overview.mdx#budget-credits-and-throttling) in the process. We therefore recommend that you generate your certificates off-cloud and import them to your cloud instance. diff --git a/cloud/cloud-settings.mdx b/cloud/cloud-settings.mdx index 2d7400f2fa..c499c6a1fc 100644 --- a/cloud/cloud-settings.mdx +++ b/cloud/cloud-settings.mdx @@ -24,8 +24,8 @@ import LanguageContent from "@site/src/components/LanguageContent"; the cloud configurations will be discussed in this article. * In this page: - * [Setting Cloud Configurations via Studio](../cloud/cloud-settings.mdx#setting-cloud-configurations-via-studio) - * [Indexing Settings](../cloud/cloud-settings.mdx#indexing-settings) + * [Setting Cloud Configurations via Studio](#setting-cloud-configurations-via-studio) + * [Indexing Settings](#indexing-settings) ## Setting Cloud Configurations via Studio @@ -35,7 +35,7 @@ If you want to change configurations for cloud instances, they must be set in St * [Database Configurations](../7.2/studio/database/settings/database-settings) * [Indexing Configurations](../7.2/studio/database/indexes/create-map-index#configuration) -To learn how to access the RavenDB Cloud Studio interface, see the [Studio section in the Cloud Overview](../cloud/cloud-overview.mdx#ravendb-studio---graphic-user-interface) article. +To learn how to access the RavenDB Cloud Studio interface, see the [Studio section in the Cloud Overview](./cloud-overview.mdx#ravendb-studio---graphic-user-interface) article. @@ -59,7 +59,7 @@ The factors to consider when adjusting the max indexing batch size: * [Size of documents](https://ravendb.net/articles/dealing-with-large-documents-100-mb#:~:text=RavenDB%20can%20handle%20large%20documents,isn't%20a%20practical%20one.) * [The Complexity of calculations](../7.2/studio/database/indexes/indexing-performance#common-indexing-issues) that static indexes do. -* [IOPS](../cloud/cloud-scaling.mdx#change-storage) - Input/Output Operations Per Second +* [IOPS](./cloud-scaling.mdx#scaling---change-storage) - Input/Output Operations Per Second #### Cloud Indexing Batch Size RavenDB Cloud sets batch sizes with the following default formula: diff --git a/cloud/cloud-support.mdx b/cloud/cloud-support.mdx index d43f88fb7b..33ac73c342 100644 --- a/cloud/cloud-support.mdx +++ b/cloud/cloud-support.mdx @@ -20,8 +20,8 @@ that suits your current needs and future plans, assist with any technical issue and get your product-specific feedback and suggestions. * In this page: - * [Available support options](../cloud/cloud-support.mdx#available-support-options) - * [Severity and response time types](../cloud/cloud-support.mdx#severity-and-response-time-types) + * [Available support options](#available-support-options) + * [Severity and response time types](#severity-and-response-time-types) ## Available support options diff --git a/cloud/portal/cloud-portal-account-tab.mdx b/cloud/portal/cloud-portal-account-tab.mdx index c41d1fdbaf..c103117e2e 100644 --- a/cloud/portal/cloud-portal-account-tab.mdx +++ b/cloud/portal/cloud-portal-account-tab.mdx @@ -19,9 +19,9 @@ import LanguageContent from "@site/src/components/LanguageContent"; This tab allows you to manage your account and payment information, user access, and user roles. * In this page: - * [The Account Tab](../../cloud/portal/cloud-portal-account-tab.mdx#the-account-tab) - * [Billing information management](../../cloud/portal/cloud-portal-account-tab.mdx#billing-information-management) - * [User management](../../cloud/portal/cloud-portal-account-tab.mdx#user-management) + * [The Account Tab](#the-account-tab) + * [Billing information management](#billing-information-management) + * [User management](#user-management) ## The Account Tab @@ -56,7 +56,7 @@ Users with the **Account with User Management role** can modify the roles of oth Only the **Account Owner** can modify the roles of users who have the **Account with User Management** role, or assign/remove that specific role. The **Account Owner** can modify any role for any user. -You can read more about *account roles* in the [Account](../../cloud/cloud-account.mdx#account-roles) page. +You can read more about *account roles* in the [Account](../cloud-account.mdx#account-roles) page. !["Account Tab - User management"](./assets/portal-account-tab-user-management-overview.png) diff --git a/cloud/portal/cloud-portal-api-tab.mdx b/cloud/portal/cloud-portal-api-tab.mdx index 45e8c0db4e..b20e3678db 100644 --- a/cloud/portal/cloud-portal-api-tab.mdx +++ b/cloud/portal/cloud-portal-api-tab.mdx @@ -19,16 +19,16 @@ import LanguageContent from "@site/src/components/LanguageContent"; The RavenDB Cloud API allows you to automate actions on your RavenDB Cloud products. By making simple HTTP calls, you can adjust your storage size or change the instance type. Scale up or down without visiting the RavenDB Cloud portal. * In this page: - * [The API Tab](../../cloud/portal/cloud-portal-api-tab.mdx#the-api-tab) - * [Create API Key](../../cloud/portal/cloud-portal-api-tab.mdx#create-api-key) - * [Edit API Key](../../cloud/portal/cloud-portal-api-tab.mdx#edit-api-key) - * [Deactivate API Key](../../cloud/portal/cloud-portal-api-tab.mdx#deactivate-api-key) + * [The API Tab](#the-api-tab) + * [Create API Key](#create-api-key) + * [Edit API Key](#edit-api-key) + * [Deactivate API Key](#deactivate-api-key) ## The API Tab !["Figure 1 - The API Tab"](./assets/portal-api-tab-overview.png) -You can read more about the *RavenDB Cloud API* in the [API](../../cloud/cloud-api.mdx) page. +You can read more about the *RavenDB Cloud API* in the [API](../cloud-api.mdx) page. ### Create API Key !["Figure 2 - Create API Key"](./assets/portal-api-tab-empty-api-key-list.png) diff --git a/cloud/portal/cloud-portal-backups-tab.mdx b/cloud/portal/cloud-portal-backups-tab.mdx index cf18d74e11..17b8dcf332 100644 --- a/cloud/portal/cloud-portal-backups-tab.mdx +++ b/cloud/portal/cloud-portal-backups-tab.mdx @@ -16,13 +16,13 @@ import LanguageContent from "@site/src/components/LanguageContent"; -Your RavenDB cloud products run [a mandatory backup routine](../../cloud/cloud-backup-and-restore.mdx#the-mandatory-backup-routine). +Your RavenDB cloud products run [a mandatory backup routine](../cloud-backup-and-restore.mdx#the-mandatory-backup-routine). Backup files created by this routine are stored in a RavenDB cloud you have no direct access to, but you can see their list -from the portal's Backups tab and [restore them](../../cloud/cloud-backup-and-restore.mdx#restore-mandatory-backup-files) using your +from the portal's Backups tab and [restore them](../cloud-backup-and-restore.mdx#restore-mandatory-backup-files) using your management Studio. * In this page: - * [Backups List](../../cloud/portal/cloud-portal-backups-tab.mdx#backup-files) + * [Backups List](#backup-files) ## Backup List diff --git a/cloud/portal/cloud-portal-billing-tab.mdx b/cloud/portal/cloud-portal-billing-tab.mdx index db4a56d2c1..866cf2083b 100644 --- a/cloud/portal/cloud-portal-billing-tab.mdx +++ b/cloud/portal/cloud-portal-billing-tab.mdx @@ -18,12 +18,12 @@ import LanguageContent from "@site/src/components/LanguageContent"; Use your account's Billing & Costs tab to view your present costs, past invoices and remaining credit. * In this page: - * [The Billing & Costs Tab](#the-billing-&-costs-tab) - * [Pay Now](../../cloud/portal/cloud-portal-billing-tab.mdx#pay-now) - * [Current billing period](../../cloud/portal/cloud-portal-billing-tab.mdx#current-billing-period) - * [Account benefits](../../cloud/portal/cloud-portal-billing-tab.mdx#account-benefits) - * [Billing history](../../cloud/portal/cloud-portal-billing-tab.mdx#billing-history) - * [Spending](../../cloud/portal/cloud-portal-billing-tab.mdx#spending) + * [The Billing & Costs Tab](#the-billing--costs-tab) + * [Pay Now](#pay-now) + * [Current billing period](#current-billing-period) + * [Account benefits](#account-benefits) + * [Billing history](#billing-history) + * [Spending](#spending) ## The Billing & Costs Tab diff --git a/cloud/portal/cloud-portal-home-tab.mdx b/cloud/portal/cloud-portal-home-tab.mdx index 2fba8e6721..f3ce73c56c 100644 --- a/cloud/portal/cloud-portal-home-tab.mdx +++ b/cloud/portal/cloud-portal-home-tab.mdx @@ -19,7 +19,7 @@ import LanguageContent from "@site/src/components/LanguageContent"; Use this tab to manage your account and assigned roles. You can also use it to view useful resources, such as documentation, the community, and articles. * In this page: - * [The Home Tab](../../cloud/portal/cloud-portal-home-tab.mdx#the-home-tab) + * [The Home Tab](#the-home-tab) ## The Home Tab diff --git a/cloud/portal/cloud-portal-products-tab.mdx b/cloud/portal/cloud-portal-products-tab.mdx index cc96c6b81a..8701682a9e 100644 --- a/cloud/portal/cloud-portal-products-tab.mdx +++ b/cloud/portal/cloud-portal-products-tab.mdx @@ -16,22 +16,22 @@ import LanguageContent from "@site/src/components/LanguageContent"; -The Products tab lets you [provision](../../cloud/cloud-overview.mdx#provisioning) a new cloud product, or manage an existing one. +The Products tab lets you [provision](../cloud-overview.mdx#provisioning) a new cloud product, or manage an existing one. -You can provision products of three types: [Free](../../cloud/cloud-overview.mdx#the-free-tier), -[Development](../../cloud/cloud-overview.mdx#the-development-tier) -and [Production](../../cloud/cloud-overview.mdx#the-production-tier). +You can provision products of three types: [Free](../cloud-overview.mdx#the-free-tier), +[Development](../cloud-overview.mdx#the-development-tier) +and [Production](../cloud-overview.mdx#the-production-tier). * In this page: - * [Provisioning a New Product](../../cloud/portal/cloud-portal-products-tab.mdx#provisioning-a-new-product) - * [View the Product Metrics](../../cloud/portal/cloud-portal-products-tab.mdx#view-the-product-metrics) - * [View the Cluster Health](../../cloud/portal/cloud-portal-products-tab.mdx#view-the-cluster-health) - * [Managing an Existing Product](../../cloud/portal/cloud-portal-products-tab.mdx#managing-an-existing-product) - - [Change Instance Type and Storage](../../cloud/portal/cloud-portal-products-tab.mdx#change-instance-type-and-storage) - - [Security: Your Certificate, Audit Logs and Allowed IPs](../../cloud/portal/cloud-portal-products-tab.mdx#security-your-certificate-audit-logs-and-allowed-ips) + * [Provisioning a New Product](#provisioning-a-new-product) + * [View the Product Metrics](#view-the-product-metrics) + * [View the Cluster Health](#view-the-cluster-health) + * [Managing an Existing Product](#managing-an-existing-product) + - [Change Instance Type and Storage](#change-instance-type-and-storage) + - [Security: Your Certificate, Audit Logs and Allowed IPs](#security-your-certificate-audit-logs-and-allowed-ips) - [Manage features](#manage-features) - - [Nodes: Additional product nodes](../../cloud/portal/cloud-portal-products-tab.mdx#nodes-additional-product-nodes) - - [Maintenance and Danger Zones: Terminate and Restart your Instance](../../cloud/portal/cloud-portal-products-tab.mdx#maintenance-and-danger-zones) + - [Nodes: Additional product nodes](#nodes-additional-product-nodes) + - [Maintenance and Danger Zones: Terminate and Restart your Instance](#maintenance-and-danger-zones) ## Provisioning a New Product @@ -41,11 +41,11 @@ To provision a new product, open your Portal's Products tab and click **Add Prod The New Product wizard will open and walk you through the following simple stages: -A. [Plan](../../cloud/portal/cloud-portal-products-tab.mdx#a-new-product-plan) -B. [Account](../../cloud/portal/cloud-portal-products-tab.mdx#b-new-product-account) -C. [Billing](../../cloud/portal/cloud-portal-products-tab.mdx#c-new-product-billing) -D. [Customize](../../cloud/portal/cloud-portal-products-tab.mdx#d-new-product-customize) -E. [Summary](../../cloud/portal/cloud-portal-products-tab.mdx#e-new-product-summary) +A. [Plan](#a-new-product-plan) +B. [Account](#b-new-product-account) +C. [Billing](#c-new-product-billing) +D. [Customize](#d-new-product-customize) +E. [Summary](#e-new-product-summary) #### A. New Product: Plan Use the Plan page to choose your product's cloud **Provider**, **Region**, **Tier**, **Instance**, **Storage** and **Payment model**. @@ -60,22 +60,22 @@ Use the Plan page to choose your product's cloud **Provider**, **Region**, **Tie Select where your equipment would be physically located. 3. **Tier** - You can raise a [Free node](../../cloud/cloud-instances.mdx#a-free-cloud-node), - a [Development node](../../cloud/cloud-instances.mdx#a-development-cloud-server) or a - [Production cluster](../../cloud/cloud-instances.mdx#a-production-cloud-cluster). - Learn more about them in the [Tiers and Instances](../../cloud/cloud-instances.mdx) page. + You can raise a [Free node](../cloud-instances.mdx#a-free-cloud-node), + a [Development node](../cloud-instances.mdx#a-development-cloud-server) or a + [Production cluster](../cloud-instances.mdx#a-production-cloud-cluster). + Learn more about them in the [Tiers and Instances](../cloud-instances.mdx) page. 4. **Instance** Choose the instance type that best suits your requirements. - Learn more about them in the [Tiers and Instance](../../cloud/cloud-instances.mdx) page. + Learn more about them in the [Tiers and Instance](../cloud-instances.mdx) page. 5. **Storage** Select disk type and size. - Learn more about them in the [Scaling](../../cloud/cloud-scaling#scaling---change-storage) page. + Learn more about them in the [Scaling](../cloud-scaling.mdx#scaling---change-storage) page. 6. **Payment model** Choose your payment model and commitment. - Learn more about them in the [Pricing, Payment and Billing](../../cloud/cloud-pricing-payment-billing) page. + Learn more about them in the [Pricing, Payment and Billing](../cloud-pricing-payment-billing.mdx) page. #### B. New Product: Account Enter your account information and click **Next**. @@ -180,7 +180,7 @@ You can view your configuration and change your product's instance type and stor Click this button to open the RavenDB Studio of node A. ### Security: Your Certificate, Audit Logs and Allowed IPs -Use the security tab to download your [certificate](../../cloud/cloud-security.mdx) or determine which addresses are +Use the security tab to download your [certificate](../cloud-security.mdx) or determine which addresses are allowed to connect your database instance. !["Figure 19 - Manage Product: Manage access"](./assets/portal-product-details-manage-access.png) diff --git a/cloud/portal/cloud-portal-support-tab.mdx b/cloud/portal/cloud-portal-support-tab.mdx index d22af507c0..89624e4448 100644 --- a/cloud/portal/cloud-portal-support-tab.mdx +++ b/cloud/portal/cloud-portal-support-tab.mdx @@ -19,10 +19,10 @@ import LanguageContent from "@site/src/components/LanguageContent"; Use the Support tab to contact our *RavenDB Cloud* support team. * In this page: - * [The Support Tab](../../cloud/portal/cloud-portal-support-tab.mdx#the-support-tab) - * [Submit a General Support request](../../cloud/portal/cloud-portal-support-tab.mdx#submit-a-general-support-request) - * [Submit a Product-Related Support request](../../cloud/portal/cloud-portal-support-tab.mdx#submit-a-product-related-support-request) - * [Request to enable the Cloud Support option](../../cloud/portal/cloud-portal-support-tab.mdx#request-to-enable-the-cloud-support-option) + * [The Support Tab](#the-support-tab) + * [Submit a General Support request](#submit-a-general-support-request) + * [Submit a Product-Related Support request](#submit-a-product-related-support-request) + * [Request to enable the Cloud Support option](#request-to-enable-the-cloud-support-option) ## The Support Tab @@ -40,7 +40,7 @@ The root selection is between submitting a support request regarding a **general **5**. Enter your question. **6**. Submit your support request. -You can read more about the *Severity* and *Response time* types in the [Support](../../cloud/cloud-support.mdx#response-time-types) page. +You can read more about the *Severity* and *Response time* types in the [Support](../cloud-support.mdx#severity-and-response-time-types) page. ### Submit a Product-Related Support Request !["Figure 3 - Support Product-Related Message"](./assets/portal-support-instance-related-question-cloud-support.png) @@ -55,7 +55,7 @@ You can read more about the *Severity* and *Response time* types in the [Support **8**. Enter your question. **9**. Submit your support request. -You can read more about the *Severity* and *Response time* types in the [Support](../../cloud/cloud-support.mdx#response-time-types) page. +You can read more about the *Severity* and *Response time* types in the [Support](../cloud-support.mdx#severity-and-response-time-types) page. ### Request to enable the Cloud Support option !["Figure 4 - Request to enable the Cloud Support option"](./assets/portal-support-request-cloud-support-on-free-support.png) @@ -74,6 +74,6 @@ will be confirmed in a separate email. Cloud Support activation takes up to **3 business days**. -You can read more about available *support options* in the [Support](../../cloud/cloud-support.mdx#available-support-options) page. +You can read more about available *support options* in the [Support](../cloud-support.mdx#available-support-options) page. diff --git a/cloud/portal/cloud-portal.mdx b/cloud/portal/cloud-portal.mdx index 590cee05cc..6274ee340a 100644 --- a/cloud/portal/cloud-portal.mdx +++ b/cloud/portal/cloud-portal.mdx @@ -16,38 +16,38 @@ import LanguageContent from "@site/src/components/LanguageContent"; -[Logging into your account](../../cloud/cloud-overview.mdx#login-to-your-account) +[Logging into your account](../cloud-overview.mdx#login-to-your-account) takes you to your account's Portal, which gives you access to all the different aspects of your cloud account. * In this page: - * [Cloud Portal overview](../../cloud/portal/cloud-portal.mdx#cloud-portal-overview) + * [Cloud Portal overview](#cloud-portal-overview) ## Cloud Portal overview !["Figure 1 - Cloud Portal overview"](./assets/portal-tabs.png) -* **[The Home Tab](../../cloud/portal/cloud-portal-home-tab.mdx)** +* **[The Home Tab](./cloud-portal-home-tab.mdx)** Use this tab to manage your account and assigned roles, and to view useful resources. -* **[The Products Tab](../../cloud/portal/cloud-portal-products-tab.mdx)** - Use this tab to [provision new products](../../cloud/portal/cloud-portal-products-tab.mdx#provisioning-a-new-product) and - [manage existing ones](../../cloud/portal/cloud-portal-products-tab.mdx#managing-an-existing-product). +* **[The Products Tab](./cloud-portal-products-tab.mdx)** + Use this tab to [provision new products](./cloud-portal-products-tab.mdx#provisioning-a-new-product) and + [manage existing ones](./cloud-portal-products-tab.mdx#managing-an-existing-product). -* **[The Backups Tab](../../cloud/portal/cloud-portal-backups-tab.mdx)** - Use this tab to view and restore [mandatory database backups](../../cloud/cloud-backup-and-restore.mdx#the-mandatory-backup-routine) +* **[The Backups Tab](./cloud-portal-backups-tab.mdx)** + Use this tab to view and restore [mandatory database backups](../cloud-backup-and-restore.mdx#the-mandatory-backup-routine) that your instances have created for you. -* **[The Billing & Costs Tab](../../cloud/portal/cloud-portal-billing-tab.mdx)** +* **[The Billing & Costs Tab](./cloud-portal-billing-tab.mdx)** Use the Billing & Costs tab to view your billing history and expected payments. -* **[The API Tab](../../cloud/portal/cloud-portal-api-tab.mdx)** +* **[The API Tab](./cloud-portal-api-tab.mdx)** Use the API tab to explore the RavenDB Cloud API and manage your API keys. -* **[The Support Tab](../../cloud/portal/cloud-portal-support-tab.mdx)** - Use this tab to contact Support regarding [general issues](../../cloud/portal/cloud-portal-support-tab.mdx#submit-a-general-support-request), - [product-specific issues](../../cloud/portal/cloud-portal-support-tab.mdx#submit-a-product-related-support-request) and special requests. +* **[The Support Tab](./cloud-portal-support-tab.mdx)** + Use this tab to contact Support regarding [general issues](./cloud-portal-support-tab.mdx#submit-a-general-support-request), + [product-specific issues](./cloud-portal-support-tab.mdx#submit-a-product-related-support-request) and special requests. -* **[The Account Tab](../../cloud/portal/cloud-portal-account-tab.mdx)** +* **[The Account Tab](./cloud-portal-account-tab.mdx)** Use the account tab to view and edit your invoices and credit card information. * **[The Service Status Tab](https://status.ravendb.net/)** diff --git a/docs/ai-integration/ai-agents/content/_reading-conversation-history-csharp.mdx b/docs/ai-integration/ai-agents/content/_reading-conversation-history-csharp.mdx index c770185244..706af9a90f 100644 --- a/docs/ai-integration/ai-agents/content/_reading-conversation-history-csharp.mdx +++ b/docs/ai-integration/ai-agents/content/_reading-conversation-history-csharp.mdx @@ -19,34 +19,34 @@ import ContentFrame from "@site/src/components/ContentFrame"; * This page covers: reading and paging through a conversation's messages, choosing the level of detail, and inspecting tool calls and sub-conversations. -* Learn how to create and run a conversation in [Managing conversations](../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#managing-conversations). +* Learn how to create and run a conversation in [Managing conversations](../creating-ai-agents/creating-ai-agents_api.mdx#managing-conversations). * In this article: - * [Get the conversation messages](../../../ai-integration/ai-agents/reading-conversation-history.mdx#get-the-conversation-messages) - * [Page through the conversation](../../../ai-integration/ai-agents/reading-conversation-history.mdx#page-through-the-conversation) - * [Catch up on new messages](../../../ai-integration/ai-agents/reading-conversation-history.mdx#catch-up-on-new-messages) - * [Control the level of detail](../../../ai-integration/ai-agents/reading-conversation-history.mdx#control-the-level-of-detail) - * [Inspect tool calls and sub-conversations](../../../ai-integration/ai-agents/reading-conversation-history.mdx#inspect-tool-calls-and-sub-conversations) - * [Syntax](../../../ai-integration/ai-agents/reading-conversation-history.mdx#syntax) + * [Get the conversation messages](#get-the-conversation-messages) + * [Page through the conversation](#page-through-the-conversation) + * [Catch up on new messages](#catch-up-on-new-messages) + * [Control the level of detail](#control-the-level-of-detail) + * [Inspect tool calls and sub-conversations](#inspect-tool-calls-and-sub-conversations) + * [Syntax](#syntax) -To read a conversation's messages, call [GetConversationMessages](../../../ai-integration/ai-agents/reading-conversation-history.mdx#conversation-history) (or `GetConversationMessagesAsync`) +To read a conversation's messages, call [GetConversationMessages](#conversation-history) (or `GetConversationMessagesAsync`) and pass the conversation document ID. -`GetConversationMessages` returns an [AiConversationMessagesResult](../../../ai-integration/ai-agents/reading-conversation-history.mdx#conversation-history-classes) object that includes a `Messages` +`GetConversationMessages` returns an [AiConversationMessagesResult](#conversation-history-classes) object that includes a `Messages` list, holding the conversation's messages in chronological order, oldest first. If no conversation with the given ID exists, the method returns `null`. Passing only a conversation ID returns the whole conversation in one call: `PageSize`, the maximum number of messages in a page, defaults to `int.MaxValue`, so no page limit applies. To read the conversation in fixed-size pages, set `PageSize` and read it a page at a time, as explained in -[Page through the conversation](../../../ai-integration/ai-agents/reading-conversation-history.mdx#page-through-the-conversation). +[Page through the conversation](#page-through-the-conversation). At the default `Simple` detail level, the result holds the messages between the user and the LLM. -See [Control the level of detail](../../../ai-integration/ai-agents/reading-conversation-history.mdx#control-the-level-of-detail) +See [Control the level of detail](#control-the-level-of-detail) for the other detail levels and the message types each level includes. @@ -75,9 +75,9 @@ Besides the messages, the result includes, among others: `true` when the conversation holds more messages beyond the returned page.
-See [GetConversationMessages](../../../ai-integration/ai-agents/reading-conversation-history.mdx#conversation-history) -and [AiConversationMessagesResult](../../../ai-integration/ai-agents/reading-conversation-history.mdx#conversation-history-classes) -in the [Syntax](../../../ai-integration/ai-agents/reading-conversation-history.mdx#syntax) section. +See [GetConversationMessages](#conversation-history) +and [AiConversationMessagesResult](#conversation-history-classes) +in the [Syntax](#syntax) section.
@@ -86,7 +86,7 @@ in the [Syntax](../../../ai-integration/ai-agents/reading-conversation-history.m A single call to `GetConversationMessages` returns one page of messages, up to `PageSize`. By default, the page holds the conversation's most recent messages. -To select another page, pass a [GetConversationMessagesOptions](../../../ai-integration/ai-agents/reading-conversation-history.mdx#conversation-history-classes) object instead of a bare +To select another page, pass a [GetConversationMessagesOptions](#conversation-history-classes) object instead of a bare conversation ID: * Set `Before` to a timestamp to read the page of messages immediately before it. @@ -150,8 +150,8 @@ var newMessages = await store.AI.GetConversationMessagesAsync(
-See [GetConversationMessagesOptions](../../../ai-integration/ai-agents/reading-conversation-history.mdx#conversation-history-classes) -in the [Syntax](../../../ai-integration/ai-agents/reading-conversation-history.mdx#syntax) section. +See [GetConversationMessagesOptions](#conversation-history-classes) +in the [Syntax](#syntax) section. @@ -186,18 +186,18 @@ var detailed = await store.AI.GetConversationMessagesAsync( ```
-See [AiConversationDetailLevel](../../../ai-integration/ai-agents/reading-conversation-history.mdx#conversation-history-enums) -in the [Syntax](../../../ai-integration/ai-agents/reading-conversation-history.mdx#syntax) section. +See [AiConversationDetailLevel](#conversation-history-enums) +in the [Syntax](#syntax) section. At the `Detailed` or `Full` detail level, the `ToolCalls` list of a message from the LLM holds -the tool calls the LLM made. Each entry is an [AiToolCallResult](../../../ai-integration/ai-agents/reading-conversation-history.mdx#conversation-history-classes) object, giving the tool's `Name`, the +the tool calls the LLM made. Each entry is an [AiToolCallResult](#conversation-history-classes) object, giving the tool's `Name`, the `Arguments` the LLM passed, and the `Result` the tool returned. -An agent can hand work to another agent (a [sub-agent](../../../ai-integration/ai-agents/multi-agents.mdx)). +An agent can hand work to another agent (a [sub-agent](../multi-agents.mdx)). The exchange with a sub-agent is held in its own conversation (a **sub-conversation**). When a tool call invoked a sub-agent, the tool call's `SubConversationId` points to the @@ -244,10 +244,10 @@ foreach (AiConversationMessage message in trace.Messages) ```
-See [AiConversationMessage](../../../ai-integration/ai-agents/reading-conversation-history.mdx#conversation-history-classes) -and [AiToolCallResult](../../../ai-integration/ai-agents/reading-conversation-history.mdx#conversation-history-classes) -in the [Syntax](../../../ai-integration/ai-agents/reading-conversation-history.mdx#syntax) section. -See [Multi-agents](../../../ai-integration/ai-agents/multi-agents.mdx) for the full sub-agent picture. +See [AiConversationMessage](#conversation-history-classes) +and [AiToolCallResult](#conversation-history-classes) +in the [Syntax](#syntax) section. +See [Multi-agents](../multi-agents.mdx) for the full sub-agent picture.
@@ -363,7 +363,7 @@ class AiConversationMessagesResult | **ConversationId** | `string` | The conversation document ID. | | **Agent** | `string` | The identifier of the AI agent this conversation belongs to. | | **Parameters** | `Dictionary` | The conversation parameters as a name-to-value map. | -| **TotalUsage** | `AiUsage` | Cumulative token usage across all turns of the conversation.
See [AiUsage](../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#conversation-and-response-classes). | +| **TotalUsage** | `AiUsage` | Cumulative token usage across all turns of the conversation.
See [AiUsage](../creating-ai-agents/creating-ai-agents_api.mdx#conversation-and-response-classes). | | **LastMessageAt** | `DateTime` | The time the last message was added to the conversation. | | **Messages** | `List` | The returned messages, in chronological order (oldest first). | | **HasMoreMessages** | `bool` | `true` when more messages exist beyond the returned page: older messages when `Before` is set (or neither is set), newer messages when `After` is set. | @@ -394,12 +394,12 @@ class AiConversationMessage | Property | Type | Description | |----------|------|-------------| -| **Role** | `AiMessageRole` | What the message is: a system prompt, a user message, a message from the LLM, a summary, or an internal message.
See [AiMessageRole](../../../ai-integration/ai-agents/reading-conversation-history.mdx#conversation-history-enums). | +| **Role** | `AiMessageRole` | What the message is: a system prompt, a user message, a message from the LLM, a summary, or an internal message.
See [AiMessageRole](#conversation-history-enums). | | **Content** | `string` | The text content. When the stored message has several text parts, they are joined with line breaks. `null` for a message from the LLM that only initiated tool calls. | | **Attachments** | `List` | Names of the attachments associated with this message, if any. | | **Timestamp** | `DateTime` | The time the message was recorded (UTC). Unique within the conversation and rising in message order, so a `Timestamp` value can be used to page through the conversation. | | **ToolCalls** | `List` | Tool calls initiated by the LLM in this message, with their results inlined. `null` when the message has no tool calls. | -| **Usage** | `AiUsage` | Token usage for this message, or `null` for messages the LLM did not generate (such as user messages and system prompts).
See [AiUsage](../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#conversation-and-response-classes). | +| **Usage** | `AiUsage` | Token usage for this message, or `null` for messages the LLM did not generate (such as user messages and system prompts).
See [AiUsage](../creating-ai-agents/creating-ai-agents_api.mdx#conversation-and-response-classes). | | **SubConversationId** | `string` | For an `Internal` role message, the ID of the sub-conversation the message relates to. | diff --git a/docs/ai-integration/ai-agents/creating-ai-agents/content/_creating-ai-agents_api-csharp.mdx b/docs/ai-integration/ai-agents/creating-ai-agents/content/_creating-ai-agents_api-csharp.mdx index cce6472ac7..2a1a0791ab 100644 --- a/docs/ai-integration/ai-agents/creating-ai-agents/content/_creating-ai-agents_api-csharp.mdx +++ b/docs/ai-integration/ai-agents/creating-ai-agents/content/_creating-ai-agents_api-csharp.mdx @@ -16,33 +16,33 @@ import ContentFrame from "@site/src/components/ContentFrame"; * This page provides a step-by-step guide to creating an AI agent and interacting with it using the client API. * In this article: - * [Creating a connection string](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#creating-a-connection-string) - * [Defining an agent configuration](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#defining-an-agent-configuration) - * [Set the agent ID](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#set-the-agent-id) - * [Define a response object](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#define-a-response-object) - * [Add agent parameters](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#add-agent-parameters) - * [Set maximum number of iterations](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#set-maximum-number-of-iterations) - * [Set chat trimming configuration](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#set-chat-trimming-configuration) - * [Adding agent tools](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#adding-agent-tools) - * [Query tools](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#query-tools) - * [Initial-context queries](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#initial-context-queries) - * [Action tools](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#action-tools) - * [Creating the Agent](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#creating-the-agent) - * [Retrieving existing agent configurations](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#retrieving-existing-agent-configurations) - * [Deleting an agent](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#deleting-an-agent) - * [Managing conversations](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#managing-conversations) - * [Setting a conversation](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#setting-a-conversation) - * [Processing action-tool requests](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#processing-action-tool-requests) - * [Action-tool Handlers](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#action-tool-handlers) - * [Action-tool Receivers](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#action-tool-receivers) - * [Catching action-tool calls with no callback](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#catching-action-tool-calls-with-no-callback) - * [Injecting artificial tool context](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#injecting-artificial-tool-context) - * [Conversation response](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#conversation-response) - * [Setting user prompt and running the conversation](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#setting-user-prompt-and-running-the-conversation) - * [Adding attachments](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#adding-attachments) - * [Stream LLM responses](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#stream-llm-responses) - * [Full Example](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#full-example) - * [Syntax](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#syntax) + * [Creating a connection string](#creating-a-connection-string) + * [Defining an agent configuration](#defining-an-agent-configuration) + * [Set the agent ID](#set-the-agent-id) + * [Define a response object](#define-a-response-object) + * [Add agent parameters](#add-agent-parameters) + * [Set maximum number of iterations](#set-maximum-number-of-iterations) + * [Set chat trimming configuration](#set-chat-trimming-configuration) + * [Adding agent tools](#adding-agent-tools) + * [Query tools](#query-tools) + * [Initial-context queries](#initial-context-queries) + * [Action tools](#action-tools) + * [Creating the Agent](#creating-the-agent) + * [Retrieving existing agent configurations](#retrieving-existing-agent-configurations) + * [Deleting an agent](#deleting-an-agent) + * [Managing conversations](#managing-conversations) + * [Setting a conversation](#setting-a-conversation) + * [Processing action-tool requests](#processing-action-tool-requests) + * [Action-tool Handlers](#action-tool-handlers) + * [Action-tool Receivers](#action-tool-receivers) + * [Catching action-tool calls with no callback](#catching-action-tool-calls-with-no-callback) + * [Injecting artificial tool context](#injecting-artificial-tool-context) + * [Conversation response](#conversation-response) + * [Setting user prompt and running the conversation](#setting-user-prompt-and-running-the-conversation) + * [Adding attachments](#adding-attachments) + * [Stream LLM responses](#stream-llm-responses) + * [Full Example](#full-example) + * [Syntax](#syntax) @@ -51,7 +51,7 @@ import ContentFrame from "@site/src/components/ContentFrame"; Your agent will need a connection string to connect with the LLM. Create a connection string using an `AiConnectionString` instance and the `PutConnectionStringOperation` operation. -You can also create a connection string using Studio, see [here](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_studio.mdx#configure-basic-settings) +You can also create a connection string using Studio, see [here](../creating-ai-agents_studio.mdx#configure-basic-settings) Choose a provider based on your needs. @@ -283,7 +283,7 @@ Start by creating a new `AiAgentConfiguration` instance. While creating the instance, pass its constructor: - The agent's Name -- The [connection string](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#creating-a-connection-string) you created +- The [connection string](#creating-a-connection-string) you created - A System prompt The agent will send the system prompt you define here to the LLM to define its basic characteristics, including its role, purpose, behavior, and the tools it can use. @@ -385,7 +385,7 @@ agent.OutputSchema = "{" + ### Add agent parameters -Agent parameters are parameters that can be used by [query tools](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#query-tools) when the agent queries the database on behalf of the LLM. +Agent parameters are parameters that can be used by [query tools](#query-tools) when the agent queries the database on behalf of the LLM. Values for agent parameters are provided by the client, or by a user through the client, when a chat is started. When the agent is requested to use a query tool that uses agent parameters, it replaces these parameters with the values provided by the user before running the query. @@ -421,9 +421,9 @@ This is useful for sensitive values like user IDs or tenant identifiers that sho "userId", "The current user's ID", sendToModel: false)); ``` -* **Note** that the visibility of parameter values to the LLM can also be determined at the conversation level, [as explained here](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#setting-parameter-values-visibility-to-the-llm-conversation-level). +* **Note** that the visibility of parameter values to the LLM can also be determined at the conversation level, [as explained here](#setting-parameter-values-visibility-to-the-llm-conversation-level). -See [AiAgentParameter](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#agent-configuration-classes) in the [Syntax](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#syntax) section. +See [AiAgentParameter](#agent-configuration-classes) in the [Syntax](#syntax) section. --- @@ -458,7 +458,7 @@ own trust requirements regardless of which parent invokes it. * **Note** that this policy is only meaningful when the agent is used as a sub-agent. On a root agent, the value is always provided when the conversation is started. -See [Multi-agents](../../../../ai-integration/ai-agents/multi-agents.mdx#forbidding-the-parent-from-generating-a-parameter-value) +See [Multi-agents](../../multi-agents.mdx#forbidding-the-parent-from-generating-a-parameter-value) for the full picture, including an end-to-end example. --- @@ -485,8 +485,8 @@ inherited values are of the right shape. }); ``` -See [AiAgentParameterValueType](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#enums) -in the [Syntax](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#syntax) section. +See [AiAgentParameterValueType](#enums) +in the [Syntax](#syntax) section. @@ -504,7 +504,7 @@ agent tools in response to a single user prompt. Use `MaxModelIterationsPerCall` Note that you can improve the TTFB (Time To First Byte) by getting the LLM's response in chunks using streaming. -Find more about streaming in the [overview](../../../../ai-integration/ai-agents/overview.mdx#streaming-llm-responses) and [below](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#stream-llm-responses). +Find more about streaming in the [overview](../../overview.mdx#streaming-llm-responses) and [below](#stream-llm-responses). @@ -512,7 +512,7 @@ Find more about streaming in the [overview](../../../../ai-integration/ai-agents ### Set chat trimming configuration -To [summarize the conversation](../../../../ai-integration/ai-agents/overview.mdx#define-a-chat-trimming-configuration), create an `AiAgentChatTrimmingConfiguration` instance, +To [summarize the conversation](../../overview.mdx#define-a-chat-trimming-configuration), create an `AiAgentChatTrimmingConfiguration` instance, use it to configure your trimming strategy, and set the agent's `ChatTrimming` property with the instance. @@ -540,7 +540,7 @@ with your settings. agent.ChatTrimming = new AiAgentChatTrimmingConfiguration(summarization); ```
-See [AiAgentChatTrimmingConfiguration](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#agent-configuration-classes), [AiAgentSummarizationByTokens](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#agent-configuration-classes), and [AiAgentHistoryConfiguration](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#agent-configuration-classes) in the [Syntax](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#syntax) section. +See [AiAgentChatTrimmingConfiguration](#agent-configuration-classes), [AiAgentSummarizationByTokens](#agent-configuration-classes), and [AiAgentHistoryConfiguration](#agent-configuration-classes) in the [Syntax](#syntax) section. @@ -554,11 +554,11 @@ After defining agent tools and submitting them to the LLM, it is up to the LLM t ### Query tools -[Query tools](../../../../ai-integration/ai-agents/overview.mdx#query-tools) provide the LLM with the ability to retrieve data from the database. +[Query tools](../../overview.mdx#query-tools) provide the LLM with the ability to retrieve data from the database. A query tool includes a natural-language **description** that explains the LLM what the tool is for, and an **RQL query**. * **Passing values to query tools** - * Query tools optionally include [parameters](../../../../ai-integration/ai-agents/overview.mdx#query-parameters), identified by a `$` prefix. + * Query tools optionally include [parameters](../../overview.mdx#query-parameters), identified by a `$` prefix. Both the user and the LLM can pass values to these parameters. * **Passing values from the user** Users can pass values to queries through **agent parameters**. @@ -634,7 +634,7 @@ A query tool includes a natural-language **description** that explains the LLM w #### Initial-context queries -* You can set a query tool as an [initial-context query](../../../../ai-integration/ai-agents/overview.mdx#initial-context-queries) using its `Options.AddToInitialContext` property, to execute the query and provide the LLM with its results immediately when the agent is started. +* You can set a query tool as an [initial-context query](../../overview.mdx#initial-context-queries) using its `Options.AddToInitialContext` property, to execute the query and provide the LLM with its results immediately when the agent is started. * An initial-context query is **not allowed** to use LLM parameters, since the query runs before the conversation starts, earlier than the first communication with the LLM, and the LLM will have no opportunity to fill the parameters with values. * An initial-context query **is** allowed to use agent parameters, whose values are provided by the user even before the query is executed. @@ -676,7 +676,7 @@ Note: the two flags can be set regardless of each other. and the LLM will also be able to trigger its execution later in the conversation.
-See [AiAgentToolQuery](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#agent-tool-classes) and [AiAgentToolQueryOptions](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#agent-tool-classes) in the [Syntax](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#syntax) section. +See [AiAgentToolQuery](#agent-tool-classes) and [AiAgentToolQueryOptions](#agent-tool-classes) in the [Syntax](#syntax) section. @@ -715,7 +715,7 @@ agent.Actions = ]; ```
-See [AiAgentToolAction](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#agent-tool-classes) in the [Syntax](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#syntax) section. +See [AiAgentToolAction](#agent-tool-classes) in the [Syntax](#syntax) section. @@ -730,7 +730,7 @@ deciding whether to delegate to that sub-agent. For the full conceptual picture - parameter propagation, sub-conversation isolation, action-tool path routing, and security considerations - see -[Multi-agents](../../../../ai-integration/ai-agents/multi-agents.mdx). +[Multi-agents](../../multi-agents.mdx). **Example** ```csharp @@ -758,8 +758,8 @@ they can be referenced. An agent cannot spawn a new agent at runtime.
-See [AiAgentToolSubAgent](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#agent-tool-classes) in the [Syntax](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#syntax) section. -See [Multi-agents](../../../../ai-integration/ai-agents/multi-agents.mdx) for the end-to-end picture. +See [AiAgentToolSubAgent](#agent-tool-classes) in the [Syntax](#syntax) section. +See [Multi-agents](../../multi-agents.mdx) for the end-to-end picture. @@ -794,7 +794,7 @@ The agent configuration is ready, and we can now register the agent with the ser } ```
-See [CreateAgent](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#agent-management) in the [Syntax](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#syntax) section. +See [CreateAgent](#agent-management) in the [Syntax](#syntax) section. @@ -817,7 +817,7 @@ You can also retrieve the configurations of **all existing agents** using `GetAg var agents = existingAgentsList.AiAgents; ```
-See [GetAgent](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#agent-management) and [GetAgents](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#agent-management) in the [Syntax](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#syntax) section. +See [GetAgent](#agent-management) and [GetAgents](#agent-management) in the [Syntax](#syntax) section. @@ -831,7 +831,7 @@ To delete an existing agent configuration, use `DeleteAgent` with the agent's ID await store.AI.DeleteAgentAsync("reward-productive-employee"); ```
-See [DeleteAgent](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#agent-management) in the [Syntax](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#syntax) section. +See [DeleteAgent](#agent-management) in the [Syntax](#syntax) section. @@ -880,7 +880,7 @@ See [DeleteAgent](../../../../ai-integration/ai-agents/creating-ai-agents/creati #### Setting parameter values visibility to the LLM (Conversation level) -* As [explained above](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#setting-parameter-values-visibility-to-the-llm-configuration-level), the visibility of a parameter's value to the LLM can be set in the agent configuration using the `SendToModel` property of `AiAgentParameter`. +* As [explained above](#setting-parameter-values-visibility-to-the-llm-configuration-level), the visibility of a parameter's value to the LLM can be set in the agent configuration using the `SendToModel` property of `AiAgentParameter`. You can also control the value's visibility to the LLM **at the conversation level** by passing `sendToModel: false` to `AddParameter`. The final visibility is determined by **both** configuration-level and conversation-level settings: if **either** is `false`, the parameter is hidden from the model. @@ -896,11 +896,11 @@ See [DeleteAgent](../../../../ai-integration/ai-agents/creating-ai-agents/creati --- -See [Conversation](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#conversation-execution), [SetUserPrompt](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#conversation-execution), and [AiConversationCreationOptions](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#conversation-and-response-classes) in the [Syntax](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#syntax) section. +See [Conversation](#conversation-execution), [SetUserPrompt](#conversation-execution), and [AiConversationCreationOptions](#conversation-and-response-classes) in the [Syntax](#syntax) section.
To read the messages of a stored conversation back from the server, see -[Reading conversation history](../../../../ai-integration/ai-agents/reading-conversation-history.mdx). +[Reading conversation history](../../reading-conversation-history.mdx). @@ -910,8 +910,8 @@ To read the messages of a stored conversation back from the server, see During the conversation, the LLM can request the agent to trigger action tools. The agent will pass a requested action tool's name and parameters to the client, and it is then up to the client to process the request. -- The client can process an action-tool request using a [handler](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#action-tool-handlers) or a [receiver](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#action-tool-receivers). -- If an action-tool request arrives and there is no registered handler or receiver to process it, the client can catch it using [OnUnhandledAction](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#catching-action-tool-calls-with-no-callback) and decide how to address it. +- The client can process an action-tool request using a [handler](#action-tool-handlers) or a [receiver](#action-tool-receivers). +- If an action-tool request arrives and there is no registered handler or receiver to process it, the client can catch it using [OnUnhandledAction](#catching-action-tool-calls-with-no-callback) and decide how to address it. --- @@ -980,13 +980,13 @@ levels.
-See [Multi-agents: Action tool routing back to the client](../../../../ai-integration/ai-agents/multi-agents.mdx#action-tool-routing-back-to-the-client) +See [Multi-agents: Action tool routing back to the client](../../multi-agents.mdx#action-tool-routing-back-to-the-client) for the full picture.
-See [Handle](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#action-tool-processing) in the [Syntax](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#syntax) section. +See [Handle](#action-tool-processing) in the [Syntax](#syntax) section. --- @@ -1060,7 +1060,7 @@ Receivers are typically used asynchronously for multi-step or delayed operations
-See [Receive](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#action-tool-processing), [AddActionResponse](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#action-tool-processing), and [AiAgentActionRequest](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#conversation-and-response-classes) in the [Syntax](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#syntax) section. +See [Receive](#action-tool-processing), [AddActionResponse](#action-tool-processing), and [AiAgentActionRequest](#conversation-and-response-classes) in the [Syntax](#syntax) section. --- @@ -1085,7 +1085,7 @@ chat.OnUnhandledAction += async (args) => }; ```
-See [OnUnhandledAction](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#action-tool-processing) and [UnhandledActionEventArgs](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#conversation-and-response-classes) in the [Syntax](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#syntax) section. +See [OnUnhandledAction](#action-tool-processing) and [UnhandledActionEventArgs](#conversation-and-response-classes) in the [Syntax](#syntax) section. @@ -1127,7 +1127,7 @@ This is useful, for example, when you want to pre-load the conversation with con } ```
-See [AddArtificialActionWithResponse](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#action-tool-processing) in the [Syntax](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#syntax) section. +See [AddArtificialActionWithResponse](#action-tool-processing) in the [Syntax](#syntax) section. @@ -1143,7 +1143,7 @@ The `AiAnswer` object contains: - `Usage` - token usage counters for this turn. - `Elapsed` - total time taken to produce the answer. -See [AiAnswer](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#conversation-and-response-classes) and [AiConversationResult](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#enums) in the [Syntax](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#syntax) section. +See [AiAnswer](#conversation-and-response-classes) and [AiConversationResult](#enums) in the [Syntax](#syntax) section. @@ -1155,7 +1155,7 @@ Set the user prompt using the `SetUserPrompt` method, and run the conversation u `RunAsync` method. You can also use `StreamAsync` to **stream** the LLM's response as it is generated. -Learn how to do this in the [Stream LLM responses](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#stream-llm-responses) section. +Learn how to do this in the [Stream LLM responses](#stream-llm-responses) section. ```csharp @@ -1172,9 +1172,9 @@ if (response.Status == AiConversationResult.Done) } ```
-See [RunAsync](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#conversation-execution) in the [Syntax](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#syntax) section. +See [RunAsync](#conversation-execution) in the [Syntax](#syntax) section. -See the full example [below](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#full-example). +See the full example [below](#full-example). @@ -1244,14 +1244,14 @@ var response = await chat.RunAsync(CancellationToken.None); ```
-See [AddAttachment](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#conversation-execution) and [CopyAttachmentFrom](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#conversation-execution) in the [Syntax](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#syntax) section. +See [AddAttachment](#conversation-execution) and [CopyAttachmentFrom](#conversation-execution) in the [Syntax](#syntax) section. -You can set the agent to [stream the LLM's response to the client](../../../../ai-integration/ai-agents/overview.mdx#streaming-llm-responses) in real time as the LLM generates it, using the `StreamAsync` method, instead of using [RunAsync](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#setting-user-prompt-and-running-the-conversation) which sends the whole response to the client when it is fully prepared. +You can set the agent to [stream the LLM's response to the client](../../overview.mdx#streaming-llm-responses) in real time as the LLM generates it, using the `StreamAsync` method, instead of using [RunAsync](#setting-user-prompt-and-running-the-conversation) which sends the whole response to the client when it is fully prepared. Streaming the response allows the client to start processing it before it is complete, which can improve the application's responsiveness. @@ -1281,7 +1281,7 @@ Streaming the response allows the client to start processing it before it is com } ```
-See [StreamAsync](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#conversation-execution) in the [Syntax](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#syntax) section. +See [StreamAsync](#conversation-execution) in the [Syntax](#syntax) section.
@@ -2037,7 +2037,7 @@ public AiAgentConfiguration(string name, string connectionStringName, string sys | **OutputSchema** | `string` | A formal JSON schema describing the expected LLM response structure. If both `SampleObject` and `OutputSchema` are defined, only the schema is used. | | **Queries** | `List` | Query tools that the LLM can use (through the agent) to retrieve data from the database. | | **Actions** | `List` | Action tools that the LLM can use to trigger the client to action. | -| **SubAgents** | `List` | Other agents that this agent can invoke as sub-agents. See [Sub-agents as tools](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#sub-agents-as-tools). | +| **SubAgents** | `List` | Other agents that this agent can invoke as sub-agents. See [Sub-agents as tools](#sub-agents-as-tools). | | **Parameters** | `List` | Agent parameters whose values are provided by the client when a conversation is started. | | **ChatTrimming** | `AiAgentChatTrimmingConfiguration` | Configuration for summarizing the conversation to reduce token usage. | | **MaxModelIterationsPerCall** | `int?` | Maximum number of times the LLM can request tool usage in response to a single user prompt. | @@ -2268,7 +2268,7 @@ class AiAgentToolSubAgent | **Identifier** | `string` | The identifier of an existing agent that this agent may invoke as a sub-agent.
The referenced agent must be created in the same database. | | **Description** | `string` | A short description the LLM reads when deciding whether to delegate to this sub-agent. | -See [Multi-agents](../../../../ai-integration/ai-agents/multi-agents.mdx) for the full picture, including parameter propagation and sub-conversation isolation. +See [Multi-agents](../../multi-agents.mdx) for the full picture, including parameter propagation and sub-conversation isolation. diff --git a/docs/ai-integration/ai-agents/creating-ai-agents/content/_creating-ai-agents_api-nodejs.mdx b/docs/ai-integration/ai-agents/creating-ai-agents/content/_creating-ai-agents_api-nodejs.mdx index 558f6d700c..d3e92a9055 100644 --- a/docs/ai-integration/ai-agents/creating-ai-agents/content/_creating-ai-agents_api-nodejs.mdx +++ b/docs/ai-integration/ai-agents/creating-ai-agents/content/_creating-ai-agents_api-nodejs.mdx @@ -14,27 +14,27 @@ import Panel from "@site/src/components/Panel"; * Once the agent is created, the client can initiate or resume **conversations**, get LLM responses, and perform actions based on LLM insights. * This article provides a step-by-step guide to creating an AI agent and interacting with it using the **client API**. - To create an AI agent from Studio, see [Creating AI agents - Studio](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_studio.mdx). + To create an AI agent from Studio, see [Creating AI agents - Studio](../creating-ai-agents_studio.mdx). * In this article: - * [Create a connection string](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#creating-a-connection-string) - * [Define the agent](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#defining-an-agent-configuration) - * [Add agent tools](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#adding-agent-tools) - * [Query tools](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#query-tools) - * [Action tools](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#action-tools) - * [Create the agent](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#creating-the-agent) - * [Manage conversations](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#managing-conversations) - * [Create a conversation](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#setting-a-conversation) - * [Process action-tool requests](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#processing-action-tool-requests) - * [Action-tool handlers](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#action-tool-handlers) - * [Action-tool receivers](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#action-tool-receivers) - * [Set user prompt and RUN the conversation](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#setting-user-prompt-and-running-the-conversation) - * [Handle the conversation response](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#conversation-response) - * [Stream LLM responses](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#stream-llm-responses) - * [Full example](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#full-example) - * [Retrieve existing agents](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#retrieving-existing-agent-configurations) - * [Delete agent](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#delete-agent) - * [Syntax](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#syntax) + * [Create a connection string](#creating-a-connection-string) + * [Define the agent](#defining-an-agent-configuration) + * [Add agent tools](#adding-agent-tools) + * [Query tools](#query-tools) + * [Action tools](#action-tools) + * [Create the agent](#creating-the-agent) + * [Manage conversations](#managing-conversations) + * [Create a conversation](#setting-a-conversation) + * [Process action-tool requests](#processing-action-tool-requests) + * [Action-tool handlers](#action-tool-handlers) + * [Action-tool receivers](#action-tool-receivers) + * [Set user prompt and RUN the conversation](#setting-user-prompt-and-running-the-conversation) + * [Handle the conversation response](#conversation-response) + * [Stream LLM responses](#stream-llm-responses) + * [Full example](#full-example) + * [Retrieve existing agents](#retrieving-existing-agent-configurations) + * [Delete agent](#delete-agent) + * [Syntax](#syntax) @@ -43,9 +43,9 @@ import Panel from "@site/src/components/Panel"; Your agent will need a connection string to connect to a **conversational or text generation LLM**. RavenDB supports the following providers for these model types: -[Ollama](../../../../ai-integration/connection-strings/ollama.mdx), -[OpenAI and compatible providers](../../../../ai-integration/connection-strings/open-ai.mdx), -and [Azure OpenAI](../../../../ai-integration/connection-strings/azure-open-ai.mdx). +[Ollama](../../../connection-strings/ollama.mdx), +[OpenAI and compatible providers](../../../connection-strings/open-ai.mdx), +and [Azure OpenAI](../../../connection-strings/azure-open-ai.mdx). Choose the model that best suits your needs: You can use a local _Ollama_ model if your priorities are speed, cost, open-source usage, or security. @@ -56,9 +56,9 @@ Or use a remote _OpenAI_ service for its broader resources and capabilities. * **From the Studio**: You can define a connection string in the _AI Connection Strings_ view. - See [AI connection strings - Overview](../../../../ai-integration/connection-strings/overview.mdx). + See [AI connection strings - Overview](../../../connection-strings/overview.mdx). You can also create a connection string when defining an AI agent. - See [Configure basic settings](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_studio.mdx#configure-basic-settings). + See [Configure basic settings](../creating-ai-agents_studio.mdx#configure-basic-settings). --- @@ -139,9 +139,9 @@ const putConnectionStringResult = await documentStore.maintenance.send(putConnec **Syntax reference** See the dedicated syntax sections in the following articles for full configuration details: -* [Ollama (syntax)](../../../../ai-integration/connection-strings/ollama.mdx#syntax) -* [OpenAI and compatible providers (syntax)](../../../../ai-integration/connection-strings/open-ai.mdx#syntax) -* [Azure OpenAI (syntax)](../../../../ai-integration/connection-strings/azure-open-ai.mdx#syntax) +* [Ollama (syntax)](../../../connection-strings/ollama.mdx#syntax) +* [OpenAI and compatible providers (syntax)](../../../connection-strings/open-ai.mdx#syntax) +* [Azure OpenAI (syntax)](../../../connection-strings/azure-open-ai.mdx#syntax) @@ -158,14 +158,14 @@ See the dedicated syntax sections in the following articles for full configurati * Then populate the object with your system prompt, agent settings, and tools. The following sections explain how to configure each component of the agent: - * [System prompt](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#system-prompt) - * [Agent name](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#agent-name) - * [Agent ID](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#agent-id) - * [Connection string](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#connection-string) - * [Expected response format](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#expected-response-format) - * [Agent parameters](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#agent-parameters) - * [Maximum number of iterations](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#maximum-number-of-iterations) - * [Chat trimming configuration](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#chat-trimming-configuration) + * [System prompt](#system-prompt) + * [Agent name](#agent-name) + * [Agent ID](#set-the-agent-id) + * [Connection string](#creating-a-connection-string) + * [Expected response format](#expected-response-format) + * [Agent parameters](#add-agent-parameters) + * [Maximum number of iterations](#set-maximum-number-of-iterations) + * [Chat trimming configuration](#set-chat-trimming-configuration) --- @@ -220,7 +220,7 @@ agentConfiguration.identifier = "reward-productive-employee"; ### Connection string -Provide the name of the connection string you created above in [Create a connection string](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#creating-a-connection-string). +Provide the name of the connection string you created above in [Create a connection string](#creating-a-connection-string). ```js agentConfiguration.connectionStringName = connectionString.name; @@ -301,9 +301,9 @@ agent.OutputSchema = outputSchema: JSON.stringify({ Agent parameters let you define named placeholders for values used in queries inside query tools. At configuration time, you define the parameter name (e.g. `country`), -which you can then use in the RQL of your [query tools](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#query-tools) as a placeholder (e.g. `$country`). +which you can then use in the RQL of your [query tools](#query-tools) as a placeholder (e.g. `$country`). The values for these parameters are Not set by the LLM - -you must provide the actual value at [conversation startup](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#setting-a-conversation). +you must provide the actual value at [conversation startup](#setting-a-conversation). When the agent is requested to execute a query that references an agent parameter, it replaces each placeholder with the corresponding value you provided at chat startup, before running the query. @@ -333,8 +333,8 @@ agentConfiguration.maxModelIterationsPerCall = 3; * Note that you can reduce Time To First Byte (TTFB) by streaming the LLM response as it is being generated. This allows the LLM to return selected fields in chunks before the full response is complete. -* Find more about streaming in [Streaming LLM responses - overview](../../../../ai-integration/ai-agents/overview.mdx#streaming-llm-responses) - and in [Stream LLM responses](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#stream-llm-responses) below. +* Find more about streaming in [Streaming LLM responses - overview](../../overview.mdx#streaming-llm-responses) + and in [Stream LLM responses](#stream-llm-responses) below. @@ -383,19 +383,19 @@ agentConfiguration.chatTrimming = { ### Query tools -* [Query tools](../../../../ai-integration/ai-agents/overview.mdx#query-tools) provide the LLM with the ability to retrieve data from the database. +* [Query tools](../../overview.mdx#query-tools) provide the LLM with the ability to retrieve data from the database. Each query tool includes: * **Description** - a natural-language description that tells the LLM when to use it, * **RQL** - an [RQL query](../../../../querying/rql/what-is-rql.mdx) that defines what data to retrieve. * To run a query tool at agent startup and provide initial context to the LLM **before** the conversation begins, - see: [Initial-context queries](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#initial-context-queries) below. + see: [Initial-context queries](#initial-context-queries) below. * **Passing values to a query tool** The RQL in the query tool may include parameter placeholders prefixed with `$` (e.g. `$country`). Both the user and the LLM can pass values to these parameters. * **Passing values from the user**: - Users can pass values to queries through [Agent parameters](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#agent-parameters). + Users can pass values to queries through [Agent parameters](#add-agent-parameters). If agent parameters are defined in the agent configuration - * The client must provide values for them when initiating a conversation with the agent. * Before executing the query, the agent will replace the placeholders with the provided values. @@ -471,7 +471,7 @@ agentConfiguration.chatTrimming = { #### Initial-context queries -* Use the `options.addToInitialContext` property to configure a query tool as an [initial-context query](../../../../ai-integration/ai-agents/overview.mdx#initial-context-queries) +* Use the `options.addToInitialContext` property to configure a query tool as an [initial-context query](../../overview.mdx#initial-context-queries) so that it executes immediately when the agent starts, before the LLM receives any user input. The results are provided to the LLM as part of the initial conversation context. @@ -602,7 +602,7 @@ agentConfiguration.chatTrimming = { * Conversation creation options - including values for any agent parameters, if defined. * The object returned by `conversation` is used to run the chat. - See [Set user prompt and run the conversation](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#setting-user-prompt-and-running-the-conversation). + See [Set user prompt and run the conversation](#setting-user-prompt-and-running-the-conversation). * **Example** @@ -645,8 +645,8 @@ agentConfiguration.chatTrimming = { When this happens, the agent forwards the tool’s name and parameters to the client - and it’s up to the client to handle the request. -* The client can process an action-tool request using either a [Handler](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#action-tool-handlers) - or a [Receiver](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#action-tool-receivers). +* The client can process an action-tool request using either a [Handler](#action-tool-handlers) + or a [Receiver](#action-tool-receivers). --- @@ -808,7 +808,7 @@ if (response.status === "Done") { Instead of `run`, you can use `stream` to **stream** the LLM's response as it is generated. -See [Stream LLM responses](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#stream-llm-responses). +See [Stream LLM responses](#stream-llm-responses). @@ -841,7 +841,7 @@ The status can be: ### Stream LLM responses * Instead of calling `run`, which returns the LLM's response to the client when it is fully prepared, - you can call `stream` to [Stream LLM responses](../../../../ai-integration/ai-agents/overview.mdx#streaming-llm-responses), + you can call `stream` to [Stream LLM responses](../../overview.mdx#streaming-llm-responses), and receive the LLM's response in real time as it is being generated. * Streaming allows the client to start processing the response before it is complete, diff --git a/docs/ai-integration/ai-agents/creating-ai-agents/content/_creating-ai-agents_api-python.mdx b/docs/ai-integration/ai-agents/creating-ai-agents/content/_creating-ai-agents_api-python.mdx index 35f52f4c2f..dea60de083 100644 --- a/docs/ai-integration/ai-agents/creating-ai-agents/content/_creating-ai-agents_api-python.mdx +++ b/docs/ai-integration/ai-agents/creating-ai-agents/content/_creating-ai-agents_api-python.mdx @@ -16,37 +16,37 @@ import Panel from "@site/src/components/Panel"; * This page provides a step-by-step guide to creating an AI agent and interacting with it using the client API. * In this article: - * [Creating a connection string](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#creating-a-connection-string) - * [Defining an agent configuration](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#defining-an-agent-configuration) - * [Set the agent ID](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#set-the-agent-id) - * [Define a response object](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#define-a-response-object) - * [Add agent parameters](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#add-agent-parameters) - * [Set maximum number of iterations](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#set-maximum-number-of-iterations) - * [Set chat trimming configuration](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#set-chat-trimming-configuration) - * [Adding agent tools](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#adding-agent-tools) - * [Query tools](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#query-tools) + * [Creating a connection string](#creating-a-connection-string) + * [Defining an agent configuration](#defining-an-agent-configuration) + * [Set the agent ID](#set-the-agent-id) + * [Define a response object](#define-a-response-object) + * [Add agent parameters](#add-agent-parameters) + * [Set maximum number of iterations](#set-maximum-number-of-iterations) + * [Set chat trimming configuration](#set-chat-trimming-configuration) + * [Adding agent tools](#adding-agent-tools) + * [Query tools](#query-tools) - * [Action tools](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#action-tools) - * [Creating the Agent](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#creating-the-agent) - * [Retrieving existing agent configurations](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#retrieving-existing-agent-configurations) - * [Managing conversations](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#managing-conversations) - * [Setting a conversation](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#setting-a-conversation) - * [Processing action-tool requests](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#processing-action-tool-requests) - * [Action-tool Handlers](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#action-tool-handlers) - * [Action-tool Receivers](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#action-tool-receivers) - * [Conversation response](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#conversation-response) - * [Setting user prompt and running the conversation](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#setting-user-prompt-and-running-the-conversation) - * [Stream LLM responses](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#stream-llm-responses) - * [Full Example](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#full-example) + * [Action tools](#action-tools) + * [Creating the Agent](#creating-the-agent) + * [Retrieving existing agent configurations](#retrieving-existing-agent-configurations) + * [Managing conversations](#managing-conversations) + * [Setting a conversation](#setting-a-conversation) + * [Processing action-tool requests](#processing-action-tool-requests) + * [Action-tool Handlers](#action-tool-handlers) + * [Action-tool Receivers](#action-tool-receivers) + * [Conversation response](#conversation-response) + * [Setting user prompt and running the conversation](#setting-user-prompt-and-running-the-conversation) + * [Stream LLM responses](#stream-llm-responses) + * [Full Example](#full-example) Your agent will need a connection string to connect with the LLM. Create a connection string using an `AiConnectionString` instance and the `PutConnectionStringOperation` operation. -(You can also create a connection string using Studio, see [here](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_studio.mdx#configure-basic-settings)) +(You can also create a connection string using Studio, see [here](../creating-ai-agents_studio.mdx#configure-basic-settings)) You can use a local `Ollama` model if your considerations are mainly speed, cost, open-source, or security, Or you can use a remote `OpenAI` service for its additional resources and capabilities. @@ -160,7 +160,7 @@ Start by creating a new `AiAgentConfiguration` instance. While creating the instance, pass its constructor: - The agent's Name -- The [connection string](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#creating-a-connection-string) you created +- The [connection string](#creating-a-connection-string) you created - A System prompt The agent will send the system prompt you define here to the LLM to define its basic characteristics, including its role, purpose, behavior, and the tools it can use. @@ -320,7 +320,7 @@ agent.output_schema = """ ### Add agent parameters -Agent parameters are parameters that can be used by [query tools](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#query-tools) when the agent queries the database on behalf of the LLM. +Agent parameters are parameters that can be used by [query tools](#query-tools) when the agent queries the database on behalf of the LLM. Values for agent parameters are provided by the client, or by a user through the client, when a chat is started. When the agent is requested to use a query tool that uses agent parameters, it replaces these parameters with the values provided by the user before running the query. @@ -371,7 +371,7 @@ agent tools in response to a single user prompt. Use `max_model_iterations_per_c Note that you can improve the TTFB (Time To First Byte) by getting the LLM's response in chunks using streaming. -Find more about streaming in the [overview](../../../../ai-integration/ai-agents/overview.mdx#streaming-llm-responses) and [below](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#stream-llm-responses). +Find more about streaming in the [overview](../../overview.mdx#streaming-llm-responses) and [below](#stream-llm-responses). @@ -379,7 +379,7 @@ Find more about streaming in the [overview](../../../../ai-integration/ai-agents ### Set chat trimming configuration -To [summarize the conversation](../../../../ai-integration/ai-agents/overview.mdx#define-a-chat-trimming-configuration), create an `AiAgentChatTrimmingConfiguration` instance, +To [summarize the conversation](../../overview.mdx#define-a-chat-trimming-configuration), create an `AiAgentChatTrimmingConfiguration` instance, use it to configure your trimming strategy, and set the agent's `chat_trimming` property with the instance. @@ -446,11 +446,11 @@ After defining agent tools and submitting them to the LLM, it is up to the LLM t ### Query tools -[Query tools](../../../../ai-integration/ai-agents/overview.mdx#query-tools) provide the LLM with the ability to retrieve data from the database. +[Query tools](../../overview.mdx#query-tools) provide the LLM with the ability to retrieve data from the database. A query tool includes a natural-language **description** that explains the LLM what the tool is for, and an **RQL query**. * **Passing values to query tools** - * Query tools optionally include [parameters](../../../../ai-integration/ai-agents/overview.mdx#query-parameters), identified by a `$` prefix. + * Query tools optionally include [parameters](../../overview.mdx#query-parameters), identified by a `$` prefix. Both the user and the LLM can pass values to these parameters. * **Passing values from the user** Users can pass values to queries through **agent parameters**. @@ -538,7 +538,7 @@ A query tool includes a natural-language **description** that explains the LLM w - * [Action tools](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#action-tools) - * [Creating the Agent](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#creating-the-agent) - * [Retrieving existing agent configurations](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#retrieving-existing-agent-configurations) - * [Managing conversations](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#managing-conversations) - * [Setting a conversation](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#setting-a-conversation) - * [Processing action-tool requests](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#processing-action-tool-requests) - * [Action-tool Handlers](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#action-tool-handlers) - * [Action-tool Receivers](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#action-tool-receivers) - * [Conversation response](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#conversation-response) - * [Setting user prompt and running the conversation](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#setting-user-prompt-and-running-the-conversation) - * [Stream LLM responses](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#stream-llm-responses) - * [Full Example](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#full-example) + * [Action tools](#action-tools) + * [Creating the Agent](#creating-the-agent) + * [Retrieving existing agent configurations](#retrieving-existing-agent-configurations) + * [Managing conversations](#managing-conversations) + * [Setting a conversation](#setting-a-conversation) + * [Processing action-tool requests](#processing-action-tool-requests) + * [Action-tool Handlers](#action-tool-handlers) + * [Action-tool Receivers](#action-tool-receivers) + * [Conversation response](#conversation-response) + * [Setting user prompt and running the conversation](#setting-user-prompt-and-running-the-conversation) + * [Stream LLM responses](#stream-llm-responses) + * [Full Example](#full-example) Your agent will need a connection string to connect with the LLM. Create a connection string using an `AiConnectionString` instance and the `PutConnectionStringOperation` operation. -(You can also create a connection string using Studio, see [here](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_studio.mdx#configure-basic-settings)) +(You can also create a connection string using Studio, see [here](../creating-ai-agents_studio.mdx#configure-basic-settings)) You can use a local `Ollama` model if your considerations are mainly speed, cost, open-source, or security, Or you can use a remote `OpenAI` service for its additional resources and capabilities. @@ -160,7 +160,7 @@ Start by creating a new `AiAgentConfiguration` instance. While creating the instance, pass its constructor: - The agent's Name -- The [connection string](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#creating-a-connection-string) you created +- The [connection string](#creating-a-connection-string) you created - A System prompt The agent will send the system prompt you define here to the LLM to define its basic characteristics, including its role, purpose, behavior, and the tools it can use. @@ -320,7 +320,7 @@ agent.output_schema = """ ### Add agent parameters -Agent parameters are parameters that can be used by [query tools](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#query-tools) when the agent queries the database on behalf of the LLM. +Agent parameters are parameters that can be used by [query tools](#query-tools) when the agent queries the database on behalf of the LLM. Values for agent parameters are provided by the client, or by a user through the client, when a chat is started. When the agent is requested to use a query tool that uses agent parameters, it replaces these parameters with the values provided by the user before running the query. @@ -371,7 +371,7 @@ agent tools in response to a single user prompt. Use `max_model_iterations_per_c Note that you can improve the TTFB (Time To First Byte) by getting the LLM's response in chunks using streaming. -Find more about streaming in the [overview](../../../../ai-integration/ai-agents/overview.mdx#streaming-llm-responses) and [below](../../../../ai-integration/ai-agents/creating-ai-agents/creating-ai-agents_api.mdx#stream-llm-responses). +Find more about streaming in the [overview](../../overview.mdx#streaming-llm-responses) and [below](#stream-llm-responses). @@ -379,7 +379,7 @@ Find more about streaming in the [overview](../../../../ai-integration/ai-agents ### Set chat trimming configuration -To [summarize the conversation](../../../../ai-integration/ai-agents/overview.mdx#define-a-chat-trimming-configuration), create an `AiAgentChatTrimmingConfiguration` instance, +To [summarize the conversation](../../overview.mdx#define-a-chat-trimming-configuration), create an `AiAgentChatTrimmingConfiguration` instance, use it to configure your trimming strategy, and set the agent's `chat_trimming` property with the instance. @@ -446,11 +446,11 @@ After defining agent tools and submitting them to the LLM, it is up to the LLM t ### Query tools -[Query tools](../../../../ai-integration/ai-agents/overview.mdx#query-tools) provide the LLM with the ability to retrieve data from the database. +[Query tools](../../overview.mdx#query-tools) provide the LLM with the ability to retrieve data from the database. A query tool includes a natural-language **description** that explains the LLM what the tool is for, and an **RQL query**. * **Passing values to query tools** - * Query tools optionally include [parameters](../../../../ai-integration/ai-agents/overview.mdx#query-parameters), identified by a `$` prefix. + * Query tools optionally include [parameters](../../overview.mdx#query-parameters), identified by a `$` prefix. Both the user and the LLM can pass values to these parameters. * **Passing values from the user** Users can pass values to queries through **agent parameters**. @@ -538,7 +538,7 @@ A query tool includes a natural-language **description** that explains the LLM w