diff --git a/www/docs/rest-api/bulk-delete-corpus-documents.api.mdx b/www/docs/rest-api/bulk-delete-corpus-documents.api.mdx
new file mode 100644
index 000000000..47f1c2a2d
--- /dev/null
+++ b/www/docs/rest-api/bulk-delete-corpus-documents.api.mdx
@@ -0,0 +1,79 @@
+---
+id: bulk-delete-corpus-documents
+title: "Bulk delete documents from a corpus"
+description: "Initiates an asynchronous bulk delete operation for documents in a corpus."
+sidebar_label: "Bulk delete documents from a corpus"
+hide_title: true
+hide_table_of_contents: true
+api: eJztWXtv20YS/yqDxQFtXVGS3abo6drDubUDuK8EiXPANQ6sFXcobkTuMrtLyaqh736YWVKkHnGTpj0Uxf1Jcneev3nyXgQ592LyUlzYtC7RBC9eDcRd4uuqsi6gSmSlkwWuk7CukA5eGYV3z9EtdYpiIJ6i89bIgq4p9KnTVdDWiIm4MjpoGdCDNCD92qS5s8bWHmZ1sQCFBQYEW6GTdAMy60C1UoA2ICG1rqr98MZc59r3jso0xSp4kFBikEoGCZkuAroBSCi0D2Az8BWmOtPplihcXfgBWAczG/LhjbkxJydXJakpTTg5mQBz0UR2hj4kmGXWhY7t8MY8R4SQIzj0lTUewac5lnLLoqcJBqkLD9bwhRnmcqnpvc4ydGhS9DDDsEI0MG21uI1aTEEaBdOW6K1WfgqVdLLEgM6z6Nd533auNh4kSy7TxdzZ2ihYWbfICrsa3pgXvpU71M6ggulrO7vVagrBQnAyXUDl7Nyh97DUks9+Z2cezp9eDW+MGIgtryslJoI8eMEO/JZd1KFnIDpBxeTlvdCEhRylQicGwsgSxUQ8wzc1mfhal2jrIPaxQ9qdP72ClS4KKOUCG59A45NgIbVlxQiKejE9Qg09Nq5HBR5Ta5QnrwddItg6DMVARLeJyb2IsBbaBJyzhKU2uqxLMTndDATR1Q6VmGSy8LgZvJs+yY+6KLT/49Qqmf6H6LZVpZIh7xSJEXe7wPVR4Wuj39QIC1yDVmiCztbazFm4eBNSa4LUht52wRxsE+4kX2fT4Grsy7vL7xxqjy6pnF1qhYqZUmRt04IYtBr64LSZi4HAO0nmExNRrpN4jBEZAjqi+VImv5wnP4+Tv9/e3Hx9c5O8+vRvZBd59wOaecjF5NF4IIIOTCNi+3tcCzZXY6K9YBWDaMc3NbpDoz3mMz1TzNbbnDWEFx599KwsEfCuogDkBEehzBT3M9zwxlxGJSecIYY+yFB7+Bo+ki7N9RLVR3D+0wWxHK5ROvgKzsZn4ylH8R6ej4ClMWVf4X4eeljbb21ZysQjpYCAapuK+xm4Bwb4Ud4RHuF0PBiPx/y1QtfCfvh+Ar+i0zEte/p+Nj47BNU3R0tPrCeoOO++qbFGRcwJy2gCUZFVVeiUT49eeyJ1/1bgPmuLQy8WyMmv7QyuLhjDnHLb90fL4X59msA3lGAuY6J40h47OYnF4FjhYpKkXkcUrg9rkYeZ9KioUq1yneZdpYG1rSkIJ1GWF54k3itLHz/D1JYlGgpRUq1ymGoC8SckWwKxTFAhLNasLt7JNPQiostqszVcXdCdH60P4LDQclaQTViLpHdHOmwspiBztmTCldOldGvwwTo5R1DaYRqKNVGMBVB7WOVoWK+FsasoS7FuFD+SsHY0PyjTHz+vZ68x5cStqS+iY4WcN6rH4I/SMoAIYXOpjQ8x6pFCNt4cgLFhR41t0JA+yKbs5MtlgFwuyZlowGGKhvRgUlQf5JrprTEQZ0oD2rT8HPq6CB5UjTuCV7rCQhskDYgdo6pEaXzHQCryc2eoUoY0p8trW7smRTH3GUKpvUdFlM65QPkgywrSOtgsI7Smsgq1I5v0mizwQbrwjwiXjk/qkDLKqK4UZ5YZZtY1LuXi10MEmyrqpjSlh1lNV/zaByzptDbzQR9MrNOSkm1aWM8Xw057xTKxWj5Q6Z516NNZp1v0NNm9Qpcx9qDte/UvJNiNeWwdG0Zbk6ROB53KYhupDE+H2ybAUD+mPbRZcEDRuB+B1lH7xxJH+ycxnrfhX9ZF0FWBUVCQGflo6/VckifqeR6grmKv12RWy9im+unIFEHHvBo7x8O0911Mb9uG8q2p7YFW80hJ74o3MR5yve7KPL0jJrcKi9vTs88+f/SF2AxEBNnt1jOH0l49fwJffjE+7SOzh8e2d4ZC1ibNh/DkKB7J+G+DZCS62sXLMQ0z60oZqNDKgAld3VHxbHz2KDk9S06/vD59NPlsPBmPf6b63KuNL1unHNH8VdfPfLPt2reZpK1VYrMhkp+Px0dMZZay0Kpfln9jZbx0jtDaDiGci+W2y23KJc1+kWE3SZCdl9oWPE42MxefiWXtVzGbaSzULRJ7fygWFcX4LSZWh8SIkLydIZmAbxvxniX2+UqlNJGVxdMdCQ7aK1Gi93K+81U6J6mr0gHL+L7xXHP2ADwtDNCHozFJml1dUAvWHydYyVQawmVNqSJYyLGo4N+YBukkNNM/KJzVc1jR8RVVopWzZn4IYZJiizGpmmGInb3F1WeHwj1F12RCD8py3pQFxVyXNXbGiA8A3jnM0aCTRfRzN7+vdMhpPxFfp1Yh94CNvX8dWH0nHpq+/Qrx04zUWeVNG8QcbZrWzu3khfcGQT9ZXBlKlrIAj26JLnIZ/glxsouOzw9FisMXoyKjdcYflXaQEpu3tUsRlMXIEe/08fDe9f4DpkylIUIz7KTfM8ZfNQP8ZMNjUrnz8IY2ihk6k3i1SGg7VSV7syUNlr0zJYbcqvZQW+AxxMoY0HDW4P0SrSomb99YDsRSFvXDm0uadVsyx8Tc0uiJe/ROX+zuUl98mlLjKaLWqsQ7mIkYLc9GtLSwTo7uu03MZtS3UgzsqHvtClpGhVD5yWgkKz1cRv8NtWVWHtPa6bDm0+eV/h7X5zXxeslKP6GHM37qHX5OYRRR2R7Y4tNKfrE/+MdzPEd7np4aHFF3U9gV00oLjSZ865AXR7KI8LYLNC921ahD3tNjFFmO+CSvt2zFwkVg9ZXqoohftruK/WXdXYsQhq02me0HWhsBzy6fX/OybnmobvvNQ7OdAklNb1v5gTdubbMrQ86D8QpnTWfey120zP2PrTkWM20UVUAKVpqmmIEMMD3uYELLV6QJGlVZbcI/p9AuGNtXcSKxdaC5TrXty1I6TXt4X888pnHw4AShuQuHZ9isqKH5zDUxTlhez03MFzMkPWsd9DIWzcxy9ZY0LhklnWIbZnUBPrg6pd6atxoJi8l1zwSau3jlpT2cnCzPTk6GdGLaV2zakKYFR67R8aKL5qYtXRqMePa2K3Sp9FGgfF3lyCYGoLmrKZMDmG7DbNKFWRdl0zgGNZJRCz4cD8eU9NCV/knW5pAOs61XUluOCpzLYsRHE5slPh4ecYIr7JzBthu4yqZ+2Cehy3lL8nZlnSqlWwwrLvWyCNd4FzqgCs6uSrrFh1C/LfQ8Dw/x4O485dqLpdTEIUNU9L/hXz3qHFOV9aGUXJObmOvv3bopilc37T53P8ruu3L//39Jf6l/SU2WDngXRlUhtSF8MWjvm1L4UnDWbaJUDMRk98dE/2dlbn2gG/f3lF1fuGKzoddxQ011T2lPe8Ruh/xWmP3JtvVH7RSbjsOfEG23wZ3Ju6v8+6/sH5B6709CJ/IrenC87n1Pl338rNmCfAK/1w+qowq0nYVZ9wVvFeuhc/NqM2hbjvdT5Y/+6fmAYw7/x/5GOP1P/nC+uyLdj9gdfeLZc878vW8HM+VOt35x+cPl9aXYbP4Ly+vBkA==
+sidebar_class_name: "delete api-method"
+info_path: docs/rest-api/vectara-rest-api-v-2
+custom_edit_url: null
+---
+
+import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint";
+import ParamsDetails from "@theme/ParamsDetails";
+import RequestSchema from "@theme/RequestSchema";
+import StatusCodes from "@theme/StatusCodes";
+import OperationTabs from "@theme/OperationTabs";
+import TabItem from "@theme/TabItem";
+import Heading from "@theme/Heading";
+
+
+
+
+
+
+
+
+
+
+Initiates an asynchronous bulk delete operation for documents in a corpus.
+This operation accepts a metadata filter, a list of specific document IDs, or both.
+
+**Important**: This is a best-effort operation.
+See the response schema documentation for details on the behavior differences between `metadata_filter` and `document_ids` parameters.
+
+The operation runs as a background workflow.
+Use the returned `job_id` to track progress via the Jobs API.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/www/docs/rest-api/create-agent-input.api.mdx b/www/docs/rest-api/create-agent-input.api.mdx
index 469135858..34aa2a899 100644
--- a/www/docs/rest-api/create-agent-input.api.mdx
+++ b/www/docs/rest-api/create-agent-input.api.mdx
@@ -5,7 +5,7 @@ description: "Create a new input to an agent to interact with it."
sidebar_label: "Interact with an agent"
hide_title: true
hide_table_of_contents: true
-api: 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
+api: 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
sidebar_class_name: "post api-method"
info_path: docs/rest-api/vectara-rest-api-v-2
custom_edit_url: null
@@ -62,7 +62,7 @@ Create a new input to an agent to interact with it.
diff --git a/www/docs/rest-api/create-agent-session.api.mdx b/www/docs/rest-api/create-agent-session.api.mdx
index 8c1673d00..430361323 100644
--- a/www/docs/rest-api/create-agent-session.api.mdx
+++ b/www/docs/rest-api/create-agent-session.api.mdx
@@ -40,7 +40,7 @@ Create a new session for interacting with an agent. A session is the conversatio
This endpoint initializes the session and enables you to configure its initial properties, including optional metadata. Metadata can influence agent behavior, personalize responses, or apply access controls. Instructions and tools can also reference metadata using `${\session.metadata.field}` or `$\ref` syntax.
-A session also serves as the workspace for artifacts, enabling file uploads and multi-step workflows. For more information, see [Working with artifacts in sessions](https://docs.vectara.com/docs/agents/sessions#working-with-artifacts-in-sessions).
+A session also serves as the workspace for artifacts, enabling file uploads and multi-step workflows. For more information, see [Working with artifacts in sessions](https://docs.vectara.com/docs/agent-os/sessions#working-with-artifacts-in-sessions).
## Example request
diff --git a/www/docs/rest-api/create-agent.api.mdx b/www/docs/rest-api/create-agent.api.mdx
index 2dd28224d..8b929a735 100644
--- a/www/docs/rest-api/create-agent.api.mdx
+++ b/www/docs/rest-api/create-agent.api.mdx
@@ -5,7 +5,7 @@ description: "Create a new agent. An agent is compromised as 3 main things of fu
sidebar_label: "Create agent"
hide_title: true
hide_table_of_contents: true
-api: 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
+api: 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
sidebar_class_name: "post api-method"
info_path: docs/rest-api/vectara-rest-api-v-2
custom_edit_url: null
@@ -86,7 +86,7 @@ When agents interact with LLMs, transient failures like network interruptions ca
"},"end_tag":{"description":"The tag that wraps the document part at the end. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the document part ends and the context after begins.","type":"string","example":""}},"example":{"sentences_before":2,"sentences_after":2,"start_tag":"","end_tag":""},"title":"ContextConfiguration"},"reranker":{"type":"object","description":"Rerank results of the search. Rerankers are very powerful tools to improve the order of search results. By default the search will use the most powerful reranker available to the customer's plan. To disable reranking, set the reranker `type` to `\"none\"`.","discriminator":{"propertyName":"type","mapping":{"customer_reranker":{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},"userfn":{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},"mmr":{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},"chain":{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},"none":{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}}},"oneOf":[{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}],"title":"SearchReranker"}},"example":{"limit":50},"title":"SearchParameters"}],"required":["corpora"],"title":"SearchCorporaParameters"},"generation":{"description":"The parameters to control generation.","type":"object","properties":{"enabled":{"description":"Whether generation is enabled for this query. This field is ignored if using chat.","type":"boolean","default":true},"generation_preset_name":{"description":"The preset values to use to feed the query results and other context to the model. \n\nA `generation_preset` is an object with a bundle of properties that specifies: \n* The `prompt_template` that is rendered and then sent to the LLM. \n* The LLM used. * `model_parameter`s such as temperature.\n\nAll of these properties except the model can be overridden by setting them in this object. Even when a `prompt_template` is set, the `generation_preset_name` is used to set the model used. See `model_parameters.model` if you want to set the model explicitly.\n\nIf `generation_preset_name` is not set, the Vectara platform will use the default model and prompt.'\n","type":"string","minLength":1,"example":"mockingbird-2.0"},"prompt_name":{"description":"Use `generation_preset_name` instead of `prompt_name`.","type":"string","minLength":1,"example":"mockingbird-2.0","deprecated":true},"max_used_search_results":{"description":"The maximum number of search results to be available to the prompt.","type":"integer","format":"int32","minimum":0,"default":5},"prompt_template":{"description":"Vectara manages both system and user roles and prompts for the generative LLM out of the box by default. However, users can override the `prompt_template` via this variable. The `prompt_template` is in the form of an Apache Velocity template. For more details on how to configure the `prompt_template`, see the [long-form documentation](https://docs.vectara.com/docs/prompts/vectara-prompt-engine).","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n"},"prompt_text":{"description":"This property is deprecated in favor of clearer naming. Use `prompt_template`. This property will be ignored if `prompt_template` is set.","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n","deprecated":true},"max_response_characters":{"description":"Controls the length of the generated output. This is a rough estimate and not a hard limit: the end output can be longer or shorter than this value. This is generally implemented by including the `max_response_characters` in the prompt, and the LLM's instruction following capability dictates how closely the generated output is limited.","type":"integer","format":"int32","example":300,"minimum":0},"response_language":{"description":"Languages that the Vectara platform supports.","type":"string","enum":["auto","eng","deu","fra","zho","kor","ara","rus","tha","nld","ita","por","spa","jpn","pol","tur","vie","ind","ces","ukr","ell","heb","fas","hin","urd","swe","ben","msa","ron"],"default":"auto","title":"Language"},"model_parameters":{"title":"ModelParameters","description":"The parameters for the model. WARNING: This is an experimental feature, and breakable at any point with virtually no notice. It is meant for experimentation to converge on optimal parameters that can then be set in the prompt definitions.","type":"object","properties":{"llm_name":{"description":"The model (e.g., `gpt-4`) to use for summarization. If specified, it will override the model behind `generation_preset_name`.","type":"string","example":"gpt4"},"max_tokens":{"description":"The maximum number of tokens to be returned by the model.","type":"integer","format":"int32","minimum":1},"temperature":{"description":"The sampling temperature to use. Higher values make the output more random, while lower values make it more focused and deterministic.","type":"number","format":"float"},"frequency_penalty":{"description":"Higher values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.","type":"number","format":"float"},"presence_penalty":{"description":"Higher values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.","type":"number","format":"float"}}},"citations":{"description":"Style the generator should use when making citations.","type":"object","properties":{"style":{"description":"The citation style that you want to use in the summary: \n* `numeric` - Citations formatted as simple numerals: \\[1\\], \\[2\\], etc.\n* `none` - Citations removed from text.\n* `html` - Citation formatted as a URL like `text_pattern`.\n* `markdown` - Formatted as `[text_pattern](url_pattern)`.\n","type":"string","enum":["none","numeric","html","markdown"]},"url_pattern":{"description":"The URL pattern if the citation_style is set to `html` or `markdown`. The pattern can access metadata attributes in the document or part. e.g. `https://my.doc/foo/{doc.id}/{part.id}` The default `url_pattern` is an empty string.","type":"string","example":"https://vectara.com/documents/{doc.id}"},"text_pattern":{"description":"The text pattern if the citation_style is set to `html` or `markdown`. This pattern sets the href for HTML or the text within `[]` in markdown, and defaults to N being the index of result if it is not set. The default citation style looks like `[N]()` for markdown. You can use metadata attributes in the `text_pattern`. For example, the pattern `{doc.title}` with citation style `markdown` would result in final citation output like `[Title]()` when the document's metadata includes `{\"title\":\"Title\"}`.","type":"string","example":"{doc.title}"}},"title":"CitationParameters"},"enable_factual_consistency_score":{"description":"Enable returning the factual consistency score with query results.","type":"boolean","default":true}},"title":"GenerationParameters"},"save_history":{"description":"Indicates whether to save the query to query history.","type":"boolean"}},"required":["search"],"title":"CorporaSearchQueryConfiguration"}},"required":["type","query_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},"web_search":{"title":"InlineWebSearchToolConfiguration","description":"A web search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'web_search' for inline web search tool configurations.","default":"web_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the web search tool call such as limit etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query to execute.","type":"string","example":"latest AI developments 2024"},"limit":{"description":"Maximum number of results to return.","type":"integer","minimum":1,"example":10},"provider":{"description":"Search provider to use.","type":"string","enum":["tavily"],"example":"tavily"},"include_domains":{"description":"List of domains to specifically include in search results. When specified, results will ONLY come from these domains. Supports exact domains (e.g., \"github.com\"), subdomains (e.g., \"docs.github.com\"), and wildcard patterns (e.g., \"*.github.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["github.com","docs.github.com","*.stackoverflow.com"]},"exclude_domains":{"description":"List of domains to specifically exclude from search results. Supports exact domains (e.g., \"spam.com\"), subdomains (e.g., \"bad.spam.com\"), and wildcard patterns (e.g., \"*.spam.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["spam.com","unreliable-source.com"]}},"additionalProperties":false,"title":"WebSearchToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"lambda":{"title":"InlineLambdaToolConfiguration","description":"A lambda tool configuration defined inline in the agent for executing user-defined functions.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'lambda' for inline lambda tool configurations.","default":"lambda"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments that will be passed to the lambda function. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","additionalProperties":true,"example":{"custom_param":"value"}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},"structured_indexing":{"title":"InlineStructuredIndexingToolConfiguration","description":"A structured indexing tool configuration defined inline in the agent for indexing into the Vectara platform.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'structured_indexing' for inline structured indexing tool configurations.","default":"structured_indexing"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the structured indexing tool call such as corpus_key etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"corpus_key":{"description":"The key identifying the target corpus for document indexing. If not provided, will be filled in by the LLM.","type":"string","example":"my-knowledge-base"},"document_id":{"description":"The unique identifier for the document within the corpus, preferably human readable IDs.","type":"string","example":"annual_report_2024"},"title":{"description":"The title of the document being indexed.","type":"string","example":"2024 Annual ESG Report"},"description":{"description":"A brief description or summary of the document content.","type":"string","example":"Comprehensive environmental, social, and governance report"},"metadata":{"description":"The metadata key-value pairs to associate with the document. If present, this gets merged with existing artifact metadata.","type":"object","additionalProperties":true,"example":{"doc_type":"annual_report","year":2024,"department":"sustainability"}},"document":{"description":"The structured document to index with full hierarchical content.","type":"object","additionalProperties":true,"example":{"id":"annual_report_2024","type":"structured","title":"2024 Annual ESG Report"}}},"additionalProperties":false,"title":"StructuredIndexingToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"sub_agent":{"title":"InlineSubAgentToolConfiguration","description":"A sub-agent tool configuration defined inline in the agent for invoking specialized sub-agents.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'sub_agent' for inline sub-agent tool configurations.","default":"sub_agent"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the sub-agent tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"message":{"description":"The detailed task instructions for the sub-agent to perform autonomously.","type":"string","example":"Review the code changes in pull request \\#123 for security issues"},"session_tti_minutes":{"description":"Time to idle in minutes before the session expires.","type":"integer","format":"int64","minimum":1,"example":60}},"additionalProperties":false,"title":"SubAgentToolParameters"},"sub_agent_configuration":{"description":"User-configurable settings for the sub-agent tool. These parameters are never exposed to the agent.","type":"object","properties":{"agent_key":{"description":"A unique key that identifies an agent.","type":"string","pattern":"[0-9a-zA-Z_-]+$","minLength":1,"maxLength":50,"example":"customer_support","title":"AgentKey"}},"required":["agent_key"],"title":"SubAgentConfiguration"}},"required":["type","sub_agent_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},"artifact_read":{"title":"InlineArtifactReadToolConfiguration","description":"An artifact read tool configuration defined inline in the agent for reading artifacts from the session workspace.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_read' for inline artifact read tool configurations.","default":"artifact_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to read.","type":"string","example":"art_abc123"},"encoding":{"description":"The encoding format for the content.","type":"string","enum":["raw","base64"],"example":"raw"},"start_line":{"description":"Optional starting line number (1-indexed).","type":"integer","format":"int32","example":100},"end_line":{"description":"Optional ending line number (1-indexed, inclusive).","type":"integer","format":"int32","example":200}},"additionalProperties":false,"title":"ArtifactReadToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"artifact_grep":{"title":"InlineArtifactGrepToolConfiguration","description":"An artifact grep tool configuration defined inline in the agent for searching through artifact content.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_grep' for inline artifact grep tool configurations.","default":"artifact_grep"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact grep tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to search.","type":"string","example":"art_abc123"},"pattern":{"description":"The pattern to search for (supports grep regex).","type":"string","example":"error|exception"},"grep_options":{"description":"Optional grep command options.","type":"array","items":{"type":"string"},"example":["-i","-n"]}},"additionalProperties":false,"title":"ArtifactGrepToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"image_read":{"title":"InlineImageReadToolConfiguration","description":"An image read tool configuration defined inline in the agent for loading images into the conversation context.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'image_read' for inline image read tool configurations.","default":"image_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the image read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the image artifact to view.","type":"string","pattern":"^art_[a-z0-9_-]+$","example":"art_photo_a3f2"},"detail":{"description":"Detail level for image processing.","type":"string","enum":["auto","low","high"],"default":"auto","example":"auto"}},"additionalProperties":false,"title":"ImageReadToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"document_conversion":{"title":"InlineDocumentConversionToolConfiguration","description":"A document conversion tool configuration defined inline in the agent for converting document artifacts to various formats.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'document_conversion' for inline document conversion tool configurations.","default":"document_conversion"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the document conversion tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to convert.","type":"string","example":"art_abc123"},"output_format":{"description":"Output format for the converted document.","type":"string","enum":["markdown","structured_document"],"example":"markdown"},"description":{"description":"Optional description for the converted artifact.","type":"string","example":"PDF converted to markdown"}},"additionalProperties":false,"title":"DocumentConversionToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]}}},"oneOf":[{"title":"InlineMcpToolConfiguration","description":"An MCP tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'mcp' for inline MCP tool configurations.","default":"mcp"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for tool calls. The key specifies the location in the tool arguments to overide, and the value specifies what to override with. The LLM will not be able to change the parameters, nor know those values exist within the tool.\n\nThe values can also be dynamic references to context values using $ref with dot notation path syntax:\n- Static value: \"fixed_value\" or 123\n- Dynamic reference: `{\"$ref\": \"session.metadata.field_name\"}`\n\nReferences are resolved at runtime from context:\n- session.metadata.* - Access session metadata fields\n- agent.metadata.* - Access agent metadata fields\n\nExample:\n `{\"query\": {\"$ref\": \".session.metadata.query\"}}`\n\nIf you want to have a real value `\"$ref\"` use `\"$$ref\"`, that is you can escape the first $ by using $$.","type":"object","additionalProperties":true,"example":{"custom_param":"value","limit":10}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineCorporaSearchToolConfiguration","description":"A corpora search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'corpora_search' for inline corpora search tool configurations.","default":"corpora_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the corpus search call such as the query. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query string, which is the question the user is asking. If not provided, will be filled in by the LLM.","type":"string","maxLength":5000,"example":"Am I allowed to bring pets to work?"}},"additionalProperties":false,"title":"CorporaSearchToolParameters"},"query_configuration":{"description":"User-configurable settings for the corpus search that are not exposed to the LLM.","type":"object","properties":{"search":{"description":"The parameters to search one or more corpora.","allOf":[{"type":"object","properties":{"corpora":{"description":"The corpora that you want to search.","type":"array","items":{"description":"A corpus with its identifying key for use in search operations within a customer account.","allOf":[{"description":"Configuration for search parameters specific to a single corpus within a customer account, including filters and semantics.","type":"object","properties":{"custom_dimensions":{"description":"The custom dimensions as additional weights.","type":"object","additionalProperties":{"type":"number","format":"double","nullable":false},"title":"CustomDimensions"},"metadata_filter":{"description":"The filter string used to narrow the search based on metadata attributes. The query against this corpus will be confined to document parts that match the `metadata_filter`. Only metadata fields set as `filter_attributes` on the corpus can be filtered. Filter syntax is similar to a SQL WHERE clause. See [metadata filters documentation](https://docs.vectara.com/docs/learn/metadata-search-filtering/filter-overview) for more information.","type":"string","maxLength":8000,"example":"doc.title = 'Annual Report'"},"lexical_interpolation":{"description":"How much to weigh lexical scores compared to the embedding score. 0 means lexical search is not used at all, and 1 means only lexical search is used.","type":"number","format":"float","minimum":0,"maximum":1,"example":0.005},"semantics":{"description":"Indicates whether to consider a query against this corpus as a query or a response.","type":"string","enum":["default","query","response"],"default":"default","title":"SearchSemantics"}},"title":"SearchCorpus"},{"type":"object","properties":{"corpus_key":{"description":"A user-provided key for a corpus.","type":"string","example":"my-corpus","pattern":"[a-zA-Z0-9_\\=\\-]+$","maxLength":50,"title":"CorpusKey"},"query":{"description":"Query for a particular corpus that will override the overall query if present.","type":"string","maxLength":5000,"example":"What are some important facts in my-corpus?"}}}],"required":["corpus_key"],"title":"KeyedSearchCorpus"},"minItems":1}}},{"type":"object","description":"Search parameters to retrieve knowledge for the query.","properties":{"offset":{"description":"Specifies how many results into the result to skip. This is useful for pagination.","type":"integer","format":"int32","default":0,"minimum":0},"limit":{"description":"The maximum number of results returned.","type":"integer","format":"int32","minimum":1,"default":10},"context_configuration":{"type":"object","description":"Configuration on the presentation of each document part in the result set. You can only use characters_before/after or sentences_before/after, but not both. If you specify both in the query, sentences_before/after takes precedence","properties":{"characters_before":{"description":"The number of characters that are shown before the matching document part. This is useful to show the context of the document part in the wider document. Ignored if `sentences_before` is set. Vectara will capture the full sentence that contains the captured characters, to not lose the meaning caused by a truncated word or sentence.","type":"integer","format":"int32"},"characters_after":{"description":"The number of characters that are shown after the matching document part. This is useful to show the context of the document part in the wider document. Ignored if `sentences_after` is set. Vectara will capture the full sentence that contains the captured characters, to not lose the meaning caused by a truncated word or sentence.","type":"integer","format":"int32"},"sentences_before":{"description":"The number of sentences that are shown before the matching document part. This is useful to show the context of the document part in the wider document.","type":"integer","format":"int32","default":0,"minimum":0,"example":2},"sentences_after":{"description":"The number of sentences that are shown after the matching document part. This is useful to show the context of the document part in the wider document.","type":"integer","format":"int32","default":0,"minimum":0,"example":2},"start_tag":{"description":"The tag that wraps the document part at the start. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the context before ends and the document part begins.","type":"string","example":""},"end_tag":{"description":"The tag that wraps the document part at the end. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the document part ends and the context after begins.","type":"string","example":""}},"example":{"sentences_before":2,"sentences_after":2,"start_tag":"","end_tag":""},"title":"ContextConfiguration"},"reranker":{"type":"object","description":"Rerank results of the search. Rerankers are very powerful tools to improve the order of search results. By default the search will use the most powerful reranker available to the customer's plan. To disable reranking, set the reranker `type` to `\"none\"`.","discriminator":{"propertyName":"type","mapping":{"customer_reranker":{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},"userfn":{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},"mmr":{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},"chain":{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},"none":{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}}},"oneOf":[{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}],"title":"SearchReranker"}},"example":{"limit":50},"title":"SearchParameters"}],"required":["corpora"],"title":"SearchCorporaParameters"},"generation":{"description":"The parameters to control generation.","type":"object","properties":{"enabled":{"description":"Whether generation is enabled for this query. This field is ignored if using chat.","type":"boolean","default":true},"generation_preset_name":{"description":"The preset values to use to feed the query results and other context to the model. \n\nA `generation_preset` is an object with a bundle of properties that specifies: \n* The `prompt_template` that is rendered and then sent to the LLM. \n* The LLM used. * `model_parameter`s such as temperature.\n\nAll of these properties except the model can be overridden by setting them in this object. Even when a `prompt_template` is set, the `generation_preset_name` is used to set the model used. See `model_parameters.model` if you want to set the model explicitly.\n\nIf `generation_preset_name` is not set, the Vectara platform will use the default model and prompt.'\n","type":"string","minLength":1,"example":"mockingbird-2.0"},"prompt_name":{"description":"Use `generation_preset_name` instead of `prompt_name`.","type":"string","minLength":1,"example":"mockingbird-2.0","deprecated":true},"max_used_search_results":{"description":"The maximum number of search results to be available to the prompt.","type":"integer","format":"int32","minimum":0,"default":5},"prompt_template":{"description":"Vectara manages both system and user roles and prompts for the generative LLM out of the box by default. However, users can override the `prompt_template` via this variable. The `prompt_template` is in the form of an Apache Velocity template. For more details on how to configure the `prompt_template`, see the [long-form documentation](https://docs.vectara.com/docs/prompts/vectara-prompt-engine).","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n"},"prompt_text":{"description":"This property is deprecated in favor of clearer naming. Use `prompt_template`. This property will be ignored if `prompt_template` is set.","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n","deprecated":true},"max_response_characters":{"description":"Controls the length of the generated output. This is a rough estimate and not a hard limit: the end output can be longer or shorter than this value. This is generally implemented by including the `max_response_characters` in the prompt, and the LLM's instruction following capability dictates how closely the generated output is limited.","type":"integer","format":"int32","example":300,"minimum":0},"response_language":{"description":"Languages that the Vectara platform supports.","type":"string","enum":["auto","eng","deu","fra","zho","kor","ara","rus","tha","nld","ita","por","spa","jpn","pol","tur","vie","ind","ces","ukr","ell","heb","fas","hin","urd","swe","ben","msa","ron"],"default":"auto","title":"Language"},"model_parameters":{"title":"ModelParameters","description":"The parameters for the model. WARNING: This is an experimental feature, and breakable at any point with virtually no notice. It is meant for experimentation to converge on optimal parameters that can then be set in the prompt definitions.","type":"object","properties":{"llm_name":{"description":"The model (e.g., `gpt-4`) to use for summarization. If specified, it will override the model behind `generation_preset_name`.","type":"string","example":"gpt4"},"max_tokens":{"description":"The maximum number of tokens to be returned by the model.","type":"integer","format":"int32","minimum":1},"temperature":{"description":"The sampling temperature to use. Higher values make the output more random, while lower values make it more focused and deterministic.","type":"number","format":"float"},"frequency_penalty":{"description":"Higher values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.","type":"number","format":"float"},"presence_penalty":{"description":"Higher values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.","type":"number","format":"float"}}},"citations":{"description":"Style the generator should use when making citations.","type":"object","properties":{"style":{"description":"The citation style that you want to use in the summary: \n* `numeric` - Citations formatted as simple numerals: \\[1\\], \\[2\\], etc.\n* `none` - Citations removed from text.\n* `html` - Citation formatted as a URL like `text_pattern`.\n* `markdown` - Formatted as `[text_pattern](url_pattern)`.\n","type":"string","enum":["none","numeric","html","markdown"]},"url_pattern":{"description":"The URL pattern if the citation_style is set to `html` or `markdown`. The pattern can access metadata attributes in the document or part. e.g. `https://my.doc/foo/{doc.id}/{part.id}` The default `url_pattern` is an empty string.","type":"string","example":"https://vectara.com/documents/{doc.id}"},"text_pattern":{"description":"The text pattern if the citation_style is set to `html` or `markdown`. This pattern sets the href for HTML or the text within `[]` in markdown, and defaults to N being the index of result if it is not set. The default citation style looks like `[N]()` for markdown. You can use metadata attributes in the `text_pattern`. For example, the pattern `{doc.title}` with citation style `markdown` would result in final citation output like `[Title]()` when the document's metadata includes `{\"title\":\"Title\"}`.","type":"string","example":"{doc.title}"}},"title":"CitationParameters"},"enable_factual_consistency_score":{"description":"Enable returning the factual consistency score with query results.","type":"boolean","default":true}},"title":"GenerationParameters"},"save_history":{"description":"Indicates whether to save the query to query history.","type":"boolean"}},"required":["search"],"title":"CorporaSearchQueryConfiguration"}},"required":["type","query_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineWebSearchToolConfiguration","description":"A web search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'web_search' for inline web search tool configurations.","default":"web_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the web search tool call such as limit etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query to execute.","type":"string","example":"latest AI developments 2024"},"limit":{"description":"Maximum number of results to return.","type":"integer","minimum":1,"example":10},"provider":{"description":"Search provider to use.","type":"string","enum":["tavily"],"example":"tavily"},"include_domains":{"description":"List of domains to specifically include in search results. When specified, results will ONLY come from these domains. Supports exact domains (e.g., \"github.com\"), subdomains (e.g., \"docs.github.com\"), and wildcard patterns (e.g., \"*.github.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["github.com","docs.github.com","*.stackoverflow.com"]},"exclude_domains":{"description":"List of domains to specifically exclude from search results. Supports exact domains (e.g., \"spam.com\"), subdomains (e.g., \"bad.spam.com\"), and wildcard patterns (e.g., \"*.spam.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["spam.com","unreliable-source.com"]}},"additionalProperties":false,"title":"WebSearchToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineLambdaToolConfiguration","description":"A lambda tool configuration defined inline in the agent for executing user-defined functions.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'lambda' for inline lambda tool configurations.","default":"lambda"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments that will be passed to the lambda function. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","additionalProperties":true,"example":{"custom_param":"value"}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineStructuredIndexingToolConfiguration","description":"A structured indexing tool configuration defined inline in the agent for indexing into the Vectara platform.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'structured_indexing' for inline structured indexing tool configurations.","default":"structured_indexing"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the structured indexing tool call such as corpus_key etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"corpus_key":{"description":"The key identifying the target corpus for document indexing. If not provided, will be filled in by the LLM.","type":"string","example":"my-knowledge-base"},"document_id":{"description":"The unique identifier for the document within the corpus, preferably human readable IDs.","type":"string","example":"annual_report_2024"},"title":{"description":"The title of the document being indexed.","type":"string","example":"2024 Annual ESG Report"},"description":{"description":"A brief description or summary of the document content.","type":"string","example":"Comprehensive environmental, social, and governance report"},"metadata":{"description":"The metadata key-value pairs to associate with the document. If present, this gets merged with existing artifact metadata.","type":"object","additionalProperties":true,"example":{"doc_type":"annual_report","year":2024,"department":"sustainability"}},"document":{"description":"The structured document to index with full hierarchical content.","type":"object","additionalProperties":true,"example":{"id":"annual_report_2024","type":"structured","title":"2024 Annual ESG Report"}}},"additionalProperties":false,"title":"StructuredIndexingToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineSubAgentToolConfiguration","description":"A sub-agent tool configuration defined inline in the agent for invoking specialized sub-agents.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'sub_agent' for inline sub-agent tool configurations.","default":"sub_agent"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the sub-agent tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"message":{"description":"The detailed task instructions for the sub-agent to perform autonomously.","type":"string","example":"Review the code changes in pull request \\#123 for security issues"},"session_tti_minutes":{"description":"Time to idle in minutes before the session expires.","type":"integer","format":"int64","minimum":1,"example":60}},"additionalProperties":false,"title":"SubAgentToolParameters"},"sub_agent_configuration":{"description":"User-configurable settings for the sub-agent tool. These parameters are never exposed to the agent.","type":"object","properties":{"agent_key":{"description":"A unique key that identifies an agent.","type":"string","pattern":"[0-9a-zA-Z_-]+$","minLength":1,"maxLength":50,"example":"customer_support","title":"AgentKey"}},"required":["agent_key"],"title":"SubAgentConfiguration"}},"required":["type","sub_agent_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineArtifactReadToolConfiguration","description":"An artifact read tool configuration defined inline in the agent for reading artifacts from the session workspace.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_read' for inline artifact read tool configurations.","default":"artifact_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to read.","type":"string","example":"art_abc123"},"encoding":{"description":"The encoding format for the content.","type":"string","enum":["raw","base64"],"example":"raw"},"start_line":{"description":"Optional starting line number (1-indexed).","type":"integer","format":"int32","example":100},"end_line":{"description":"Optional ending line number (1-indexed, inclusive).","type":"integer","format":"int32","example":200}},"additionalProperties":false,"title":"ArtifactReadToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineArtifactGrepToolConfiguration","description":"An artifact grep tool configuration defined inline in the agent for searching through artifact content.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_grep' for inline artifact grep tool configurations.","default":"artifact_grep"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact grep tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to search.","type":"string","example":"art_abc123"},"pattern":{"description":"The pattern to search for (supports grep regex).","type":"string","example":"error|exception"},"grep_options":{"description":"Optional grep command options.","type":"array","items":{"type":"string"},"example":["-i","-n"]}},"additionalProperties":false,"title":"ArtifactGrepToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineImageReadToolConfiguration","description":"An image read tool configuration defined inline in the agent for loading images into the conversation context.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'image_read' for inline image read tool configurations.","default":"image_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the image read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the image artifact to view.","type":"string","pattern":"^art_[a-z0-9_-]+$","example":"art_photo_a3f2"},"detail":{"description":"Detail level for image processing.","type":"string","enum":["auto","low","high"],"default":"auto","example":"auto"}},"additionalProperties":false,"title":"ImageReadToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineDocumentConversionToolConfiguration","description":"A document conversion tool configuration defined inline in the agent for converting document artifacts to various formats.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'document_conversion' for inline document conversion tool configurations.","default":"document_conversion"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the document conversion tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to convert.","type":"string","example":"art_abc123"},"output_format":{"description":"Output format for the converted document.","type":"string","enum":["markdown","structured_document"],"example":"markdown"},"description":{"description":"Optional description for the converted artifact.","type":"string","example":"PDF converted to markdown"}},"additionalProperties":false,"title":"DocumentConversionToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]}],"example":[{"type":"web_search","argument_override":{"limit":5,"include_domains":["github.com","stackoverflow.com"],"exclude_domains":["spam.com"]}}]},"example":{"customer_search":{"type":"corpora_search","argument_override":{"query":"customer support documentation"}}}},"model":{"title":"AgentModel","description":"Configuration for the model used in this step, including the model name and arbitrary parameters.","type":"object","properties":{"name":{"description":"The name of the model to use for this step.","type":"string","example":"gpt-4"},"parameters":{"description":"Arbitrary model-specific parameters that can be passed to the model.","type":"object","additionalProperties":true,"example":{"temperature":0.7,"max_tokens":1000,"top_p":0.9}},"retry_configuration":{"description":"Optional retry configuration for handling transient failures. When not provided, no retry is performed.","title":"RetryConfiguration","type":"object","properties":{"enabled":{"description":"Whether retry is enabled. Enabled by default to provide resilience against transient failures.","type":"boolean","default":true,"example":true},"max_retries":{"description":"Maximum number of retry attempts after initial failure.","type":"integer","minimum":0,"maximum":10,"default":3,"example":3},"initial_backoff_ms":{"description":"Initial backoff time in milliseconds before first retry.","type":"integer","minimum":100,"maximum":60000,"default":1000,"example":1000},"max_backoff_ms":{"description":"Maximum backoff time in milliseconds between retries.","type":"integer","minimum":1000,"maximum":300000,"default":30000,"example":30000},"backoff_factor":{"description":"Multiplication factor for exponential backoff between retries.","type":"number","format":"double","minimum":1,"maximum":10,"default":2,"example":2}}}},"required":["name"]},"first_step":{"title":"AgentStep","description":"A step in an agent's execution flow that defines how the agent processes and responds to input.","discriminator":{"propertyName":"type","mapping":{"conversational":{"title":"ConversationalAgentStep","description":"A step that receives instructions and responds through dialogue. This is a step that gets instructions and engages in conversation with users based on those instructions. This only type step supported, with no way to go next steps. A conversational step responds to an input following its instructions and uses the agent tools. The first response from the model will terminate processing the input.","type":"object","properties":{"type":{"description":"The type of step, which is always 'conversational' for this step type.","type":"string","default":"conversational","example":"conversational"},"instructions":{"description":"List of instructions that guide the agent's behavior in this step. If no instructions are given, the agent is instructed to be helpful and use tools.","type":"array","items":{"title":"AgentStepInstruction","description":"An instruction that can be used in an agent step, either by reference or defined inline.","discriminator":{"propertyName":"type","mapping":{"reference":{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},"inline":{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Request object for creating a new initial instruction.","type":"object","properties":{"type":{"description":"The type of instruction to create.","type":"string","default":"initial","example":"initial"},"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["type","name","template"],"x-vectaraParents":["CreateInstructionRequest"],"title":"CreateInitialInstructionRequest"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}}},"oneOf":[{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Request object for creating a new initial instruction.","type":"object","properties":{"type":{"description":"The type of instruction to create.","type":"string","default":"initial","example":"initial"},"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["type","name","template"],"x-vectaraParents":["CreateInstructionRequest"],"title":"CreateInitialInstructionRequest"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}],"example":[{"type":"reference","name":"Customer Support Initial Instruction","version":1},{"type":"inline","name":"Temporary On-the-fly Guideline","description":"A special instruction for this specific step only.","template_type":"velocity","template":"Please prioritize issues tagged with 'urgent' for the next hour."}]}},"output_parser":{"title":"AgentOutputParser","description":"Configuration for how the agent's output should be parsed and formatted.\n\nThe output parser determines how the agent's responses are processed before being returned to the user.\n","discriminator":{"propertyName":"type","mapping":{"default":{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]}}},"oneOf":[{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]}]}},"required":["type","instructions","output_parser"],"x-vectaraParents":["AgentStep"]}}},"oneOf":[{"title":"ConversationalAgentStep","description":"A step that receives instructions and responds through dialogue. This is a step that gets instructions and engages in conversation with users based on those instructions. This only type step supported, with no way to go next steps. A conversational step responds to an input following its instructions and uses the agent tools. The first response from the model will terminate processing the input.","type":"object","properties":{"type":{"description":"The type of step, which is always 'conversational' for this step type.","type":"string","default":"conversational","example":"conversational"},"instructions":{"description":"List of instructions that guide the agent's behavior in this step. If no instructions are given, the agent is instructed to be helpful and use tools.","type":"array","items":{"title":"AgentStepInstruction","description":"An instruction that can be used in an agent step, either by reference or defined inline.","discriminator":{"propertyName":"type","mapping":{"reference":{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},"inline":{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Request object for creating a new initial instruction.","type":"object","properties":{"type":{"description":"The type of instruction to create.","type":"string","default":"initial","example":"initial"},"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["type","name","template"],"x-vectaraParents":["CreateInstructionRequest"],"title":"CreateInitialInstructionRequest"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}}},"oneOf":[{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Request object for creating a new initial instruction.","type":"object","properties":{"type":{"description":"The type of instruction to create.","type":"string","default":"initial","example":"initial"},"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["type","name","template"],"x-vectaraParents":["CreateInstructionRequest"],"title":"CreateInitialInstructionRequest"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}],"example":[{"type":"reference","name":"Customer Support Initial Instruction","version":1},{"type":"inline","name":"Temporary On-the-fly Guideline","description":"A special instruction for this specific step only.","template_type":"velocity","template":"Please prioritize issues tagged with 'urgent' for the next hour."}]}},"output_parser":{"title":"AgentOutputParser","description":"Configuration for how the agent's output should be parsed and formatted.\n\nThe output parser determines how the agent's responses are processed before being returned to the user.\n","discriminator":{"propertyName":"type","mapping":{"default":{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]}}},"oneOf":[{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]}]}},"required":["type","instructions","output_parser"],"x-vectaraParents":["AgentStep"]}]},"metadata":{"description":"Arbitrary metadata associated with the agent for customization and configuration.","type":"object","additionalProperties":true,"default":{},"example":{"department":"customer_service","version":"1.0.0","owner":"support-team"}},"enabled":{"description":"Whether the agent should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["name","tool_configurations","model","first_step"],"title":"CreateAgentRequest"}}}}}
+ body={{"required":true,"content":{"application/json":{"schema":{"description":"Request object for creating a new agent.","type":"object","properties":{"key":{"description":"A user provided key that uniquely identifies this agent. If not provided, one will be auto-generated based on the agent name.","type":"string","pattern":"[0-9a-zA-Z_-]+$","minLength":1,"maxLength":50,"example":"customer_support","title":"AgentKey"},"name":{"description":"The human-readable name of an agent.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Agent","title":"AgentName"},"description":{"description":"A detailed description of the agent's purpose and capabilities.","type":"string","example":"An AI agent specialized in handling customer support inquiries using company documentation and support tools."},"tool_configurations":{"description":"A map of tool configurations available to the agent. The key is the name of the tool configuration and the value is the AgentToolConfiguration.","type":"object","additionalProperties":{"nullable":true,"title":"AgentToolConfiguration","description":"A tool configuration that can be used by an agent, defined inline with a specific configuration type.","discriminator":{"propertyName":"type","mapping":{"dynamic_vectara":{"title":"InlineDynamicVectaraToolConfiguration","description":"An inline configuration for built-in Vectara tools that have implementations within the platform but do not have a dedicated configuration type schema. Use the List Tools endpoint to discover available tools and obtain the `tool_id` required for this configuration.\n","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'dynamic_vectara' for generic Vectara tool configurations.","default":"dynamic_vectara"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for tool calls. The key specifies the location in the tool arguments to overide, and the value specifies what to override with. The LLM will not be able to change the parameters, nor know those values exist within the tool.\n\nThe values can also be dynamic references to context values using $ref with dot notation path syntax:\n- Static value: \"fixed_value\" or 123\n- Dynamic reference: `{\"$ref\": \"session.metadata.field_name\"}`\n\nReferences are resolved at runtime from context:\n- session.metadata.* - Access session metadata fields\n- agent.metadata.* - Access agent metadata fields\n\nExample:\n `{\"query\": {\"$ref\": \".session.metadata.query\"}}`\n\nIf you want to have a real value `\"$ref\"` use `\"$$ref\"`, that is you can escape the first $ by using $$.","type":"object","additionalProperties":true,"example":{"custom_param":"value","limit":10}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},"mcp":{"title":"InlineMcpToolConfiguration","description":"An MCP tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'mcp' for inline MCP tool configurations.","default":"mcp"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for tool calls. The key specifies the location in the tool arguments to overide, and the value specifies what to override with. The LLM will not be able to change the parameters, nor know those values exist within the tool.\n\nThe values can also be dynamic references to context values using $ref with dot notation path syntax:\n- Static value: \"fixed_value\" or 123\n- Dynamic reference: `{\"$ref\": \"session.metadata.field_name\"}`\n\nReferences are resolved at runtime from context:\n- session.metadata.* - Access session metadata fields\n- agent.metadata.* - Access agent metadata fields\n\nExample:\n `{\"query\": {\"$ref\": \".session.metadata.query\"}}`\n\nIf you want to have a real value `\"$ref\"` use `\"$$ref\"`, that is you can escape the first $ by using $$.","type":"object","additionalProperties":true,"example":{"custom_param":"value","limit":10}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},"corpora_search":{"title":"InlineCorporaSearchToolConfiguration","description":"A corpora search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'corpora_search' for inline corpora search tool configurations.","default":"corpora_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the corpus search call such as the query. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query string, which is the question the user is asking. If not provided, will be filled in by the agent.","type":"string","maxLength":5000,"example":"Am I allowed to bring pets to work?"}},"additionalProperties":false,"title":"CorporaSearchToolParameters"},"query_configuration":{"description":"User-configurable settings for the corpus search that are not exposed to the LLM. Supports dynamic references for runtime resolution from session context.","title":"AgentCorporaSearchQueryConfiguration","type":"object","properties":{"search":{"title":"AgentSearchCorporaParameters","description":"Agent-specific search parameters that support eager references.","type":"object","properties":{"corpora":{"description":"The corpora to search, with support for eager references.","type":"array","items":{"title":"AgentKeyedSearchCorpus","description":"Agent-specific keyed search corpus that supports eager references for corpus_key and metadata_filter.","type":"object","properties":{"corpus_key":{"description":"The corpus to search. Can be either:\n- A static string: \"my-corpus\"\n- An EagerReference object: {\"$ref\": \"session.metadata.corpus\"}\n\nWhen an EagerReference is provided, the $ref path is resolved from the session context\nat the start of each turn, before LLM processing begins.\n","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"custom_dimensions":{"description":"The custom dimensions as additional weights.","type":"object","additionalProperties":{"type":"number","format":"double","nullable":false},"title":"CustomDimensions"},"metadata_filter":{"description":"The filter to narrow search results. Can be either:\n- A static string: \"doc.department = 'engineering'\"\n- An EagerReference object: {\"$ref\": \"session.metadata.filters.user\"}\n\nWhen an EagerReference is provided, the $ref path is resolved from the session context\nat the start of each turn, before LLM processing begins.\n","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"lexical_interpolation":{"description":"How much to weigh lexical scores compared to the embedding score.","type":"number","format":"float","minimum":0,"maximum":1},"semantics":{"description":"Indicates whether to consider a query against this corpus as a query or a response.","type":"string","enum":["default","query","response"],"default":"default","title":"SearchSemantics"},"query":{"description":"Query override for this specific corpus.","type":"string","maxLength":5000}},"required":["corpus_key"]},"minItems":1},"offset":{"description":"Number of results to skip for pagination.","type":"integer","format":"int32","minimum":0,"default":0},"limit":{"description":"Maximum number of results to return.","type":"integer","format":"int32","minimum":1,"default":10},"context_configuration":{"type":"object","description":"Configuration on the presentation of each document part in the result set. You can only use characters_before/after or sentences_before/after, but not both. If you specify both in the query, sentences_before/after takes precedence","properties":{"characters_before":{"description":"The number of characters that are shown before the matching document part. This is useful to show the context of the document part in the wider document. Ignored if `sentences_before` is set. Vectara will capture the full sentence that contains the captured characters, to not lose the meaning caused by a truncated word or sentence.","type":"integer","format":"int32"},"characters_after":{"description":"The number of characters that are shown after the matching document part. This is useful to show the context of the document part in the wider document. Ignored if `sentences_after` is set. Vectara will capture the full sentence that contains the captured characters, to not lose the meaning caused by a truncated word or sentence.","type":"integer","format":"int32"},"sentences_before":{"description":"The number of sentences that are shown before the matching document part. This is useful to show the context of the document part in the wider document.","type":"integer","format":"int32","default":0,"minimum":0,"example":2},"sentences_after":{"description":"The number of sentences that are shown after the matching document part. This is useful to show the context of the document part in the wider document.","type":"integer","format":"int32","default":0,"minimum":0,"example":2},"start_tag":{"description":"The tag that wraps the document part at the start. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the context before ends and the document part begins.","type":"string","example":""},"end_tag":{"description":"The tag that wraps the document part at the end. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the document part ends and the context after begins.","type":"string","example":""}},"example":{"sentences_before":2,"sentences_after":2,"start_tag":"","end_tag":""},"title":"ContextConfiguration"},"reranker":{"type":"object","description":"Rerank results of the search. Rerankers are very powerful tools to improve the order of search results. By default the search will use the most powerful reranker available to the customer's plan. To disable reranking, set the reranker `type` to `\"none\"`.","discriminator":{"propertyName":"type","mapping":{"customer_reranker":{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},"userfn":{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},"mmr":{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},"chain":{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},"none":{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}}},"oneOf":[{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}],"title":"SearchReranker"}},"required":["corpora"]},"generation":{"description":"The parameters to control generation.","type":"object","properties":{"enabled":{"description":"Whether generation is enabled for this query. This field is ignored if using chat.","type":"boolean","default":true},"generation_preset_name":{"description":"The preset values to use to feed the query results and other context to the model. \n\nA `generation_preset` is an object with a bundle of properties that specifies: \n* The `prompt_template` that is rendered and then sent to the LLM. \n* The LLM used. * `model_parameter`s such as temperature.\n\nAll of these properties except the model can be overridden by setting them in this object. Even when a `prompt_template` is set, the `generation_preset_name` is used to set the model used. See `model_parameters.model` if you want to set the model explicitly.\n\nIf `generation_preset_name` is not set, the Vectara platform will use the default model and prompt.'\n","type":"string","minLength":1,"example":"mockingbird-2.0"},"prompt_name":{"description":"Use `generation_preset_name` instead of `prompt_name`.","type":"string","minLength":1,"example":"mockingbird-2.0","deprecated":true},"max_used_search_results":{"description":"The maximum number of search results to be available to the prompt.","type":"integer","format":"int32","minimum":0,"default":5},"prompt_template":{"description":"Vectara manages both system and user roles and prompts for the generative LLM out of the box by default. However, users can override the `prompt_template` via this variable. The `prompt_template` is in the form of an Apache Velocity template. For more details on how to configure the `prompt_template`, see the [long-form documentation](https://docs.vectara.com/docs/prompts/vectara-prompt-engine).","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n"},"prompt_text":{"description":"This property is deprecated in favor of clearer naming. Use `prompt_template`. This property will be ignored if `prompt_template` is set.","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n","deprecated":true},"max_response_characters":{"description":"Controls the length of the generated output. This is a rough estimate and not a hard limit: the end output can be longer or shorter than this value. This is generally implemented by including the `max_response_characters` in the prompt, and the LLM's instruction following capability dictates how closely the generated output is limited.","type":"integer","format":"int32","example":300,"minimum":0},"response_language":{"description":"Languages that the Vectara platform supports.","type":"string","enum":["auto","eng","deu","fra","zho","kor","ara","rus","tha","nld","ita","por","spa","jpn","pol","tur","vie","ind","ces","ukr","ell","heb","fas","hin","urd","swe","ben","msa","ron"],"default":"auto","title":"Language"},"model_parameters":{"title":"ModelParameters","description":"The parameters for the model. WARNING: This is an experimental feature, and breakable at any point with virtually no notice. It is meant for experimentation to converge on optimal parameters that can then be set in the prompt definitions.","type":"object","properties":{"llm_name":{"description":"The model (e.g., `gpt-4`) to use for summarization. If specified, it will override the model behind `generation_preset_name`.","type":"string","example":"gpt4"},"max_tokens":{"description":"The maximum number of tokens to be returned by the model.","type":"integer","format":"int32","minimum":1},"temperature":{"description":"The sampling temperature to use. Higher values make the output more random, while lower values make it more focused and deterministic.","type":"number","format":"float"},"frequency_penalty":{"description":"Higher values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.","type":"number","format":"float"},"presence_penalty":{"description":"Higher values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.","type":"number","format":"float"}}},"citations":{"description":"Style the generator should use when making citations.","type":"object","properties":{"style":{"description":"The citation style that you want to use in the summary: \n* `numeric` - Citations formatted as simple numerals: \\[1\\], \\[2\\], etc.\n* `none` - Citations removed from text.\n* `html` - Citation formatted as a URL like `text_pattern`.\n* `markdown` - Formatted as `[text_pattern](url_pattern)`.\n","type":"string","enum":["none","numeric","html","markdown"]},"url_pattern":{"description":"The URL pattern if the citation_style is set to `html` or `markdown`. The pattern can access metadata attributes in the document or part. e.g. `https://my.doc/foo/{doc.id}/{part.id}` The default `url_pattern` is an empty string.","type":"string","example":"https://vectara.com/documents/{doc.id}"},"text_pattern":{"description":"The text pattern if the citation_style is set to `html` or `markdown`. This pattern sets the href for HTML or the text within `[]` in markdown, and defaults to N being the index of result if it is not set. The default citation style looks like `[N]()` for markdown. You can use metadata attributes in the `text_pattern`. For example, the pattern `{doc.title}` with citation style `markdown` would result in final citation output like `[Title]()` when the document's metadata includes `{\"title\":\"Title\"}`.","type":"string","example":"{doc.title}"}},"title":"CitationParameters"},"enable_factual_consistency_score":{"description":"Enable returning the factual consistency score with query results.","type":"boolean","default":true}},"title":"GenerationParameters"},"save_history":{"description":"Whether to save the query to history.","type":"boolean"}},"required":["search"]}},"required":["type","query_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},"web_search":{"title":"InlineWebSearchToolConfiguration","description":"A web search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'web_search' for inline web search tool configurations.","default":"web_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the web search tool call such as limit etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query to execute.","type":"string","example":"latest AI developments 2024"},"limit":{"description":"Maximum number of results to return.","type":"integer","minimum":1,"maximum":20,"example":10},"provider":{"description":"Search provider to use.","type":"string","enum":["tavily"],"example":"tavily"},"include_domains":{"description":"List of domains to specifically include in search results. When specified, results will ONLY come from these domains. Supports exact domains (e.g., \"github.com\"), subdomains (e.g., \"docs.github.com\"), and wildcard patterns (e.g., \"*.github.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["github.com","docs.github.com","*.stackoverflow.com"]},"exclude_domains":{"description":"List of domains to specifically exclude from search results. Supports exact domains (e.g., \"spam.com\"), subdomains (e.g., \"bad.spam.com\"), and wildcard patterns (e.g., \"*.spam.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["spam.com","unreliable-source.com"]}},"additionalProperties":false,"title":"WebSearchToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"web_get":{"title":"InlineWebGetToolConfiguration","description":"A web get tool configuration defined inline in the agent for fetching content from URLs.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'web_get' for inline web get tool configurations.","default":"web_get"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the web get tool call. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"url":{"description":"The URL to fetch content from.","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"method":{"description":"HTTP method to use.","type":"string","enum":["GET","POST","PUT","DELETE","HEAD"]},"headers":{"description":"HTTP headers to include in the request.","oneOf":[{"type":"object","additionalProperties":{"type":"string"}},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"body":{"description":"Request body for POST/PUT requests.","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"follow_redirects":{"description":"Whether to follow HTTP redirects.","oneOf":[{"type":"boolean"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"timeout_seconds":{"description":"Request timeout in seconds.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"head_lines":{"description":"Number of lines from start to include in response.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"tail_lines":{"description":"Number of lines from end to include in response.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"ssl_verify":{"description":"Whether to verify SSL certificates.","oneOf":[{"type":"boolean"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"max_content_bytes":{"description":"Maximum response size in bytes before truncation.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]}},"additionalProperties":false,"title":"WebGetToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"lambda":{"title":"InlineLambdaToolConfiguration","description":"A lambda tool configuration defined inline in the agent for executing user-defined functions.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'lambda' for inline lambda tool configurations.","default":"lambda"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments that will be passed to the lambda function. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","additionalProperties":true,"example":{"custom_param":"value"}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},"structured_indexing":{"title":"InlineStructuredIndexingToolConfiguration","description":"A structured indexing tool configuration defined inline in the agent for indexing into the Vectara platform.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'structured_indexing' for inline structured indexing tool configurations.","default":"structured_indexing"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the structured indexing tool call such as corpus_key etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"corpus_key":{"description":"The key identifying the target corpus for document indexing. If not provided, will be filled in by the agent.","type":"string","example":"my-knowledge-base"},"document_id":{"description":"The unique identifier for the document within the corpus, preferably human readable IDs.","type":"string","example":"annual_report_2024"},"title":{"description":"The title of the document being indexed.","type":"string","example":"2024 Annual ESG Report"},"description":{"description":"A brief description or summary of the document content.","type":"string","example":"Comprehensive environmental, social, and governance report"},"metadata":{"description":"The metadata key-value pairs to associate with the document. If present, this gets merged with existing artifact metadata.","type":"object","additionalProperties":true,"example":{"doc_type":"annual_report","year":2024,"department":"sustainability"}},"document":{"description":"The structured document to index with full hierarchical content.","type":"object","additionalProperties":true,"example":{"id":"annual_report_2024","type":"structured","title":"2024 Annual ESG Report"}}},"additionalProperties":false,"title":"StructuredIndexingToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"sub_agent":{"title":"InlineSubAgentToolConfiguration","description":"A sub-agent tool configuration defined inline in the agent for invoking specialized sub-agents.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'sub_agent' for inline sub-agent tool configurations.","default":"sub_agent"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the sub-agent tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"message":{"description":"The detailed task instructions for the sub-agent to perform autonomously.","type":"string","example":"Review the code changes in pull request \\#123 for security issues"},"session_tti_minutes":{"description":"Time to idle in minutes before the session expires.","type":"integer","format":"int64","minimum":1,"example":60}},"additionalProperties":false,"title":"SubAgentToolParameters"},"sub_agent_configuration":{"description":"User-configurable settings for the sub-agent tool. These parameters are never exposed to the agent.","type":"object","properties":{"agent_key":{"description":"A unique key that identifies an agent.","type":"string","pattern":"[0-9a-zA-Z_-]+$","minLength":1,"maxLength":50,"example":"customer_support","title":"AgentKey"},"session_mode":{"description":"Controls session behavior for sub-agent invocations:\n- llm_controlled: LLM decides whether to create new or resume existing session\n- persistent: Always reuse the same session (created on first invocation)\n- ephemeral: Always create a new session on each invocation\n","type":"string","enum":["llm_controlled","persistent","ephemeral"],"default":"llm_controlled","example":"llm_controlled","title":"SubAgentSessionMode"},"session_metadata":{"description":"Optional metadata to associate with the sub-agent session. Can contain any key-value pairs.","type":"object","additionalProperties":true,"example":{"source":"parent_agent","task_type":"code_review"}}},"required":["agent_key"],"title":"SubAgentConfiguration"}},"required":["type","sub_agent_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},"artifact_read":{"title":"InlineArtifactReadToolConfiguration","description":"An artifact read tool configuration defined inline in the agent for reading artifacts from the session workspace.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_read' for inline artifact read tool configurations.","default":"artifact_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to read.","type":"string","example":"art_abc123"},"encoding":{"description":"The encoding format for the content.","type":"string","enum":["raw","base64"],"example":"raw"},"start_line":{"description":"Optional starting line number (1-indexed).","type":"integer","format":"int32","example":100},"end_line":{"description":"Optional ending line number (1-indexed, inclusive).","type":"integer","format":"int32","example":200}},"additionalProperties":false,"title":"ArtifactReadToolParameters"},"tool_configuration":{"description":"User-configurable settings for the artifact read tool.","type":"object","properties":{"max_size_bytes":{"description":"Maximum file size in bytes for full reads without line ranges. Defaults to 256KB.","type":"integer","format":"int64","minimum":1,"maximum":10485760,"default":262144},"max_lines":{"description":"Maximum number of lines for range-based reads. Defaults to 200.","type":"integer","format":"int32","minimum":1,"maximum":10000,"default":200}},"title":"ArtifactReadConfiguration"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"artifact_grep":{"title":"InlineArtifactGrepToolConfiguration","description":"An artifact grep tool configuration defined inline in the agent for searching through artifact content.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_grep' for inline artifact grep tool configurations.","default":"artifact_grep"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact grep tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to search.","type":"string","example":"art_abc123"},"pattern":{"description":"The pattern to search for (supports grep regex).","type":"string","example":"error|exception"},"grep_options":{"description":"Optional grep command options.","type":"array","items":{"type":"string"},"example":["-i","-n"]}},"additionalProperties":false,"title":"ArtifactGrepToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"image_read":{"title":"InlineImageReadToolConfiguration","description":"An image read tool configuration defined inline in the agent for loading images into the conversation context.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'image_read' for inline image read tool configurations.","default":"image_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the image read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the image artifact to view.","type":"string","pattern":"^art_[a-z0-9_-]+$","example":"art_photo_a3f2"},"detail":{"description":"Detail level for image processing.","type":"string","enum":["auto","low","high"],"default":"auto","example":"auto"}},"additionalProperties":false,"title":"ImageReadToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"document_conversion":{"title":"InlineDocumentConversionToolConfiguration","description":"A document conversion tool configuration defined inline in the agent for converting document artifacts to various formats.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'document_conversion' for inline document conversion tool configurations.","default":"document_conversion"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the document conversion tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to convert.","type":"string","example":"art_abc123"},"output_format":{"description":"Output format for the converted document.","type":"string","enum":["markdown","structured_document"],"example":"markdown"},"description":{"description":"Optional description for the converted artifact.","type":"string","example":"PDF converted to markdown"}},"additionalProperties":false,"title":"DocumentConversionToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]}}},"oneOf":[{"title":"InlineDynamicVectaraToolConfiguration","description":"An inline configuration for built-in Vectara tools that have implementations within the platform but do not have a dedicated configuration type schema. Use the List Tools endpoint to discover available tools and obtain the `tool_id` required for this configuration.\n","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'dynamic_vectara' for generic Vectara tool configurations.","default":"dynamic_vectara"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for tool calls. The key specifies the location in the tool arguments to overide, and the value specifies what to override with. The LLM will not be able to change the parameters, nor know those values exist within the tool.\n\nThe values can also be dynamic references to context values using $ref with dot notation path syntax:\n- Static value: \"fixed_value\" or 123\n- Dynamic reference: `{\"$ref\": \"session.metadata.field_name\"}`\n\nReferences are resolved at runtime from context:\n- session.metadata.* - Access session metadata fields\n- agent.metadata.* - Access agent metadata fields\n\nExample:\n `{\"query\": {\"$ref\": \".session.metadata.query\"}}`\n\nIf you want to have a real value `\"$ref\"` use `\"$$ref\"`, that is you can escape the first $ by using $$.","type":"object","additionalProperties":true,"example":{"custom_param":"value","limit":10}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineMcpToolConfiguration","description":"An MCP tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'mcp' for inline MCP tool configurations.","default":"mcp"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for tool calls. The key specifies the location in the tool arguments to overide, and the value specifies what to override with. The LLM will not be able to change the parameters, nor know those values exist within the tool.\n\nThe values can also be dynamic references to context values using $ref with dot notation path syntax:\n- Static value: \"fixed_value\" or 123\n- Dynamic reference: `{\"$ref\": \"session.metadata.field_name\"}`\n\nReferences are resolved at runtime from context:\n- session.metadata.* - Access session metadata fields\n- agent.metadata.* - Access agent metadata fields\n\nExample:\n `{\"query\": {\"$ref\": \".session.metadata.query\"}}`\n\nIf you want to have a real value `\"$ref\"` use `\"$$ref\"`, that is you can escape the first $ by using $$.","type":"object","additionalProperties":true,"example":{"custom_param":"value","limit":10}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineCorporaSearchToolConfiguration","description":"A corpora search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'corpora_search' for inline corpora search tool configurations.","default":"corpora_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the corpus search call such as the query. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query string, which is the question the user is asking. If not provided, will be filled in by the agent.","type":"string","maxLength":5000,"example":"Am I allowed to bring pets to work?"}},"additionalProperties":false,"title":"CorporaSearchToolParameters"},"query_configuration":{"description":"User-configurable settings for the corpus search that are not exposed to the LLM. Supports dynamic references for runtime resolution from session context.","title":"AgentCorporaSearchQueryConfiguration","type":"object","properties":{"search":{"title":"AgentSearchCorporaParameters","description":"Agent-specific search parameters that support eager references.","type":"object","properties":{"corpora":{"description":"The corpora to search, with support for eager references.","type":"array","items":{"title":"AgentKeyedSearchCorpus","description":"Agent-specific keyed search corpus that supports eager references for corpus_key and metadata_filter.","type":"object","properties":{"corpus_key":{"description":"The corpus to search. Can be either:\n- A static string: \"my-corpus\"\n- An EagerReference object: {\"$ref\": \"session.metadata.corpus\"}\n\nWhen an EagerReference is provided, the $ref path is resolved from the session context\nat the start of each turn, before LLM processing begins.\n","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"custom_dimensions":{"description":"The custom dimensions as additional weights.","type":"object","additionalProperties":{"type":"number","format":"double","nullable":false},"title":"CustomDimensions"},"metadata_filter":{"description":"The filter to narrow search results. Can be either:\n- A static string: \"doc.department = 'engineering'\"\n- An EagerReference object: {\"$ref\": \"session.metadata.filters.user\"}\n\nWhen an EagerReference is provided, the $ref path is resolved from the session context\nat the start of each turn, before LLM processing begins.\n","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"lexical_interpolation":{"description":"How much to weigh lexical scores compared to the embedding score.","type":"number","format":"float","minimum":0,"maximum":1},"semantics":{"description":"Indicates whether to consider a query against this corpus as a query or a response.","type":"string","enum":["default","query","response"],"default":"default","title":"SearchSemantics"},"query":{"description":"Query override for this specific corpus.","type":"string","maxLength":5000}},"required":["corpus_key"]},"minItems":1},"offset":{"description":"Number of results to skip for pagination.","type":"integer","format":"int32","minimum":0,"default":0},"limit":{"description":"Maximum number of results to return.","type":"integer","format":"int32","minimum":1,"default":10},"context_configuration":{"type":"object","description":"Configuration on the presentation of each document part in the result set. You can only use characters_before/after or sentences_before/after, but not both. If you specify both in the query, sentences_before/after takes precedence","properties":{"characters_before":{"description":"The number of characters that are shown before the matching document part. This is useful to show the context of the document part in the wider document. Ignored if `sentences_before` is set. Vectara will capture the full sentence that contains the captured characters, to not lose the meaning caused by a truncated word or sentence.","type":"integer","format":"int32"},"characters_after":{"description":"The number of characters that are shown after the matching document part. This is useful to show the context of the document part in the wider document. Ignored if `sentences_after` is set. Vectara will capture the full sentence that contains the captured characters, to not lose the meaning caused by a truncated word or sentence.","type":"integer","format":"int32"},"sentences_before":{"description":"The number of sentences that are shown before the matching document part. This is useful to show the context of the document part in the wider document.","type":"integer","format":"int32","default":0,"minimum":0,"example":2},"sentences_after":{"description":"The number of sentences that are shown after the matching document part. This is useful to show the context of the document part in the wider document.","type":"integer","format":"int32","default":0,"minimum":0,"example":2},"start_tag":{"description":"The tag that wraps the document part at the start. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the context before ends and the document part begins.","type":"string","example":""},"end_tag":{"description":"The tag that wraps the document part at the end. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the document part ends and the context after begins.","type":"string","example":""}},"example":{"sentences_before":2,"sentences_after":2,"start_tag":"","end_tag":""},"title":"ContextConfiguration"},"reranker":{"type":"object","description":"Rerank results of the search. Rerankers are very powerful tools to improve the order of search results. By default the search will use the most powerful reranker available to the customer's plan. To disable reranking, set the reranker `type` to `\"none\"`.","discriminator":{"propertyName":"type","mapping":{"customer_reranker":{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},"userfn":{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},"mmr":{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},"chain":{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},"none":{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}}},"oneOf":[{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}],"title":"SearchReranker"}},"required":["corpora"]},"generation":{"description":"The parameters to control generation.","type":"object","properties":{"enabled":{"description":"Whether generation is enabled for this query. This field is ignored if using chat.","type":"boolean","default":true},"generation_preset_name":{"description":"The preset values to use to feed the query results and other context to the model. \n\nA `generation_preset` is an object with a bundle of properties that specifies: \n* The `prompt_template` that is rendered and then sent to the LLM. \n* The LLM used. * `model_parameter`s such as temperature.\n\nAll of these properties except the model can be overridden by setting them in this object. Even when a `prompt_template` is set, the `generation_preset_name` is used to set the model used. See `model_parameters.model` if you want to set the model explicitly.\n\nIf `generation_preset_name` is not set, the Vectara platform will use the default model and prompt.'\n","type":"string","minLength":1,"example":"mockingbird-2.0"},"prompt_name":{"description":"Use `generation_preset_name` instead of `prompt_name`.","type":"string","minLength":1,"example":"mockingbird-2.0","deprecated":true},"max_used_search_results":{"description":"The maximum number of search results to be available to the prompt.","type":"integer","format":"int32","minimum":0,"default":5},"prompt_template":{"description":"Vectara manages both system and user roles and prompts for the generative LLM out of the box by default. However, users can override the `prompt_template` via this variable. The `prompt_template` is in the form of an Apache Velocity template. For more details on how to configure the `prompt_template`, see the [long-form documentation](https://docs.vectara.com/docs/prompts/vectara-prompt-engine).","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n"},"prompt_text":{"description":"This property is deprecated in favor of clearer naming. Use `prompt_template`. This property will be ignored if `prompt_template` is set.","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n","deprecated":true},"max_response_characters":{"description":"Controls the length of the generated output. This is a rough estimate and not a hard limit: the end output can be longer or shorter than this value. This is generally implemented by including the `max_response_characters` in the prompt, and the LLM's instruction following capability dictates how closely the generated output is limited.","type":"integer","format":"int32","example":300,"minimum":0},"response_language":{"description":"Languages that the Vectara platform supports.","type":"string","enum":["auto","eng","deu","fra","zho","kor","ara","rus","tha","nld","ita","por","spa","jpn","pol","tur","vie","ind","ces","ukr","ell","heb","fas","hin","urd","swe","ben","msa","ron"],"default":"auto","title":"Language"},"model_parameters":{"title":"ModelParameters","description":"The parameters for the model. WARNING: This is an experimental feature, and breakable at any point with virtually no notice. It is meant for experimentation to converge on optimal parameters that can then be set in the prompt definitions.","type":"object","properties":{"llm_name":{"description":"The model (e.g., `gpt-4`) to use for summarization. If specified, it will override the model behind `generation_preset_name`.","type":"string","example":"gpt4"},"max_tokens":{"description":"The maximum number of tokens to be returned by the model.","type":"integer","format":"int32","minimum":1},"temperature":{"description":"The sampling temperature to use. Higher values make the output more random, while lower values make it more focused and deterministic.","type":"number","format":"float"},"frequency_penalty":{"description":"Higher values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.","type":"number","format":"float"},"presence_penalty":{"description":"Higher values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.","type":"number","format":"float"}}},"citations":{"description":"Style the generator should use when making citations.","type":"object","properties":{"style":{"description":"The citation style that you want to use in the summary: \n* `numeric` - Citations formatted as simple numerals: \\[1\\], \\[2\\], etc.\n* `none` - Citations removed from text.\n* `html` - Citation formatted as a URL like `text_pattern`.\n* `markdown` - Formatted as `[text_pattern](url_pattern)`.\n","type":"string","enum":["none","numeric","html","markdown"]},"url_pattern":{"description":"The URL pattern if the citation_style is set to `html` or `markdown`. The pattern can access metadata attributes in the document or part. e.g. `https://my.doc/foo/{doc.id}/{part.id}` The default `url_pattern` is an empty string.","type":"string","example":"https://vectara.com/documents/{doc.id}"},"text_pattern":{"description":"The text pattern if the citation_style is set to `html` or `markdown`. This pattern sets the href for HTML or the text within `[]` in markdown, and defaults to N being the index of result if it is not set. The default citation style looks like `[N]()` for markdown. You can use metadata attributes in the `text_pattern`. For example, the pattern `{doc.title}` with citation style `markdown` would result in final citation output like `[Title]()` when the document's metadata includes `{\"title\":\"Title\"}`.","type":"string","example":"{doc.title}"}},"title":"CitationParameters"},"enable_factual_consistency_score":{"description":"Enable returning the factual consistency score with query results.","type":"boolean","default":true}},"title":"GenerationParameters"},"save_history":{"description":"Whether to save the query to history.","type":"boolean"}},"required":["search"]}},"required":["type","query_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineWebSearchToolConfiguration","description":"A web search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'web_search' for inline web search tool configurations.","default":"web_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the web search tool call such as limit etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query to execute.","type":"string","example":"latest AI developments 2024"},"limit":{"description":"Maximum number of results to return.","type":"integer","minimum":1,"maximum":20,"example":10},"provider":{"description":"Search provider to use.","type":"string","enum":["tavily"],"example":"tavily"},"include_domains":{"description":"List of domains to specifically include in search results. When specified, results will ONLY come from these domains. Supports exact domains (e.g., \"github.com\"), subdomains (e.g., \"docs.github.com\"), and wildcard patterns (e.g., \"*.github.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["github.com","docs.github.com","*.stackoverflow.com"]},"exclude_domains":{"description":"List of domains to specifically exclude from search results. Supports exact domains (e.g., \"spam.com\"), subdomains (e.g., \"bad.spam.com\"), and wildcard patterns (e.g., \"*.spam.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["spam.com","unreliable-source.com"]}},"additionalProperties":false,"title":"WebSearchToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineWebGetToolConfiguration","description":"A web get tool configuration defined inline in the agent for fetching content from URLs.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'web_get' for inline web get tool configurations.","default":"web_get"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the web get tool call. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"url":{"description":"The URL to fetch content from.","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"method":{"description":"HTTP method to use.","type":"string","enum":["GET","POST","PUT","DELETE","HEAD"]},"headers":{"description":"HTTP headers to include in the request.","oneOf":[{"type":"object","additionalProperties":{"type":"string"}},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"body":{"description":"Request body for POST/PUT requests.","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"follow_redirects":{"description":"Whether to follow HTTP redirects.","oneOf":[{"type":"boolean"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"timeout_seconds":{"description":"Request timeout in seconds.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"head_lines":{"description":"Number of lines from start to include in response.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"tail_lines":{"description":"Number of lines from end to include in response.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"ssl_verify":{"description":"Whether to verify SSL certificates.","oneOf":[{"type":"boolean"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"max_content_bytes":{"description":"Maximum response size in bytes before truncation.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]}},"additionalProperties":false,"title":"WebGetToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineLambdaToolConfiguration","description":"A lambda tool configuration defined inline in the agent for executing user-defined functions.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'lambda' for inline lambda tool configurations.","default":"lambda"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments that will be passed to the lambda function. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","additionalProperties":true,"example":{"custom_param":"value"}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineStructuredIndexingToolConfiguration","description":"A structured indexing tool configuration defined inline in the agent for indexing into the Vectara platform.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'structured_indexing' for inline structured indexing tool configurations.","default":"structured_indexing"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the structured indexing tool call such as corpus_key etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"corpus_key":{"description":"The key identifying the target corpus for document indexing. If not provided, will be filled in by the agent.","type":"string","example":"my-knowledge-base"},"document_id":{"description":"The unique identifier for the document within the corpus, preferably human readable IDs.","type":"string","example":"annual_report_2024"},"title":{"description":"The title of the document being indexed.","type":"string","example":"2024 Annual ESG Report"},"description":{"description":"A brief description or summary of the document content.","type":"string","example":"Comprehensive environmental, social, and governance report"},"metadata":{"description":"The metadata key-value pairs to associate with the document. If present, this gets merged with existing artifact metadata.","type":"object","additionalProperties":true,"example":{"doc_type":"annual_report","year":2024,"department":"sustainability"}},"document":{"description":"The structured document to index with full hierarchical content.","type":"object","additionalProperties":true,"example":{"id":"annual_report_2024","type":"structured","title":"2024 Annual ESG Report"}}},"additionalProperties":false,"title":"StructuredIndexingToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineSubAgentToolConfiguration","description":"A sub-agent tool configuration defined inline in the agent for invoking specialized sub-agents.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'sub_agent' for inline sub-agent tool configurations.","default":"sub_agent"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the sub-agent tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"message":{"description":"The detailed task instructions for the sub-agent to perform autonomously.","type":"string","example":"Review the code changes in pull request \\#123 for security issues"},"session_tti_minutes":{"description":"Time to idle in minutes before the session expires.","type":"integer","format":"int64","minimum":1,"example":60}},"additionalProperties":false,"title":"SubAgentToolParameters"},"sub_agent_configuration":{"description":"User-configurable settings for the sub-agent tool. These parameters are never exposed to the agent.","type":"object","properties":{"agent_key":{"description":"A unique key that identifies an agent.","type":"string","pattern":"[0-9a-zA-Z_-]+$","minLength":1,"maxLength":50,"example":"customer_support","title":"AgentKey"},"session_mode":{"description":"Controls session behavior for sub-agent invocations:\n- llm_controlled: LLM decides whether to create new or resume existing session\n- persistent: Always reuse the same session (created on first invocation)\n- ephemeral: Always create a new session on each invocation\n","type":"string","enum":["llm_controlled","persistent","ephemeral"],"default":"llm_controlled","example":"llm_controlled","title":"SubAgentSessionMode"},"session_metadata":{"description":"Optional metadata to associate with the sub-agent session. Can contain any key-value pairs.","type":"object","additionalProperties":true,"example":{"source":"parent_agent","task_type":"code_review"}}},"required":["agent_key"],"title":"SubAgentConfiguration"}},"required":["type","sub_agent_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineArtifactReadToolConfiguration","description":"An artifact read tool configuration defined inline in the agent for reading artifacts from the session workspace.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_read' for inline artifact read tool configurations.","default":"artifact_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to read.","type":"string","example":"art_abc123"},"encoding":{"description":"The encoding format for the content.","type":"string","enum":["raw","base64"],"example":"raw"},"start_line":{"description":"Optional starting line number (1-indexed).","type":"integer","format":"int32","example":100},"end_line":{"description":"Optional ending line number (1-indexed, inclusive).","type":"integer","format":"int32","example":200}},"additionalProperties":false,"title":"ArtifactReadToolParameters"},"tool_configuration":{"description":"User-configurable settings for the artifact read tool.","type":"object","properties":{"max_size_bytes":{"description":"Maximum file size in bytes for full reads without line ranges. Defaults to 256KB.","type":"integer","format":"int64","minimum":1,"maximum":10485760,"default":262144},"max_lines":{"description":"Maximum number of lines for range-based reads. Defaults to 200.","type":"integer","format":"int32","minimum":1,"maximum":10000,"default":200}},"title":"ArtifactReadConfiguration"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineArtifactGrepToolConfiguration","description":"An artifact grep tool configuration defined inline in the agent for searching through artifact content.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_grep' for inline artifact grep tool configurations.","default":"artifact_grep"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact grep tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to search.","type":"string","example":"art_abc123"},"pattern":{"description":"The pattern to search for (supports grep regex).","type":"string","example":"error|exception"},"grep_options":{"description":"Optional grep command options.","type":"array","items":{"type":"string"},"example":["-i","-n"]}},"additionalProperties":false,"title":"ArtifactGrepToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineImageReadToolConfiguration","description":"An image read tool configuration defined inline in the agent for loading images into the conversation context.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'image_read' for inline image read tool configurations.","default":"image_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the image read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the image artifact to view.","type":"string","pattern":"^art_[a-z0-9_-]+$","example":"art_photo_a3f2"},"detail":{"description":"Detail level for image processing.","type":"string","enum":["auto","low","high"],"default":"auto","example":"auto"}},"additionalProperties":false,"title":"ImageReadToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineDocumentConversionToolConfiguration","description":"A document conversion tool configuration defined inline in the agent for converting document artifacts to various formats.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'document_conversion' for inline document conversion tool configurations.","default":"document_conversion"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the document conversion tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to convert.","type":"string","example":"art_abc123"},"output_format":{"description":"Output format for the converted document.","type":"string","enum":["markdown","structured_document"],"example":"markdown"},"description":{"description":"Optional description for the converted artifact.","type":"string","example":"PDF converted to markdown"}},"additionalProperties":false,"title":"DocumentConversionToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]}],"example":[{"type":"web_search","argument_override":{"limit":5,"include_domains":["github.com","stackoverflow.com"],"exclude_domains":["spam.com"]}}]},"example":{"customer_search":{"type":"corpora_search","argument_override":{"query":"customer support documentation"}}}},"model":{"title":"AgentModel","description":"Configuration for the model used in this step, including the model name and arbitrary parameters.","type":"object","properties":{"name":{"description":"The name of the model to use for this step.","type":"string","example":"gpt-4"},"parameters":{"description":"Arbitrary model-specific parameters that can be passed to the model.","type":"object","additionalProperties":true,"example":{"temperature":0.7,"max_tokens":1000,"top_p":0.9}},"retry_configuration":{"description":"Optional retry configuration for handling transient failures. When not provided, no retry is performed.","title":"RetryConfiguration","type":"object","properties":{"enabled":{"description":"Whether retry is enabled. Enabled by default to provide resilience against transient failures.","type":"boolean","default":true,"example":true},"max_retries":{"description":"Maximum number of retry attempts after initial failure.","type":"integer","minimum":0,"maximum":10,"default":3,"example":3},"initial_backoff_ms":{"description":"Initial backoff time in milliseconds before first retry.","type":"integer","minimum":100,"maximum":60000,"default":1000,"example":1000},"max_backoff_ms":{"description":"Maximum backoff time in milliseconds between retries.","type":"integer","minimum":1000,"maximum":300000,"default":30000,"example":30000},"backoff_factor":{"description":"Multiplication factor for exponential backoff between retries.","type":"number","format":"double","minimum":1,"maximum":10,"default":2,"example":2}}}},"required":["name"]},"first_step":{"title":"AgentStep","description":"A step in an agent's execution flow that defines how the agent processes and responds to input.","discriminator":{"propertyName":"type","mapping":{"conversational":{"title":"ConversationalAgentStep","description":"A step that receives instructions and responds through dialogue. This is a step that gets instructions and engages in conversation with users based on those instructions. This only type step supported, with no way to go next steps. A conversational step responds to an input following its instructions and uses the agent tools. The first response from the model will terminate processing the input.","type":"object","properties":{"type":{"description":"The type of step, which is always 'conversational' for this step type.","type":"string","default":"conversational","example":"conversational"},"instructions":{"description":"List of instructions that guide the agent's behavior in this step. If no instructions are given, the agent is instructed to be helpful and use tools.","type":"array","items":{"title":"AgentStepInstruction","description":"An instruction that can be used in an agent step, either by reference or defined inline.","discriminator":{"propertyName":"type","mapping":{"reference":{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},"inline":{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Base properties for creating an instruction, without the type discriminator field.","type":"object","properties":{"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["name","template"],"title":"InstructionRequestBase"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}}},"oneOf":[{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Base properties for creating an instruction, without the type discriminator field.","type":"object","properties":{"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["name","template"],"title":"InstructionRequestBase"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}],"example":[{"type":"reference","name":"Customer Support Initial Instruction","version":1},{"type":"inline","name":"Temporary On-the-fly Guideline","description":"A special instruction for this specific step only.","template_type":"velocity","template":"Please prioritize issues tagged with 'urgent' for the next hour."}]}},"output_parser":{"title":"AgentOutputParser","description":"Configuration for how the agent's output should be parsed and formatted.\n\nThe output parser determines how the agent's responses are processed before being returned to the user.\n","discriminator":{"propertyName":"type","mapping":{"default":{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]},"structured":{"title":"StructuredOutputParser","description":"Parses agent output as structured JSON conforming to a specified schema.\nUses the model's native structured outputs capability to guarantee valid JSON\nthat adheres to the provided schema. This is useful when you need the agent's\nfinal response in a specific format for downstream processing.\n\nWhen this parser is configured, the agent emits a StructuredOutputEvent instead\nof AgentOutputEvent. The StructuredOutputEvent contains the validated JSON content\nalong with the schema name for identification.\n\nNote: When using structured outputs, the agent can still use tools normally.\nThe schema constraint only applies to the agent's final text response.\nWhen streaming, the structured output is delivered as a single complete event\nrather than being streamed in chunks.\n","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'structured' for this parser type.","type":"string","default":"structured","example":"structured"},"json_schema":{"description":"Specification wrapper for a named JSON schema.","type":"object","required":["name","schema"],"properties":{"description":{"description":"A description of what the response format is for, used by the model to determine how to respond in the format.","type":"string"},"name":{"description":"A unique name identifier for this schema.","type":"string","pattern":"^[a-zA-Z0-9_-]+$","minLength":1},"strict":{"description":"When true, enforces strict schema adherence. The model will always follow the exact schema structure.\nWhen strict mode is enabled, the schema must follow these rules:\n- `additionalProperties: false` must be set on all object types\n- All properties must be listed in the `required` array\n- Maximum 100 properties total, with max 5 levels of nesting\n- Unsupported keywords: minLength, maxLength, pattern, minimum, maximum, minItems, maxItems\n- Root schema cannot use `anyOf` type\n","type":"boolean","nullable":true},"schema":{"description":"The JSON Schema definition that the model output must conform to.","type":"object","required":["type"],"properties":{"type":{"description":"The JSON type for this schema element.","type":"string","enum":["object","array","string","number","integer","boolean"]},"properties":{"description":"Property definitions when type is 'object'. Each key maps to a nested JsonSchemaDefinition.","type":"object","additionalProperties":{"description":"A JSON Schema definition for specifying data structure. Supports recursive schemas for nested objects.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"}},"required":{"description":"List of required property names when type is 'object'.","type":"array","items":{"type":"string"}},"additionalProperties":{"description":"Whether to allow additional properties beyond those defined.","type":"boolean","default":false},"items":{"description":"Schema for array items when type is 'array'.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"},"enum":{"description":"Allowed values for this schema element.","type":"array"},"description":{"description":"Human-readable description of this schema element.","type":"string"}},"title":"JsonSchemaDefinition"}},"title":"JsonSchemaSpec"}},"required":["type","json_schema"],"x-vectaraParents":["AgentOutputParser"]}}},"oneOf":[{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]},{"title":"StructuredOutputParser","description":"Parses agent output as structured JSON conforming to a specified schema.\nUses the model's native structured outputs capability to guarantee valid JSON\nthat adheres to the provided schema. This is useful when you need the agent's\nfinal response in a specific format for downstream processing.\n\nWhen this parser is configured, the agent emits a StructuredOutputEvent instead\nof AgentOutputEvent. The StructuredOutputEvent contains the validated JSON content\nalong with the schema name for identification.\n\nNote: When using structured outputs, the agent can still use tools normally.\nThe schema constraint only applies to the agent's final text response.\nWhen streaming, the structured output is delivered as a single complete event\nrather than being streamed in chunks.\n","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'structured' for this parser type.","type":"string","default":"structured","example":"structured"},"json_schema":{"description":"Specification wrapper for a named JSON schema.","type":"object","required":["name","schema"],"properties":{"description":{"description":"A description of what the response format is for, used by the model to determine how to respond in the format.","type":"string"},"name":{"description":"A unique name identifier for this schema.","type":"string","pattern":"^[a-zA-Z0-9_-]+$","minLength":1},"strict":{"description":"When true, enforces strict schema adherence. The model will always follow the exact schema structure.\nWhen strict mode is enabled, the schema must follow these rules:\n- `additionalProperties: false` must be set on all object types\n- All properties must be listed in the `required` array\n- Maximum 100 properties total, with max 5 levels of nesting\n- Unsupported keywords: minLength, maxLength, pattern, minimum, maximum, minItems, maxItems\n- Root schema cannot use `anyOf` type\n","type":"boolean","nullable":true},"schema":{"description":"The JSON Schema definition that the model output must conform to.","type":"object","required":["type"],"properties":{"type":{"description":"The JSON type for this schema element.","type":"string","enum":["object","array","string","number","integer","boolean"]},"properties":{"description":"Property definitions when type is 'object'. Each key maps to a nested JsonSchemaDefinition.","type":"object","additionalProperties":{"description":"A JSON Schema definition for specifying data structure. Supports recursive schemas for nested objects.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"}},"required":{"description":"List of required property names when type is 'object'.","type":"array","items":{"type":"string"}},"additionalProperties":{"description":"Whether to allow additional properties beyond those defined.","type":"boolean","default":false},"items":{"description":"Schema for array items when type is 'array'.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"},"enum":{"description":"Allowed values for this schema element.","type":"array"},"description":{"description":"Human-readable description of this schema element.","type":"string"}},"title":"JsonSchemaDefinition"}},"title":"JsonSchemaSpec"}},"required":["type","json_schema"],"x-vectaraParents":["AgentOutputParser"]}]}},"required":["type","instructions","output_parser"],"x-vectaraParents":["AgentStep"]}}},"oneOf":[{"title":"ConversationalAgentStep","description":"A step that receives instructions and responds through dialogue. This is a step that gets instructions and engages in conversation with users based on those instructions. This only type step supported, with no way to go next steps. A conversational step responds to an input following its instructions and uses the agent tools. The first response from the model will terminate processing the input.","type":"object","properties":{"type":{"description":"The type of step, which is always 'conversational' for this step type.","type":"string","default":"conversational","example":"conversational"},"instructions":{"description":"List of instructions that guide the agent's behavior in this step. If no instructions are given, the agent is instructed to be helpful and use tools.","type":"array","items":{"title":"AgentStepInstruction","description":"An instruction that can be used in an agent step, either by reference or defined inline.","discriminator":{"propertyName":"type","mapping":{"reference":{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},"inline":{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Base properties for creating an instruction, without the type discriminator field.","type":"object","properties":{"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["name","template"],"title":"InstructionRequestBase"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}}},"oneOf":[{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Base properties for creating an instruction, without the type discriminator field.","type":"object","properties":{"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["name","template"],"title":"InstructionRequestBase"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}],"example":[{"type":"reference","name":"Customer Support Initial Instruction","version":1},{"type":"inline","name":"Temporary On-the-fly Guideline","description":"A special instruction for this specific step only.","template_type":"velocity","template":"Please prioritize issues tagged with 'urgent' for the next hour."}]}},"output_parser":{"title":"AgentOutputParser","description":"Configuration for how the agent's output should be parsed and formatted.\n\nThe output parser determines how the agent's responses are processed before being returned to the user.\n","discriminator":{"propertyName":"type","mapping":{"default":{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]},"structured":{"title":"StructuredOutputParser","description":"Parses agent output as structured JSON conforming to a specified schema.\nUses the model's native structured outputs capability to guarantee valid JSON\nthat adheres to the provided schema. This is useful when you need the agent's\nfinal response in a specific format for downstream processing.\n\nWhen this parser is configured, the agent emits a StructuredOutputEvent instead\nof AgentOutputEvent. The StructuredOutputEvent contains the validated JSON content\nalong with the schema name for identification.\n\nNote: When using structured outputs, the agent can still use tools normally.\nThe schema constraint only applies to the agent's final text response.\nWhen streaming, the structured output is delivered as a single complete event\nrather than being streamed in chunks.\n","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'structured' for this parser type.","type":"string","default":"structured","example":"structured"},"json_schema":{"description":"Specification wrapper for a named JSON schema.","type":"object","required":["name","schema"],"properties":{"description":{"description":"A description of what the response format is for, used by the model to determine how to respond in the format.","type":"string"},"name":{"description":"A unique name identifier for this schema.","type":"string","pattern":"^[a-zA-Z0-9_-]+$","minLength":1},"strict":{"description":"When true, enforces strict schema adherence. The model will always follow the exact schema structure.\nWhen strict mode is enabled, the schema must follow these rules:\n- `additionalProperties: false` must be set on all object types\n- All properties must be listed in the `required` array\n- Maximum 100 properties total, with max 5 levels of nesting\n- Unsupported keywords: minLength, maxLength, pattern, minimum, maximum, minItems, maxItems\n- Root schema cannot use `anyOf` type\n","type":"boolean","nullable":true},"schema":{"description":"The JSON Schema definition that the model output must conform to.","type":"object","required":["type"],"properties":{"type":{"description":"The JSON type for this schema element.","type":"string","enum":["object","array","string","number","integer","boolean"]},"properties":{"description":"Property definitions when type is 'object'. Each key maps to a nested JsonSchemaDefinition.","type":"object","additionalProperties":{"description":"A JSON Schema definition for specifying data structure. Supports recursive schemas for nested objects.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"}},"required":{"description":"List of required property names when type is 'object'.","type":"array","items":{"type":"string"}},"additionalProperties":{"description":"Whether to allow additional properties beyond those defined.","type":"boolean","default":false},"items":{"description":"Schema for array items when type is 'array'.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"},"enum":{"description":"Allowed values for this schema element.","type":"array"},"description":{"description":"Human-readable description of this schema element.","type":"string"}},"title":"JsonSchemaDefinition"}},"title":"JsonSchemaSpec"}},"required":["type","json_schema"],"x-vectaraParents":["AgentOutputParser"]}}},"oneOf":[{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]},{"title":"StructuredOutputParser","description":"Parses agent output as structured JSON conforming to a specified schema.\nUses the model's native structured outputs capability to guarantee valid JSON\nthat adheres to the provided schema. This is useful when you need the agent's\nfinal response in a specific format for downstream processing.\n\nWhen this parser is configured, the agent emits a StructuredOutputEvent instead\nof AgentOutputEvent. The StructuredOutputEvent contains the validated JSON content\nalong with the schema name for identification.\n\nNote: When using structured outputs, the agent can still use tools normally.\nThe schema constraint only applies to the agent's final text response.\nWhen streaming, the structured output is delivered as a single complete event\nrather than being streamed in chunks.\n","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'structured' for this parser type.","type":"string","default":"structured","example":"structured"},"json_schema":{"description":"Specification wrapper for a named JSON schema.","type":"object","required":["name","schema"],"properties":{"description":{"description":"A description of what the response format is for, used by the model to determine how to respond in the format.","type":"string"},"name":{"description":"A unique name identifier for this schema.","type":"string","pattern":"^[a-zA-Z0-9_-]+$","minLength":1},"strict":{"description":"When true, enforces strict schema adherence. The model will always follow the exact schema structure.\nWhen strict mode is enabled, the schema must follow these rules:\n- `additionalProperties: false` must be set on all object types\n- All properties must be listed in the `required` array\n- Maximum 100 properties total, with max 5 levels of nesting\n- Unsupported keywords: minLength, maxLength, pattern, minimum, maximum, minItems, maxItems\n- Root schema cannot use `anyOf` type\n","type":"boolean","nullable":true},"schema":{"description":"The JSON Schema definition that the model output must conform to.","type":"object","required":["type"],"properties":{"type":{"description":"The JSON type for this schema element.","type":"string","enum":["object","array","string","number","integer","boolean"]},"properties":{"description":"Property definitions when type is 'object'. Each key maps to a nested JsonSchemaDefinition.","type":"object","additionalProperties":{"description":"A JSON Schema definition for specifying data structure. Supports recursive schemas for nested objects.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"}},"required":{"description":"List of required property names when type is 'object'.","type":"array","items":{"type":"string"}},"additionalProperties":{"description":"Whether to allow additional properties beyond those defined.","type":"boolean","default":false},"items":{"description":"Schema for array items when type is 'array'.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"},"enum":{"description":"Allowed values for this schema element.","type":"array"},"description":{"description":"Human-readable description of this schema element.","type":"string"}},"title":"JsonSchemaDefinition"}},"title":"JsonSchemaSpec"}},"required":["type","json_schema"],"x-vectaraParents":["AgentOutputParser"]}]}},"required":["type","instructions","output_parser"],"x-vectaraParents":["AgentStep"]}]},"metadata":{"description":"Arbitrary metadata associated with the agent for customization and configuration.","type":"object","additionalProperties":true,"default":{},"example":{"department":"customer_service","version":"1.0.0","owner":"support-team"}},"enabled":{"description":"Whether the agent should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["name","tool_configurations","model","first_step"],"title":"CreateAgentRequest"}}}}}
>
@@ -94,7 +94,7 @@ When agents interact with LLMs, transient failures like network interruptions ca
"},"end_tag":{"description":"The tag that wraps the document part at the end. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the document part ends and the context after begins.","type":"string","example":""}},"example":{"sentences_before":2,"sentences_after":2,"start_tag":"","end_tag":""},"title":"ContextConfiguration"},"reranker":{"type":"object","description":"Rerank results of the search. Rerankers are very powerful tools to improve the order of search results. By default the search will use the most powerful reranker available to the customer's plan. To disable reranking, set the reranker `type` to `\"none\"`.","discriminator":{"propertyName":"type","mapping":{"customer_reranker":{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},"userfn":{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},"mmr":{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},"chain":{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},"none":{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}}},"oneOf":[{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}],"title":"SearchReranker"}},"example":{"limit":50},"title":"SearchParameters"}],"required":["corpora"],"title":"SearchCorporaParameters"},"generation":{"description":"The parameters to control generation.","type":"object","properties":{"enabled":{"description":"Whether generation is enabled for this query. This field is ignored if using chat.","type":"boolean","default":true},"generation_preset_name":{"description":"The preset values to use to feed the query results and other context to the model. \n\nA `generation_preset` is an object with a bundle of properties that specifies: \n* The `prompt_template` that is rendered and then sent to the LLM. \n* The LLM used. * `model_parameter`s such as temperature.\n\nAll of these properties except the model can be overridden by setting them in this object. Even when a `prompt_template` is set, the `generation_preset_name` is used to set the model used. See `model_parameters.model` if you want to set the model explicitly.\n\nIf `generation_preset_name` is not set, the Vectara platform will use the default model and prompt.'\n","type":"string","minLength":1,"example":"mockingbird-2.0"},"prompt_name":{"description":"Use `generation_preset_name` instead of `prompt_name`.","type":"string","minLength":1,"example":"mockingbird-2.0","deprecated":true},"max_used_search_results":{"description":"The maximum number of search results to be available to the prompt.","type":"integer","format":"int32","minimum":0,"default":5},"prompt_template":{"description":"Vectara manages both system and user roles and prompts for the generative LLM out of the box by default. However, users can override the `prompt_template` via this variable. The `prompt_template` is in the form of an Apache Velocity template. For more details on how to configure the `prompt_template`, see the [long-form documentation](https://docs.vectara.com/docs/prompts/vectara-prompt-engine).","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n"},"prompt_text":{"description":"This property is deprecated in favor of clearer naming. Use `prompt_template`. This property will be ignored if `prompt_template` is set.","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n","deprecated":true},"max_response_characters":{"description":"Controls the length of the generated output. This is a rough estimate and not a hard limit: the end output can be longer or shorter than this value. This is generally implemented by including the `max_response_characters` in the prompt, and the LLM's instruction following capability dictates how closely the generated output is limited.","type":"integer","format":"int32","example":300,"minimum":0},"response_language":{"description":"Languages that the Vectara platform supports.","type":"string","enum":["auto","eng","deu","fra","zho","kor","ara","rus","tha","nld","ita","por","spa","jpn","pol","tur","vie","ind","ces","ukr","ell","heb","fas","hin","urd","swe","ben","msa","ron"],"default":"auto","title":"Language"},"model_parameters":{"title":"ModelParameters","description":"The parameters for the model. WARNING: This is an experimental feature, and breakable at any point with virtually no notice. It is meant for experimentation to converge on optimal parameters that can then be set in the prompt definitions.","type":"object","properties":{"llm_name":{"description":"The model (e.g., `gpt-4`) to use for summarization. If specified, it will override the model behind `generation_preset_name`.","type":"string","example":"gpt4"},"max_tokens":{"description":"The maximum number of tokens to be returned by the model.","type":"integer","format":"int32","minimum":1},"temperature":{"description":"The sampling temperature to use. Higher values make the output more random, while lower values make it more focused and deterministic.","type":"number","format":"float"},"frequency_penalty":{"description":"Higher values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.","type":"number","format":"float"},"presence_penalty":{"description":"Higher values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.","type":"number","format":"float"}}},"citations":{"description":"Style the generator should use when making citations.","type":"object","properties":{"style":{"description":"The citation style that you want to use in the summary: \n* `numeric` - Citations formatted as simple numerals: \\[1\\], \\[2\\], etc.\n* `none` - Citations removed from text.\n* `html` - Citation formatted as a URL like `text_pattern`.\n* `markdown` - Formatted as `[text_pattern](url_pattern)`.\n","type":"string","enum":["none","numeric","html","markdown"]},"url_pattern":{"description":"The URL pattern if the citation_style is set to `html` or `markdown`. The pattern can access metadata attributes in the document or part. e.g. `https://my.doc/foo/{doc.id}/{part.id}` The default `url_pattern` is an empty string.","type":"string","example":"https://vectara.com/documents/{doc.id}"},"text_pattern":{"description":"The text pattern if the citation_style is set to `html` or `markdown`. This pattern sets the href for HTML or the text within `[]` in markdown, and defaults to N being the index of result if it is not set. The default citation style looks like `[N]()` for markdown. You can use metadata attributes in the `text_pattern`. For example, the pattern `{doc.title}` with citation style `markdown` would result in final citation output like `[Title]()` when the document's metadata includes `{\"title\":\"Title\"}`.","type":"string","example":"{doc.title}"}},"title":"CitationParameters"},"enable_factual_consistency_score":{"description":"Enable returning the factual consistency score with query results.","type":"boolean","default":true}},"title":"GenerationParameters"},"save_history":{"description":"Indicates whether to save the query to query history.","type":"boolean"}},"required":["search"],"title":"CorporaSearchQueryConfiguration"}},"required":["type","query_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},"web_search":{"title":"InlineWebSearchToolConfiguration","description":"A web search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'web_search' for inline web search tool configurations.","default":"web_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the web search tool call such as limit etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query to execute.","type":"string","example":"latest AI developments 2024"},"limit":{"description":"Maximum number of results to return.","type":"integer","minimum":1,"example":10},"provider":{"description":"Search provider to use.","type":"string","enum":["tavily"],"example":"tavily"},"include_domains":{"description":"List of domains to specifically include in search results. When specified, results will ONLY come from these domains. Supports exact domains (e.g., \"github.com\"), subdomains (e.g., \"docs.github.com\"), and wildcard patterns (e.g., \"*.github.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["github.com","docs.github.com","*.stackoverflow.com"]},"exclude_domains":{"description":"List of domains to specifically exclude from search results. Supports exact domains (e.g., \"spam.com\"), subdomains (e.g., \"bad.spam.com\"), and wildcard patterns (e.g., \"*.spam.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["spam.com","unreliable-source.com"]}},"additionalProperties":false,"title":"WebSearchToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"lambda":{"title":"InlineLambdaToolConfiguration","description":"A lambda tool configuration defined inline in the agent for executing user-defined functions.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'lambda' for inline lambda tool configurations.","default":"lambda"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments that will be passed to the lambda function. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","additionalProperties":true,"example":{"custom_param":"value"}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},"structured_indexing":{"title":"InlineStructuredIndexingToolConfiguration","description":"A structured indexing tool configuration defined inline in the agent for indexing into the Vectara platform.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'structured_indexing' for inline structured indexing tool configurations.","default":"structured_indexing"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the structured indexing tool call such as corpus_key etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"corpus_key":{"description":"The key identifying the target corpus for document indexing. If not provided, will be filled in by the LLM.","type":"string","example":"my-knowledge-base"},"document_id":{"description":"The unique identifier for the document within the corpus, preferably human readable IDs.","type":"string","example":"annual_report_2024"},"title":{"description":"The title of the document being indexed.","type":"string","example":"2024 Annual ESG Report"},"description":{"description":"A brief description or summary of the document content.","type":"string","example":"Comprehensive environmental, social, and governance report"},"metadata":{"description":"The metadata key-value pairs to associate with the document. If present, this gets merged with existing artifact metadata.","type":"object","additionalProperties":true,"example":{"doc_type":"annual_report","year":2024,"department":"sustainability"}},"document":{"description":"The structured document to index with full hierarchical content.","type":"object","additionalProperties":true,"example":{"id":"annual_report_2024","type":"structured","title":"2024 Annual ESG Report"}}},"additionalProperties":false,"title":"StructuredIndexingToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"sub_agent":{"title":"InlineSubAgentToolConfiguration","description":"A sub-agent tool configuration defined inline in the agent for invoking specialized sub-agents.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'sub_agent' for inline sub-agent tool configurations.","default":"sub_agent"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the sub-agent tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"message":{"description":"The detailed task instructions for the sub-agent to perform autonomously.","type":"string","example":"Review the code changes in pull request \\#123 for security issues"},"session_tti_minutes":{"description":"Time to idle in minutes before the session expires.","type":"integer","format":"int64","minimum":1,"example":60}},"additionalProperties":false,"title":"SubAgentToolParameters"},"sub_agent_configuration":{"description":"User-configurable settings for the sub-agent tool. These parameters are never exposed to the agent.","type":"object","properties":{"agent_key":{"description":"A unique key that identifies an agent.","type":"string","pattern":"[0-9a-zA-Z_-]+$","minLength":1,"maxLength":50,"example":"customer_support","title":"AgentKey"}},"required":["agent_key"],"title":"SubAgentConfiguration"}},"required":["type","sub_agent_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},"artifact_read":{"title":"InlineArtifactReadToolConfiguration","description":"An artifact read tool configuration defined inline in the agent for reading artifacts from the session workspace.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_read' for inline artifact read tool configurations.","default":"artifact_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to read.","type":"string","example":"art_abc123"},"encoding":{"description":"The encoding format for the content.","type":"string","enum":["raw","base64"],"example":"raw"},"start_line":{"description":"Optional starting line number (1-indexed).","type":"integer","format":"int32","example":100},"end_line":{"description":"Optional ending line number (1-indexed, inclusive).","type":"integer","format":"int32","example":200}},"additionalProperties":false,"title":"ArtifactReadToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"artifact_grep":{"title":"InlineArtifactGrepToolConfiguration","description":"An artifact grep tool configuration defined inline in the agent for searching through artifact content.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_grep' for inline artifact grep tool configurations.","default":"artifact_grep"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact grep tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to search.","type":"string","example":"art_abc123"},"pattern":{"description":"The pattern to search for (supports grep regex).","type":"string","example":"error|exception"},"grep_options":{"description":"Optional grep command options.","type":"array","items":{"type":"string"},"example":["-i","-n"]}},"additionalProperties":false,"title":"ArtifactGrepToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"image_read":{"title":"InlineImageReadToolConfiguration","description":"An image read tool configuration defined inline in the agent for loading images into the conversation context.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'image_read' for inline image read tool configurations.","default":"image_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the image read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the image artifact to view.","type":"string","pattern":"^art_[a-z0-9_-]+$","example":"art_photo_a3f2"},"detail":{"description":"Detail level for image processing.","type":"string","enum":["auto","low","high"],"default":"auto","example":"auto"}},"additionalProperties":false,"title":"ImageReadToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"document_conversion":{"title":"InlineDocumentConversionToolConfiguration","description":"A document conversion tool configuration defined inline in the agent for converting document artifacts to various formats.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'document_conversion' for inline document conversion tool configurations.","default":"document_conversion"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the document conversion tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to convert.","type":"string","example":"art_abc123"},"output_format":{"description":"Output format for the converted document.","type":"string","enum":["markdown","structured_document"],"example":"markdown"},"description":{"description":"Optional description for the converted artifact.","type":"string","example":"PDF converted to markdown"}},"additionalProperties":false,"title":"DocumentConversionToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]}}},"oneOf":[{"title":"InlineMcpToolConfiguration","description":"An MCP tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'mcp' for inline MCP tool configurations.","default":"mcp"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for tool calls. The key specifies the location in the tool arguments to overide, and the value specifies what to override with. The LLM will not be able to change the parameters, nor know those values exist within the tool.\n\nThe values can also be dynamic references to context values using $ref with dot notation path syntax:\n- Static value: \"fixed_value\" or 123\n- Dynamic reference: `{\"$ref\": \"session.metadata.field_name\"}`\n\nReferences are resolved at runtime from context:\n- session.metadata.* - Access session metadata fields\n- agent.metadata.* - Access agent metadata fields\n\nExample:\n `{\"query\": {\"$ref\": \".session.metadata.query\"}}`\n\nIf you want to have a real value `\"$ref\"` use `\"$$ref\"`, that is you can escape the first $ by using $$.","type":"object","additionalProperties":true,"example":{"custom_param":"value","limit":10}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineCorporaSearchToolConfiguration","description":"A corpora search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'corpora_search' for inline corpora search tool configurations.","default":"corpora_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the corpus search call such as the query. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query string, which is the question the user is asking. If not provided, will be filled in by the LLM.","type":"string","maxLength":5000,"example":"Am I allowed to bring pets to work?"}},"additionalProperties":false,"title":"CorporaSearchToolParameters"},"query_configuration":{"description":"User-configurable settings for the corpus search that are not exposed to the LLM.","type":"object","properties":{"search":{"description":"The parameters to search one or more corpora.","allOf":[{"type":"object","properties":{"corpora":{"description":"The corpora that you want to search.","type":"array","items":{"description":"A corpus with its identifying key for use in search operations within a customer account.","allOf":[{"description":"Configuration for search parameters specific to a single corpus within a customer account, including filters and semantics.","type":"object","properties":{"custom_dimensions":{"description":"The custom dimensions as additional weights.","type":"object","additionalProperties":{"type":"number","format":"double","nullable":false},"title":"CustomDimensions"},"metadata_filter":{"description":"The filter string used to narrow the search based on metadata attributes. The query against this corpus will be confined to document parts that match the `metadata_filter`. Only metadata fields set as `filter_attributes` on the corpus can be filtered. Filter syntax is similar to a SQL WHERE clause. See [metadata filters documentation](https://docs.vectara.com/docs/learn/metadata-search-filtering/filter-overview) for more information.","type":"string","maxLength":8000,"example":"doc.title = 'Annual Report'"},"lexical_interpolation":{"description":"How much to weigh lexical scores compared to the embedding score. 0 means lexical search is not used at all, and 1 means only lexical search is used.","type":"number","format":"float","minimum":0,"maximum":1,"example":0.005},"semantics":{"description":"Indicates whether to consider a query against this corpus as a query or a response.","type":"string","enum":["default","query","response"],"default":"default","title":"SearchSemantics"}},"title":"SearchCorpus"},{"type":"object","properties":{"corpus_key":{"description":"A user-provided key for a corpus.","type":"string","example":"my-corpus","pattern":"[a-zA-Z0-9_\\=\\-]+$","maxLength":50,"title":"CorpusKey"},"query":{"description":"Query for a particular corpus that will override the overall query if present.","type":"string","maxLength":5000,"example":"What are some important facts in my-corpus?"}}}],"required":["corpus_key"],"title":"KeyedSearchCorpus"},"minItems":1}}},{"type":"object","description":"Search parameters to retrieve knowledge for the query.","properties":{"offset":{"description":"Specifies how many results into the result to skip. This is useful for pagination.","type":"integer","format":"int32","default":0,"minimum":0},"limit":{"description":"The maximum number of results returned.","type":"integer","format":"int32","minimum":1,"default":10},"context_configuration":{"type":"object","description":"Configuration on the presentation of each document part in the result set. You can only use characters_before/after or sentences_before/after, but not both. If you specify both in the query, sentences_before/after takes precedence","properties":{"characters_before":{"description":"The number of characters that are shown before the matching document part. This is useful to show the context of the document part in the wider document. Ignored if `sentences_before` is set. Vectara will capture the full sentence that contains the captured characters, to not lose the meaning caused by a truncated word or sentence.","type":"integer","format":"int32"},"characters_after":{"description":"The number of characters that are shown after the matching document part. This is useful to show the context of the document part in the wider document. Ignored if `sentences_after` is set. Vectara will capture the full sentence that contains the captured characters, to not lose the meaning caused by a truncated word or sentence.","type":"integer","format":"int32"},"sentences_before":{"description":"The number of sentences that are shown before the matching document part. This is useful to show the context of the document part in the wider document.","type":"integer","format":"int32","default":0,"minimum":0,"example":2},"sentences_after":{"description":"The number of sentences that are shown after the matching document part. This is useful to show the context of the document part in the wider document.","type":"integer","format":"int32","default":0,"minimum":0,"example":2},"start_tag":{"description":"The tag that wraps the document part at the start. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the context before ends and the document part begins.","type":"string","example":""},"end_tag":{"description":"The tag that wraps the document part at the end. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the document part ends and the context after begins.","type":"string","example":""}},"example":{"sentences_before":2,"sentences_after":2,"start_tag":"","end_tag":""},"title":"ContextConfiguration"},"reranker":{"type":"object","description":"Rerank results of the search. Rerankers are very powerful tools to improve the order of search results. By default the search will use the most powerful reranker available to the customer's plan. To disable reranking, set the reranker `type` to `\"none\"`.","discriminator":{"propertyName":"type","mapping":{"customer_reranker":{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},"userfn":{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},"mmr":{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},"chain":{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},"none":{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}}},"oneOf":[{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}],"title":"SearchReranker"}},"example":{"limit":50},"title":"SearchParameters"}],"required":["corpora"],"title":"SearchCorporaParameters"},"generation":{"description":"The parameters to control generation.","type":"object","properties":{"enabled":{"description":"Whether generation is enabled for this query. This field is ignored if using chat.","type":"boolean","default":true},"generation_preset_name":{"description":"The preset values to use to feed the query results and other context to the model. \n\nA `generation_preset` is an object with a bundle of properties that specifies: \n* The `prompt_template` that is rendered and then sent to the LLM. \n* The LLM used. * `model_parameter`s such as temperature.\n\nAll of these properties except the model can be overridden by setting them in this object. Even when a `prompt_template` is set, the `generation_preset_name` is used to set the model used. See `model_parameters.model` if you want to set the model explicitly.\n\nIf `generation_preset_name` is not set, the Vectara platform will use the default model and prompt.'\n","type":"string","minLength":1,"example":"mockingbird-2.0"},"prompt_name":{"description":"Use `generation_preset_name` instead of `prompt_name`.","type":"string","minLength":1,"example":"mockingbird-2.0","deprecated":true},"max_used_search_results":{"description":"The maximum number of search results to be available to the prompt.","type":"integer","format":"int32","minimum":0,"default":5},"prompt_template":{"description":"Vectara manages both system and user roles and prompts for the generative LLM out of the box by default. However, users can override the `prompt_template` via this variable. The `prompt_template` is in the form of an Apache Velocity template. For more details on how to configure the `prompt_template`, see the [long-form documentation](https://docs.vectara.com/docs/prompts/vectara-prompt-engine).","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n"},"prompt_text":{"description":"This property is deprecated in favor of clearer naming. Use `prompt_template`. This property will be ignored if `prompt_template` is set.","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n","deprecated":true},"max_response_characters":{"description":"Controls the length of the generated output. This is a rough estimate and not a hard limit: the end output can be longer or shorter than this value. This is generally implemented by including the `max_response_characters` in the prompt, and the LLM's instruction following capability dictates how closely the generated output is limited.","type":"integer","format":"int32","example":300,"minimum":0},"response_language":{"description":"Languages that the Vectara platform supports.","type":"string","enum":["auto","eng","deu","fra","zho","kor","ara","rus","tha","nld","ita","por","spa","jpn","pol","tur","vie","ind","ces","ukr","ell","heb","fas","hin","urd","swe","ben","msa","ron"],"default":"auto","title":"Language"},"model_parameters":{"title":"ModelParameters","description":"The parameters for the model. WARNING: This is an experimental feature, and breakable at any point with virtually no notice. It is meant for experimentation to converge on optimal parameters that can then be set in the prompt definitions.","type":"object","properties":{"llm_name":{"description":"The model (e.g., `gpt-4`) to use for summarization. If specified, it will override the model behind `generation_preset_name`.","type":"string","example":"gpt4"},"max_tokens":{"description":"The maximum number of tokens to be returned by the model.","type":"integer","format":"int32","minimum":1},"temperature":{"description":"The sampling temperature to use. Higher values make the output more random, while lower values make it more focused and deterministic.","type":"number","format":"float"},"frequency_penalty":{"description":"Higher values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.","type":"number","format":"float"},"presence_penalty":{"description":"Higher values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.","type":"number","format":"float"}}},"citations":{"description":"Style the generator should use when making citations.","type":"object","properties":{"style":{"description":"The citation style that you want to use in the summary: \n* `numeric` - Citations formatted as simple numerals: \\[1\\], \\[2\\], etc.\n* `none` - Citations removed from text.\n* `html` - Citation formatted as a URL like `text_pattern`.\n* `markdown` - Formatted as `[text_pattern](url_pattern)`.\n","type":"string","enum":["none","numeric","html","markdown"]},"url_pattern":{"description":"The URL pattern if the citation_style is set to `html` or `markdown`. The pattern can access metadata attributes in the document or part. e.g. `https://my.doc/foo/{doc.id}/{part.id}` The default `url_pattern` is an empty string.","type":"string","example":"https://vectara.com/documents/{doc.id}"},"text_pattern":{"description":"The text pattern if the citation_style is set to `html` or `markdown`. This pattern sets the href for HTML or the text within `[]` in markdown, and defaults to N being the index of result if it is not set. The default citation style looks like `[N]()` for markdown. You can use metadata attributes in the `text_pattern`. For example, the pattern `{doc.title}` with citation style `markdown` would result in final citation output like `[Title]()` when the document's metadata includes `{\"title\":\"Title\"}`.","type":"string","example":"{doc.title}"}},"title":"CitationParameters"},"enable_factual_consistency_score":{"description":"Enable returning the factual consistency score with query results.","type":"boolean","default":true}},"title":"GenerationParameters"},"save_history":{"description":"Indicates whether to save the query to query history.","type":"boolean"}},"required":["search"],"title":"CorporaSearchQueryConfiguration"}},"required":["type","query_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineWebSearchToolConfiguration","description":"A web search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'web_search' for inline web search tool configurations.","default":"web_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the web search tool call such as limit etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query to execute.","type":"string","example":"latest AI developments 2024"},"limit":{"description":"Maximum number of results to return.","type":"integer","minimum":1,"example":10},"provider":{"description":"Search provider to use.","type":"string","enum":["tavily"],"example":"tavily"},"include_domains":{"description":"List of domains to specifically include in search results. When specified, results will ONLY come from these domains. Supports exact domains (e.g., \"github.com\"), subdomains (e.g., \"docs.github.com\"), and wildcard patterns (e.g., \"*.github.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["github.com","docs.github.com","*.stackoverflow.com"]},"exclude_domains":{"description":"List of domains to specifically exclude from search results. Supports exact domains (e.g., \"spam.com\"), subdomains (e.g., \"bad.spam.com\"), and wildcard patterns (e.g., \"*.spam.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["spam.com","unreliable-source.com"]}},"additionalProperties":false,"title":"WebSearchToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineLambdaToolConfiguration","description":"A lambda tool configuration defined inline in the agent for executing user-defined functions.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'lambda' for inline lambda tool configurations.","default":"lambda"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments that will be passed to the lambda function. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","additionalProperties":true,"example":{"custom_param":"value"}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineStructuredIndexingToolConfiguration","description":"A structured indexing tool configuration defined inline in the agent for indexing into the Vectara platform.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'structured_indexing' for inline structured indexing tool configurations.","default":"structured_indexing"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the structured indexing tool call such as corpus_key etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"corpus_key":{"description":"The key identifying the target corpus for document indexing. If not provided, will be filled in by the LLM.","type":"string","example":"my-knowledge-base"},"document_id":{"description":"The unique identifier for the document within the corpus, preferably human readable IDs.","type":"string","example":"annual_report_2024"},"title":{"description":"The title of the document being indexed.","type":"string","example":"2024 Annual ESG Report"},"description":{"description":"A brief description or summary of the document content.","type":"string","example":"Comprehensive environmental, social, and governance report"},"metadata":{"description":"The metadata key-value pairs to associate with the document. If present, this gets merged with existing artifact metadata.","type":"object","additionalProperties":true,"example":{"doc_type":"annual_report","year":2024,"department":"sustainability"}},"document":{"description":"The structured document to index with full hierarchical content.","type":"object","additionalProperties":true,"example":{"id":"annual_report_2024","type":"structured","title":"2024 Annual ESG Report"}}},"additionalProperties":false,"title":"StructuredIndexingToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineSubAgentToolConfiguration","description":"A sub-agent tool configuration defined inline in the agent for invoking specialized sub-agents.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'sub_agent' for inline sub-agent tool configurations.","default":"sub_agent"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the sub-agent tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"message":{"description":"The detailed task instructions for the sub-agent to perform autonomously.","type":"string","example":"Review the code changes in pull request \\#123 for security issues"},"session_tti_minutes":{"description":"Time to idle in minutes before the session expires.","type":"integer","format":"int64","minimum":1,"example":60}},"additionalProperties":false,"title":"SubAgentToolParameters"},"sub_agent_configuration":{"description":"User-configurable settings for the sub-agent tool. These parameters are never exposed to the agent.","type":"object","properties":{"agent_key":{"description":"A unique key that identifies an agent.","type":"string","pattern":"[0-9a-zA-Z_-]+$","minLength":1,"maxLength":50,"example":"customer_support","title":"AgentKey"}},"required":["agent_key"],"title":"SubAgentConfiguration"}},"required":["type","sub_agent_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineArtifactReadToolConfiguration","description":"An artifact read tool configuration defined inline in the agent for reading artifacts from the session workspace.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_read' for inline artifact read tool configurations.","default":"artifact_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to read.","type":"string","example":"art_abc123"},"encoding":{"description":"The encoding format for the content.","type":"string","enum":["raw","base64"],"example":"raw"},"start_line":{"description":"Optional starting line number (1-indexed).","type":"integer","format":"int32","example":100},"end_line":{"description":"Optional ending line number (1-indexed, inclusive).","type":"integer","format":"int32","example":200}},"additionalProperties":false,"title":"ArtifactReadToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineArtifactGrepToolConfiguration","description":"An artifact grep tool configuration defined inline in the agent for searching through artifact content.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_grep' for inline artifact grep tool configurations.","default":"artifact_grep"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact grep tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to search.","type":"string","example":"art_abc123"},"pattern":{"description":"The pattern to search for (supports grep regex).","type":"string","example":"error|exception"},"grep_options":{"description":"Optional grep command options.","type":"array","items":{"type":"string"},"example":["-i","-n"]}},"additionalProperties":false,"title":"ArtifactGrepToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineImageReadToolConfiguration","description":"An image read tool configuration defined inline in the agent for loading images into the conversation context.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'image_read' for inline image read tool configurations.","default":"image_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the image read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the image artifact to view.","type":"string","pattern":"^art_[a-z0-9_-]+$","example":"art_photo_a3f2"},"detail":{"description":"Detail level for image processing.","type":"string","enum":["auto","low","high"],"default":"auto","example":"auto"}},"additionalProperties":false,"title":"ImageReadToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineDocumentConversionToolConfiguration","description":"A document conversion tool configuration defined inline in the agent for converting document artifacts to various formats.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'document_conversion' for inline document conversion tool configurations.","default":"document_conversion"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the document conversion tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to convert.","type":"string","example":"art_abc123"},"output_format":{"description":"Output format for the converted document.","type":"string","enum":["markdown","structured_document"],"example":"markdown"},"description":{"description":"Optional description for the converted artifact.","type":"string","example":"PDF converted to markdown"}},"additionalProperties":false,"title":"DocumentConversionToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]}],"example":[{"type":"web_search","argument_override":{"limit":5,"include_domains":["github.com","stackoverflow.com"],"exclude_domains":["spam.com"]}}]},"example":{"customer_search":{"type":"corpora_search","argument_override":{"query":"customer support documentation"}}}},"model":{"title":"AgentModel","description":"Configuration for the model used in this step, including the model name and arbitrary parameters.","type":"object","properties":{"name":{"description":"The name of the model to use for this step.","type":"string","example":"gpt-4"},"parameters":{"description":"Arbitrary model-specific parameters that can be passed to the model.","type":"object","additionalProperties":true,"example":{"temperature":0.7,"max_tokens":1000,"top_p":0.9}},"retry_configuration":{"description":"Optional retry configuration for handling transient failures. When not provided, no retry is performed.","title":"RetryConfiguration","type":"object","properties":{"enabled":{"description":"Whether retry is enabled. Enabled by default to provide resilience against transient failures.","type":"boolean","default":true,"example":true},"max_retries":{"description":"Maximum number of retry attempts after initial failure.","type":"integer","minimum":0,"maximum":10,"default":3,"example":3},"initial_backoff_ms":{"description":"Initial backoff time in milliseconds before first retry.","type":"integer","minimum":100,"maximum":60000,"default":1000,"example":1000},"max_backoff_ms":{"description":"Maximum backoff time in milliseconds between retries.","type":"integer","minimum":1000,"maximum":300000,"default":30000,"example":30000},"backoff_factor":{"description":"Multiplication factor for exponential backoff between retries.","type":"number","format":"double","minimum":1,"maximum":10,"default":2,"example":2}}}},"required":["name"]},"first_step":{"title":"AgentStep","description":"A step in an agent's execution flow that defines how the agent processes and responds to input.","discriminator":{"propertyName":"type","mapping":{"conversational":{"title":"ConversationalAgentStep","description":"A step that receives instructions and responds through dialogue. This is a step that gets instructions and engages in conversation with users based on those instructions. This only type step supported, with no way to go next steps. A conversational step responds to an input following its instructions and uses the agent tools. The first response from the model will terminate processing the input.","type":"object","properties":{"type":{"description":"The type of step, which is always 'conversational' for this step type.","type":"string","default":"conversational","example":"conversational"},"instructions":{"description":"List of instructions that guide the agent's behavior in this step. If no instructions are given, the agent is instructed to be helpful and use tools.","type":"array","items":{"title":"AgentStepInstruction","description":"An instruction that can be used in an agent step, either by reference or defined inline.","discriminator":{"propertyName":"type","mapping":{"reference":{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},"inline":{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Request object for creating a new initial instruction.","type":"object","properties":{"type":{"description":"The type of instruction to create.","type":"string","default":"initial","example":"initial"},"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["type","name","template"],"x-vectaraParents":["CreateInstructionRequest"],"title":"CreateInitialInstructionRequest"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}}},"oneOf":[{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Request object for creating a new initial instruction.","type":"object","properties":{"type":{"description":"The type of instruction to create.","type":"string","default":"initial","example":"initial"},"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["type","name","template"],"x-vectaraParents":["CreateInstructionRequest"],"title":"CreateInitialInstructionRequest"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}],"example":[{"type":"reference","name":"Customer Support Initial Instruction","version":1},{"type":"inline","name":"Temporary On-the-fly Guideline","description":"A special instruction for this specific step only.","template_type":"velocity","template":"Please prioritize issues tagged with 'urgent' for the next hour."}]}},"output_parser":{"title":"AgentOutputParser","description":"Configuration for how the agent's output should be parsed and formatted.\n\nThe output parser determines how the agent's responses are processed before being returned to the user.\n","discriminator":{"propertyName":"type","mapping":{"default":{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]}}},"oneOf":[{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]}]}},"required":["type","instructions","output_parser"],"x-vectaraParents":["AgentStep"]}}},"oneOf":[{"title":"ConversationalAgentStep","description":"A step that receives instructions and responds through dialogue. This is a step that gets instructions and engages in conversation with users based on those instructions. This only type step supported, with no way to go next steps. A conversational step responds to an input following its instructions and uses the agent tools. The first response from the model will terminate processing the input.","type":"object","properties":{"type":{"description":"The type of step, which is always 'conversational' for this step type.","type":"string","default":"conversational","example":"conversational"},"instructions":{"description":"List of instructions that guide the agent's behavior in this step. If no instructions are given, the agent is instructed to be helpful and use tools.","type":"array","items":{"title":"AgentStepInstruction","description":"An instruction that can be used in an agent step, either by reference or defined inline.","discriminator":{"propertyName":"type","mapping":{"reference":{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},"inline":{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Request object for creating a new initial instruction.","type":"object","properties":{"type":{"description":"The type of instruction to create.","type":"string","default":"initial","example":"initial"},"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["type","name","template"],"x-vectaraParents":["CreateInstructionRequest"],"title":"CreateInitialInstructionRequest"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}}},"oneOf":[{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Request object for creating a new initial instruction.","type":"object","properties":{"type":{"description":"The type of instruction to create.","type":"string","default":"initial","example":"initial"},"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["type","name","template"],"x-vectaraParents":["CreateInstructionRequest"],"title":"CreateInitialInstructionRequest"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}],"example":[{"type":"reference","name":"Customer Support Initial Instruction","version":1},{"type":"inline","name":"Temporary On-the-fly Guideline","description":"A special instruction for this specific step only.","template_type":"velocity","template":"Please prioritize issues tagged with 'urgent' for the next hour."}]}},"output_parser":{"title":"AgentOutputParser","description":"Configuration for how the agent's output should be parsed and formatted.\n\nThe output parser determines how the agent's responses are processed before being returned to the user.\n","discriminator":{"propertyName":"type","mapping":{"default":{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]}}},"oneOf":[{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]}]}},"required":["type","instructions","output_parser"],"x-vectaraParents":["AgentStep"]}]},"metadata":{"description":"Arbitrary metadata associated with the agent for customization and configuration.","type":"object","additionalProperties":true,"example":{"department":"customer_service","version":"1.2.0","owner":"support-team"}},"enabled":{"description":"Whether the agent is currently enabled and available for use.","type":"boolean","default":true,"example":true},"created_at":{"description":"Timestamp when the agent was created.","type":"string","format":"date-time","example":"2024-01-15T10:30:00Z"},"updated_at":{"description":"Timestamp when the agent was last updated.","type":"string","format":"date-time","example":"2024-01-16T14:45:00Z"}},"required":["key","name","tool_configurations","model","first_step","enabled"],"title":"Agent"}}}},"400":{"description":"Agent creation request was malformed or contains invalid references.","content":{"application/json":{"schema":{"description":"Error returned when a request contains invalid parameters or violates schema validation.","type":"object","properties":{"field_errors":{"description":"The errors that relate to specific fields in the request.","type":"object","additionalProperties":{"type":"string"}},"messages":{"type":"array","items":{"title":"message","type":"string"}},"request_id":{"description":"The ID of the request that can be used to help Vectara support debug what went wrong.","type":"string"}},"title":"BadRequestError"}}}},"403":{"description":"Permissions do not allow creating agents.","content":{"application/json":{"schema":{"description":"A general error response with an error code and message.","type":"object","properties":{"messages":{"description":"The messages describing why the error occurred.","type":"array","items":{"title":"message","type":"string","example":"Internal server error."}},"request_id":{"description":"The ID of the request that can be used to help Vectara support debug what went wrong.","type":"string"}},"title":"Error"}}}}}}
+ responses={{"201":{"description":"The response includes the complete agent configuration with system-generated fields including the unique agent key, creation timestamp, and update timestamp.","content":{"application/json":{"schema":{"description":"An AI agent that can use tools to provide intelligent responses and actions.","type":"object","properties":{"key":{"description":"A unique key that identifies an agent.","type":"string","pattern":"[0-9a-zA-Z_-]+$","minLength":1,"maxLength":50,"example":"customer_support","title":"AgentKey"},"name":{"description":"The human-readable name of an agent.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Agent","title":"AgentName"},"description":{"description":"A detailed description of the agent's purpose and capabilities.","type":"string","example":"An AI agent specialized in handling customer support inquiries using company documentation and support tools."},"tool_configurations":{"description":"A map of tool configurations available to the agent. The key is the name of the tool configuration and the value is an agent tool configuration.","type":"object","additionalProperties":{"nullable":true,"title":"AgentToolConfiguration","description":"A tool configuration that can be used by an agent, defined inline with a specific configuration type.","discriminator":{"propertyName":"type","mapping":{"dynamic_vectara":{"title":"InlineDynamicVectaraToolConfiguration","description":"An inline configuration for built-in Vectara tools that have implementations within the platform but do not have a dedicated configuration type schema. Use the List Tools endpoint to discover available tools and obtain the `tool_id` required for this configuration.\n","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'dynamic_vectara' for generic Vectara tool configurations.","default":"dynamic_vectara"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for tool calls. The key specifies the location in the tool arguments to overide, and the value specifies what to override with. The LLM will not be able to change the parameters, nor know those values exist within the tool.\n\nThe values can also be dynamic references to context values using $ref with dot notation path syntax:\n- Static value: \"fixed_value\" or 123\n- Dynamic reference: `{\"$ref\": \"session.metadata.field_name\"}`\n\nReferences are resolved at runtime from context:\n- session.metadata.* - Access session metadata fields\n- agent.metadata.* - Access agent metadata fields\n\nExample:\n `{\"query\": {\"$ref\": \".session.metadata.query\"}}`\n\nIf you want to have a real value `\"$ref\"` use `\"$$ref\"`, that is you can escape the first $ by using $$.","type":"object","additionalProperties":true,"example":{"custom_param":"value","limit":10}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},"mcp":{"title":"InlineMcpToolConfiguration","description":"An MCP tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'mcp' for inline MCP tool configurations.","default":"mcp"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for tool calls. The key specifies the location in the tool arguments to overide, and the value specifies what to override with. The LLM will not be able to change the parameters, nor know those values exist within the tool.\n\nThe values can also be dynamic references to context values using $ref with dot notation path syntax:\n- Static value: \"fixed_value\" or 123\n- Dynamic reference: `{\"$ref\": \"session.metadata.field_name\"}`\n\nReferences are resolved at runtime from context:\n- session.metadata.* - Access session metadata fields\n- agent.metadata.* - Access agent metadata fields\n\nExample:\n `{\"query\": {\"$ref\": \".session.metadata.query\"}}`\n\nIf you want to have a real value `\"$ref\"` use `\"$$ref\"`, that is you can escape the first $ by using $$.","type":"object","additionalProperties":true,"example":{"custom_param":"value","limit":10}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},"corpora_search":{"title":"InlineCorporaSearchToolConfiguration","description":"A corpora search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'corpora_search' for inline corpora search tool configurations.","default":"corpora_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the corpus search call such as the query. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query string, which is the question the user is asking. If not provided, will be filled in by the agent.","type":"string","maxLength":5000,"example":"Am I allowed to bring pets to work?"}},"additionalProperties":false,"title":"CorporaSearchToolParameters"},"query_configuration":{"description":"User-configurable settings for the corpus search that are not exposed to the LLM. Supports dynamic references for runtime resolution from session context.","title":"AgentCorporaSearchQueryConfiguration","type":"object","properties":{"search":{"title":"AgentSearchCorporaParameters","description":"Agent-specific search parameters that support eager references.","type":"object","properties":{"corpora":{"description":"The corpora to search, with support for eager references.","type":"array","items":{"title":"AgentKeyedSearchCorpus","description":"Agent-specific keyed search corpus that supports eager references for corpus_key and metadata_filter.","type":"object","properties":{"corpus_key":{"description":"The corpus to search. Can be either:\n- A static string: \"my-corpus\"\n- An EagerReference object: {\"$ref\": \"session.metadata.corpus\"}\n\nWhen an EagerReference is provided, the $ref path is resolved from the session context\nat the start of each turn, before LLM processing begins.\n","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"custom_dimensions":{"description":"The custom dimensions as additional weights.","type":"object","additionalProperties":{"type":"number","format":"double","nullable":false},"title":"CustomDimensions"},"metadata_filter":{"description":"The filter to narrow search results. Can be either:\n- A static string: \"doc.department = 'engineering'\"\n- An EagerReference object: {\"$ref\": \"session.metadata.filters.user\"}\n\nWhen an EagerReference is provided, the $ref path is resolved from the session context\nat the start of each turn, before LLM processing begins.\n","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"lexical_interpolation":{"description":"How much to weigh lexical scores compared to the embedding score.","type":"number","format":"float","minimum":0,"maximum":1},"semantics":{"description":"Indicates whether to consider a query against this corpus as a query or a response.","type":"string","enum":["default","query","response"],"default":"default","title":"SearchSemantics"},"query":{"description":"Query override for this specific corpus.","type":"string","maxLength":5000}},"required":["corpus_key"]},"minItems":1},"offset":{"description":"Number of results to skip for pagination.","type":"integer","format":"int32","minimum":0,"default":0},"limit":{"description":"Maximum number of results to return.","type":"integer","format":"int32","minimum":1,"default":10},"context_configuration":{"type":"object","description":"Configuration on the presentation of each document part in the result set. You can only use characters_before/after or sentences_before/after, but not both. If you specify both in the query, sentences_before/after takes precedence","properties":{"characters_before":{"description":"The number of characters that are shown before the matching document part. This is useful to show the context of the document part in the wider document. Ignored if `sentences_before` is set. Vectara will capture the full sentence that contains the captured characters, to not lose the meaning caused by a truncated word or sentence.","type":"integer","format":"int32"},"characters_after":{"description":"The number of characters that are shown after the matching document part. This is useful to show the context of the document part in the wider document. Ignored if `sentences_after` is set. Vectara will capture the full sentence that contains the captured characters, to not lose the meaning caused by a truncated word or sentence.","type":"integer","format":"int32"},"sentences_before":{"description":"The number of sentences that are shown before the matching document part. This is useful to show the context of the document part in the wider document.","type":"integer","format":"int32","default":0,"minimum":0,"example":2},"sentences_after":{"description":"The number of sentences that are shown after the matching document part. This is useful to show the context of the document part in the wider document.","type":"integer","format":"int32","default":0,"minimum":0,"example":2},"start_tag":{"description":"The tag that wraps the document part at the start. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the context before ends and the document part begins.","type":"string","example":""},"end_tag":{"description":"The tag that wraps the document part at the end. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the document part ends and the context after begins.","type":"string","example":""}},"example":{"sentences_before":2,"sentences_after":2,"start_tag":"","end_tag":""},"title":"ContextConfiguration"},"reranker":{"type":"object","description":"Rerank results of the search. Rerankers are very powerful tools to improve the order of search results. By default the search will use the most powerful reranker available to the customer's plan. To disable reranking, set the reranker `type` to `\"none\"`.","discriminator":{"propertyName":"type","mapping":{"customer_reranker":{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},"userfn":{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},"mmr":{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},"chain":{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},"none":{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}}},"oneOf":[{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}],"title":"SearchReranker"}},"required":["corpora"]},"generation":{"description":"The parameters to control generation.","type":"object","properties":{"enabled":{"description":"Whether generation is enabled for this query. This field is ignored if using chat.","type":"boolean","default":true},"generation_preset_name":{"description":"The preset values to use to feed the query results and other context to the model. \n\nA `generation_preset` is an object with a bundle of properties that specifies: \n* The `prompt_template` that is rendered and then sent to the LLM. \n* The LLM used. * `model_parameter`s such as temperature.\n\nAll of these properties except the model can be overridden by setting them in this object. Even when a `prompt_template` is set, the `generation_preset_name` is used to set the model used. See `model_parameters.model` if you want to set the model explicitly.\n\nIf `generation_preset_name` is not set, the Vectara platform will use the default model and prompt.'\n","type":"string","minLength":1,"example":"mockingbird-2.0"},"prompt_name":{"description":"Use `generation_preset_name` instead of `prompt_name`.","type":"string","minLength":1,"example":"mockingbird-2.0","deprecated":true},"max_used_search_results":{"description":"The maximum number of search results to be available to the prompt.","type":"integer","format":"int32","minimum":0,"default":5},"prompt_template":{"description":"Vectara manages both system and user roles and prompts for the generative LLM out of the box by default. However, users can override the `prompt_template` via this variable. The `prompt_template` is in the form of an Apache Velocity template. For more details on how to configure the `prompt_template`, see the [long-form documentation](https://docs.vectara.com/docs/prompts/vectara-prompt-engine).","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n"},"prompt_text":{"description":"This property is deprecated in favor of clearer naming. Use `prompt_template`. This property will be ignored if `prompt_template` is set.","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n","deprecated":true},"max_response_characters":{"description":"Controls the length of the generated output. This is a rough estimate and not a hard limit: the end output can be longer or shorter than this value. This is generally implemented by including the `max_response_characters` in the prompt, and the LLM's instruction following capability dictates how closely the generated output is limited.","type":"integer","format":"int32","example":300,"minimum":0},"response_language":{"description":"Languages that the Vectara platform supports.","type":"string","enum":["auto","eng","deu","fra","zho","kor","ara","rus","tha","nld","ita","por","spa","jpn","pol","tur","vie","ind","ces","ukr","ell","heb","fas","hin","urd","swe","ben","msa","ron"],"default":"auto","title":"Language"},"model_parameters":{"title":"ModelParameters","description":"The parameters for the model. WARNING: This is an experimental feature, and breakable at any point with virtually no notice. It is meant for experimentation to converge on optimal parameters that can then be set in the prompt definitions.","type":"object","properties":{"llm_name":{"description":"The model (e.g., `gpt-4`) to use for summarization. If specified, it will override the model behind `generation_preset_name`.","type":"string","example":"gpt4"},"max_tokens":{"description":"The maximum number of tokens to be returned by the model.","type":"integer","format":"int32","minimum":1},"temperature":{"description":"The sampling temperature to use. Higher values make the output more random, while lower values make it more focused and deterministic.","type":"number","format":"float"},"frequency_penalty":{"description":"Higher values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.","type":"number","format":"float"},"presence_penalty":{"description":"Higher values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.","type":"number","format":"float"}}},"citations":{"description":"Style the generator should use when making citations.","type":"object","properties":{"style":{"description":"The citation style that you want to use in the summary: \n* `numeric` - Citations formatted as simple numerals: \\[1\\], \\[2\\], etc.\n* `none` - Citations removed from text.\n* `html` - Citation formatted as a URL like `text_pattern`.\n* `markdown` - Formatted as `[text_pattern](url_pattern)`.\n","type":"string","enum":["none","numeric","html","markdown"]},"url_pattern":{"description":"The URL pattern if the citation_style is set to `html` or `markdown`. The pattern can access metadata attributes in the document or part. e.g. `https://my.doc/foo/{doc.id}/{part.id}` The default `url_pattern` is an empty string.","type":"string","example":"https://vectara.com/documents/{doc.id}"},"text_pattern":{"description":"The text pattern if the citation_style is set to `html` or `markdown`. This pattern sets the href for HTML or the text within `[]` in markdown, and defaults to N being the index of result if it is not set. The default citation style looks like `[N]()` for markdown. You can use metadata attributes in the `text_pattern`. For example, the pattern `{doc.title}` with citation style `markdown` would result in final citation output like `[Title]()` when the document's metadata includes `{\"title\":\"Title\"}`.","type":"string","example":"{doc.title}"}},"title":"CitationParameters"},"enable_factual_consistency_score":{"description":"Enable returning the factual consistency score with query results.","type":"boolean","default":true}},"title":"GenerationParameters"},"save_history":{"description":"Whether to save the query to history.","type":"boolean"}},"required":["search"]}},"required":["type","query_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},"web_search":{"title":"InlineWebSearchToolConfiguration","description":"A web search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'web_search' for inline web search tool configurations.","default":"web_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the web search tool call such as limit etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query to execute.","type":"string","example":"latest AI developments 2024"},"limit":{"description":"Maximum number of results to return.","type":"integer","minimum":1,"maximum":20,"example":10},"provider":{"description":"Search provider to use.","type":"string","enum":["tavily"],"example":"tavily"},"include_domains":{"description":"List of domains to specifically include in search results. When specified, results will ONLY come from these domains. Supports exact domains (e.g., \"github.com\"), subdomains (e.g., \"docs.github.com\"), and wildcard patterns (e.g., \"*.github.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["github.com","docs.github.com","*.stackoverflow.com"]},"exclude_domains":{"description":"List of domains to specifically exclude from search results. Supports exact domains (e.g., \"spam.com\"), subdomains (e.g., \"bad.spam.com\"), and wildcard patterns (e.g., \"*.spam.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["spam.com","unreliable-source.com"]}},"additionalProperties":false,"title":"WebSearchToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"web_get":{"title":"InlineWebGetToolConfiguration","description":"A web get tool configuration defined inline in the agent for fetching content from URLs.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'web_get' for inline web get tool configurations.","default":"web_get"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the web get tool call. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"url":{"description":"The URL to fetch content from.","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"method":{"description":"HTTP method to use.","type":"string","enum":["GET","POST","PUT","DELETE","HEAD"]},"headers":{"description":"HTTP headers to include in the request.","oneOf":[{"type":"object","additionalProperties":{"type":"string"}},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"body":{"description":"Request body for POST/PUT requests.","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"follow_redirects":{"description":"Whether to follow HTTP redirects.","oneOf":[{"type":"boolean"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"timeout_seconds":{"description":"Request timeout in seconds.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"head_lines":{"description":"Number of lines from start to include in response.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"tail_lines":{"description":"Number of lines from end to include in response.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"ssl_verify":{"description":"Whether to verify SSL certificates.","oneOf":[{"type":"boolean"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"max_content_bytes":{"description":"Maximum response size in bytes before truncation.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]}},"additionalProperties":false,"title":"WebGetToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"lambda":{"title":"InlineLambdaToolConfiguration","description":"A lambda tool configuration defined inline in the agent for executing user-defined functions.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'lambda' for inline lambda tool configurations.","default":"lambda"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments that will be passed to the lambda function. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","additionalProperties":true,"example":{"custom_param":"value"}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},"structured_indexing":{"title":"InlineStructuredIndexingToolConfiguration","description":"A structured indexing tool configuration defined inline in the agent for indexing into the Vectara platform.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'structured_indexing' for inline structured indexing tool configurations.","default":"structured_indexing"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the structured indexing tool call such as corpus_key etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"corpus_key":{"description":"The key identifying the target corpus for document indexing. If not provided, will be filled in by the agent.","type":"string","example":"my-knowledge-base"},"document_id":{"description":"The unique identifier for the document within the corpus, preferably human readable IDs.","type":"string","example":"annual_report_2024"},"title":{"description":"The title of the document being indexed.","type":"string","example":"2024 Annual ESG Report"},"description":{"description":"A brief description or summary of the document content.","type":"string","example":"Comprehensive environmental, social, and governance report"},"metadata":{"description":"The metadata key-value pairs to associate with the document. If present, this gets merged with existing artifact metadata.","type":"object","additionalProperties":true,"example":{"doc_type":"annual_report","year":2024,"department":"sustainability"}},"document":{"description":"The structured document to index with full hierarchical content.","type":"object","additionalProperties":true,"example":{"id":"annual_report_2024","type":"structured","title":"2024 Annual ESG Report"}}},"additionalProperties":false,"title":"StructuredIndexingToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"sub_agent":{"title":"InlineSubAgentToolConfiguration","description":"A sub-agent tool configuration defined inline in the agent for invoking specialized sub-agents.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'sub_agent' for inline sub-agent tool configurations.","default":"sub_agent"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the sub-agent tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"message":{"description":"The detailed task instructions for the sub-agent to perform autonomously.","type":"string","example":"Review the code changes in pull request \\#123 for security issues"},"session_tti_minutes":{"description":"Time to idle in minutes before the session expires.","type":"integer","format":"int64","minimum":1,"example":60}},"additionalProperties":false,"title":"SubAgentToolParameters"},"sub_agent_configuration":{"description":"User-configurable settings for the sub-agent tool. These parameters are never exposed to the agent.","type":"object","properties":{"agent_key":{"description":"A unique key that identifies an agent.","type":"string","pattern":"[0-9a-zA-Z_-]+$","minLength":1,"maxLength":50,"example":"customer_support","title":"AgentKey"},"session_mode":{"description":"Controls session behavior for sub-agent invocations:\n- llm_controlled: LLM decides whether to create new or resume existing session\n- persistent: Always reuse the same session (created on first invocation)\n- ephemeral: Always create a new session on each invocation\n","type":"string","enum":["llm_controlled","persistent","ephemeral"],"default":"llm_controlled","example":"llm_controlled","title":"SubAgentSessionMode"},"session_metadata":{"description":"Optional metadata to associate with the sub-agent session. Can contain any key-value pairs.","type":"object","additionalProperties":true,"example":{"source":"parent_agent","task_type":"code_review"}}},"required":["agent_key"],"title":"SubAgentConfiguration"}},"required":["type","sub_agent_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},"artifact_read":{"title":"InlineArtifactReadToolConfiguration","description":"An artifact read tool configuration defined inline in the agent for reading artifacts from the session workspace.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_read' for inline artifact read tool configurations.","default":"artifact_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to read.","type":"string","example":"art_abc123"},"encoding":{"description":"The encoding format for the content.","type":"string","enum":["raw","base64"],"example":"raw"},"start_line":{"description":"Optional starting line number (1-indexed).","type":"integer","format":"int32","example":100},"end_line":{"description":"Optional ending line number (1-indexed, inclusive).","type":"integer","format":"int32","example":200}},"additionalProperties":false,"title":"ArtifactReadToolParameters"},"tool_configuration":{"description":"User-configurable settings for the artifact read tool.","type":"object","properties":{"max_size_bytes":{"description":"Maximum file size in bytes for full reads without line ranges. Defaults to 256KB.","type":"integer","format":"int64","minimum":1,"maximum":10485760,"default":262144},"max_lines":{"description":"Maximum number of lines for range-based reads. Defaults to 200.","type":"integer","format":"int32","minimum":1,"maximum":10000,"default":200}},"title":"ArtifactReadConfiguration"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"artifact_grep":{"title":"InlineArtifactGrepToolConfiguration","description":"An artifact grep tool configuration defined inline in the agent for searching through artifact content.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_grep' for inline artifact grep tool configurations.","default":"artifact_grep"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact grep tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to search.","type":"string","example":"art_abc123"},"pattern":{"description":"The pattern to search for (supports grep regex).","type":"string","example":"error|exception"},"grep_options":{"description":"Optional grep command options.","type":"array","items":{"type":"string"},"example":["-i","-n"]}},"additionalProperties":false,"title":"ArtifactGrepToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"image_read":{"title":"InlineImageReadToolConfiguration","description":"An image read tool configuration defined inline in the agent for loading images into the conversation context.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'image_read' for inline image read tool configurations.","default":"image_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the image read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the image artifact to view.","type":"string","pattern":"^art_[a-z0-9_-]+$","example":"art_photo_a3f2"},"detail":{"description":"Detail level for image processing.","type":"string","enum":["auto","low","high"],"default":"auto","example":"auto"}},"additionalProperties":false,"title":"ImageReadToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"document_conversion":{"title":"InlineDocumentConversionToolConfiguration","description":"A document conversion tool configuration defined inline in the agent for converting document artifacts to various formats.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'document_conversion' for inline document conversion tool configurations.","default":"document_conversion"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the document conversion tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to convert.","type":"string","example":"art_abc123"},"output_format":{"description":"Output format for the converted document.","type":"string","enum":["markdown","structured_document"],"example":"markdown"},"description":{"description":"Optional description for the converted artifact.","type":"string","example":"PDF converted to markdown"}},"additionalProperties":false,"title":"DocumentConversionToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]}}},"oneOf":[{"title":"InlineDynamicVectaraToolConfiguration","description":"An inline configuration for built-in Vectara tools that have implementations within the platform but do not have a dedicated configuration type schema. Use the List Tools endpoint to discover available tools and obtain the `tool_id` required for this configuration.\n","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'dynamic_vectara' for generic Vectara tool configurations.","default":"dynamic_vectara"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for tool calls. The key specifies the location in the tool arguments to overide, and the value specifies what to override with. The LLM will not be able to change the parameters, nor know those values exist within the tool.\n\nThe values can also be dynamic references to context values using $ref with dot notation path syntax:\n- Static value: \"fixed_value\" or 123\n- Dynamic reference: `{\"$ref\": \"session.metadata.field_name\"}`\n\nReferences are resolved at runtime from context:\n- session.metadata.* - Access session metadata fields\n- agent.metadata.* - Access agent metadata fields\n\nExample:\n `{\"query\": {\"$ref\": \".session.metadata.query\"}}`\n\nIf you want to have a real value `\"$ref\"` use `\"$$ref\"`, that is you can escape the first $ by using $$.","type":"object","additionalProperties":true,"example":{"custom_param":"value","limit":10}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineMcpToolConfiguration","description":"An MCP tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'mcp' for inline MCP tool configurations.","default":"mcp"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for tool calls. The key specifies the location in the tool arguments to overide, and the value specifies what to override with. The LLM will not be able to change the parameters, nor know those values exist within the tool.\n\nThe values can also be dynamic references to context values using $ref with dot notation path syntax:\n- Static value: \"fixed_value\" or 123\n- Dynamic reference: `{\"$ref\": \"session.metadata.field_name\"}`\n\nReferences are resolved at runtime from context:\n- session.metadata.* - Access session metadata fields\n- agent.metadata.* - Access agent metadata fields\n\nExample:\n `{\"query\": {\"$ref\": \".session.metadata.query\"}}`\n\nIf you want to have a real value `\"$ref\"` use `\"$$ref\"`, that is you can escape the first $ by using $$.","type":"object","additionalProperties":true,"example":{"custom_param":"value","limit":10}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineCorporaSearchToolConfiguration","description":"A corpora search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'corpora_search' for inline corpora search tool configurations.","default":"corpora_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the corpus search call such as the query. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query string, which is the question the user is asking. If not provided, will be filled in by the agent.","type":"string","maxLength":5000,"example":"Am I allowed to bring pets to work?"}},"additionalProperties":false,"title":"CorporaSearchToolParameters"},"query_configuration":{"description":"User-configurable settings for the corpus search that are not exposed to the LLM. Supports dynamic references for runtime resolution from session context.","title":"AgentCorporaSearchQueryConfiguration","type":"object","properties":{"search":{"title":"AgentSearchCorporaParameters","description":"Agent-specific search parameters that support eager references.","type":"object","properties":{"corpora":{"description":"The corpora to search, with support for eager references.","type":"array","items":{"title":"AgentKeyedSearchCorpus","description":"Agent-specific keyed search corpus that supports eager references for corpus_key and metadata_filter.","type":"object","properties":{"corpus_key":{"description":"The corpus to search. Can be either:\n- A static string: \"my-corpus\"\n- An EagerReference object: {\"$ref\": \"session.metadata.corpus\"}\n\nWhen an EagerReference is provided, the $ref path is resolved from the session context\nat the start of each turn, before LLM processing begins.\n","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"custom_dimensions":{"description":"The custom dimensions as additional weights.","type":"object","additionalProperties":{"type":"number","format":"double","nullable":false},"title":"CustomDimensions"},"metadata_filter":{"description":"The filter to narrow search results. Can be either:\n- A static string: \"doc.department = 'engineering'\"\n- An EagerReference object: {\"$ref\": \"session.metadata.filters.user\"}\n\nWhen an EagerReference is provided, the $ref path is resolved from the session context\nat the start of each turn, before LLM processing begins.\n","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"lexical_interpolation":{"description":"How much to weigh lexical scores compared to the embedding score.","type":"number","format":"float","minimum":0,"maximum":1},"semantics":{"description":"Indicates whether to consider a query against this corpus as a query or a response.","type":"string","enum":["default","query","response"],"default":"default","title":"SearchSemantics"},"query":{"description":"Query override for this specific corpus.","type":"string","maxLength":5000}},"required":["corpus_key"]},"minItems":1},"offset":{"description":"Number of results to skip for pagination.","type":"integer","format":"int32","minimum":0,"default":0},"limit":{"description":"Maximum number of results to return.","type":"integer","format":"int32","minimum":1,"default":10},"context_configuration":{"type":"object","description":"Configuration on the presentation of each document part in the result set. You can only use characters_before/after or sentences_before/after, but not both. If you specify both in the query, sentences_before/after takes precedence","properties":{"characters_before":{"description":"The number of characters that are shown before the matching document part. This is useful to show the context of the document part in the wider document. Ignored if `sentences_before` is set. Vectara will capture the full sentence that contains the captured characters, to not lose the meaning caused by a truncated word or sentence.","type":"integer","format":"int32"},"characters_after":{"description":"The number of characters that are shown after the matching document part. This is useful to show the context of the document part in the wider document. Ignored if `sentences_after` is set. Vectara will capture the full sentence that contains the captured characters, to not lose the meaning caused by a truncated word or sentence.","type":"integer","format":"int32"},"sentences_before":{"description":"The number of sentences that are shown before the matching document part. This is useful to show the context of the document part in the wider document.","type":"integer","format":"int32","default":0,"minimum":0,"example":2},"sentences_after":{"description":"The number of sentences that are shown after the matching document part. This is useful to show the context of the document part in the wider document.","type":"integer","format":"int32","default":0,"minimum":0,"example":2},"start_tag":{"description":"The tag that wraps the document part at the start. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the context before ends and the document part begins.","type":"string","example":""},"end_tag":{"description":"The tag that wraps the document part at the end. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the document part ends and the context after begins.","type":"string","example":""}},"example":{"sentences_before":2,"sentences_after":2,"start_tag":"","end_tag":""},"title":"ContextConfiguration"},"reranker":{"type":"object","description":"Rerank results of the search. Rerankers are very powerful tools to improve the order of search results. By default the search will use the most powerful reranker available to the customer's plan. To disable reranking, set the reranker `type` to `\"none\"`.","discriminator":{"propertyName":"type","mapping":{"customer_reranker":{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},"userfn":{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},"mmr":{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},"chain":{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},"none":{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}}},"oneOf":[{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}],"title":"SearchReranker"}},"required":["corpora"]},"generation":{"description":"The parameters to control generation.","type":"object","properties":{"enabled":{"description":"Whether generation is enabled for this query. This field is ignored if using chat.","type":"boolean","default":true},"generation_preset_name":{"description":"The preset values to use to feed the query results and other context to the model. \n\nA `generation_preset` is an object with a bundle of properties that specifies: \n* The `prompt_template` that is rendered and then sent to the LLM. \n* The LLM used. * `model_parameter`s such as temperature.\n\nAll of these properties except the model can be overridden by setting them in this object. Even when a `prompt_template` is set, the `generation_preset_name` is used to set the model used. See `model_parameters.model` if you want to set the model explicitly.\n\nIf `generation_preset_name` is not set, the Vectara platform will use the default model and prompt.'\n","type":"string","minLength":1,"example":"mockingbird-2.0"},"prompt_name":{"description":"Use `generation_preset_name` instead of `prompt_name`.","type":"string","minLength":1,"example":"mockingbird-2.0","deprecated":true},"max_used_search_results":{"description":"The maximum number of search results to be available to the prompt.","type":"integer","format":"int32","minimum":0,"default":5},"prompt_template":{"description":"Vectara manages both system and user roles and prompts for the generative LLM out of the box by default. However, users can override the `prompt_template` via this variable. The `prompt_template` is in the form of an Apache Velocity template. For more details on how to configure the `prompt_template`, see the [long-form documentation](https://docs.vectara.com/docs/prompts/vectara-prompt-engine).","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n"},"prompt_text":{"description":"This property is deprecated in favor of clearer naming. Use `prompt_template`. This property will be ignored if `prompt_template` is set.","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n","deprecated":true},"max_response_characters":{"description":"Controls the length of the generated output. This is a rough estimate and not a hard limit: the end output can be longer or shorter than this value. This is generally implemented by including the `max_response_characters` in the prompt, and the LLM's instruction following capability dictates how closely the generated output is limited.","type":"integer","format":"int32","example":300,"minimum":0},"response_language":{"description":"Languages that the Vectara platform supports.","type":"string","enum":["auto","eng","deu","fra","zho","kor","ara","rus","tha","nld","ita","por","spa","jpn","pol","tur","vie","ind","ces","ukr","ell","heb","fas","hin","urd","swe","ben","msa","ron"],"default":"auto","title":"Language"},"model_parameters":{"title":"ModelParameters","description":"The parameters for the model. WARNING: This is an experimental feature, and breakable at any point with virtually no notice. It is meant for experimentation to converge on optimal parameters that can then be set in the prompt definitions.","type":"object","properties":{"llm_name":{"description":"The model (e.g., `gpt-4`) to use for summarization. If specified, it will override the model behind `generation_preset_name`.","type":"string","example":"gpt4"},"max_tokens":{"description":"The maximum number of tokens to be returned by the model.","type":"integer","format":"int32","minimum":1},"temperature":{"description":"The sampling temperature to use. Higher values make the output more random, while lower values make it more focused and deterministic.","type":"number","format":"float"},"frequency_penalty":{"description":"Higher values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.","type":"number","format":"float"},"presence_penalty":{"description":"Higher values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.","type":"number","format":"float"}}},"citations":{"description":"Style the generator should use when making citations.","type":"object","properties":{"style":{"description":"The citation style that you want to use in the summary: \n* `numeric` - Citations formatted as simple numerals: \\[1\\], \\[2\\], etc.\n* `none` - Citations removed from text.\n* `html` - Citation formatted as a URL like `text_pattern`.\n* `markdown` - Formatted as `[text_pattern](url_pattern)`.\n","type":"string","enum":["none","numeric","html","markdown"]},"url_pattern":{"description":"The URL pattern if the citation_style is set to `html` or `markdown`. The pattern can access metadata attributes in the document or part. e.g. `https://my.doc/foo/{doc.id}/{part.id}` The default `url_pattern` is an empty string.","type":"string","example":"https://vectara.com/documents/{doc.id}"},"text_pattern":{"description":"The text pattern if the citation_style is set to `html` or `markdown`. This pattern sets the href for HTML or the text within `[]` in markdown, and defaults to N being the index of result if it is not set. The default citation style looks like `[N]()` for markdown. You can use metadata attributes in the `text_pattern`. For example, the pattern `{doc.title}` with citation style `markdown` would result in final citation output like `[Title]()` when the document's metadata includes `{\"title\":\"Title\"}`.","type":"string","example":"{doc.title}"}},"title":"CitationParameters"},"enable_factual_consistency_score":{"description":"Enable returning the factual consistency score with query results.","type":"boolean","default":true}},"title":"GenerationParameters"},"save_history":{"description":"Whether to save the query to history.","type":"boolean"}},"required":["search"]}},"required":["type","query_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineWebSearchToolConfiguration","description":"A web search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'web_search' for inline web search tool configurations.","default":"web_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the web search tool call such as limit etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query to execute.","type":"string","example":"latest AI developments 2024"},"limit":{"description":"Maximum number of results to return.","type":"integer","minimum":1,"maximum":20,"example":10},"provider":{"description":"Search provider to use.","type":"string","enum":["tavily"],"example":"tavily"},"include_domains":{"description":"List of domains to specifically include in search results. When specified, results will ONLY come from these domains. Supports exact domains (e.g., \"github.com\"), subdomains (e.g., \"docs.github.com\"), and wildcard patterns (e.g., \"*.github.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["github.com","docs.github.com","*.stackoverflow.com"]},"exclude_domains":{"description":"List of domains to specifically exclude from search results. Supports exact domains (e.g., \"spam.com\"), subdomains (e.g., \"bad.spam.com\"), and wildcard patterns (e.g., \"*.spam.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["spam.com","unreliable-source.com"]}},"additionalProperties":false,"title":"WebSearchToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineWebGetToolConfiguration","description":"A web get tool configuration defined inline in the agent for fetching content from URLs.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'web_get' for inline web get tool configurations.","default":"web_get"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the web get tool call. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"url":{"description":"The URL to fetch content from.","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"method":{"description":"HTTP method to use.","type":"string","enum":["GET","POST","PUT","DELETE","HEAD"]},"headers":{"description":"HTTP headers to include in the request.","oneOf":[{"type":"object","additionalProperties":{"type":"string"}},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"body":{"description":"Request body for POST/PUT requests.","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"follow_redirects":{"description":"Whether to follow HTTP redirects.","oneOf":[{"type":"boolean"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"timeout_seconds":{"description":"Request timeout in seconds.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"head_lines":{"description":"Number of lines from start to include in response.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"tail_lines":{"description":"Number of lines from end to include in response.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"ssl_verify":{"description":"Whether to verify SSL certificates.","oneOf":[{"type":"boolean"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"max_content_bytes":{"description":"Maximum response size in bytes before truncation.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]}},"additionalProperties":false,"title":"WebGetToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineLambdaToolConfiguration","description":"A lambda tool configuration defined inline in the agent for executing user-defined functions.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'lambda' for inline lambda tool configurations.","default":"lambda"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments that will be passed to the lambda function. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","additionalProperties":true,"example":{"custom_param":"value"}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineStructuredIndexingToolConfiguration","description":"A structured indexing tool configuration defined inline in the agent for indexing into the Vectara platform.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'structured_indexing' for inline structured indexing tool configurations.","default":"structured_indexing"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the structured indexing tool call such as corpus_key etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"corpus_key":{"description":"The key identifying the target corpus for document indexing. If not provided, will be filled in by the agent.","type":"string","example":"my-knowledge-base"},"document_id":{"description":"The unique identifier for the document within the corpus, preferably human readable IDs.","type":"string","example":"annual_report_2024"},"title":{"description":"The title of the document being indexed.","type":"string","example":"2024 Annual ESG Report"},"description":{"description":"A brief description or summary of the document content.","type":"string","example":"Comprehensive environmental, social, and governance report"},"metadata":{"description":"The metadata key-value pairs to associate with the document. If present, this gets merged with existing artifact metadata.","type":"object","additionalProperties":true,"example":{"doc_type":"annual_report","year":2024,"department":"sustainability"}},"document":{"description":"The structured document to index with full hierarchical content.","type":"object","additionalProperties":true,"example":{"id":"annual_report_2024","type":"structured","title":"2024 Annual ESG Report"}}},"additionalProperties":false,"title":"StructuredIndexingToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineSubAgentToolConfiguration","description":"A sub-agent tool configuration defined inline in the agent for invoking specialized sub-agents.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'sub_agent' for inline sub-agent tool configurations.","default":"sub_agent"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the sub-agent tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"message":{"description":"The detailed task instructions for the sub-agent to perform autonomously.","type":"string","example":"Review the code changes in pull request \\#123 for security issues"},"session_tti_minutes":{"description":"Time to idle in minutes before the session expires.","type":"integer","format":"int64","minimum":1,"example":60}},"additionalProperties":false,"title":"SubAgentToolParameters"},"sub_agent_configuration":{"description":"User-configurable settings for the sub-agent tool. These parameters are never exposed to the agent.","type":"object","properties":{"agent_key":{"description":"A unique key that identifies an agent.","type":"string","pattern":"[0-9a-zA-Z_-]+$","minLength":1,"maxLength":50,"example":"customer_support","title":"AgentKey"},"session_mode":{"description":"Controls session behavior for sub-agent invocations:\n- llm_controlled: LLM decides whether to create new or resume existing session\n- persistent: Always reuse the same session (created on first invocation)\n- ephemeral: Always create a new session on each invocation\n","type":"string","enum":["llm_controlled","persistent","ephemeral"],"default":"llm_controlled","example":"llm_controlled","title":"SubAgentSessionMode"},"session_metadata":{"description":"Optional metadata to associate with the sub-agent session. Can contain any key-value pairs.","type":"object","additionalProperties":true,"example":{"source":"parent_agent","task_type":"code_review"}}},"required":["agent_key"],"title":"SubAgentConfiguration"}},"required":["type","sub_agent_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineArtifactReadToolConfiguration","description":"An artifact read tool configuration defined inline in the agent for reading artifacts from the session workspace.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_read' for inline artifact read tool configurations.","default":"artifact_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to read.","type":"string","example":"art_abc123"},"encoding":{"description":"The encoding format for the content.","type":"string","enum":["raw","base64"],"example":"raw"},"start_line":{"description":"Optional starting line number (1-indexed).","type":"integer","format":"int32","example":100},"end_line":{"description":"Optional ending line number (1-indexed, inclusive).","type":"integer","format":"int32","example":200}},"additionalProperties":false,"title":"ArtifactReadToolParameters"},"tool_configuration":{"description":"User-configurable settings for the artifact read tool.","type":"object","properties":{"max_size_bytes":{"description":"Maximum file size in bytes for full reads without line ranges. Defaults to 256KB.","type":"integer","format":"int64","minimum":1,"maximum":10485760,"default":262144},"max_lines":{"description":"Maximum number of lines for range-based reads. Defaults to 200.","type":"integer","format":"int32","minimum":1,"maximum":10000,"default":200}},"title":"ArtifactReadConfiguration"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineArtifactGrepToolConfiguration","description":"An artifact grep tool configuration defined inline in the agent for searching through artifact content.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_grep' for inline artifact grep tool configurations.","default":"artifact_grep"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact grep tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to search.","type":"string","example":"art_abc123"},"pattern":{"description":"The pattern to search for (supports grep regex).","type":"string","example":"error|exception"},"grep_options":{"description":"Optional grep command options.","type":"array","items":{"type":"string"},"example":["-i","-n"]}},"additionalProperties":false,"title":"ArtifactGrepToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineImageReadToolConfiguration","description":"An image read tool configuration defined inline in the agent for loading images into the conversation context.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'image_read' for inline image read tool configurations.","default":"image_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the image read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the image artifact to view.","type":"string","pattern":"^art_[a-z0-9_-]+$","example":"art_photo_a3f2"},"detail":{"description":"Detail level for image processing.","type":"string","enum":["auto","low","high"],"default":"auto","example":"auto"}},"additionalProperties":false,"title":"ImageReadToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineDocumentConversionToolConfiguration","description":"A document conversion tool configuration defined inline in the agent for converting document artifacts to various formats.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'document_conversion' for inline document conversion tool configurations.","default":"document_conversion"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the document conversion tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to convert.","type":"string","example":"art_abc123"},"output_format":{"description":"Output format for the converted document.","type":"string","enum":["markdown","structured_document"],"example":"markdown"},"description":{"description":"Optional description for the converted artifact.","type":"string","example":"PDF converted to markdown"}},"additionalProperties":false,"title":"DocumentConversionToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]}],"example":[{"type":"web_search","argument_override":{"limit":5,"include_domains":["github.com","stackoverflow.com"],"exclude_domains":["spam.com"]}}]},"example":{"customer_search":{"type":"corpora_search","argument_override":{"query":"customer support documentation"}}}},"model":{"title":"AgentModel","description":"Configuration for the model used in this step, including the model name and arbitrary parameters.","type":"object","properties":{"name":{"description":"The name of the model to use for this step.","type":"string","example":"gpt-4"},"parameters":{"description":"Arbitrary model-specific parameters that can be passed to the model.","type":"object","additionalProperties":true,"example":{"temperature":0.7,"max_tokens":1000,"top_p":0.9}},"retry_configuration":{"description":"Optional retry configuration for handling transient failures. When not provided, no retry is performed.","title":"RetryConfiguration","type":"object","properties":{"enabled":{"description":"Whether retry is enabled. Enabled by default to provide resilience against transient failures.","type":"boolean","default":true,"example":true},"max_retries":{"description":"Maximum number of retry attempts after initial failure.","type":"integer","minimum":0,"maximum":10,"default":3,"example":3},"initial_backoff_ms":{"description":"Initial backoff time in milliseconds before first retry.","type":"integer","minimum":100,"maximum":60000,"default":1000,"example":1000},"max_backoff_ms":{"description":"Maximum backoff time in milliseconds between retries.","type":"integer","minimum":1000,"maximum":300000,"default":30000,"example":30000},"backoff_factor":{"description":"Multiplication factor for exponential backoff between retries.","type":"number","format":"double","minimum":1,"maximum":10,"default":2,"example":2}}}},"required":["name"]},"first_step":{"title":"AgentStep","description":"A step in an agent's execution flow that defines how the agent processes and responds to input.","discriminator":{"propertyName":"type","mapping":{"conversational":{"title":"ConversationalAgentStep","description":"A step that receives instructions and responds through dialogue. This is a step that gets instructions and engages in conversation with users based on those instructions. This only type step supported, with no way to go next steps. A conversational step responds to an input following its instructions and uses the agent tools. The first response from the model will terminate processing the input.","type":"object","properties":{"type":{"description":"The type of step, which is always 'conversational' for this step type.","type":"string","default":"conversational","example":"conversational"},"instructions":{"description":"List of instructions that guide the agent's behavior in this step. If no instructions are given, the agent is instructed to be helpful and use tools.","type":"array","items":{"title":"AgentStepInstruction","description":"An instruction that can be used in an agent step, either by reference or defined inline.","discriminator":{"propertyName":"type","mapping":{"reference":{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},"inline":{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Base properties for creating an instruction, without the type discriminator field.","type":"object","properties":{"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["name","template"],"title":"InstructionRequestBase"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}}},"oneOf":[{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Base properties for creating an instruction, without the type discriminator field.","type":"object","properties":{"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["name","template"],"title":"InstructionRequestBase"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}],"example":[{"type":"reference","name":"Customer Support Initial Instruction","version":1},{"type":"inline","name":"Temporary On-the-fly Guideline","description":"A special instruction for this specific step only.","template_type":"velocity","template":"Please prioritize issues tagged with 'urgent' for the next hour."}]}},"output_parser":{"title":"AgentOutputParser","description":"Configuration for how the agent's output should be parsed and formatted.\n\nThe output parser determines how the agent's responses are processed before being returned to the user.\n","discriminator":{"propertyName":"type","mapping":{"default":{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]},"structured":{"title":"StructuredOutputParser","description":"Parses agent output as structured JSON conforming to a specified schema.\nUses the model's native structured outputs capability to guarantee valid JSON\nthat adheres to the provided schema. This is useful when you need the agent's\nfinal response in a specific format for downstream processing.\n\nWhen this parser is configured, the agent emits a StructuredOutputEvent instead\nof AgentOutputEvent. The StructuredOutputEvent contains the validated JSON content\nalong with the schema name for identification.\n\nNote: When using structured outputs, the agent can still use tools normally.\nThe schema constraint only applies to the agent's final text response.\nWhen streaming, the structured output is delivered as a single complete event\nrather than being streamed in chunks.\n","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'structured' for this parser type.","type":"string","default":"structured","example":"structured"},"json_schema":{"description":"Specification wrapper for a named JSON schema.","type":"object","required":["name","schema"],"properties":{"description":{"description":"A description of what the response format is for, used by the model to determine how to respond in the format.","type":"string"},"name":{"description":"A unique name identifier for this schema.","type":"string","pattern":"^[a-zA-Z0-9_-]+$","minLength":1},"strict":{"description":"When true, enforces strict schema adherence. The model will always follow the exact schema structure.\nWhen strict mode is enabled, the schema must follow these rules:\n- `additionalProperties: false` must be set on all object types\n- All properties must be listed in the `required` array\n- Maximum 100 properties total, with max 5 levels of nesting\n- Unsupported keywords: minLength, maxLength, pattern, minimum, maximum, minItems, maxItems\n- Root schema cannot use `anyOf` type\n","type":"boolean","nullable":true},"schema":{"description":"The JSON Schema definition that the model output must conform to.","type":"object","required":["type"],"properties":{"type":{"description":"The JSON type for this schema element.","type":"string","enum":["object","array","string","number","integer","boolean"]},"properties":{"description":"Property definitions when type is 'object'. Each key maps to a nested JsonSchemaDefinition.","type":"object","additionalProperties":{"description":"A JSON Schema definition for specifying data structure. Supports recursive schemas for nested objects.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"}},"required":{"description":"List of required property names when type is 'object'.","type":"array","items":{"type":"string"}},"additionalProperties":{"description":"Whether to allow additional properties beyond those defined.","type":"boolean","default":false},"items":{"description":"Schema for array items when type is 'array'.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"},"enum":{"description":"Allowed values for this schema element.","type":"array"},"description":{"description":"Human-readable description of this schema element.","type":"string"}},"title":"JsonSchemaDefinition"}},"title":"JsonSchemaSpec"}},"required":["type","json_schema"],"x-vectaraParents":["AgentOutputParser"]}}},"oneOf":[{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]},{"title":"StructuredOutputParser","description":"Parses agent output as structured JSON conforming to a specified schema.\nUses the model's native structured outputs capability to guarantee valid JSON\nthat adheres to the provided schema. This is useful when you need the agent's\nfinal response in a specific format for downstream processing.\n\nWhen this parser is configured, the agent emits a StructuredOutputEvent instead\nof AgentOutputEvent. The StructuredOutputEvent contains the validated JSON content\nalong with the schema name for identification.\n\nNote: When using structured outputs, the agent can still use tools normally.\nThe schema constraint only applies to the agent's final text response.\nWhen streaming, the structured output is delivered as a single complete event\nrather than being streamed in chunks.\n","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'structured' for this parser type.","type":"string","default":"structured","example":"structured"},"json_schema":{"description":"Specification wrapper for a named JSON schema.","type":"object","required":["name","schema"],"properties":{"description":{"description":"A description of what the response format is for, used by the model to determine how to respond in the format.","type":"string"},"name":{"description":"A unique name identifier for this schema.","type":"string","pattern":"^[a-zA-Z0-9_-]+$","minLength":1},"strict":{"description":"When true, enforces strict schema adherence. The model will always follow the exact schema structure.\nWhen strict mode is enabled, the schema must follow these rules:\n- `additionalProperties: false` must be set on all object types\n- All properties must be listed in the `required` array\n- Maximum 100 properties total, with max 5 levels of nesting\n- Unsupported keywords: minLength, maxLength, pattern, minimum, maximum, minItems, maxItems\n- Root schema cannot use `anyOf` type\n","type":"boolean","nullable":true},"schema":{"description":"The JSON Schema definition that the model output must conform to.","type":"object","required":["type"],"properties":{"type":{"description":"The JSON type for this schema element.","type":"string","enum":["object","array","string","number","integer","boolean"]},"properties":{"description":"Property definitions when type is 'object'. Each key maps to a nested JsonSchemaDefinition.","type":"object","additionalProperties":{"description":"A JSON Schema definition for specifying data structure. Supports recursive schemas for nested objects.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"}},"required":{"description":"List of required property names when type is 'object'.","type":"array","items":{"type":"string"}},"additionalProperties":{"description":"Whether to allow additional properties beyond those defined.","type":"boolean","default":false},"items":{"description":"Schema for array items when type is 'array'.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"},"enum":{"description":"Allowed values for this schema element.","type":"array"},"description":{"description":"Human-readable description of this schema element.","type":"string"}},"title":"JsonSchemaDefinition"}},"title":"JsonSchemaSpec"}},"required":["type","json_schema"],"x-vectaraParents":["AgentOutputParser"]}]}},"required":["type","instructions","output_parser"],"x-vectaraParents":["AgentStep"]}}},"oneOf":[{"title":"ConversationalAgentStep","description":"A step that receives instructions and responds through dialogue. This is a step that gets instructions and engages in conversation with users based on those instructions. This only type step supported, with no way to go next steps. A conversational step responds to an input following its instructions and uses the agent tools. The first response from the model will terminate processing the input.","type":"object","properties":{"type":{"description":"The type of step, which is always 'conversational' for this step type.","type":"string","default":"conversational","example":"conversational"},"instructions":{"description":"List of instructions that guide the agent's behavior in this step. If no instructions are given, the agent is instructed to be helpful and use tools.","type":"array","items":{"title":"AgentStepInstruction","description":"An instruction that can be used in an agent step, either by reference or defined inline.","discriminator":{"propertyName":"type","mapping":{"reference":{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},"inline":{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Base properties for creating an instruction, without the type discriminator field.","type":"object","properties":{"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["name","template"],"title":"InstructionRequestBase"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}}},"oneOf":[{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Base properties for creating an instruction, without the type discriminator field.","type":"object","properties":{"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["name","template"],"title":"InstructionRequestBase"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}],"example":[{"type":"reference","name":"Customer Support Initial Instruction","version":1},{"type":"inline","name":"Temporary On-the-fly Guideline","description":"A special instruction for this specific step only.","template_type":"velocity","template":"Please prioritize issues tagged with 'urgent' for the next hour."}]}},"output_parser":{"title":"AgentOutputParser","description":"Configuration for how the agent's output should be parsed and formatted.\n\nThe output parser determines how the agent's responses are processed before being returned to the user.\n","discriminator":{"propertyName":"type","mapping":{"default":{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]},"structured":{"title":"StructuredOutputParser","description":"Parses agent output as structured JSON conforming to a specified schema.\nUses the model's native structured outputs capability to guarantee valid JSON\nthat adheres to the provided schema. This is useful when you need the agent's\nfinal response in a specific format for downstream processing.\n\nWhen this parser is configured, the agent emits a StructuredOutputEvent instead\nof AgentOutputEvent. The StructuredOutputEvent contains the validated JSON content\nalong with the schema name for identification.\n\nNote: When using structured outputs, the agent can still use tools normally.\nThe schema constraint only applies to the agent's final text response.\nWhen streaming, the structured output is delivered as a single complete event\nrather than being streamed in chunks.\n","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'structured' for this parser type.","type":"string","default":"structured","example":"structured"},"json_schema":{"description":"Specification wrapper for a named JSON schema.","type":"object","required":["name","schema"],"properties":{"description":{"description":"A description of what the response format is for, used by the model to determine how to respond in the format.","type":"string"},"name":{"description":"A unique name identifier for this schema.","type":"string","pattern":"^[a-zA-Z0-9_-]+$","minLength":1},"strict":{"description":"When true, enforces strict schema adherence. The model will always follow the exact schema structure.\nWhen strict mode is enabled, the schema must follow these rules:\n- `additionalProperties: false` must be set on all object types\n- All properties must be listed in the `required` array\n- Maximum 100 properties total, with max 5 levels of nesting\n- Unsupported keywords: minLength, maxLength, pattern, minimum, maximum, minItems, maxItems\n- Root schema cannot use `anyOf` type\n","type":"boolean","nullable":true},"schema":{"description":"The JSON Schema definition that the model output must conform to.","type":"object","required":["type"],"properties":{"type":{"description":"The JSON type for this schema element.","type":"string","enum":["object","array","string","number","integer","boolean"]},"properties":{"description":"Property definitions when type is 'object'. Each key maps to a nested JsonSchemaDefinition.","type":"object","additionalProperties":{"description":"A JSON Schema definition for specifying data structure. Supports recursive schemas for nested objects.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"}},"required":{"description":"List of required property names when type is 'object'.","type":"array","items":{"type":"string"}},"additionalProperties":{"description":"Whether to allow additional properties beyond those defined.","type":"boolean","default":false},"items":{"description":"Schema for array items when type is 'array'.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"},"enum":{"description":"Allowed values for this schema element.","type":"array"},"description":{"description":"Human-readable description of this schema element.","type":"string"}},"title":"JsonSchemaDefinition"}},"title":"JsonSchemaSpec"}},"required":["type","json_schema"],"x-vectaraParents":["AgentOutputParser"]}}},"oneOf":[{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]},{"title":"StructuredOutputParser","description":"Parses agent output as structured JSON conforming to a specified schema.\nUses the model's native structured outputs capability to guarantee valid JSON\nthat adheres to the provided schema. This is useful when you need the agent's\nfinal response in a specific format for downstream processing.\n\nWhen this parser is configured, the agent emits a StructuredOutputEvent instead\nof AgentOutputEvent. The StructuredOutputEvent contains the validated JSON content\nalong with the schema name for identification.\n\nNote: When using structured outputs, the agent can still use tools normally.\nThe schema constraint only applies to the agent's final text response.\nWhen streaming, the structured output is delivered as a single complete event\nrather than being streamed in chunks.\n","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'structured' for this parser type.","type":"string","default":"structured","example":"structured"},"json_schema":{"description":"Specification wrapper for a named JSON schema.","type":"object","required":["name","schema"],"properties":{"description":{"description":"A description of what the response format is for, used by the model to determine how to respond in the format.","type":"string"},"name":{"description":"A unique name identifier for this schema.","type":"string","pattern":"^[a-zA-Z0-9_-]+$","minLength":1},"strict":{"description":"When true, enforces strict schema adherence. The model will always follow the exact schema structure.\nWhen strict mode is enabled, the schema must follow these rules:\n- `additionalProperties: false` must be set on all object types\n- All properties must be listed in the `required` array\n- Maximum 100 properties total, with max 5 levels of nesting\n- Unsupported keywords: minLength, maxLength, pattern, minimum, maximum, minItems, maxItems\n- Root schema cannot use `anyOf` type\n","type":"boolean","nullable":true},"schema":{"description":"The JSON Schema definition that the model output must conform to.","type":"object","required":["type"],"properties":{"type":{"description":"The JSON type for this schema element.","type":"string","enum":["object","array","string","number","integer","boolean"]},"properties":{"description":"Property definitions when type is 'object'. Each key maps to a nested JsonSchemaDefinition.","type":"object","additionalProperties":{"description":"A JSON Schema definition for specifying data structure. Supports recursive schemas for nested objects.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"}},"required":{"description":"List of required property names when type is 'object'.","type":"array","items":{"type":"string"}},"additionalProperties":{"description":"Whether to allow additional properties beyond those defined.","type":"boolean","default":false},"items":{"description":"Schema for array items when type is 'array'.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"},"enum":{"description":"Allowed values for this schema element.","type":"array"},"description":{"description":"Human-readable description of this schema element.","type":"string"}},"title":"JsonSchemaDefinition"}},"title":"JsonSchemaSpec"}},"required":["type","json_schema"],"x-vectaraParents":["AgentOutputParser"]}]}},"required":["type","instructions","output_parser"],"x-vectaraParents":["AgentStep"]}]},"metadata":{"description":"Arbitrary metadata associated with the agent for customization and configuration.","type":"object","additionalProperties":true,"example":{"department":"customer_service","version":"1.2.0","owner":"support-team"}},"enabled":{"description":"Whether the agent is currently enabled and available for use.","type":"boolean","default":true,"example":true},"created_at":{"description":"Timestamp when the agent was created.","type":"string","format":"date-time","example":"2024-01-15T10:30:00Z"},"updated_at":{"description":"Timestamp when the agent was last updated.","type":"string","format":"date-time","example":"2024-01-16T14:45:00Z"}},"required":["key","name","tool_configurations","model","first_step","enabled"],"title":"Agent"}}}},"400":{"description":"Agent creation request was malformed or contains invalid references.","content":{"application/json":{"schema":{"description":"Error returned when a request contains invalid parameters or violates schema validation.","type":"object","properties":{"field_errors":{"description":"The errors that relate to specific fields in the request.","type":"object","additionalProperties":{"type":"string"}},"messages":{"type":"array","items":{"title":"message","type":"string"}},"request_id":{"description":"The ID of the request that can be used to help Vectara support debug what went wrong.","type":"string"}},"title":"BadRequestError"}}}},"403":{"description":"Permissions do not allow creating agents.","content":{"application/json":{"schema":{"description":"A general error response with an error code and message.","type":"object","properties":{"messages":{"description":"The messages describing why the error occurred.","type":"array","items":{"title":"message","type":"string","example":"Internal server error."}},"request_id":{"description":"The ID of the request that can be used to help Vectara support debug what went wrong.","type":"string"}},"title":"Error"}}}}}}
>
diff --git a/www/docs/rest-api/create-api-key.api.mdx b/www/docs/rest-api/create-api-key.api.mdx
index 04a11eeb8..6f5c71524 100644
--- a/www/docs/rest-api/create-api-key.api.mdx
+++ b/www/docs/rest-api/create-api-key.api.mdx
@@ -5,7 +5,7 @@ description: "The Create API Key API lets you create new API keys, which you can
sidebar_label: "Create an API key"
hide_title: true
hide_table_of_contents: true
-api: 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
+api: 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
sidebar_class_name: "post api-method"
info_path: docs/rest-api/vectara-rest-api-v-2
custom_edit_url: null
@@ -60,7 +60,7 @@ For more information about the different types of API keys, see [API Key Managem
@@ -68,7 +68,7 @@ For more information about the different types of API keys, see [API Key Managem
diff --git a/www/docs/rest-api/create-app-client.api.mdx b/www/docs/rest-api/create-app-client.api.mdx
index f2277e796..8b356a667 100644
--- a/www/docs/rest-api/create-app-client.api.mdx
+++ b/www/docs/rest-api/create-app-client.api.mdx
@@ -5,7 +5,7 @@ description: "An App Client is used for OAuth 2.0 authentication when calling Ve
sidebar_label: "Create an App Client"
hide_title: true
hide_table_of_contents: true
-api: eJztWt9vHLkN/lcEoU/p7K7P7dPiUNSXpKhRtAkSX4vCMWzuDGdHZ42kkzS7WRj7vxek5qd37OSSO1wfkocAq6Eokvr4iZT8ICNsg1xfywvntMohKmvES63QxCBvMvlxERrnrI9YLMCpxT0eFvHgkKa8RR+sAU1yBYbcK0fT5VpeGHHhXKtHqCCagIUorRdvLppYifPlmYAmVmhit+a+QiNy0FqZrfg35hE8iIu3l2EpM2kdeha7LORa5h4h4oVzSb/MpAMPNUb05MqDVGRDhVCgl5k0UKNcy3f4c4MhLq5UjbahWVObryqk9cReaS1quEcBYoMhCixL66OIVuS2dhojilih8EmfUIZ/Boe5KhUWImBuTRGE9SKqGoVtIvkQ8gprkOsHmeInlYm4ZQtrZVTd1HL93TGTpFd5LOS6BB3wmH2eP4t/Kq1V+O3cqln/1/h2vEneYYg/2OJA4rk1kbZw/SBhAODqp0C2P4z0Tp1qfWfjGQwChMF9i66RJpEnCBL0yB2nIZbW12R0a6rd/IQ5w0HRErUyEK2nNZ0n3MXDv1LAWT6TNTinzJatZ+W3uceCkAw6nJr6srVvkhH7SuWVAK3tPoiDbdgR0HoCfNEEyoUhY1pfRsvNudFarZCNSWB5bBR5JGzJIXlWa4iefD0+QtVjfa+GX79QbRp4rO+qUiEhFvQeDkFsEjh3oBsUd6dxvztVTiaX0OhIjHG6UcdMglO33mqc2TXKGP4kYgXxCYeShRXscLQ6eA8HmUkVsZ5R/G5QCsSKnlIJDGG2XwGMiJSo1sx5hYay6VraveEEg4JSLETPsM3kRjGH3j4ez613TXhquMAdagIOadxSsB4LptGdwv1IaJh2k8mooiZTL5wiN+XxOKGz6wTG1iM+W3YJ7m/B83mzvm7Tpef2NtHH2pNE+vxy2IxOkhe1Bt+UfBR8S8ZvyfgtGX+3ZLyZrtktNp1+ssCxNTY4a0JCxPnZdzPAmORxSros1ZrRip8b9AdGyyiRxV7FigchBLU1WCRoLTn6X1SMXJin647cmlJtm1S8DlXwtPb9NHGoYi4tR44NUbh8tRScsZevqPA2NqZli4YgS+hOxpba7pdC/N3ucYc+45BcvkqyFKO2/huFbg7/DmJET+aAc7fLP/6BUnme5sjeqqnBLDxCARuNwoyYb3DhV2G8T6hrOeipuOZdLId4sNZR6J7RGjD3GJ/VnESSdmUYmG1lHJZCkGArESrb6IIo9x4dz2s8zi7+DIF2PUAiUYgR8irlyJOh+sacI+ZMwXVWq/xwGov/cBRy+hUECOeVyZUDPY7AJJeea0I+p2Cg7ZykTru187CgugaL276FntnNN/23dks9inae2Byma4jXkFei1yZqOAhr9CFNEDn6CMoIj8E2PseRxrTmJumEXkI4oOyyw0AqLGpwS3FZjkoNorNGa+aqFNHBDBV6i60RYA69urkoQ1Eomgb67STe07C85Q0n05JvQwiFKpPTqSqcNsrPLTzdXlZ7C+Zw2805NeKynHgzdrRranu7RiturNUIZlx4Rd/gCBD9Ds3ggc1NtHePh0BAm2xX4KAIrUKkb51BvcqluHi0vyGCjyGpRBUr9GJji0PGXzNiD1XT6akizaVPNMZTx66PTqZh75MiMAUxUKdmGrHRL/o+4Lpl3V8CkqcY8lHqnRRcM7s9ZZs+DRPwnizZZlJ6qqifPx7tbsuSYX8+O5upZIYygq9VKLjdfdAegqhBE29h8RXV0mvvrRceY+Op+OJrP+hXIaWgKMHMDrQqxHCzR3jYKashYhBJu2CZz6yhSoW6uEVa/okjMn1LhOWRFiKYt4mdC1YQuouxLwdOD5BM1hgCbD8Bq3YHW9lTjj/2t2pP1jOXr7qzogs0O0kH1Ab7grlC7fpDqr32FQVumq3Yk/ieu2VvzXbmpBlh7Qco2kqeN7tH3J9mKBZ9rUJgTi0sV6vtOcL4a7l1WqF8aZkutmjQg077LLr2InESmHY4twUyl7Tx/jSwxpt4Gvrua3f8kU/7KpFPWtHmeeN9SqovBUEm8SPQLS6dGIZKctAioN+hT6ss/w9xMqDjSP1nid4sQnG/2HrbuEV7zQ0dcdHV9kioxljZopNKt8AchogmpDLn+kHe40Gun37EyCRXFtPHDLpx7+bN2dRPGts2O2ls4zCrtZV64yQg19LZkN4xYiXXcrU7X1E/lfeOp61MPjVe03NAjC6sVytwatl27ktlWSs3CSoeWPrCqX/ggfoWub5m37iJOedfI+H3lDYJxJ1Az0kWeODx00KSE5DnGLgiaDEhM0ktUhiuyF9Ob8ijvUfz49SNJlYjP1ZpyRVL8gODdWxcAsvYqYE5eZCyZu655GO38wxBIot3w1PE6y55upJ7fG81drkfbtecucuadGJdf3NzJLNKO87lLoPevX5/xfX17jTE3bcgnLc7RdQkoofufBH8ztKWQVwsUU24x81iA5SsI34Myw/mv7bhXC4V1UpaU7LbxqcFIIq7eVARHL+n6KEpnFUm/uVOdC1lNxS4xLdN1MqknjbV7V7ZJojQbAK2HRITjAo8+x2W6NHk3O6yE1zFpWYh3c5ES9SjTGxUVLtEzaXlMwKoqjQF+IJjWDZahOibPFKL/MF8MAs2k9nVREEJ1LYKL17szl+8WJLE3dixu1Y1VYyVQg8+r1QOI71ZW/JTBeZzCMmg6uAq5BAL8TfrRUvGmbhbUWNqPazWbYd6j4dVYfOmpsy+W34gdLeWybU8X54tzwhe6OvwpnyPfqeoK+jzpNuV3NYrjVvQKxZd2HIRkvCKeVLbLYNtShaFzcNyrELV207l7d76ogZ/v3SMcNDxCj/GAaiSWboAf/812m+12lbxuTW4Bsz5fMcaFK1QIhYbyO//OtLOeUy8WYMZJe7cFf/jtBq9O/7qT9UtMUT8GFdOgzLkEsfpoaX3a8mJPib4m0xWdAKsr+XDA6Xuj14fjzTMl5jE1XR+eEXXZonHO4LjRw4V6EP3ZPyMt7/1I/es9+lcPH1/7w5EPjx/Bx+ee9H+fEeGh/eJP0n2ZbJ6cTWpNk7r1mHGRZ6ji8/KjguHt2/eX9FtWfueXtuC5njYy4z/X0v+84n+4ofHHqQGs22okFzLpJP+/Q+iCv3G
+api: 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
sidebar_class_name: "post api-method"
info_path: docs/rest-api/vectara-rest-api-v-2
custom_edit_url: null
@@ -54,7 +54,7 @@ An App Client is used for OAuth 2.0 authentication when calling Vectara APIs.
@@ -62,7 +62,7 @@ An App Client is used for OAuth 2.0 authentication when calling Vectara APIs.
diff --git a/www/docs/rest-api/create-chat-completion.api.mdx b/www/docs/rest-api/create-chat-completion.api.mdx
index 39555c55a..0faf6623e 100644
--- a/www/docs/rest-api/create-chat-completion.api.mdx
+++ b/www/docs/rest-api/create-chat-completion.api.mdx
@@ -5,7 +5,7 @@ description: "The Chat Completions API provides an OpenAI-compatible interface f
sidebar_label: "Creates a model response for the given chat conversation"
hide_title: true
hide_table_of_contents: true
-api: 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
+api: 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
sidebar_class_name: "post api-method"
info_path: docs/rest-api/vectara-rest-api-v-2
custom_edit_url: null
@@ -103,7 +103,7 @@ If the input summary is accurate, the `corrected_summary` matches the `original_
diff --git a/www/docs/rest-api/create-instruction.api.mdx b/www/docs/rest-api/create-instruction.api.mdx
index 4c71f8b44..074c2cb91 100644
--- a/www/docs/rest-api/create-instruction.api.mdx
+++ b/www/docs/rest-api/create-instruction.api.mdx
@@ -5,7 +5,7 @@ description: "Create a new instruction that defines how an agent should behave,
sidebar_label: "Create instruction"
hide_title: true
hide_table_of_contents: true
-api: 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
+api: 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
sidebar_class_name: "post api-method"
info_path: docs/rest-api/vectara-rest-api-v-2
custom_edit_url: null
@@ -92,7 +92,7 @@ A successful response returns the full instruction definition, including its uni
diff --git a/www/docs/rest-api/create-llm.api.mdx b/www/docs/rest-api/create-llm.api.mdx
index f5caafef0..2641ac160 100644
--- a/www/docs/rest-api/create-llm.api.mdx
+++ b/www/docs/rest-api/create-llm.api.mdx
@@ -5,7 +5,7 @@ description: "Integrate external Large Language Models (LLMs) into Vectara for R
sidebar_label: "Create an LLM"
hide_title: true
hide_table_of_contents: true
-api: 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
+api: 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
sidebar_class_name: "post api-method"
info_path: docs/rest-api/vectara-rest-api-v-2
custom_edit_url: null
@@ -47,7 +47,6 @@ Integrate external Large Language Models (LLMs) into Vectara for Retrieval Augme
### OpenAI
**Type:** `openai-compatible`
-
**Models:** GPT-4o, GPT-5
**Auth:** Bearer token
@@ -85,9 +84,11 @@ Integrate external Large Language Models (LLMs) into Vectara for Retrieval Augme
```
### Anthropic Claude
+
**Type:** `openai-compatible`
**Models:** claude-4-opus, claude-4-5-haiku, claude-4-5-sonnet
**Auth:** Bearer token with header
+
```json
{
"type": "openai-compatible",
@@ -102,12 +103,14 @@ Integrate external Large Language Models (LLMs) into Vectara for Retrieval Augme
"anthropic-version": "2023-06-01"
}
}
-
+```
### Azure OpenAI
+
**Type:** `openai-compatible`
**Models:** GPT-3.5, GPT-4 (Azure-deployed versions)
**Auth:** Custom header (api-key)
+
```json
{
"type": "openai-compatible",
@@ -120,11 +123,14 @@ Integrate external Large Language Models (LLMs) into Vectara for Retrieval Augme
"value": "your-azure-key"
}
}
+```
### Google Vertex AI (Gemini)
+
**Type:** `vertex-ai`
**Models:** gemini-2.5-pro, gemini-2.5-flash
**Auth:** Service account or API key
+
```json
{
"type": "vertex-ai",
@@ -139,9 +145,11 @@ Integrate external Large Language Models (LLMs) into Vectara for Retrieval Augme
```
### Custom OpenAI-Compatible
+
**Type:** `openai-compatible`
**Models:** Any self-hosted or custom LLM, such as OpenRouter.
**Auth:** Bearer or custom header
+
```json
{
"type": "openai-compatible",
@@ -172,7 +180,7 @@ Integrate external Large Language Models (LLMs) into Vectara for Retrieval Augme
@@ -180,7 +188,7 @@ Integrate external Large Language Models (LLMs) into Vectara for Retrieval Augme
diff --git a/www/docs/rest-api/create-tool.api.mdx b/www/docs/rest-api/create-tool.api.mdx
index d27a89f86..63b6b388e 100644
--- a/www/docs/rest-api/create-tool.api.mdx
+++ b/www/docs/rest-api/create-tool.api.mdx
@@ -5,7 +5,7 @@ description: "Create a new tool that agents can use during conversation. Tools g
sidebar_label: "Create tool"
hide_title: true
hide_table_of_contents: true
-api: eJztXW1zGzeS/it9k62SpZAUJTvZXdY5dYrs7OpuHassZ1O3lo8CZ5okopnBBMCI4rr036+6AcwMXyTa8e6W7UU+xOIMBq+Nfp4GGo13iRUzk4zeJK+Vyk3ytpfc9k1dVUpbzPqikv1rXPbtskJKdI7aqFLklC5Dk2pZWanKZJScahQWQUCJC7BK5WDnwoKYYWkNpKKE2iBktZblDFJV3qA2gr4dAJcMM3mDbfJKTGQurUQDVoEsLWqRWlhIOwe8tahLkYNZGouF6UGlVYrGQCas6MGvNeolpEpXSoseKA26LiGtjVUF5Gom0wGcuIIM5phaEGUGsrxR18hVN5AtS1HIVOT5EibCYAaqBDtHqUGWxuo6paob/tDOcaVBIqefFm/t4LK8LP+KqRVaUB1vZIZU5g1qkcOklrnty9IV2YNJbWGpau4rkRsFqevSpao1qAV11FwawDKrlCwtpLXWWNp8CX68jPuCOvjg4C+imGTC5X1w0IPFXKZz7ojaoO5nOJUlZnC+tHNVwrQufYtkCQIMprVGMKLMJuqWm/FcpHM3rtJA+HqyHF2WfTiBupS/1q7z4OyZe9aRD1BTkNZAVetKGeT3Jciyqi2YdI6F8KknVHmRplhZzKASWhRoURv64mXle7dAK2ik6eHzUkxyzA4zafgPaqGVBYK4ETJ3QrSk+sNXX8GJtnIqUtt3Q8p9c1leqALXBgMWSl87YRP+GwPGKo1Z6CBjpCq59QcHz1RaF0hD4sSAWkz5HByM4JQfWQNTmWMnt0fnz37owc9KZz04VwvU5zSoPZCFmKFxZb88fRXGdp+mQSH0daYWJYtdpVVWp2h4wrX5kugJWVI/kmDiraWJg5mTydLJ5Os5mo02qwo1yZsqm+xA4xQ1llSMFnaOmmZ16driM+yFKlKRRZ1b2TcWK+7Caa4WBhZz1M3UDlNV0UzK8NaJY13lSmSYQea70gwuy6SXuDpJVZ5lyShxE4LURdJLWuFIRm/eJZKU0BxFhjrpJaUoMBklr/DXGo3tv5YFqtom60rr9Rzh5PwMFjLPoRDXpL8maCzgdKq0pT5PVVHlaJF7U7v8SAbop6kwlVOJGU0YVWbcKpY+VdtB0kucbCejd4lToAkpshnXsJClLOoiGR3d9RLKV2rMktFU5Abveu/Xnv4LmefS/POaVXD+H9O2u7eudWjs9ypbUvK2sVbX2Eu8HNErUVW5THnAD38x1JZ3nXJWG+n7ghsTsIcEeQCnm4ox72hDmCq9qgQb7UftyiSVUshSWKWp2EqTFNrlj24MuLW9pBBVJcsZJXCZv18NabJ2KjOArp4GofGemjk0JfXdUdC9oKExAyxvpFYlqyFWHl6zPx4cHfOcP2NtS5pD1bZVvK5QUVtVCOsRj7pA3SBpu6lWRVOLViED9QKIslRWNLjBQJWqDN3c9WKhJr9gSlPP96NE0wrNepcxwpm5qvMMRL4QSwMThCvXY1eDNldjiUiw5E9FndtkFIahl+CtIOFuH92FCbRZHAboogQEUzQBGMYe1YQRwvCTpgdkhqWlyaH3t9WmkOVfsJzZeTI6Ihm5Db++GZLGskRcklHyf29E/+8n/b8N+38c999+/buVSqciT+tcWBw7yoJ6bFKlkZphpc23tOPPdSHKvkaREQgCp1ppTCZNlYulgy96+tPZB1X/6PgP3Sqe+orBBVUMTn2NlaY6rlRtvaZEC6yQhNRr/GBBAr7S15lCQ8QFCaGYPkrbYwnmtJLgydbaTdsPGInhcKUtobtBQOhw4A5vmZ/SGWqYS6IAS66BxhssaxzAK1cFmpPuG7QLxBKG/aPhcED9kYtyVovZPeJXaTXToigIPUPKrgpTZb6EvYon8x486szqfWJiDVXf1gdYkhJ+k7ivHWcPs8U/6/aEf3RHKjm7p7qd8nmqszLtjhrrmoODV17JEwV6URvrKSMIuPIM4NH+FWBp9RIcnW0ygJ8MbuqXrvZxKrzRWQ2F9Gpr6etw3qSnWpwL4yf0NS4XSmcg9MxxDSiETefMCFcl0MhZKWytsWkVDTZXjvM8FaWXQRDlEv774uWPfYNailz+3c1EasYjNyCmB2VdTFAT11cqR1GaHuTSWMNGilOUZt+X9dyNy8hLGBNjn8HBwWV5dXXlxuuyzHAaaNWj2xEwjVzyv/vQ/47+HV2WABCqegtfw5JzeKAkV+cHSiKFOaJkXIixerWQ6WXyZ8xz1YN3lPLuPy6TXUX6TnmgzBuR1+hbaOcazVzlWdtSymC1FvwBfNcm3lUHGo61CjAE2iWhPciCZhv8RRp7uVY3SaboiF+9MVa/5Ro1v1arZXjKuk/2d1Sp9IIBjzKZ2v0Heoe11DhVdWlDHykr8rHXVSOY5krYHmRiacYitfLG9SU8hSOuLRXgK+qU2VPoZgoHcDSEr1dzhQMYDo724bCb7Upj3+1xZnsj0Kous0f8qwfH+z3Y02yu7o1gby5n8z2QU1/yd3A0HALmBmEvV4u9u6aXflDas9dbNxF7DA00b6/cKF1BobI6xxEl3z2QPXgm053D2SN7ZypnI05Nj3quP9+ud53rq6eQY9mMMD1n26jKJWp46jMbzNA+2mtf7PXgaDDcX+s+znBv5DLuwZ7IfqmNxSw8goNO3qGjPgjdh8M1UPycxerukjEMbzGtSYuPXV/XzpDchLXnISGsJNxEtp2cthC347ZYMpbG3njaLPWFuCUbCZr0zriSZbAlO8Vts6x4AN3fj2nsGmR/3B3Ix8M7TjgusFB6OS4m99fEJYHaiBnXo8CZmCwt7qrJsFOVo+Hxk05djlak6mg4vGs5bNvvpyvjc7diD78J9hYT+PDxKsn0fIWXLm/catu5IPrE65qnzaKBt8coYaiDe+lssG6SO6qFKvHllBcXol0X7bpo10W7Ltp10a6Ldl2066JdF+26aNdFuy7adZ+bXbeRZs3q40qaSpXGDf3x8Gg7YWL6PRdkx2Dp7cAMTJ3S3JrWeb4cJL95b/Ok40FD7iATNh/J3yJso1sFFeqp0kXYrk1BeJOSOEfYN/+NW5pFWm2pVQkvTs/h0QuVYU6ODeTjAudaWZWqfL9bZ1WWxHmomo23Dn1rUN8EnkcvyqxjDAvy1aD6ijzfanh/LwwTaz81wcyF9r2S5754Qo7dM1pmm837yRmMrSXo2Kiz57eo3Y7ZZ1U+HhyskG56dHT8GJ988+3v+/iHP076R8fZ47548s23/SfH33579OTo90+Gw2HSCiSJ4ll2v1W7vYLBFtys4m+3K7fm9bH2nzNYFTqvqblakKXXke5dhY4tFhUZdJul/xVzlUq7hJCEe2aGJToiEvy5fB3ab80AfiY71CAzT2naHKQBTfJJEuaWaFiR08RznjedRrUZMsk/cb5HOUJTsRuhJT0x7DJ09TuexgMa5yvoO280Xqrovg1+Tm2K8AQKUbmU3hFpcI1LSnbhfpIptPq+m1dItJmbdyl7JixXy1ur5FaHhwHGzi5ewh++HR5RFxfCwiMczAY9uEyOh8ff9I+G/eMnr4++GT0ejp5887fLZJ+dxwL/vUwuUOjgSRZwmXQATTVuY6dryDjs1olMjS0TsTt/nrVD8TqIC5EG5ya2KTk/z9G7NWHj3dY61vnPWGBFM6jef6Qjr97C6S5bkW8LWdwOGMbCboERWaCxoqj8WkiowkKYACjb9I7rdyJzwmKfhoVaWFfZbyooF8aC//j9S2PXvfF98EX46G13hgO3RmC8Q1qF7I/mvf/Yl5KcDe/RZY0CF1kmHUqcd1Q5d/Mas5BZyytW+UQQg7UGvF2VIYKZhHyw/oErnUVa7VjmJMjtAgj9vuslDjHHHwpYHml34ZbRG7hl9FiL2djwPF2bXRecqcOoziLOZtUaX825JLYiJqq2rl4TnIsbqWp9GNTPbrQmoBrTgtmYstss7WwK7Eq2BjOlsmQxyumSnU87K+lbpq7DGufZe4PvXVAhlg0R63zvZ5TZXpDMsKgUEcNd5WisHLGkBXzvFWpIMwo9MzAXNwilgnZqkIcfpve0T1VYjhdK59nO5rEm9E7XZs3rmqSNRmZbIXcPzdNWll6kFYnTSUeEtpoHb+/uIf/sA/p2I0O3xsl+30GAtzAVnwJMB4pYT7kHrKi0qmdzCL7b4QurYCp5lTjHG1GSx6TTj96MjMQ1EtdIXCNxjcQ1EtcvhLiuwukODruGvSu736uvPg7uT11mbkoG4F/g5AHQX+DkQcBHx3dKtDygEeEjwkeEjwgfET4i/BeO8C1u7kD3DsB24aTz+ONQ/WecrCL6fQfrTrY7U67sl7n9V+cY5JfEmt2zwWW54p75Ie6XGo2qdYqQy0JyVluOG3a9qdwpYpq5bocQLUFPLidaaFpF+fR8KiMD+dczkBXnyA9hIR/uhRja4t2VW/+8NefErhD/0zwSI/p9Nuj3kL/MQ4u+zbDvQi0ifJ1UQmux3Djb7tzdmRs6vkv+FuyP2/gCdvJwfpVbDsj7pN6RkJo4lblF6tuB9wNx7vQf15fBJb/tTPZV+829eddLwodjLlBu1zjPmnc020UHItU94OjwbxvuBa9bpw6ety9G5LPYD3rCB74YscLg0BzBD2gEF02+tSFVNPurNMppaIZcMkOkUTmb2S6mxkmeqwWFIGCXP/bKvSK3maseXBXCzulfknwSfPo7VTmFciHDiX5Ki5rBnX5w68MPzcnDZ96zkMp84fykGNdH5Kb44nt41LiOkX6pK+q/oz99v7/SPvbwUrUdweNhEwli25ePh817zuFHtBxoRLDTEHkg+iAm3Y6hhD9QvA0X7aZJ/ApF1mdFTXah0kIvOeaGqUTKttqPKsS8qUR67Zy/jBW56+VWn8OjZgxSRcFtBPndukF/TX7OnW0aP+RbPblXfbdZixyuHElpHbkpj4umfO+66QqvU2tGcEX+mTQ+5JRJ/4YNRfr7p1KqkofszHl78qRacxJ1GtWJ24pb6Xvwrd+Oqf8kMP0wX/5msvszO5+G337rtc8nk6qPdNvf1m9b3VwJKkbs/73iW87OrfAUhvvehdXpf8zgKby55QbdklJkpJFTuO16m79d9Vh1v+i/xqeXnIRDjvu9TgJBwZ9m5N5q6qJNAoern1CRTY3YXXrYzSW8GlP19kZNUpfEe8reiFxmPFxjY4Wtt+zTk7i0ycAlC8LM4vOQfGKZuSecBZuu7q8VkXWPVuuDWiu9pT407an4Tp1cUuqPUCeaQL6kTvUCXWDX7A4FCFQ5ug5/Ma7DjX5uPYRDDj/4kWkJ0H2Ox/cvxXSyb1dlttGu91zXaN2Q2aEncMFszAGwvMft/Q7AnIq2FJoP2yhZtGnhlGQTZi4Xlr1ReN2BHJE5UJdWOZAubj5ts+uReLFS7zXrrj2wvCTsjuW5mGRx++NLXXyI2x9x+yNuf8QFoH/L7Y8teLxj8XwbgncBZtv7j9sZuWhyPPMZNmyinox5Wj7MIUwlFu4wOx0WomPMfFhp0ncz2yqYizLjoJ5sKve6kTytMNeGzbtSFao2ORl0F+FjMtckxxwFg2QSWgzxb9vVLkritQjNWI8t3crwkkc4ycRcgWGPi87ltWf+Gm8kLnoeQHLajWGt5Q5ah8W2ZU7LeKyRImGJhCUSlkhYImGJhOVLISwB8nfRlIYarJCT5ulHUpJ6wookEJEQMnzsxG3HmWZOYzphyx1TIM5APKCz0kFKxZ+iXvHv8NHYXcweH6Q8A5qkOi5URNyPuB9xP+J+xP0vCPfXEHYH+q/jcRdY1t99HBMIt6q08VRW+ABBxMNsgFK0XKBB+2bxwE1qr4ZaHwe/w5HjraQpZeTf0dEBUdKGvFfOkQtELhC5QOQCkQtELvAFcgFSuu/LBBiJt/IAfvOPYQHklrjBAWYat8UTeyj0gmhvIdszDSfw7qOa7hfjWBjOj87N9zwnB6YyEzpzSSIHiBwgcoDIASIHiBzgC+YAhHXvywEYibdyAH7zj+EAf9LYhGNi38H3WASg+z+N8zTsbAs07o3dC3Zb9wKlgfwBXDxtmlMiXxoZAT8CfgT8CPgR8CPgf0mA30LpDrTvYG4XTjqPPw7nzyijrqEfDhWM2wvQdzgAhFvRm+MIu29GR5sO+Bp00oOqNl55RLSPaB/RPqJ9RPuI9l8S2m/B1B2wvw2FV05Fb3n/cUTgmc/xtMnQMYKHbs+Mt4hEThA5QeQEkRNEThA5wYdxgniLSLxFJN4i8i+4RWSTmMRLQyJPjTw18tTIUyNPjTx1B0/9bC4N2VTs8Z6QCOoR1COoR1CPoB5B/bO4J2RTkcfrQeL1IF8U8YjXg0TQ+8RBL14P8uF9Ga8HideDxOtB4vUg8XqQeD1IvB4kXg8Srwf5d78e5KFDM/EikLjMEPc34v5G3N+ISz1xfyNeBNK9COTB2Frx8o9IUiJJiSQlkpRIUiJJ+bxJyqd4+ceDkT7iVR8R5SPKR5SPKB9RPqL8+6H8Z3XVx0PoH6/2iNgfsT9if8T+iP0R+z8M+z/lqz0e3G6IV3lEzI+YHzE/Yn7E/Ij5H4T5n/JVHg9hfry9I2J8xPiI8RHjI8ZHjP+8bu94cPc+3tMRcT3iesT1iOsR1yOuf2n3dKx1j49s8WQ43NJ6ntYku6RgqCpoLMtZIXISJQpnodm4F7JsTuCunpAd8JFMXv+nEkRV5TLlN4cUvIGe3Sd5z+mcrz9SjZkTd9HUY6PYzuFzXmag4BHEK5zstueHdxOKqcQ8u/dEMk0IfwTZOzwwxFjVnmfgDKhmPAl8jd9/Hmw7qVygoTO33beb55v9wPq0mxDsJQqN3RoXnlp29ixwh9DRXb9MgnY+PYJ51Rw7Dds4GU7qmaMIC46OpRXFTtlWi1DT70X2yhXDg91I4+PNyp2jLiRjHVFTjtEuKCKIl9By5kJ3fYS8nTTHTNBLnqlUabxrivAHz93BFAIR383vceS7M3abPR7eeuYxoaYs5kunYLlElTKKPXy2fcfYd7XNWekjsrtY/66UwScoHqtC8cdtQ+awjwaIGR8zDZETG14C3kpjo0R8mRJxRzg4RV32TXbdn2lVV31naiWsCJKV9wXaucpCgo7XnMXSuKso3rxLrnGZjJLbfhOMpS8q2b/GZd+HCODgUAS356gNqe3kLXGL8N226jQf+WptTd+tXvtBcOB7S+qfElC4F2Wss1fnySg5vDk+DK31V2RxQ2qdJ6Nkbm1lRoeHopIDzxgGUnF+IcAPpz6p5P/g8qSmLN9wg17Sj2P+1Ul8QdPECW1I0PIqwQ/W42q5dD5EEQmClwEio7lacF5pLomoaGRbWOROetU1lj+tNqO28047Dl2Rh5yS2p+qiivnhKPbqBYy+SFTRsoYRcZxKrxY3IbhZpEj5eDB6XuVLZ9vBC1rQiYGqRJ5WhMXGLsoS6jHJlUaO1bNqX8BF/QCTv0XajMgWXiFHCnSf8XZwUTQpCKDXGeoYS7ptMTSH5a4wbLGAbxi1sQnQN03aBeIJQz7R8PhoBvSohOOzwUQWomVw0WMOYbNCHitxyor8rEvyEfN6UEmlmYs+AoTTgdP4Wgf+t9BJlPr4+m4mjyFbqZwAEdD+Ho1VziA4eCIIuB0sl0NsLPHme2NQKu6zB7xrx4c799dOmJ9b1iXh8KvPB5uxEHx4Ugo1HdXpwZN9ur5xWs4OT+Dm03RD+8MdeaNJIgAq0Vz4wqHSfFhZGg6s9G0wEnfjW8Hpygk6P+qmnUq3ytCK2RqCqrWrgBh4Wr7ZCcF8Z8k1VhmHMXpuysgrU11Do9c+CVV25yDp3rWGpbyTD0JMUKcopeGv34VzuWEECLOsNZIqCVnpdP7Ew6eXku+24YSTBWTNtE6+1A/Teu8tR552aXP1fTWewglRwb9wcHN8cHBgNc4ug278lmTzM8lalqZkKnIu8FOnAMShZHTKS0/8trVspojdzHAD3y7IM/zHlwd+lj0hyP6ozbja1weNuFXrtyB4+bu4+R4MBzwCiDqwryc0pVHMsWO/gqjkqriMMeZyA85aV9N+8YlPmTQytWMhW1ViWcqNYNuFrKYhSzpcp6sEPp6UDGwi9y+xlvbCmrCaJkJff0xuY9zOZvbh8pgoyxlnoWFkFTCFDGbiPT6vzq5s34lJCsET0qvQJ2POVO69dn0rqVwIZmAEhedhWt/Op0mSW0Qslr7GHLNPvQAXnN03xkLY0heiYnM+WIiEthwedHa3UUu1J7pBcUILlLOrzXqZbj2hw+lU+RgH2QvVzOZDtxqnwGDFI3QxdQpb9Q1+lDDfjVT5Pmy1ex2jlJzdD6+F4rmHn24vrEu8rC1znOmiQPk9A2VecPsdVLL3PZpYlORPZjUFpZeoYjcKL9CRc80qAV1FE3zMLU6i2hNQOPG6jo46EZOPjjowWIu0zl3xEpQZh/wLoRNMt0AyyHOJDfjuQhritJA+Hqy5MXWE6jdwjm/P3vmnq2tUtOlXVWtK2V4CfakDOtTPgpdy6qJl1S0gNUuHtAXzS1kYVWVozu69abDLMRkDKvIfjGRhGhJ9YevvoLgTOGVOffNZXmhClwbDD4B4e2JZp/FH3/0HcRG78gFwQzLOtAuFHE+FMXvNOzcTCk45O5dGxfayZX98vRVGFveyKHpnqmFU+p+jdzwhGvz9SswbHrzYqCliYNZ8PfkwXw9R7PRZjKFSN5U6ybanvM0oIVfxmW8yzFk2AtVpCI7ASuoC5lN0hqRbqZ2mKpKuzhaThzrijxXuoG0VmIH0mQ6rHIhOWAeK8l3nm2/SRjlHd9+20vmRMVHb5J372iQf9L53R09Zp1A1JmIvNsocLQ68E3eC/NClIymIjf4gLYLaL2QOd0ad02Kb0JmFk6nZERZ5YN4WFyxwjyM+zUpjjPu4pDS0iyJraq7S1Kr7XYGime//dcummnHMnF7iP/6NhQyz+VHN6T/grNZb49Le+pq3X+9YvFtLhu0X5ywEnkwbdeCO3958TrpJROVLZmQOtKtxSLp8f9HSUJX7tlwQSI/64YgTVye9N//A2S+W7A=
+api: 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
sidebar_class_name: "post api-method"
info_path: docs/rest-api/vectara-rest-api-v-2
custom_edit_url: null
@@ -78,7 +78,7 @@ These built-in tools operate on artifact references rather than file content, su
threshold]\n return {\n 'count': len(filtered),\n 'average': sum(filtered) / len(filtered) if filtered else 0,\n 'filtered_data': filtered\n }\n"},"validation_status":{"description":"The validation status of the code.","type":"string","enum":["pending","valid","invalid"],"example":"valid"},"validation_errors":{"description":"List of validation errors if the code is invalid.","type":"array","items":{"type":"string"}},"execution_configuration":{"description":"Execution configuration for the function.","type":"object","properties":{"max_execution_time_seconds":{"description":"Maximum execution time in seconds.","type":"integer","minimum":1,"maximum":300,"default":30,"example":30},"max_memory_mb":{"description":"Maximum memory usage in megabytes.","type":"integer","minimum":10,"maximum":1024,"default":100,"example":100}},"title":"ExecutionConfiguration"}},"required":["language","code"],"title":"FunctionDefinition"}},"required":["type","id","name","description","language","enabled","function_definition"],"x-vectaraParents":["Tool"],"title":"LambdaTool"},"structured_indexing":{"description":"A tool that indexes structured documents into the Vectara platform with full control over document structure, sections, metadata, tables, and images.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `structured_indexing`.","type":"string","default":"structured_indexing","example":"structured_indexing"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"StructuredIndexingTool"},"sub_agent":{"description":"A tool that spawns a specialized sub-agent to handle complex, multi-step tasks autonomously.\nSub-agents maintain separate context from the main agent and can be specialized for specific types of tasks like code review, general research, or output styling.\n","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `sub_agent`.","type":"string","default":"sub_agent","example":"sub_agent"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"SubAgentTool"},"artifact_create":{"description":"A tool that creates artifacts from text or structured data content that can be stored and referenced later.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_create`.","type":"string","default":"artifact_create","example":"artifact_create"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactCreateTool"},"artifact_read":{"description":"A tool that reads artifact content from the agent session workspace with flexible size and range options.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_read`.","type":"string","default":"artifact_read","example":"artifact_read"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactReadTool"},"artifact_grep":{"description":"A tool that searches through an artifact's content using grep with support for all standard grep options.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_grep`.","type":"string","default":"artifact_grep","example":"artifact_grep"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactGrepTool"},"image_read":{"description":"A tool that loads image artifacts into the conversation context for viewing and analysis.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `image_read`.","type":"string","default":"image_read","example":"image_read"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ImageReadTool"},"document_conversion":{"description":"A tool that converts document artifacts (PDF, Word, PowerPoint, etc.) to various formats.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `document_conversion`.","type":"string","default":"document_conversion","example":"document_conversion"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"DocumentConversionTool"}}},"oneOf":[{"description":"An MCP (Model Context Protocol) tool that connects to external MCP servers for extended functionality.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `mcp`.","type":"string","default":"mcp","example":"mcp"},"server_id":{"description":"Unique identifier for a tool server.","type":"string","pattern":"^tsr_.*","example":"tsr_rag_search","title":"ToolServerId"},"annotations":{"description":"Optional hints about tool behaviour/metadata.","type":"object","properties":{"read_only_hint":{"description":"If true, the tool does not modify its environment.","type":"boolean"},"destructive_hint":{"description":"If true, the tool may perform destructive updates.","type":"boolean"},"idempotent_hint":{"description":"If true, repeated calls with same args have no additional effect.","type":"boolean"},"open_world_hint":{"description":"If true, tool interacts with external entities.","type":"boolean"}},"additionalProperties":true,"title":"McpToolAnnotations"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"McpTool"},{"description":"A corpora search tool that searches through Vectara corpora to find relevant information.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `corpora_search`.","type":"string","default":"corpora_search","example":"corpora_search"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"CorporaSearchTool"},{"description":"A web search tool that searches the internet for relevant information.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `web_search`.","type":"string","default":"web_search","example":"web_search"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"WebSearchTool"},{"description":"A user-defined function that can be executed as a tool by agents.\nLambda tools run in a secure, sandboxed environment with resource limits.\nCurrently supports Python 3.12 with a curated set of libraries.\n","type":"object","properties":{"type":{"description":"This should always be `lambda`.","type":"string","default":"lambda","example":"lambda"},"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the function does and how it can be used.","type":"string"},"language":{"description":"The programming language of the lambda function. Currently only Python 3.12 is supported.","type":"string","enum":["python"],"default":"python","example":"python"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the function.","type":"object","additionalProperties":true,"example":{"type":"object","properties":{"data":{"type":"array","description":"Input data to process."},"threshold":{"type":"number","description":"Threshold value for filtering."}}}},"output_schema":{"description":"The schema that defines the expected output structure from the function.","type":"object","additionalProperties":true},"function_definition":{"description":"Definition of a function to be executed as a tool in a sandboxed environment.\n\n**Python Environment:**\n- Python version: 3.12\n- Execution: Sandboxed using gVisor for security isolation\n- **Allowed modules**: `json`, `math`, `datetime`, `collections`, `itertools`, `functools`, `re`, `time`, `typing`\n- Memory limit: 100MB (configurable up to 1GB)\n- Execution timeout: 30 seconds (configurable up to 300 seconds)\n- Network access: Disabled for security\n- File system access: Read-only temporary workspace\n- No custom package installation supported (security constraint)\n\n**Type Annotations:**\n- Use type annotations for automatic input/output schema discovery\n- Supported typing constructs: `List`, `Dict`, `Optional`, `Union`\n- Import from `typing` module when using complex types\n","type":"object","properties":{"language":{"description":"The programming language of the function. Currently only Python 3.12 is supported.","type":"string","enum":["python"],"example":"python"},"code":{"description":"The function code.\n\n**Required**: Must define a `process()` entry point function. Use type annotations on parameters for automatic schema discovery.\n\nParameters are passed as keyword arguments matched to the function signature.\n","type":"string","example":"def process(data: list, threshold: float = 0):\n filtered = [x for x in data if x > threshold]\n return {\n 'count': len(filtered),\n 'average': sum(filtered) / len(filtered) if filtered else 0,\n 'filtered_data': filtered\n }\n"},"validation_status":{"description":"The validation status of the code.","type":"string","enum":["pending","valid","invalid"],"example":"valid"},"validation_errors":{"description":"List of validation errors if the code is invalid.","type":"array","items":{"type":"string"}},"execution_configuration":{"description":"Execution configuration for the function.","type":"object","properties":{"max_execution_time_seconds":{"description":"Maximum execution time in seconds.","type":"integer","minimum":1,"maximum":300,"default":30,"example":30},"max_memory_mb":{"description":"Maximum memory usage in megabytes.","type":"integer","minimum":10,"maximum":1024,"default":100,"example":100}},"title":"ExecutionConfiguration"}},"required":["language","code"],"title":"FunctionDefinition"}},"required":["type","id","name","description","language","enabled","function_definition"],"x-vectaraParents":["Tool"],"title":"LambdaTool"},{"description":"A tool that indexes structured documents into the Vectara platform with full control over document structure, sections, metadata, tables, and images.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `structured_indexing`.","type":"string","default":"structured_indexing","example":"structured_indexing"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"StructuredIndexingTool"},{"description":"A tool that spawns a specialized sub-agent to handle complex, multi-step tasks autonomously.\nSub-agents maintain separate context from the main agent and can be specialized for specific types of tasks like code review, general research, or output styling.\n","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `sub_agent`.","type":"string","default":"sub_agent","example":"sub_agent"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"SubAgentTool"},{"description":"A tool that creates artifacts from text or structured data content that can be stored and referenced later.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_create`.","type":"string","default":"artifact_create","example":"artifact_create"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactCreateTool"},{"description":"A tool that reads artifact content from the agent session workspace with flexible size and range options.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_read`.","type":"string","default":"artifact_read","example":"artifact_read"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactReadTool"},{"description":"A tool that searches through an artifact's content using grep with support for all standard grep options.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_grep`.","type":"string","default":"artifact_grep","example":"artifact_grep"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactGrepTool"},{"description":"A tool that loads image artifacts into the conversation context for viewing and analysis.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `image_read`.","type":"string","default":"image_read","example":"image_read"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ImageReadTool"},{"description":"A tool that converts document artifacts (PDF, Word, PowerPoint, etc.) to various formats.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `document_conversion`.","type":"string","default":"document_conversion","example":"document_conversion"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"DocumentConversionTool"}],"title":"Tool"}}}},"400":{"description":"Tool creation request was malformed or contains invalid configuration.","content":{"application/json":{"schema":{"description":"Error returned when a request contains invalid parameters or violates schema validation.","type":"object","properties":{"field_errors":{"description":"The errors that relate to specific fields in the request.","type":"object","additionalProperties":{"type":"string"}},"messages":{"type":"array","items":{"title":"message","type":"string"}},"request_id":{"description":"The ID of the request that can be used to help Vectara support debug what went wrong.","type":"string"}},"title":"BadRequestError"}}}},"403":{"description":"Permissions do not allow creating tools.","content":{"application/json":{"schema":{"description":"A general error response with an error code and message.","type":"object","properties":{"messages":{"description":"The messages describing why the error occurred.","type":"array","items":{"title":"message","type":"string","example":"Internal server error."}},"request_id":{"description":"The ID of the request that can be used to help Vectara support debug what went wrong.","type":"string"}},"title":"Error"}}}},"409":{"description":"A tool with this name already exists.","content":{"application/json":{"schema":{"description":"A general error response with an error code and message.","type":"object","properties":{"messages":{"description":"The messages describing why the error occurred.","type":"array","items":{"title":"message","type":"string","example":"Internal server error."}},"request_id":{"description":"The ID of the request that can be used to help Vectara support debug what went wrong.","type":"string"}},"title":"Error"}}}}}}
+ responses={{"201":{"description":"The tool has been created successfully.","content":{"application/json":{"schema":{"description":"A tool that can be used by agents to perform specific actions or operations.","x-vectara-base-schema":"#/ToolBase","discriminator":{"propertyName":"type","mapping":{"dynamic_vectara":{"description":"A tool type for built-in Vectara tools that have implementations within the platform but do not have a dedicated tool type schema. Examples include tools like `sub_agent`, `corpora_search`, `web_search`, and similar platform-provided capabilities. Use the List Tools endpoint to discover available tools and obtain the `tool_id` required for configuration.\n","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `dynamic_vectara`.","type":"string","default":"dynamic_vectara","example":"dynamic_vectara"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"DynamicVectaraTool"},"mcp":{"description":"An MCP (Model Context Protocol) tool that connects to external MCP servers for extended functionality.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `mcp`.","type":"string","default":"mcp","example":"mcp"},"server_id":{"description":"Unique identifier for a tool server.","type":"string","pattern":"^tsr_.*","example":"tsr_rag_search","title":"ToolServerId"},"annotations":{"description":"Optional hints about tool behaviour/metadata.","type":"object","properties":{"read_only_hint":{"description":"If true, the tool does not modify its environment.","type":"boolean"},"destructive_hint":{"description":"If true, the tool may perform destructive updates.","type":"boolean"},"idempotent_hint":{"description":"If true, repeated calls with same args have no additional effect.","type":"boolean"},"open_world_hint":{"description":"If true, tool interacts with external entities.","type":"boolean"}},"additionalProperties":true,"title":"McpToolAnnotations"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"McpTool"},"corpora_search":{"description":"A corpora search tool that searches through Vectara corpora to find relevant information.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `corpora_search`.","type":"string","default":"corpora_search","example":"corpora_search"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"CorporaSearchTool"},"web_search":{"description":"A web search tool that searches the internet for relevant information.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `web_search`.","type":"string","default":"web_search","example":"web_search"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"WebSearchTool"},"web_get":{"description":"A web get tool that fetches content from URLs using HTTP requests.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `web_get`.","type":"string","default":"web_get","example":"web_get"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"WebGetTool"},"lambda":{"description":"A user-defined function that can be executed as a tool by agents.\nLambda tools run in a secure, sandboxed environment with resource limits.\nCurrently supports Python 3.12 with a curated set of libraries.\n","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `lambda`.","type":"string","default":"lambda","example":"lambda"},"language":{"description":"The programming language of the lambda function. Currently only Python 3.12 is supported.","type":"string","enum":["python"],"default":"python","example":"python"},"output_schema":{"description":"The schema that defines the expected output structure from the function.","type":"object","additionalProperties":true},"function_definition":{"description":"Definition of a function to be executed as a tool in a sandboxed environment.\n\n**Python Environment:**\n- Python version: 3.12\n- Execution: Sandboxed using gVisor for security isolation\n- **Allowed modules**: `json`, `math`, `datetime`, `collections`, `itertools`, `functools`, `re`, `time`, `typing`\n- Memory limit: 100MB (configurable up to 1GB)\n- Execution timeout: 30 seconds (configurable up to 300 seconds)\n- Network access: Disabled for security\n- File system access: Read-only temporary workspace\n- No custom package installation supported (security constraint)\n\n**Type Annotations:**\n- Use type annotations for automatic input/output schema discovery\n- Supported typing constructs: `List`, `Dict`, `Optional`, `Union`\n- Import from `typing` module when using complex types\n","type":"object","properties":{"language":{"description":"The programming language of the function. Currently only Python 3.12 is supported.","type":"string","enum":["python"],"example":"python"},"code":{"description":"The function code.\n\n**Required**: Must define a `process()` entry point function. Use type annotations on parameters for automatic schema discovery.\n\nParameters are passed as keyword arguments matched to the function signature.\n","type":"string","example":"def process(data: list, threshold: float = 0):\n filtered = [x for x in data if x > threshold]\n return {\n 'count': len(filtered),\n 'average': sum(filtered) / len(filtered) if filtered else 0,\n 'filtered_data': filtered\n }\n"},"validation_status":{"description":"The validation status of the code.","type":"string","enum":["pending","valid","invalid"],"example":"valid"},"validation_errors":{"description":"List of validation errors if the code is invalid.","type":"array","items":{"type":"string"}},"execution_configuration":{"description":"Execution configuration for the function.","type":"object","properties":{"max_execution_time_seconds":{"description":"Maximum execution time in seconds.","type":"integer","minimum":1,"maximum":300,"default":30,"example":30},"max_memory_mb":{"description":"Maximum memory usage in megabytes.","type":"integer","minimum":10,"maximum":1024,"default":100,"example":100}},"title":"ExecutionConfiguration"}},"required":["language","code"],"title":"FunctionDefinition"}},"required":["type","language","function_definition"]}],"x-vectaraParents":["Tool"],"title":"LambdaTool"},"structured_indexing":{"description":"A tool that indexes structured documents into the Vectara platform with full control over document structure, sections, metadata, tables, and images.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `structured_indexing`.","type":"string","default":"structured_indexing","example":"structured_indexing"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"StructuredIndexingTool"},"sub_agent":{"description":"A tool that spawns a specialized sub-agent to handle complex, multi-step tasks autonomously.\nSub-agents maintain separate context from the main agent and can be specialized for specific types of tasks like code review, general research, or output styling.\n","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `sub_agent`.","type":"string","default":"sub_agent","example":"sub_agent"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"SubAgentTool"},"artifact_create":{"description":"A tool that creates artifacts from text or structured data content that can be stored and referenced later.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_create`.","type":"string","default":"artifact_create","example":"artifact_create"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactCreateTool"},"artifact_read":{"description":"A tool that reads artifact content from the agent session workspace with flexible size and range options.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_read`.","type":"string","default":"artifact_read","example":"artifact_read"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactReadTool"},"artifact_grep":{"description":"A tool that searches through an artifact's content using grep with support for all standard grep options.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_grep`.","type":"string","default":"artifact_grep","example":"artifact_grep"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactGrepTool"},"image_read":{"description":"A tool that loads image artifacts into the conversation context for viewing and analysis.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `image_read`.","type":"string","default":"image_read","example":"image_read"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ImageReadTool"},"document_conversion":{"description":"A tool that converts document artifacts (PDF, Word, PowerPoint, etc.) to various formats.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `document_conversion`.","type":"string","default":"document_conversion","example":"document_conversion"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"DocumentConversionTool"}}},"oneOf":[{"description":"A tool type for built-in Vectara tools that have implementations within the platform but do not have a dedicated tool type schema. Examples include tools like `sub_agent`, `corpora_search`, `web_search`, and similar platform-provided capabilities. Use the List Tools endpoint to discover available tools and obtain the `tool_id` required for configuration.\n","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `dynamic_vectara`.","type":"string","default":"dynamic_vectara","example":"dynamic_vectara"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"DynamicVectaraTool"},{"description":"An MCP (Model Context Protocol) tool that connects to external MCP servers for extended functionality.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `mcp`.","type":"string","default":"mcp","example":"mcp"},"server_id":{"description":"Unique identifier for a tool server.","type":"string","pattern":"^tsr_.*","example":"tsr_rag_search","title":"ToolServerId"},"annotations":{"description":"Optional hints about tool behaviour/metadata.","type":"object","properties":{"read_only_hint":{"description":"If true, the tool does not modify its environment.","type":"boolean"},"destructive_hint":{"description":"If true, the tool may perform destructive updates.","type":"boolean"},"idempotent_hint":{"description":"If true, repeated calls with same args have no additional effect.","type":"boolean"},"open_world_hint":{"description":"If true, tool interacts with external entities.","type":"boolean"}},"additionalProperties":true,"title":"McpToolAnnotations"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"McpTool"},{"description":"A corpora search tool that searches through Vectara corpora to find relevant information.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `corpora_search`.","type":"string","default":"corpora_search","example":"corpora_search"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"CorporaSearchTool"},{"description":"A web search tool that searches the internet for relevant information.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `web_search`.","type":"string","default":"web_search","example":"web_search"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"WebSearchTool"},{"description":"A web get tool that fetches content from URLs using HTTP requests.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `web_get`.","type":"string","default":"web_get","example":"web_get"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"WebGetTool"},{"description":"A user-defined function that can be executed as a tool by agents.\nLambda tools run in a secure, sandboxed environment with resource limits.\nCurrently supports Python 3.12 with a curated set of libraries.\n","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `lambda`.","type":"string","default":"lambda","example":"lambda"},"language":{"description":"The programming language of the lambda function. Currently only Python 3.12 is supported.","type":"string","enum":["python"],"default":"python","example":"python"},"output_schema":{"description":"The schema that defines the expected output structure from the function.","type":"object","additionalProperties":true},"function_definition":{"description":"Definition of a function to be executed as a tool in a sandboxed environment.\n\n**Python Environment:**\n- Python version: 3.12\n- Execution: Sandboxed using gVisor for security isolation\n- **Allowed modules**: `json`, `math`, `datetime`, `collections`, `itertools`, `functools`, `re`, `time`, `typing`\n- Memory limit: 100MB (configurable up to 1GB)\n- Execution timeout: 30 seconds (configurable up to 300 seconds)\n- Network access: Disabled for security\n- File system access: Read-only temporary workspace\n- No custom package installation supported (security constraint)\n\n**Type Annotations:**\n- Use type annotations for automatic input/output schema discovery\n- Supported typing constructs: `List`, `Dict`, `Optional`, `Union`\n- Import from `typing` module when using complex types\n","type":"object","properties":{"language":{"description":"The programming language of the function. Currently only Python 3.12 is supported.","type":"string","enum":["python"],"example":"python"},"code":{"description":"The function code.\n\n**Required**: Must define a `process()` entry point function. Use type annotations on parameters for automatic schema discovery.\n\nParameters are passed as keyword arguments matched to the function signature.\n","type":"string","example":"def process(data: list, threshold: float = 0):\n filtered = [x for x in data if x > threshold]\n return {\n 'count': len(filtered),\n 'average': sum(filtered) / len(filtered) if filtered else 0,\n 'filtered_data': filtered\n }\n"},"validation_status":{"description":"The validation status of the code.","type":"string","enum":["pending","valid","invalid"],"example":"valid"},"validation_errors":{"description":"List of validation errors if the code is invalid.","type":"array","items":{"type":"string"}},"execution_configuration":{"description":"Execution configuration for the function.","type":"object","properties":{"max_execution_time_seconds":{"description":"Maximum execution time in seconds.","type":"integer","minimum":1,"maximum":300,"default":30,"example":30},"max_memory_mb":{"description":"Maximum memory usage in megabytes.","type":"integer","minimum":10,"maximum":1024,"default":100,"example":100}},"title":"ExecutionConfiguration"}},"required":["language","code"],"title":"FunctionDefinition"}},"required":["type","language","function_definition"]}],"x-vectaraParents":["Tool"],"title":"LambdaTool"},{"description":"A tool that indexes structured documents into the Vectara platform with full control over document structure, sections, metadata, tables, and images.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `structured_indexing`.","type":"string","default":"structured_indexing","example":"structured_indexing"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"StructuredIndexingTool"},{"description":"A tool that spawns a specialized sub-agent to handle complex, multi-step tasks autonomously.\nSub-agents maintain separate context from the main agent and can be specialized for specific types of tasks like code review, general research, or output styling.\n","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `sub_agent`.","type":"string","default":"sub_agent","example":"sub_agent"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"SubAgentTool"},{"description":"A tool that creates artifacts from text or structured data content that can be stored and referenced later.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_create`.","type":"string","default":"artifact_create","example":"artifact_create"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactCreateTool"},{"description":"A tool that reads artifact content from the agent session workspace with flexible size and range options.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_read`.","type":"string","default":"artifact_read","example":"artifact_read"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactReadTool"},{"description":"A tool that searches through an artifact's content using grep with support for all standard grep options.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_grep`.","type":"string","default":"artifact_grep","example":"artifact_grep"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactGrepTool"},{"description":"A tool that loads image artifacts into the conversation context for viewing and analysis.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `image_read`.","type":"string","default":"image_read","example":"image_read"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ImageReadTool"},{"description":"A tool that converts document artifacts (PDF, Word, PowerPoint, etc.) to various formats.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `document_conversion`.","type":"string","default":"document_conversion","example":"document_conversion"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"DocumentConversionTool"}],"title":"Tool"}}}},"400":{"description":"Tool creation request was malformed or contains invalid configuration.","content":{"application/json":{"schema":{"description":"Error returned when a request contains invalid parameters or violates schema validation.","type":"object","properties":{"field_errors":{"description":"The errors that relate to specific fields in the request.","type":"object","additionalProperties":{"type":"string"}},"messages":{"type":"array","items":{"title":"message","type":"string"}},"request_id":{"description":"The ID of the request that can be used to help Vectara support debug what went wrong.","type":"string"}},"title":"BadRequestError"}}}},"403":{"description":"Permissions do not allow creating tools.","content":{"application/json":{"schema":{"description":"A general error response with an error code and message.","type":"object","properties":{"messages":{"description":"The messages describing why the error occurred.","type":"array","items":{"title":"message","type":"string","example":"Internal server error."}},"request_id":{"description":"The ID of the request that can be used to help Vectara support debug what went wrong.","type":"string"}},"title":"Error"}}}},"409":{"description":"A tool with this name already exists.","content":{"application/json":{"schema":{"description":"A general error response with an error code and message.","type":"object","properties":{"messages":{"description":"The messages describing why the error occurred.","type":"array","items":{"title":"message","type":"string","example":"Internal server error."}},"request_id":{"description":"The ID of the request that can be used to help Vectara support debug what went wrong.","type":"string"}},"title":"Error"}}}}}}
>
diff --git a/www/docs/rest-api/create-user.api.mdx b/www/docs/rest-api/create-user.api.mdx
index e02e4f1c8..7f107e40b 100644
--- a/www/docs/rest-api/create-user.api.mdx
+++ b/www/docs/rest-api/create-user.api.mdx
@@ -5,7 +5,7 @@ description: "Create a user for the current customer account. For example, a com
sidebar_label: "Create a user in the current customer account"
hide_title: true
hide_table_of_contents: true
-api: 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
+api: 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
sidebar_class_name: "post api-method"
info_path: docs/rest-api/vectara-rest-api-v-2
custom_edit_url: null
@@ -55,7 +55,7 @@ Create a user for the current customer account. For example, a company wants to
@@ -63,7 +63,7 @@ Create a user for the current customer account. For example, a company wants to
diff --git a/www/docs/rest-api/get-agent-event.api.mdx b/www/docs/rest-api/get-agent-event.api.mdx
index 3e773d2b4..8b67153a2 100644
--- a/www/docs/rest-api/get-agent-event.api.mdx
+++ b/www/docs/rest-api/get-agent-event.api.mdx
@@ -5,7 +5,7 @@ description: "Retrieve the details of a specific event within an agent session."
sidebar_label: "Get event in agent session"
hide_title: true
hide_table_of_contents: true
-api: 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
+api: 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
sidebar_class_name: "get api-method"
info_path: docs/rest-api/vectara-rest-api-v-2
custom_edit_url: null
@@ -62,7 +62,7 @@ Retrieve the details of a specific event within an agent session.
diff --git a/www/docs/rest-api/get-agent.api.mdx b/www/docs/rest-api/get-agent.api.mdx
index 2b6af4eff..afd0c5f98 100644
--- a/www/docs/rest-api/get-agent.api.mdx
+++ b/www/docs/rest-api/get-agent.api.mdx
@@ -5,7 +5,7 @@ description: "The Get Agent API enables you to retrieve the complete configurati
sidebar_label: "Get agent"
hide_title: true
hide_table_of_contents: true
-api: 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
+api: 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
sidebar_class_name: "get api-method"
info_path: docs/rest-api/vectara-rest-api-v-2
custom_edit_url: null
@@ -65,7 +65,7 @@ Use this API to inspect agent configurations before creating sessions, troublesh
"},"end_tag":{"description":"The tag that wraps the document part at the end. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the document part ends and the context after begins.","type":"string","example":""}},"example":{"sentences_before":2,"sentences_after":2,"start_tag":"","end_tag":""},"title":"ContextConfiguration"},"reranker":{"type":"object","description":"Rerank results of the search. Rerankers are very powerful tools to improve the order of search results. By default the search will use the most powerful reranker available to the customer's plan. To disable reranking, set the reranker `type` to `\"none\"`.","discriminator":{"propertyName":"type","mapping":{"customer_reranker":{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},"userfn":{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},"mmr":{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},"chain":{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},"none":{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}}},"oneOf":[{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}],"title":"SearchReranker"}},"example":{"limit":50},"title":"SearchParameters"}],"required":["corpora"],"title":"SearchCorporaParameters"},"generation":{"description":"The parameters to control generation.","type":"object","properties":{"enabled":{"description":"Whether generation is enabled for this query. This field is ignored if using chat.","type":"boolean","default":true},"generation_preset_name":{"description":"The preset values to use to feed the query results and other context to the model. \n\nA `generation_preset` is an object with a bundle of properties that specifies: \n* The `prompt_template` that is rendered and then sent to the LLM. \n* The LLM used. * `model_parameter`s such as temperature.\n\nAll of these properties except the model can be overridden by setting them in this object. Even when a `prompt_template` is set, the `generation_preset_name` is used to set the model used. See `model_parameters.model` if you want to set the model explicitly.\n\nIf `generation_preset_name` is not set, the Vectara platform will use the default model and prompt.'\n","type":"string","minLength":1,"example":"mockingbird-2.0"},"prompt_name":{"description":"Use `generation_preset_name` instead of `prompt_name`.","type":"string","minLength":1,"example":"mockingbird-2.0","deprecated":true},"max_used_search_results":{"description":"The maximum number of search results to be available to the prompt.","type":"integer","format":"int32","minimum":0,"default":5},"prompt_template":{"description":"Vectara manages both system and user roles and prompts for the generative LLM out of the box by default. However, users can override the `prompt_template` via this variable. The `prompt_template` is in the form of an Apache Velocity template. For more details on how to configure the `prompt_template`, see the [long-form documentation](https://docs.vectara.com/docs/prompts/vectara-prompt-engine).","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n"},"prompt_text":{"description":"This property is deprecated in favor of clearer naming. Use `prompt_template`. This property will be ignored if `prompt_template` is set.","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n","deprecated":true},"max_response_characters":{"description":"Controls the length of the generated output. This is a rough estimate and not a hard limit: the end output can be longer or shorter than this value. This is generally implemented by including the `max_response_characters` in the prompt, and the LLM's instruction following capability dictates how closely the generated output is limited.","type":"integer","format":"int32","example":300,"minimum":0},"response_language":{"description":"Languages that the Vectara platform supports.","type":"string","enum":["auto","eng","deu","fra","zho","kor","ara","rus","tha","nld","ita","por","spa","jpn","pol","tur","vie","ind","ces","ukr","ell","heb","fas","hin","urd","swe","ben","msa","ron"],"default":"auto","title":"Language"},"model_parameters":{"title":"ModelParameters","description":"The parameters for the model. WARNING: This is an experimental feature, and breakable at any point with virtually no notice. It is meant for experimentation to converge on optimal parameters that can then be set in the prompt definitions.","type":"object","properties":{"llm_name":{"description":"The model (e.g., `gpt-4`) to use for summarization. If specified, it will override the model behind `generation_preset_name`.","type":"string","example":"gpt4"},"max_tokens":{"description":"The maximum number of tokens to be returned by the model.","type":"integer","format":"int32","minimum":1},"temperature":{"description":"The sampling temperature to use. Higher values make the output more random, while lower values make it more focused and deterministic.","type":"number","format":"float"},"frequency_penalty":{"description":"Higher values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.","type":"number","format":"float"},"presence_penalty":{"description":"Higher values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.","type":"number","format":"float"}}},"citations":{"description":"Style the generator should use when making citations.","type":"object","properties":{"style":{"description":"The citation style that you want to use in the summary: \n* `numeric` - Citations formatted as simple numerals: \\[1\\], \\[2\\], etc.\n* `none` - Citations removed from text.\n* `html` - Citation formatted as a URL like `text_pattern`.\n* `markdown` - Formatted as `[text_pattern](url_pattern)`.\n","type":"string","enum":["none","numeric","html","markdown"]},"url_pattern":{"description":"The URL pattern if the citation_style is set to `html` or `markdown`. The pattern can access metadata attributes in the document or part. e.g. `https://my.doc/foo/{doc.id}/{part.id}` The default `url_pattern` is an empty string.","type":"string","example":"https://vectara.com/documents/{doc.id}"},"text_pattern":{"description":"The text pattern if the citation_style is set to `html` or `markdown`. This pattern sets the href for HTML or the text within `[]` in markdown, and defaults to N being the index of result if it is not set. The default citation style looks like `[N]()` for markdown. You can use metadata attributes in the `text_pattern`. For example, the pattern `{doc.title}` with citation style `markdown` would result in final citation output like `[Title]()` when the document's metadata includes `{\"title\":\"Title\"}`.","type":"string","example":"{doc.title}"}},"title":"CitationParameters"},"enable_factual_consistency_score":{"description":"Enable returning the factual consistency score with query results.","type":"boolean","default":true}},"title":"GenerationParameters"},"save_history":{"description":"Indicates whether to save the query to query history.","type":"boolean"}},"required":["search"],"title":"CorporaSearchQueryConfiguration"}},"required":["type","query_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},"web_search":{"title":"InlineWebSearchToolConfiguration","description":"A web search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'web_search' for inline web search tool configurations.","default":"web_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the web search tool call such as limit etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query to execute.","type":"string","example":"latest AI developments 2024"},"limit":{"description":"Maximum number of results to return.","type":"integer","minimum":1,"example":10},"provider":{"description":"Search provider to use.","type":"string","enum":["tavily"],"example":"tavily"},"include_domains":{"description":"List of domains to specifically include in search results. When specified, results will ONLY come from these domains. Supports exact domains (e.g., \"github.com\"), subdomains (e.g., \"docs.github.com\"), and wildcard patterns (e.g., \"*.github.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["github.com","docs.github.com","*.stackoverflow.com"]},"exclude_domains":{"description":"List of domains to specifically exclude from search results. Supports exact domains (e.g., \"spam.com\"), subdomains (e.g., \"bad.spam.com\"), and wildcard patterns (e.g., \"*.spam.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["spam.com","unreliable-source.com"]}},"additionalProperties":false,"title":"WebSearchToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"lambda":{"title":"InlineLambdaToolConfiguration","description":"A lambda tool configuration defined inline in the agent for executing user-defined functions.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'lambda' for inline lambda tool configurations.","default":"lambda"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments that will be passed to the lambda function. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","additionalProperties":true,"example":{"custom_param":"value"}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},"structured_indexing":{"title":"InlineStructuredIndexingToolConfiguration","description":"A structured indexing tool configuration defined inline in the agent for indexing into the Vectara platform.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'structured_indexing' for inline structured indexing tool configurations.","default":"structured_indexing"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the structured indexing tool call such as corpus_key etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"corpus_key":{"description":"The key identifying the target corpus for document indexing. If not provided, will be filled in by the LLM.","type":"string","example":"my-knowledge-base"},"document_id":{"description":"The unique identifier for the document within the corpus, preferably human readable IDs.","type":"string","example":"annual_report_2024"},"title":{"description":"The title of the document being indexed.","type":"string","example":"2024 Annual ESG Report"},"description":{"description":"A brief description or summary of the document content.","type":"string","example":"Comprehensive environmental, social, and governance report"},"metadata":{"description":"The metadata key-value pairs to associate with the document. If present, this gets merged with existing artifact metadata.","type":"object","additionalProperties":true,"example":{"doc_type":"annual_report","year":2024,"department":"sustainability"}},"document":{"description":"The structured document to index with full hierarchical content.","type":"object","additionalProperties":true,"example":{"id":"annual_report_2024","type":"structured","title":"2024 Annual ESG Report"}}},"additionalProperties":false,"title":"StructuredIndexingToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"sub_agent":{"title":"InlineSubAgentToolConfiguration","description":"A sub-agent tool configuration defined inline in the agent for invoking specialized sub-agents.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'sub_agent' for inline sub-agent tool configurations.","default":"sub_agent"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the sub-agent tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"message":{"description":"The detailed task instructions for the sub-agent to perform autonomously.","type":"string","example":"Review the code changes in pull request \\#123 for security issues"},"session_tti_minutes":{"description":"Time to idle in minutes before the session expires.","type":"integer","format":"int64","minimum":1,"example":60}},"additionalProperties":false,"title":"SubAgentToolParameters"},"sub_agent_configuration":{"description":"User-configurable settings for the sub-agent tool. These parameters are never exposed to the agent.","type":"object","properties":{"agent_key":{"description":"A unique key that identifies an agent.","type":"string","pattern":"[0-9a-zA-Z_-]+$","minLength":1,"maxLength":50,"example":"customer_support","title":"AgentKey"}},"required":["agent_key"],"title":"SubAgentConfiguration"}},"required":["type","sub_agent_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},"artifact_read":{"title":"InlineArtifactReadToolConfiguration","description":"An artifact read tool configuration defined inline in the agent for reading artifacts from the session workspace.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_read' for inline artifact read tool configurations.","default":"artifact_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to read.","type":"string","example":"art_abc123"},"encoding":{"description":"The encoding format for the content.","type":"string","enum":["raw","base64"],"example":"raw"},"start_line":{"description":"Optional starting line number (1-indexed).","type":"integer","format":"int32","example":100},"end_line":{"description":"Optional ending line number (1-indexed, inclusive).","type":"integer","format":"int32","example":200}},"additionalProperties":false,"title":"ArtifactReadToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"artifact_grep":{"title":"InlineArtifactGrepToolConfiguration","description":"An artifact grep tool configuration defined inline in the agent for searching through artifact content.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_grep' for inline artifact grep tool configurations.","default":"artifact_grep"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact grep tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to search.","type":"string","example":"art_abc123"},"pattern":{"description":"The pattern to search for (supports grep regex).","type":"string","example":"error|exception"},"grep_options":{"description":"Optional grep command options.","type":"array","items":{"type":"string"},"example":["-i","-n"]}},"additionalProperties":false,"title":"ArtifactGrepToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"image_read":{"title":"InlineImageReadToolConfiguration","description":"An image read tool configuration defined inline in the agent for loading images into the conversation context.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'image_read' for inline image read tool configurations.","default":"image_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the image read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the image artifact to view.","type":"string","pattern":"^art_[a-z0-9_-]+$","example":"art_photo_a3f2"},"detail":{"description":"Detail level for image processing.","type":"string","enum":["auto","low","high"],"default":"auto","example":"auto"}},"additionalProperties":false,"title":"ImageReadToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"document_conversion":{"title":"InlineDocumentConversionToolConfiguration","description":"A document conversion tool configuration defined inline in the agent for converting document artifacts to various formats.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'document_conversion' for inline document conversion tool configurations.","default":"document_conversion"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the document conversion tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to convert.","type":"string","example":"art_abc123"},"output_format":{"description":"Output format for the converted document.","type":"string","enum":["markdown","structured_document"],"example":"markdown"},"description":{"description":"Optional description for the converted artifact.","type":"string","example":"PDF converted to markdown"}},"additionalProperties":false,"title":"DocumentConversionToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]}}},"oneOf":[{"title":"InlineMcpToolConfiguration","description":"An MCP tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'mcp' for inline MCP tool configurations.","default":"mcp"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for tool calls. The key specifies the location in the tool arguments to overide, and the value specifies what to override with. The LLM will not be able to change the parameters, nor know those values exist within the tool.\n\nThe values can also be dynamic references to context values using $ref with dot notation path syntax:\n- Static value: \"fixed_value\" or 123\n- Dynamic reference: `{\"$ref\": \"session.metadata.field_name\"}`\n\nReferences are resolved at runtime from context:\n- session.metadata.* - Access session metadata fields\n- agent.metadata.* - Access agent metadata fields\n\nExample:\n `{\"query\": {\"$ref\": \".session.metadata.query\"}}`\n\nIf you want to have a real value `\"$ref\"` use `\"$$ref\"`, that is you can escape the first $ by using $$.","type":"object","additionalProperties":true,"example":{"custom_param":"value","limit":10}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineCorporaSearchToolConfiguration","description":"A corpora search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'corpora_search' for inline corpora search tool configurations.","default":"corpora_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the corpus search call such as the query. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query string, which is the question the user is asking. If not provided, will be filled in by the LLM.","type":"string","maxLength":5000,"example":"Am I allowed to bring pets to work?"}},"additionalProperties":false,"title":"CorporaSearchToolParameters"},"query_configuration":{"description":"User-configurable settings for the corpus search that are not exposed to the LLM.","type":"object","properties":{"search":{"description":"The parameters to search one or more corpora.","allOf":[{"type":"object","properties":{"corpora":{"description":"The corpora that you want to search.","type":"array","items":{"description":"A corpus with its identifying key for use in search operations within a customer account.","allOf":[{"description":"Configuration for search parameters specific to a single corpus within a customer account, including filters and semantics.","type":"object","properties":{"custom_dimensions":{"description":"The custom dimensions as additional weights.","type":"object","additionalProperties":{"type":"number","format":"double","nullable":false},"title":"CustomDimensions"},"metadata_filter":{"description":"The filter string used to narrow the search based on metadata attributes. The query against this corpus will be confined to document parts that match the `metadata_filter`. Only metadata fields set as `filter_attributes` on the corpus can be filtered. Filter syntax is similar to a SQL WHERE clause. See [metadata filters documentation](https://docs.vectara.com/docs/learn/metadata-search-filtering/filter-overview) for more information.","type":"string","maxLength":8000,"example":"doc.title = 'Annual Report'"},"lexical_interpolation":{"description":"How much to weigh lexical scores compared to the embedding score. 0 means lexical search is not used at all, and 1 means only lexical search is used.","type":"number","format":"float","minimum":0,"maximum":1,"example":0.005},"semantics":{"description":"Indicates whether to consider a query against this corpus as a query or a response.","type":"string","enum":["default","query","response"],"default":"default","title":"SearchSemantics"}},"title":"SearchCorpus"},{"type":"object","properties":{"corpus_key":{"description":"A user-provided key for a corpus.","type":"string","example":"my-corpus","pattern":"[a-zA-Z0-9_\\=\\-]+$","maxLength":50,"title":"CorpusKey"},"query":{"description":"Query for a particular corpus that will override the overall query if present.","type":"string","maxLength":5000,"example":"What are some important facts in my-corpus?"}}}],"required":["corpus_key"],"title":"KeyedSearchCorpus"},"minItems":1}}},{"type":"object","description":"Search parameters to retrieve knowledge for the query.","properties":{"offset":{"description":"Specifies how many results into the result to skip. This is useful for pagination.","type":"integer","format":"int32","default":0,"minimum":0},"limit":{"description":"The maximum number of results returned.","type":"integer","format":"int32","minimum":1,"default":10},"context_configuration":{"type":"object","description":"Configuration on the presentation of each document part in the result set. You can only use characters_before/after or sentences_before/after, but not both. If you specify both in the query, sentences_before/after takes precedence","properties":{"characters_before":{"description":"The number of characters that are shown before the matching document part. This is useful to show the context of the document part in the wider document. Ignored if `sentences_before` is set. Vectara will capture the full sentence that contains the captured characters, to not lose the meaning caused by a truncated word or sentence.","type":"integer","format":"int32"},"characters_after":{"description":"The number of characters that are shown after the matching document part. This is useful to show the context of the document part in the wider document. Ignored if `sentences_after` is set. Vectara will capture the full sentence that contains the captured characters, to not lose the meaning caused by a truncated word or sentence.","type":"integer","format":"int32"},"sentences_before":{"description":"The number of sentences that are shown before the matching document part. This is useful to show the context of the document part in the wider document.","type":"integer","format":"int32","default":0,"minimum":0,"example":2},"sentences_after":{"description":"The number of sentences that are shown after the matching document part. This is useful to show the context of the document part in the wider document.","type":"integer","format":"int32","default":0,"minimum":0,"example":2},"start_tag":{"description":"The tag that wraps the document part at the start. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the context before ends and the document part begins.","type":"string","example":""},"end_tag":{"description":"The tag that wraps the document part at the end. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the document part ends and the context after begins.","type":"string","example":""}},"example":{"sentences_before":2,"sentences_after":2,"start_tag":"","end_tag":""},"title":"ContextConfiguration"},"reranker":{"type":"object","description":"Rerank results of the search. Rerankers are very powerful tools to improve the order of search results. By default the search will use the most powerful reranker available to the customer's plan. To disable reranking, set the reranker `type` to `\"none\"`.","discriminator":{"propertyName":"type","mapping":{"customer_reranker":{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},"userfn":{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},"mmr":{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},"chain":{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},"none":{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}}},"oneOf":[{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}],"title":"SearchReranker"}},"example":{"limit":50},"title":"SearchParameters"}],"required":["corpora"],"title":"SearchCorporaParameters"},"generation":{"description":"The parameters to control generation.","type":"object","properties":{"enabled":{"description":"Whether generation is enabled for this query. This field is ignored if using chat.","type":"boolean","default":true},"generation_preset_name":{"description":"The preset values to use to feed the query results and other context to the model. \n\nA `generation_preset` is an object with a bundle of properties that specifies: \n* The `prompt_template` that is rendered and then sent to the LLM. \n* The LLM used. * `model_parameter`s such as temperature.\n\nAll of these properties except the model can be overridden by setting them in this object. Even when a `prompt_template` is set, the `generation_preset_name` is used to set the model used. See `model_parameters.model` if you want to set the model explicitly.\n\nIf `generation_preset_name` is not set, the Vectara platform will use the default model and prompt.'\n","type":"string","minLength":1,"example":"mockingbird-2.0"},"prompt_name":{"description":"Use `generation_preset_name` instead of `prompt_name`.","type":"string","minLength":1,"example":"mockingbird-2.0","deprecated":true},"max_used_search_results":{"description":"The maximum number of search results to be available to the prompt.","type":"integer","format":"int32","minimum":0,"default":5},"prompt_template":{"description":"Vectara manages both system and user roles and prompts for the generative LLM out of the box by default. However, users can override the `prompt_template` via this variable. The `prompt_template` is in the form of an Apache Velocity template. For more details on how to configure the `prompt_template`, see the [long-form documentation](https://docs.vectara.com/docs/prompts/vectara-prompt-engine).","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n"},"prompt_text":{"description":"This property is deprecated in favor of clearer naming. Use `prompt_template`. This property will be ignored if `prompt_template` is set.","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n","deprecated":true},"max_response_characters":{"description":"Controls the length of the generated output. This is a rough estimate and not a hard limit: the end output can be longer or shorter than this value. This is generally implemented by including the `max_response_characters` in the prompt, and the LLM's instruction following capability dictates how closely the generated output is limited.","type":"integer","format":"int32","example":300,"minimum":0},"response_language":{"description":"Languages that the Vectara platform supports.","type":"string","enum":["auto","eng","deu","fra","zho","kor","ara","rus","tha","nld","ita","por","spa","jpn","pol","tur","vie","ind","ces","ukr","ell","heb","fas","hin","urd","swe","ben","msa","ron"],"default":"auto","title":"Language"},"model_parameters":{"title":"ModelParameters","description":"The parameters for the model. WARNING: This is an experimental feature, and breakable at any point with virtually no notice. It is meant for experimentation to converge on optimal parameters that can then be set in the prompt definitions.","type":"object","properties":{"llm_name":{"description":"The model (e.g., `gpt-4`) to use for summarization. If specified, it will override the model behind `generation_preset_name`.","type":"string","example":"gpt4"},"max_tokens":{"description":"The maximum number of tokens to be returned by the model.","type":"integer","format":"int32","minimum":1},"temperature":{"description":"The sampling temperature to use. Higher values make the output more random, while lower values make it more focused and deterministic.","type":"number","format":"float"},"frequency_penalty":{"description":"Higher values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.","type":"number","format":"float"},"presence_penalty":{"description":"Higher values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.","type":"number","format":"float"}}},"citations":{"description":"Style the generator should use when making citations.","type":"object","properties":{"style":{"description":"The citation style that you want to use in the summary: \n* `numeric` - Citations formatted as simple numerals: \\[1\\], \\[2\\], etc.\n* `none` - Citations removed from text.\n* `html` - Citation formatted as a URL like `text_pattern`.\n* `markdown` - Formatted as `[text_pattern](url_pattern)`.\n","type":"string","enum":["none","numeric","html","markdown"]},"url_pattern":{"description":"The URL pattern if the citation_style is set to `html` or `markdown`. The pattern can access metadata attributes in the document or part. e.g. `https://my.doc/foo/{doc.id}/{part.id}` The default `url_pattern` is an empty string.","type":"string","example":"https://vectara.com/documents/{doc.id}"},"text_pattern":{"description":"The text pattern if the citation_style is set to `html` or `markdown`. This pattern sets the href for HTML or the text within `[]` in markdown, and defaults to N being the index of result if it is not set. The default citation style looks like `[N]()` for markdown. You can use metadata attributes in the `text_pattern`. For example, the pattern `{doc.title}` with citation style `markdown` would result in final citation output like `[Title]()` when the document's metadata includes `{\"title\":\"Title\"}`.","type":"string","example":"{doc.title}"}},"title":"CitationParameters"},"enable_factual_consistency_score":{"description":"Enable returning the factual consistency score with query results.","type":"boolean","default":true}},"title":"GenerationParameters"},"save_history":{"description":"Indicates whether to save the query to query history.","type":"boolean"}},"required":["search"],"title":"CorporaSearchQueryConfiguration"}},"required":["type","query_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineWebSearchToolConfiguration","description":"A web search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'web_search' for inline web search tool configurations.","default":"web_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the web search tool call such as limit etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query to execute.","type":"string","example":"latest AI developments 2024"},"limit":{"description":"Maximum number of results to return.","type":"integer","minimum":1,"example":10},"provider":{"description":"Search provider to use.","type":"string","enum":["tavily"],"example":"tavily"},"include_domains":{"description":"List of domains to specifically include in search results. When specified, results will ONLY come from these domains. Supports exact domains (e.g., \"github.com\"), subdomains (e.g., \"docs.github.com\"), and wildcard patterns (e.g., \"*.github.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["github.com","docs.github.com","*.stackoverflow.com"]},"exclude_domains":{"description":"List of domains to specifically exclude from search results. Supports exact domains (e.g., \"spam.com\"), subdomains (e.g., \"bad.spam.com\"), and wildcard patterns (e.g., \"*.spam.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["spam.com","unreliable-source.com"]}},"additionalProperties":false,"title":"WebSearchToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineLambdaToolConfiguration","description":"A lambda tool configuration defined inline in the agent for executing user-defined functions.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'lambda' for inline lambda tool configurations.","default":"lambda"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments that will be passed to the lambda function. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","additionalProperties":true,"example":{"custom_param":"value"}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineStructuredIndexingToolConfiguration","description":"A structured indexing tool configuration defined inline in the agent for indexing into the Vectara platform.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'structured_indexing' for inline structured indexing tool configurations.","default":"structured_indexing"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the structured indexing tool call such as corpus_key etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"corpus_key":{"description":"The key identifying the target corpus for document indexing. If not provided, will be filled in by the LLM.","type":"string","example":"my-knowledge-base"},"document_id":{"description":"The unique identifier for the document within the corpus, preferably human readable IDs.","type":"string","example":"annual_report_2024"},"title":{"description":"The title of the document being indexed.","type":"string","example":"2024 Annual ESG Report"},"description":{"description":"A brief description or summary of the document content.","type":"string","example":"Comprehensive environmental, social, and governance report"},"metadata":{"description":"The metadata key-value pairs to associate with the document. If present, this gets merged with existing artifact metadata.","type":"object","additionalProperties":true,"example":{"doc_type":"annual_report","year":2024,"department":"sustainability"}},"document":{"description":"The structured document to index with full hierarchical content.","type":"object","additionalProperties":true,"example":{"id":"annual_report_2024","type":"structured","title":"2024 Annual ESG Report"}}},"additionalProperties":false,"title":"StructuredIndexingToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineSubAgentToolConfiguration","description":"A sub-agent tool configuration defined inline in the agent for invoking specialized sub-agents.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'sub_agent' for inline sub-agent tool configurations.","default":"sub_agent"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the sub-agent tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"message":{"description":"The detailed task instructions for the sub-agent to perform autonomously.","type":"string","example":"Review the code changes in pull request \\#123 for security issues"},"session_tti_minutes":{"description":"Time to idle in minutes before the session expires.","type":"integer","format":"int64","minimum":1,"example":60}},"additionalProperties":false,"title":"SubAgentToolParameters"},"sub_agent_configuration":{"description":"User-configurable settings for the sub-agent tool. These parameters are never exposed to the agent.","type":"object","properties":{"agent_key":{"description":"A unique key that identifies an agent.","type":"string","pattern":"[0-9a-zA-Z_-]+$","minLength":1,"maxLength":50,"example":"customer_support","title":"AgentKey"}},"required":["agent_key"],"title":"SubAgentConfiguration"}},"required":["type","sub_agent_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineArtifactReadToolConfiguration","description":"An artifact read tool configuration defined inline in the agent for reading artifacts from the session workspace.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_read' for inline artifact read tool configurations.","default":"artifact_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to read.","type":"string","example":"art_abc123"},"encoding":{"description":"The encoding format for the content.","type":"string","enum":["raw","base64"],"example":"raw"},"start_line":{"description":"Optional starting line number (1-indexed).","type":"integer","format":"int32","example":100},"end_line":{"description":"Optional ending line number (1-indexed, inclusive).","type":"integer","format":"int32","example":200}},"additionalProperties":false,"title":"ArtifactReadToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineArtifactGrepToolConfiguration","description":"An artifact grep tool configuration defined inline in the agent for searching through artifact content.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_grep' for inline artifact grep tool configurations.","default":"artifact_grep"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact grep tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to search.","type":"string","example":"art_abc123"},"pattern":{"description":"The pattern to search for (supports grep regex).","type":"string","example":"error|exception"},"grep_options":{"description":"Optional grep command options.","type":"array","items":{"type":"string"},"example":["-i","-n"]}},"additionalProperties":false,"title":"ArtifactGrepToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineImageReadToolConfiguration","description":"An image read tool configuration defined inline in the agent for loading images into the conversation context.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'image_read' for inline image read tool configurations.","default":"image_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the image read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the image artifact to view.","type":"string","pattern":"^art_[a-z0-9_-]+$","example":"art_photo_a3f2"},"detail":{"description":"Detail level for image processing.","type":"string","enum":["auto","low","high"],"default":"auto","example":"auto"}},"additionalProperties":false,"title":"ImageReadToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineDocumentConversionToolConfiguration","description":"A document conversion tool configuration defined inline in the agent for converting document artifacts to various formats.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'document_conversion' for inline document conversion tool configurations.","default":"document_conversion"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the document conversion tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to convert.","type":"string","example":"art_abc123"},"output_format":{"description":"Output format for the converted document.","type":"string","enum":["markdown","structured_document"],"example":"markdown"},"description":{"description":"Optional description for the converted artifact.","type":"string","example":"PDF converted to markdown"}},"additionalProperties":false,"title":"DocumentConversionToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]}],"example":[{"type":"web_search","argument_override":{"limit":5,"include_domains":["github.com","stackoverflow.com"],"exclude_domains":["spam.com"]}}]},"example":{"customer_search":{"type":"corpora_search","argument_override":{"query":"customer support documentation"}}}},"model":{"title":"AgentModel","description":"Configuration for the model used in this step, including the model name and arbitrary parameters.","type":"object","properties":{"name":{"description":"The name of the model to use for this step.","type":"string","example":"gpt-4"},"parameters":{"description":"Arbitrary model-specific parameters that can be passed to the model.","type":"object","additionalProperties":true,"example":{"temperature":0.7,"max_tokens":1000,"top_p":0.9}},"retry_configuration":{"description":"Optional retry configuration for handling transient failures. When not provided, no retry is performed.","title":"RetryConfiguration","type":"object","properties":{"enabled":{"description":"Whether retry is enabled. Enabled by default to provide resilience against transient failures.","type":"boolean","default":true,"example":true},"max_retries":{"description":"Maximum number of retry attempts after initial failure.","type":"integer","minimum":0,"maximum":10,"default":3,"example":3},"initial_backoff_ms":{"description":"Initial backoff time in milliseconds before first retry.","type":"integer","minimum":100,"maximum":60000,"default":1000,"example":1000},"max_backoff_ms":{"description":"Maximum backoff time in milliseconds between retries.","type":"integer","minimum":1000,"maximum":300000,"default":30000,"example":30000},"backoff_factor":{"description":"Multiplication factor for exponential backoff between retries.","type":"number","format":"double","minimum":1,"maximum":10,"default":2,"example":2}}}},"required":["name"]},"first_step":{"title":"AgentStep","description":"A step in an agent's execution flow that defines how the agent processes and responds to input.","discriminator":{"propertyName":"type","mapping":{"conversational":{"title":"ConversationalAgentStep","description":"A step that receives instructions and responds through dialogue. This is a step that gets instructions and engages in conversation with users based on those instructions. This only type step supported, with no way to go next steps. A conversational step responds to an input following its instructions and uses the agent tools. The first response from the model will terminate processing the input.","type":"object","properties":{"type":{"description":"The type of step, which is always 'conversational' for this step type.","type":"string","default":"conversational","example":"conversational"},"instructions":{"description":"List of instructions that guide the agent's behavior in this step. If no instructions are given, the agent is instructed to be helpful and use tools.","type":"array","items":{"title":"AgentStepInstruction","description":"An instruction that can be used in an agent step, either by reference or defined inline.","discriminator":{"propertyName":"type","mapping":{"reference":{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},"inline":{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Request object for creating a new initial instruction.","type":"object","properties":{"type":{"description":"The type of instruction to create.","type":"string","default":"initial","example":"initial"},"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["type","name","template"],"x-vectaraParents":["CreateInstructionRequest"],"title":"CreateInitialInstructionRequest"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}}},"oneOf":[{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Request object for creating a new initial instruction.","type":"object","properties":{"type":{"description":"The type of instruction to create.","type":"string","default":"initial","example":"initial"},"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["type","name","template"],"x-vectaraParents":["CreateInstructionRequest"],"title":"CreateInitialInstructionRequest"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}],"example":[{"type":"reference","name":"Customer Support Initial Instruction","version":1},{"type":"inline","name":"Temporary On-the-fly Guideline","description":"A special instruction for this specific step only.","template_type":"velocity","template":"Please prioritize issues tagged with 'urgent' for the next hour."}]}},"output_parser":{"title":"AgentOutputParser","description":"Configuration for how the agent's output should be parsed and formatted.\n\nThe output parser determines how the agent's responses are processed before being returned to the user.\n","discriminator":{"propertyName":"type","mapping":{"default":{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]}}},"oneOf":[{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]}]}},"required":["type","instructions","output_parser"],"x-vectaraParents":["AgentStep"]}}},"oneOf":[{"title":"ConversationalAgentStep","description":"A step that receives instructions and responds through dialogue. This is a step that gets instructions and engages in conversation with users based on those instructions. This only type step supported, with no way to go next steps. A conversational step responds to an input following its instructions and uses the agent tools. The first response from the model will terminate processing the input.","type":"object","properties":{"type":{"description":"The type of step, which is always 'conversational' for this step type.","type":"string","default":"conversational","example":"conversational"},"instructions":{"description":"List of instructions that guide the agent's behavior in this step. If no instructions are given, the agent is instructed to be helpful and use tools.","type":"array","items":{"title":"AgentStepInstruction","description":"An instruction that can be used in an agent step, either by reference or defined inline.","discriminator":{"propertyName":"type","mapping":{"reference":{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},"inline":{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Request object for creating a new initial instruction.","type":"object","properties":{"type":{"description":"The type of instruction to create.","type":"string","default":"initial","example":"initial"},"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["type","name","template"],"x-vectaraParents":["CreateInstructionRequest"],"title":"CreateInitialInstructionRequest"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}}},"oneOf":[{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Request object for creating a new initial instruction.","type":"object","properties":{"type":{"description":"The type of instruction to create.","type":"string","default":"initial","example":"initial"},"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["type","name","template"],"x-vectaraParents":["CreateInstructionRequest"],"title":"CreateInitialInstructionRequest"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}],"example":[{"type":"reference","name":"Customer Support Initial Instruction","version":1},{"type":"inline","name":"Temporary On-the-fly Guideline","description":"A special instruction for this specific step only.","template_type":"velocity","template":"Please prioritize issues tagged with 'urgent' for the next hour."}]}},"output_parser":{"title":"AgentOutputParser","description":"Configuration for how the agent's output should be parsed and formatted.\n\nThe output parser determines how the agent's responses are processed before being returned to the user.\n","discriminator":{"propertyName":"type","mapping":{"default":{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]}}},"oneOf":[{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]}]}},"required":["type","instructions","output_parser"],"x-vectaraParents":["AgentStep"]}]},"metadata":{"description":"Arbitrary metadata associated with the agent for customization and configuration.","type":"object","additionalProperties":true,"example":{"department":"customer_service","version":"1.2.0","owner":"support-team"}},"enabled":{"description":"Whether the agent is currently enabled and available for use.","type":"boolean","default":true,"example":true},"created_at":{"description":"Timestamp when the agent was created.","type":"string","format":"date-time","example":"2024-01-15T10:30:00Z"},"updated_at":{"description":"Timestamp when the agent was last updated.","type":"string","format":"date-time","example":"2024-01-16T14:45:00Z"}},"required":["key","name","tool_configurations","model","first_step","enabled"],"title":"Agent"}}}},"403":{"description":"Permissions do not allow accessing this agent.","content":{"application/json":{"schema":{"description":"A general error response with an error code and message.","type":"object","properties":{"messages":{"description":"The messages describing why the error occurred.","type":"array","items":{"title":"message","type":"string","example":"Internal server error."}},"request_id":{"description":"The ID of the request that can be used to help Vectara support debug what went wrong.","type":"string"}},"title":"Error"}}}},"404":{"description":"Agent not found.","content":{"application/json":{"schema":{"description":"Error returned when a requested resource does not exist.","type":"object","properties":{"id":{"description":"The ID cannot be found.","type":"string"},"messages":{"type":"array","items":{"title":"message","type":"string"}},"request_id":{"description":"The ID of the request that can be used to help Vectara support debug what went wrong.","type":"string"}},"title":"NotFoundError"}}}}}}
+ responses={{"200":{"description":"The response includes the complete agent configuration with all tools, instructions, model parameters, and metadata as originally configured during agent creation or subsequent updates.","content":{"application/json":{"schema":{"description":"An AI agent that can use tools to provide intelligent responses and actions.","type":"object","properties":{"key":{"description":"A unique key that identifies an agent.","type":"string","pattern":"[0-9a-zA-Z_-]+$","minLength":1,"maxLength":50,"example":"customer_support","title":"AgentKey"},"name":{"description":"The human-readable name of an agent.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Agent","title":"AgentName"},"description":{"description":"A detailed description of the agent's purpose and capabilities.","type":"string","example":"An AI agent specialized in handling customer support inquiries using company documentation and support tools."},"tool_configurations":{"description":"A map of tool configurations available to the agent. The key is the name of the tool configuration and the value is an agent tool configuration.","type":"object","additionalProperties":{"nullable":true,"title":"AgentToolConfiguration","description":"A tool configuration that can be used by an agent, defined inline with a specific configuration type.","discriminator":{"propertyName":"type","mapping":{"dynamic_vectara":{"title":"InlineDynamicVectaraToolConfiguration","description":"An inline configuration for built-in Vectara tools that have implementations within the platform but do not have a dedicated configuration type schema. Use the List Tools endpoint to discover available tools and obtain the `tool_id` required for this configuration.\n","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'dynamic_vectara' for generic Vectara tool configurations.","default":"dynamic_vectara"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for tool calls. The key specifies the location in the tool arguments to overide, and the value specifies what to override with. The LLM will not be able to change the parameters, nor know those values exist within the tool.\n\nThe values can also be dynamic references to context values using $ref with dot notation path syntax:\n- Static value: \"fixed_value\" or 123\n- Dynamic reference: `{\"$ref\": \"session.metadata.field_name\"}`\n\nReferences are resolved at runtime from context:\n- session.metadata.* - Access session metadata fields\n- agent.metadata.* - Access agent metadata fields\n\nExample:\n `{\"query\": {\"$ref\": \".session.metadata.query\"}}`\n\nIf you want to have a real value `\"$ref\"` use `\"$$ref\"`, that is you can escape the first $ by using $$.","type":"object","additionalProperties":true,"example":{"custom_param":"value","limit":10}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},"mcp":{"title":"InlineMcpToolConfiguration","description":"An MCP tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'mcp' for inline MCP tool configurations.","default":"mcp"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for tool calls. The key specifies the location in the tool arguments to overide, and the value specifies what to override with. The LLM will not be able to change the parameters, nor know those values exist within the tool.\n\nThe values can also be dynamic references to context values using $ref with dot notation path syntax:\n- Static value: \"fixed_value\" or 123\n- Dynamic reference: `{\"$ref\": \"session.metadata.field_name\"}`\n\nReferences are resolved at runtime from context:\n- session.metadata.* - Access session metadata fields\n- agent.metadata.* - Access agent metadata fields\n\nExample:\n `{\"query\": {\"$ref\": \".session.metadata.query\"}}`\n\nIf you want to have a real value `\"$ref\"` use `\"$$ref\"`, that is you can escape the first $ by using $$.","type":"object","additionalProperties":true,"example":{"custom_param":"value","limit":10}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},"corpora_search":{"title":"InlineCorporaSearchToolConfiguration","description":"A corpora search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'corpora_search' for inline corpora search tool configurations.","default":"corpora_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the corpus search call such as the query. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query string, which is the question the user is asking. If not provided, will be filled in by the agent.","type":"string","maxLength":5000,"example":"Am I allowed to bring pets to work?"}},"additionalProperties":false,"title":"CorporaSearchToolParameters"},"query_configuration":{"description":"User-configurable settings for the corpus search that are not exposed to the LLM. Supports dynamic references for runtime resolution from session context.","title":"AgentCorporaSearchQueryConfiguration","type":"object","properties":{"search":{"title":"AgentSearchCorporaParameters","description":"Agent-specific search parameters that support eager references.","type":"object","properties":{"corpora":{"description":"The corpora to search, with support for eager references.","type":"array","items":{"title":"AgentKeyedSearchCorpus","description":"Agent-specific keyed search corpus that supports eager references for corpus_key and metadata_filter.","type":"object","properties":{"corpus_key":{"description":"The corpus to search. Can be either:\n- A static string: \"my-corpus\"\n- An EagerReference object: {\"$ref\": \"session.metadata.corpus\"}\n\nWhen an EagerReference is provided, the $ref path is resolved from the session context\nat the start of each turn, before LLM processing begins.\n","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"custom_dimensions":{"description":"The custom dimensions as additional weights.","type":"object","additionalProperties":{"type":"number","format":"double","nullable":false},"title":"CustomDimensions"},"metadata_filter":{"description":"The filter to narrow search results. Can be either:\n- A static string: \"doc.department = 'engineering'\"\n- An EagerReference object: {\"$ref\": \"session.metadata.filters.user\"}\n\nWhen an EagerReference is provided, the $ref path is resolved from the session context\nat the start of each turn, before LLM processing begins.\n","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"lexical_interpolation":{"description":"How much to weigh lexical scores compared to the embedding score.","type":"number","format":"float","minimum":0,"maximum":1},"semantics":{"description":"Indicates whether to consider a query against this corpus as a query or a response.","type":"string","enum":["default","query","response"],"default":"default","title":"SearchSemantics"},"query":{"description":"Query override for this specific corpus.","type":"string","maxLength":5000}},"required":["corpus_key"]},"minItems":1},"offset":{"description":"Number of results to skip for pagination.","type":"integer","format":"int32","minimum":0,"default":0},"limit":{"description":"Maximum number of results to return.","type":"integer","format":"int32","minimum":1,"default":10},"context_configuration":{"type":"object","description":"Configuration on the presentation of each document part in the result set. You can only use characters_before/after or sentences_before/after, but not both. If you specify both in the query, sentences_before/after takes precedence","properties":{"characters_before":{"description":"The number of characters that are shown before the matching document part. This is useful to show the context of the document part in the wider document. Ignored if `sentences_before` is set. Vectara will capture the full sentence that contains the captured characters, to not lose the meaning caused by a truncated word or sentence.","type":"integer","format":"int32"},"characters_after":{"description":"The number of characters that are shown after the matching document part. This is useful to show the context of the document part in the wider document. Ignored if `sentences_after` is set. Vectara will capture the full sentence that contains the captured characters, to not lose the meaning caused by a truncated word or sentence.","type":"integer","format":"int32"},"sentences_before":{"description":"The number of sentences that are shown before the matching document part. This is useful to show the context of the document part in the wider document.","type":"integer","format":"int32","default":0,"minimum":0,"example":2},"sentences_after":{"description":"The number of sentences that are shown after the matching document part. This is useful to show the context of the document part in the wider document.","type":"integer","format":"int32","default":0,"minimum":0,"example":2},"start_tag":{"description":"The tag that wraps the document part at the start. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the context before ends and the document part begins.","type":"string","example":""},"end_tag":{"description":"The tag that wraps the document part at the end. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the document part ends and the context after begins.","type":"string","example":""}},"example":{"sentences_before":2,"sentences_after":2,"start_tag":"","end_tag":""},"title":"ContextConfiguration"},"reranker":{"type":"object","description":"Rerank results of the search. Rerankers are very powerful tools to improve the order of search results. By default the search will use the most powerful reranker available to the customer's plan. To disable reranking, set the reranker `type` to `\"none\"`.","discriminator":{"propertyName":"type","mapping":{"customer_reranker":{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},"userfn":{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},"mmr":{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},"chain":{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},"none":{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}}},"oneOf":[{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}],"title":"SearchReranker"}},"required":["corpora"]},"generation":{"description":"The parameters to control generation.","type":"object","properties":{"enabled":{"description":"Whether generation is enabled for this query. This field is ignored if using chat.","type":"boolean","default":true},"generation_preset_name":{"description":"The preset values to use to feed the query results and other context to the model. \n\nA `generation_preset` is an object with a bundle of properties that specifies: \n* The `prompt_template` that is rendered and then sent to the LLM. \n* The LLM used. * `model_parameter`s such as temperature.\n\nAll of these properties except the model can be overridden by setting them in this object. Even when a `prompt_template` is set, the `generation_preset_name` is used to set the model used. See `model_parameters.model` if you want to set the model explicitly.\n\nIf `generation_preset_name` is not set, the Vectara platform will use the default model and prompt.'\n","type":"string","minLength":1,"example":"mockingbird-2.0"},"prompt_name":{"description":"Use `generation_preset_name` instead of `prompt_name`.","type":"string","minLength":1,"example":"mockingbird-2.0","deprecated":true},"max_used_search_results":{"description":"The maximum number of search results to be available to the prompt.","type":"integer","format":"int32","minimum":0,"default":5},"prompt_template":{"description":"Vectara manages both system and user roles and prompts for the generative LLM out of the box by default. However, users can override the `prompt_template` via this variable. The `prompt_template` is in the form of an Apache Velocity template. For more details on how to configure the `prompt_template`, see the [long-form documentation](https://docs.vectara.com/docs/prompts/vectara-prompt-engine).","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n"},"prompt_text":{"description":"This property is deprecated in favor of clearer naming. Use `prompt_template`. This property will be ignored if `prompt_template` is set.","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n","deprecated":true},"max_response_characters":{"description":"Controls the length of the generated output. This is a rough estimate and not a hard limit: the end output can be longer or shorter than this value. This is generally implemented by including the `max_response_characters` in the prompt, and the LLM's instruction following capability dictates how closely the generated output is limited.","type":"integer","format":"int32","example":300,"minimum":0},"response_language":{"description":"Languages that the Vectara platform supports.","type":"string","enum":["auto","eng","deu","fra","zho","kor","ara","rus","tha","nld","ita","por","spa","jpn","pol","tur","vie","ind","ces","ukr","ell","heb","fas","hin","urd","swe","ben","msa","ron"],"default":"auto","title":"Language"},"model_parameters":{"title":"ModelParameters","description":"The parameters for the model. WARNING: This is an experimental feature, and breakable at any point with virtually no notice. It is meant for experimentation to converge on optimal parameters that can then be set in the prompt definitions.","type":"object","properties":{"llm_name":{"description":"The model (e.g., `gpt-4`) to use for summarization. If specified, it will override the model behind `generation_preset_name`.","type":"string","example":"gpt4"},"max_tokens":{"description":"The maximum number of tokens to be returned by the model.","type":"integer","format":"int32","minimum":1},"temperature":{"description":"The sampling temperature to use. Higher values make the output more random, while lower values make it more focused and deterministic.","type":"number","format":"float"},"frequency_penalty":{"description":"Higher values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.","type":"number","format":"float"},"presence_penalty":{"description":"Higher values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.","type":"number","format":"float"}}},"citations":{"description":"Style the generator should use when making citations.","type":"object","properties":{"style":{"description":"The citation style that you want to use in the summary: \n* `numeric` - Citations formatted as simple numerals: \\[1\\], \\[2\\], etc.\n* `none` - Citations removed from text.\n* `html` - Citation formatted as a URL like `text_pattern`.\n* `markdown` - Formatted as `[text_pattern](url_pattern)`.\n","type":"string","enum":["none","numeric","html","markdown"]},"url_pattern":{"description":"The URL pattern if the citation_style is set to `html` or `markdown`. The pattern can access metadata attributes in the document or part. e.g. `https://my.doc/foo/{doc.id}/{part.id}` The default `url_pattern` is an empty string.","type":"string","example":"https://vectara.com/documents/{doc.id}"},"text_pattern":{"description":"The text pattern if the citation_style is set to `html` or `markdown`. This pattern sets the href for HTML or the text within `[]` in markdown, and defaults to N being the index of result if it is not set. The default citation style looks like `[N]()` for markdown. You can use metadata attributes in the `text_pattern`. For example, the pattern `{doc.title}` with citation style `markdown` would result in final citation output like `[Title]()` when the document's metadata includes `{\"title\":\"Title\"}`.","type":"string","example":"{doc.title}"}},"title":"CitationParameters"},"enable_factual_consistency_score":{"description":"Enable returning the factual consistency score with query results.","type":"boolean","default":true}},"title":"GenerationParameters"},"save_history":{"description":"Whether to save the query to history.","type":"boolean"}},"required":["search"]}},"required":["type","query_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},"web_search":{"title":"InlineWebSearchToolConfiguration","description":"A web search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'web_search' for inline web search tool configurations.","default":"web_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the web search tool call such as limit etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query to execute.","type":"string","example":"latest AI developments 2024"},"limit":{"description":"Maximum number of results to return.","type":"integer","minimum":1,"maximum":20,"example":10},"provider":{"description":"Search provider to use.","type":"string","enum":["tavily"],"example":"tavily"},"include_domains":{"description":"List of domains to specifically include in search results. When specified, results will ONLY come from these domains. Supports exact domains (e.g., \"github.com\"), subdomains (e.g., \"docs.github.com\"), and wildcard patterns (e.g., \"*.github.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["github.com","docs.github.com","*.stackoverflow.com"]},"exclude_domains":{"description":"List of domains to specifically exclude from search results. Supports exact domains (e.g., \"spam.com\"), subdomains (e.g., \"bad.spam.com\"), and wildcard patterns (e.g., \"*.spam.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["spam.com","unreliable-source.com"]}},"additionalProperties":false,"title":"WebSearchToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"web_get":{"title":"InlineWebGetToolConfiguration","description":"A web get tool configuration defined inline in the agent for fetching content from URLs.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'web_get' for inline web get tool configurations.","default":"web_get"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the web get tool call. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"url":{"description":"The URL to fetch content from.","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"method":{"description":"HTTP method to use.","type":"string","enum":["GET","POST","PUT","DELETE","HEAD"]},"headers":{"description":"HTTP headers to include in the request.","oneOf":[{"type":"object","additionalProperties":{"type":"string"}},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"body":{"description":"Request body for POST/PUT requests.","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"follow_redirects":{"description":"Whether to follow HTTP redirects.","oneOf":[{"type":"boolean"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"timeout_seconds":{"description":"Request timeout in seconds.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"head_lines":{"description":"Number of lines from start to include in response.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"tail_lines":{"description":"Number of lines from end to include in response.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"ssl_verify":{"description":"Whether to verify SSL certificates.","oneOf":[{"type":"boolean"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"max_content_bytes":{"description":"Maximum response size in bytes before truncation.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]}},"additionalProperties":false,"title":"WebGetToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"lambda":{"title":"InlineLambdaToolConfiguration","description":"A lambda tool configuration defined inline in the agent for executing user-defined functions.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'lambda' for inline lambda tool configurations.","default":"lambda"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments that will be passed to the lambda function. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","additionalProperties":true,"example":{"custom_param":"value"}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},"structured_indexing":{"title":"InlineStructuredIndexingToolConfiguration","description":"A structured indexing tool configuration defined inline in the agent for indexing into the Vectara platform.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'structured_indexing' for inline structured indexing tool configurations.","default":"structured_indexing"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the structured indexing tool call such as corpus_key etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"corpus_key":{"description":"The key identifying the target corpus for document indexing. If not provided, will be filled in by the agent.","type":"string","example":"my-knowledge-base"},"document_id":{"description":"The unique identifier for the document within the corpus, preferably human readable IDs.","type":"string","example":"annual_report_2024"},"title":{"description":"The title of the document being indexed.","type":"string","example":"2024 Annual ESG Report"},"description":{"description":"A brief description or summary of the document content.","type":"string","example":"Comprehensive environmental, social, and governance report"},"metadata":{"description":"The metadata key-value pairs to associate with the document. If present, this gets merged with existing artifact metadata.","type":"object","additionalProperties":true,"example":{"doc_type":"annual_report","year":2024,"department":"sustainability"}},"document":{"description":"The structured document to index with full hierarchical content.","type":"object","additionalProperties":true,"example":{"id":"annual_report_2024","type":"structured","title":"2024 Annual ESG Report"}}},"additionalProperties":false,"title":"StructuredIndexingToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"sub_agent":{"title":"InlineSubAgentToolConfiguration","description":"A sub-agent tool configuration defined inline in the agent for invoking specialized sub-agents.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'sub_agent' for inline sub-agent tool configurations.","default":"sub_agent"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the sub-agent tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"message":{"description":"The detailed task instructions for the sub-agent to perform autonomously.","type":"string","example":"Review the code changes in pull request \\#123 for security issues"},"session_tti_minutes":{"description":"Time to idle in minutes before the session expires.","type":"integer","format":"int64","minimum":1,"example":60}},"additionalProperties":false,"title":"SubAgentToolParameters"},"sub_agent_configuration":{"description":"User-configurable settings for the sub-agent tool. These parameters are never exposed to the agent.","type":"object","properties":{"agent_key":{"description":"A unique key that identifies an agent.","type":"string","pattern":"[0-9a-zA-Z_-]+$","minLength":1,"maxLength":50,"example":"customer_support","title":"AgentKey"},"session_mode":{"description":"Controls session behavior for sub-agent invocations:\n- llm_controlled: LLM decides whether to create new or resume existing session\n- persistent: Always reuse the same session (created on first invocation)\n- ephemeral: Always create a new session on each invocation\n","type":"string","enum":["llm_controlled","persistent","ephemeral"],"default":"llm_controlled","example":"llm_controlled","title":"SubAgentSessionMode"},"session_metadata":{"description":"Optional metadata to associate with the sub-agent session. Can contain any key-value pairs.","type":"object","additionalProperties":true,"example":{"source":"parent_agent","task_type":"code_review"}}},"required":["agent_key"],"title":"SubAgentConfiguration"}},"required":["type","sub_agent_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},"artifact_read":{"title":"InlineArtifactReadToolConfiguration","description":"An artifact read tool configuration defined inline in the agent for reading artifacts from the session workspace.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_read' for inline artifact read tool configurations.","default":"artifact_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to read.","type":"string","example":"art_abc123"},"encoding":{"description":"The encoding format for the content.","type":"string","enum":["raw","base64"],"example":"raw"},"start_line":{"description":"Optional starting line number (1-indexed).","type":"integer","format":"int32","example":100},"end_line":{"description":"Optional ending line number (1-indexed, inclusive).","type":"integer","format":"int32","example":200}},"additionalProperties":false,"title":"ArtifactReadToolParameters"},"tool_configuration":{"description":"User-configurable settings for the artifact read tool.","type":"object","properties":{"max_size_bytes":{"description":"Maximum file size in bytes for full reads without line ranges. Defaults to 256KB.","type":"integer","format":"int64","minimum":1,"maximum":10485760,"default":262144},"max_lines":{"description":"Maximum number of lines for range-based reads. Defaults to 200.","type":"integer","format":"int32","minimum":1,"maximum":10000,"default":200}},"title":"ArtifactReadConfiguration"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"artifact_grep":{"title":"InlineArtifactGrepToolConfiguration","description":"An artifact grep tool configuration defined inline in the agent for searching through artifact content.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_grep' for inline artifact grep tool configurations.","default":"artifact_grep"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact grep tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to search.","type":"string","example":"art_abc123"},"pattern":{"description":"The pattern to search for (supports grep regex).","type":"string","example":"error|exception"},"grep_options":{"description":"Optional grep command options.","type":"array","items":{"type":"string"},"example":["-i","-n"]}},"additionalProperties":false,"title":"ArtifactGrepToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"image_read":{"title":"InlineImageReadToolConfiguration","description":"An image read tool configuration defined inline in the agent for loading images into the conversation context.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'image_read' for inline image read tool configurations.","default":"image_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the image read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the image artifact to view.","type":"string","pattern":"^art_[a-z0-9_-]+$","example":"art_photo_a3f2"},"detail":{"description":"Detail level for image processing.","type":"string","enum":["auto","low","high"],"default":"auto","example":"auto"}},"additionalProperties":false,"title":"ImageReadToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"document_conversion":{"title":"InlineDocumentConversionToolConfiguration","description":"A document conversion tool configuration defined inline in the agent for converting document artifacts to various formats.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'document_conversion' for inline document conversion tool configurations.","default":"document_conversion"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the document conversion tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to convert.","type":"string","example":"art_abc123"},"output_format":{"description":"Output format for the converted document.","type":"string","enum":["markdown","structured_document"],"example":"markdown"},"description":{"description":"Optional description for the converted artifact.","type":"string","example":"PDF converted to markdown"}},"additionalProperties":false,"title":"DocumentConversionToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]}}},"oneOf":[{"title":"InlineDynamicVectaraToolConfiguration","description":"An inline configuration for built-in Vectara tools that have implementations within the platform but do not have a dedicated configuration type schema. Use the List Tools endpoint to discover available tools and obtain the `tool_id` required for this configuration.\n","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'dynamic_vectara' for generic Vectara tool configurations.","default":"dynamic_vectara"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for tool calls. The key specifies the location in the tool arguments to overide, and the value specifies what to override with. The LLM will not be able to change the parameters, nor know those values exist within the tool.\n\nThe values can also be dynamic references to context values using $ref with dot notation path syntax:\n- Static value: \"fixed_value\" or 123\n- Dynamic reference: `{\"$ref\": \"session.metadata.field_name\"}`\n\nReferences are resolved at runtime from context:\n- session.metadata.* - Access session metadata fields\n- agent.metadata.* - Access agent metadata fields\n\nExample:\n `{\"query\": {\"$ref\": \".session.metadata.query\"}}`\n\nIf you want to have a real value `\"$ref\"` use `\"$$ref\"`, that is you can escape the first $ by using $$.","type":"object","additionalProperties":true,"example":{"custom_param":"value","limit":10}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineMcpToolConfiguration","description":"An MCP tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'mcp' for inline MCP tool configurations.","default":"mcp"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for tool calls. The key specifies the location in the tool arguments to overide, and the value specifies what to override with. The LLM will not be able to change the parameters, nor know those values exist within the tool.\n\nThe values can also be dynamic references to context values using $ref with dot notation path syntax:\n- Static value: \"fixed_value\" or 123\n- Dynamic reference: `{\"$ref\": \"session.metadata.field_name\"}`\n\nReferences are resolved at runtime from context:\n- session.metadata.* - Access session metadata fields\n- agent.metadata.* - Access agent metadata fields\n\nExample:\n `{\"query\": {\"$ref\": \".session.metadata.query\"}}`\n\nIf you want to have a real value `\"$ref\"` use `\"$$ref\"`, that is you can escape the first $ by using $$.","type":"object","additionalProperties":true,"example":{"custom_param":"value","limit":10}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineCorporaSearchToolConfiguration","description":"A corpora search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'corpora_search' for inline corpora search tool configurations.","default":"corpora_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the corpus search call such as the query. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query string, which is the question the user is asking. If not provided, will be filled in by the agent.","type":"string","maxLength":5000,"example":"Am I allowed to bring pets to work?"}},"additionalProperties":false,"title":"CorporaSearchToolParameters"},"query_configuration":{"description":"User-configurable settings for the corpus search that are not exposed to the LLM. Supports dynamic references for runtime resolution from session context.","title":"AgentCorporaSearchQueryConfiguration","type":"object","properties":{"search":{"title":"AgentSearchCorporaParameters","description":"Agent-specific search parameters that support eager references.","type":"object","properties":{"corpora":{"description":"The corpora to search, with support for eager references.","type":"array","items":{"title":"AgentKeyedSearchCorpus","description":"Agent-specific keyed search corpus that supports eager references for corpus_key and metadata_filter.","type":"object","properties":{"corpus_key":{"description":"The corpus to search. Can be either:\n- A static string: \"my-corpus\"\n- An EagerReference object: {\"$ref\": \"session.metadata.corpus\"}\n\nWhen an EagerReference is provided, the $ref path is resolved from the session context\nat the start of each turn, before LLM processing begins.\n","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"custom_dimensions":{"description":"The custom dimensions as additional weights.","type":"object","additionalProperties":{"type":"number","format":"double","nullable":false},"title":"CustomDimensions"},"metadata_filter":{"description":"The filter to narrow search results. Can be either:\n- A static string: \"doc.department = 'engineering'\"\n- An EagerReference object: {\"$ref\": \"session.metadata.filters.user\"}\n\nWhen an EagerReference is provided, the $ref path is resolved from the session context\nat the start of each turn, before LLM processing begins.\n","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"lexical_interpolation":{"description":"How much to weigh lexical scores compared to the embedding score.","type":"number","format":"float","minimum":0,"maximum":1},"semantics":{"description":"Indicates whether to consider a query against this corpus as a query or a response.","type":"string","enum":["default","query","response"],"default":"default","title":"SearchSemantics"},"query":{"description":"Query override for this specific corpus.","type":"string","maxLength":5000}},"required":["corpus_key"]},"minItems":1},"offset":{"description":"Number of results to skip for pagination.","type":"integer","format":"int32","minimum":0,"default":0},"limit":{"description":"Maximum number of results to return.","type":"integer","format":"int32","minimum":1,"default":10},"context_configuration":{"type":"object","description":"Configuration on the presentation of each document part in the result set. You can only use characters_before/after or sentences_before/after, but not both. If you specify both in the query, sentences_before/after takes precedence","properties":{"characters_before":{"description":"The number of characters that are shown before the matching document part. This is useful to show the context of the document part in the wider document. Ignored if `sentences_before` is set. Vectara will capture the full sentence that contains the captured characters, to not lose the meaning caused by a truncated word or sentence.","type":"integer","format":"int32"},"characters_after":{"description":"The number of characters that are shown after the matching document part. This is useful to show the context of the document part in the wider document. Ignored if `sentences_after` is set. Vectara will capture the full sentence that contains the captured characters, to not lose the meaning caused by a truncated word or sentence.","type":"integer","format":"int32"},"sentences_before":{"description":"The number of sentences that are shown before the matching document part. This is useful to show the context of the document part in the wider document.","type":"integer","format":"int32","default":0,"minimum":0,"example":2},"sentences_after":{"description":"The number of sentences that are shown after the matching document part. This is useful to show the context of the document part in the wider document.","type":"integer","format":"int32","default":0,"minimum":0,"example":2},"start_tag":{"description":"The tag that wraps the document part at the start. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the context before ends and the document part begins.","type":"string","example":""},"end_tag":{"description":"The tag that wraps the document part at the end. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the document part ends and the context after begins.","type":"string","example":""}},"example":{"sentences_before":2,"sentences_after":2,"start_tag":"","end_tag":""},"title":"ContextConfiguration"},"reranker":{"type":"object","description":"Rerank results of the search. Rerankers are very powerful tools to improve the order of search results. By default the search will use the most powerful reranker available to the customer's plan. To disable reranking, set the reranker `type` to `\"none\"`.","discriminator":{"propertyName":"type","mapping":{"customer_reranker":{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},"userfn":{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},"mmr":{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},"chain":{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},"none":{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}}},"oneOf":[{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}],"title":"SearchReranker"}},"required":["corpora"]},"generation":{"description":"The parameters to control generation.","type":"object","properties":{"enabled":{"description":"Whether generation is enabled for this query. This field is ignored if using chat.","type":"boolean","default":true},"generation_preset_name":{"description":"The preset values to use to feed the query results and other context to the model. \n\nA `generation_preset` is an object with a bundle of properties that specifies: \n* The `prompt_template` that is rendered and then sent to the LLM. \n* The LLM used. * `model_parameter`s such as temperature.\n\nAll of these properties except the model can be overridden by setting them in this object. Even when a `prompt_template` is set, the `generation_preset_name` is used to set the model used. See `model_parameters.model` if you want to set the model explicitly.\n\nIf `generation_preset_name` is not set, the Vectara platform will use the default model and prompt.'\n","type":"string","minLength":1,"example":"mockingbird-2.0"},"prompt_name":{"description":"Use `generation_preset_name` instead of `prompt_name`.","type":"string","minLength":1,"example":"mockingbird-2.0","deprecated":true},"max_used_search_results":{"description":"The maximum number of search results to be available to the prompt.","type":"integer","format":"int32","minimum":0,"default":5},"prompt_template":{"description":"Vectara manages both system and user roles and prompts for the generative LLM out of the box by default. However, users can override the `prompt_template` via this variable. The `prompt_template` is in the form of an Apache Velocity template. For more details on how to configure the `prompt_template`, see the [long-form documentation](https://docs.vectara.com/docs/prompts/vectara-prompt-engine).","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n"},"prompt_text":{"description":"This property is deprecated in favor of clearer naming. Use `prompt_template`. This property will be ignored if `prompt_template` is set.","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n","deprecated":true},"max_response_characters":{"description":"Controls the length of the generated output. This is a rough estimate and not a hard limit: the end output can be longer or shorter than this value. This is generally implemented by including the `max_response_characters` in the prompt, and the LLM's instruction following capability dictates how closely the generated output is limited.","type":"integer","format":"int32","example":300,"minimum":0},"response_language":{"description":"Languages that the Vectara platform supports.","type":"string","enum":["auto","eng","deu","fra","zho","kor","ara","rus","tha","nld","ita","por","spa","jpn","pol","tur","vie","ind","ces","ukr","ell","heb","fas","hin","urd","swe","ben","msa","ron"],"default":"auto","title":"Language"},"model_parameters":{"title":"ModelParameters","description":"The parameters for the model. WARNING: This is an experimental feature, and breakable at any point with virtually no notice. It is meant for experimentation to converge on optimal parameters that can then be set in the prompt definitions.","type":"object","properties":{"llm_name":{"description":"The model (e.g., `gpt-4`) to use for summarization. If specified, it will override the model behind `generation_preset_name`.","type":"string","example":"gpt4"},"max_tokens":{"description":"The maximum number of tokens to be returned by the model.","type":"integer","format":"int32","minimum":1},"temperature":{"description":"The sampling temperature to use. Higher values make the output more random, while lower values make it more focused and deterministic.","type":"number","format":"float"},"frequency_penalty":{"description":"Higher values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.","type":"number","format":"float"},"presence_penalty":{"description":"Higher values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.","type":"number","format":"float"}}},"citations":{"description":"Style the generator should use when making citations.","type":"object","properties":{"style":{"description":"The citation style that you want to use in the summary: \n* `numeric` - Citations formatted as simple numerals: \\[1\\], \\[2\\], etc.\n* `none` - Citations removed from text.\n* `html` - Citation formatted as a URL like `text_pattern`.\n* `markdown` - Formatted as `[text_pattern](url_pattern)`.\n","type":"string","enum":["none","numeric","html","markdown"]},"url_pattern":{"description":"The URL pattern if the citation_style is set to `html` or `markdown`. The pattern can access metadata attributes in the document or part. e.g. `https://my.doc/foo/{doc.id}/{part.id}` The default `url_pattern` is an empty string.","type":"string","example":"https://vectara.com/documents/{doc.id}"},"text_pattern":{"description":"The text pattern if the citation_style is set to `html` or `markdown`. This pattern sets the href for HTML or the text within `[]` in markdown, and defaults to N being the index of result if it is not set. The default citation style looks like `[N]()` for markdown. You can use metadata attributes in the `text_pattern`. For example, the pattern `{doc.title}` with citation style `markdown` would result in final citation output like `[Title]()` when the document's metadata includes `{\"title\":\"Title\"}`.","type":"string","example":"{doc.title}"}},"title":"CitationParameters"},"enable_factual_consistency_score":{"description":"Enable returning the factual consistency score with query results.","type":"boolean","default":true}},"title":"GenerationParameters"},"save_history":{"description":"Whether to save the query to history.","type":"boolean"}},"required":["search"]}},"required":["type","query_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineWebSearchToolConfiguration","description":"A web search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'web_search' for inline web search tool configurations.","default":"web_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the web search tool call such as limit etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query to execute.","type":"string","example":"latest AI developments 2024"},"limit":{"description":"Maximum number of results to return.","type":"integer","minimum":1,"maximum":20,"example":10},"provider":{"description":"Search provider to use.","type":"string","enum":["tavily"],"example":"tavily"},"include_domains":{"description":"List of domains to specifically include in search results. When specified, results will ONLY come from these domains. Supports exact domains (e.g., \"github.com\"), subdomains (e.g., \"docs.github.com\"), and wildcard patterns (e.g., \"*.github.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["github.com","docs.github.com","*.stackoverflow.com"]},"exclude_domains":{"description":"List of domains to specifically exclude from search results. Supports exact domains (e.g., \"spam.com\"), subdomains (e.g., \"bad.spam.com\"), and wildcard patterns (e.g., \"*.spam.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["spam.com","unreliable-source.com"]}},"additionalProperties":false,"title":"WebSearchToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineWebGetToolConfiguration","description":"A web get tool configuration defined inline in the agent for fetching content from URLs.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'web_get' for inline web get tool configurations.","default":"web_get"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the web get tool call. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"url":{"description":"The URL to fetch content from.","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"method":{"description":"HTTP method to use.","type":"string","enum":["GET","POST","PUT","DELETE","HEAD"]},"headers":{"description":"HTTP headers to include in the request.","oneOf":[{"type":"object","additionalProperties":{"type":"string"}},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"body":{"description":"Request body for POST/PUT requests.","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"follow_redirects":{"description":"Whether to follow HTTP redirects.","oneOf":[{"type":"boolean"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"timeout_seconds":{"description":"Request timeout in seconds.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"head_lines":{"description":"Number of lines from start to include in response.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"tail_lines":{"description":"Number of lines from end to include in response.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"ssl_verify":{"description":"Whether to verify SSL certificates.","oneOf":[{"type":"boolean"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"max_content_bytes":{"description":"Maximum response size in bytes before truncation.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]}},"additionalProperties":false,"title":"WebGetToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineLambdaToolConfiguration","description":"A lambda tool configuration defined inline in the agent for executing user-defined functions.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'lambda' for inline lambda tool configurations.","default":"lambda"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments that will be passed to the lambda function. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","additionalProperties":true,"example":{"custom_param":"value"}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineStructuredIndexingToolConfiguration","description":"A structured indexing tool configuration defined inline in the agent for indexing into the Vectara platform.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'structured_indexing' for inline structured indexing tool configurations.","default":"structured_indexing"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the structured indexing tool call such as corpus_key etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"corpus_key":{"description":"The key identifying the target corpus for document indexing. If not provided, will be filled in by the agent.","type":"string","example":"my-knowledge-base"},"document_id":{"description":"The unique identifier for the document within the corpus, preferably human readable IDs.","type":"string","example":"annual_report_2024"},"title":{"description":"The title of the document being indexed.","type":"string","example":"2024 Annual ESG Report"},"description":{"description":"A brief description or summary of the document content.","type":"string","example":"Comprehensive environmental, social, and governance report"},"metadata":{"description":"The metadata key-value pairs to associate with the document. If present, this gets merged with existing artifact metadata.","type":"object","additionalProperties":true,"example":{"doc_type":"annual_report","year":2024,"department":"sustainability"}},"document":{"description":"The structured document to index with full hierarchical content.","type":"object","additionalProperties":true,"example":{"id":"annual_report_2024","type":"structured","title":"2024 Annual ESG Report"}}},"additionalProperties":false,"title":"StructuredIndexingToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineSubAgentToolConfiguration","description":"A sub-agent tool configuration defined inline in the agent for invoking specialized sub-agents.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'sub_agent' for inline sub-agent tool configurations.","default":"sub_agent"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the sub-agent tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"message":{"description":"The detailed task instructions for the sub-agent to perform autonomously.","type":"string","example":"Review the code changes in pull request \\#123 for security issues"},"session_tti_minutes":{"description":"Time to idle in minutes before the session expires.","type":"integer","format":"int64","minimum":1,"example":60}},"additionalProperties":false,"title":"SubAgentToolParameters"},"sub_agent_configuration":{"description":"User-configurable settings for the sub-agent tool. These parameters are never exposed to the agent.","type":"object","properties":{"agent_key":{"description":"A unique key that identifies an agent.","type":"string","pattern":"[0-9a-zA-Z_-]+$","minLength":1,"maxLength":50,"example":"customer_support","title":"AgentKey"},"session_mode":{"description":"Controls session behavior for sub-agent invocations:\n- llm_controlled: LLM decides whether to create new or resume existing session\n- persistent: Always reuse the same session (created on first invocation)\n- ephemeral: Always create a new session on each invocation\n","type":"string","enum":["llm_controlled","persistent","ephemeral"],"default":"llm_controlled","example":"llm_controlled","title":"SubAgentSessionMode"},"session_metadata":{"description":"Optional metadata to associate with the sub-agent session. Can contain any key-value pairs.","type":"object","additionalProperties":true,"example":{"source":"parent_agent","task_type":"code_review"}}},"required":["agent_key"],"title":"SubAgentConfiguration"}},"required":["type","sub_agent_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineArtifactReadToolConfiguration","description":"An artifact read tool configuration defined inline in the agent for reading artifacts from the session workspace.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_read' for inline artifact read tool configurations.","default":"artifact_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to read.","type":"string","example":"art_abc123"},"encoding":{"description":"The encoding format for the content.","type":"string","enum":["raw","base64"],"example":"raw"},"start_line":{"description":"Optional starting line number (1-indexed).","type":"integer","format":"int32","example":100},"end_line":{"description":"Optional ending line number (1-indexed, inclusive).","type":"integer","format":"int32","example":200}},"additionalProperties":false,"title":"ArtifactReadToolParameters"},"tool_configuration":{"description":"User-configurable settings for the artifact read tool.","type":"object","properties":{"max_size_bytes":{"description":"Maximum file size in bytes for full reads without line ranges. Defaults to 256KB.","type":"integer","format":"int64","minimum":1,"maximum":10485760,"default":262144},"max_lines":{"description":"Maximum number of lines for range-based reads. Defaults to 200.","type":"integer","format":"int32","minimum":1,"maximum":10000,"default":200}},"title":"ArtifactReadConfiguration"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineArtifactGrepToolConfiguration","description":"An artifact grep tool configuration defined inline in the agent for searching through artifact content.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_grep' for inline artifact grep tool configurations.","default":"artifact_grep"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact grep tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to search.","type":"string","example":"art_abc123"},"pattern":{"description":"The pattern to search for (supports grep regex).","type":"string","example":"error|exception"},"grep_options":{"description":"Optional grep command options.","type":"array","items":{"type":"string"},"example":["-i","-n"]}},"additionalProperties":false,"title":"ArtifactGrepToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineImageReadToolConfiguration","description":"An image read tool configuration defined inline in the agent for loading images into the conversation context.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'image_read' for inline image read tool configurations.","default":"image_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the image read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the image artifact to view.","type":"string","pattern":"^art_[a-z0-9_-]+$","example":"art_photo_a3f2"},"detail":{"description":"Detail level for image processing.","type":"string","enum":["auto","low","high"],"default":"auto","example":"auto"}},"additionalProperties":false,"title":"ImageReadToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineDocumentConversionToolConfiguration","description":"A document conversion tool configuration defined inline in the agent for converting document artifacts to various formats.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'document_conversion' for inline document conversion tool configurations.","default":"document_conversion"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the document conversion tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to convert.","type":"string","example":"art_abc123"},"output_format":{"description":"Output format for the converted document.","type":"string","enum":["markdown","structured_document"],"example":"markdown"},"description":{"description":"Optional description for the converted artifact.","type":"string","example":"PDF converted to markdown"}},"additionalProperties":false,"title":"DocumentConversionToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]}],"example":[{"type":"web_search","argument_override":{"limit":5,"include_domains":["github.com","stackoverflow.com"],"exclude_domains":["spam.com"]}}]},"example":{"customer_search":{"type":"corpora_search","argument_override":{"query":"customer support documentation"}}}},"model":{"title":"AgentModel","description":"Configuration for the model used in this step, including the model name and arbitrary parameters.","type":"object","properties":{"name":{"description":"The name of the model to use for this step.","type":"string","example":"gpt-4"},"parameters":{"description":"Arbitrary model-specific parameters that can be passed to the model.","type":"object","additionalProperties":true,"example":{"temperature":0.7,"max_tokens":1000,"top_p":0.9}},"retry_configuration":{"description":"Optional retry configuration for handling transient failures. When not provided, no retry is performed.","title":"RetryConfiguration","type":"object","properties":{"enabled":{"description":"Whether retry is enabled. Enabled by default to provide resilience against transient failures.","type":"boolean","default":true,"example":true},"max_retries":{"description":"Maximum number of retry attempts after initial failure.","type":"integer","minimum":0,"maximum":10,"default":3,"example":3},"initial_backoff_ms":{"description":"Initial backoff time in milliseconds before first retry.","type":"integer","minimum":100,"maximum":60000,"default":1000,"example":1000},"max_backoff_ms":{"description":"Maximum backoff time in milliseconds between retries.","type":"integer","minimum":1000,"maximum":300000,"default":30000,"example":30000},"backoff_factor":{"description":"Multiplication factor for exponential backoff between retries.","type":"number","format":"double","minimum":1,"maximum":10,"default":2,"example":2}}}},"required":["name"]},"first_step":{"title":"AgentStep","description":"A step in an agent's execution flow that defines how the agent processes and responds to input.","discriminator":{"propertyName":"type","mapping":{"conversational":{"title":"ConversationalAgentStep","description":"A step that receives instructions and responds through dialogue. This is a step that gets instructions and engages in conversation with users based on those instructions. This only type step supported, with no way to go next steps. A conversational step responds to an input following its instructions and uses the agent tools. The first response from the model will terminate processing the input.","type":"object","properties":{"type":{"description":"The type of step, which is always 'conversational' for this step type.","type":"string","default":"conversational","example":"conversational"},"instructions":{"description":"List of instructions that guide the agent's behavior in this step. If no instructions are given, the agent is instructed to be helpful and use tools.","type":"array","items":{"title":"AgentStepInstruction","description":"An instruction that can be used in an agent step, either by reference or defined inline.","discriminator":{"propertyName":"type","mapping":{"reference":{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},"inline":{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Base properties for creating an instruction, without the type discriminator field.","type":"object","properties":{"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["name","template"],"title":"InstructionRequestBase"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}}},"oneOf":[{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Base properties for creating an instruction, without the type discriminator field.","type":"object","properties":{"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["name","template"],"title":"InstructionRequestBase"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}],"example":[{"type":"reference","name":"Customer Support Initial Instruction","version":1},{"type":"inline","name":"Temporary On-the-fly Guideline","description":"A special instruction for this specific step only.","template_type":"velocity","template":"Please prioritize issues tagged with 'urgent' for the next hour."}]}},"output_parser":{"title":"AgentOutputParser","description":"Configuration for how the agent's output should be parsed and formatted.\n\nThe output parser determines how the agent's responses are processed before being returned to the user.\n","discriminator":{"propertyName":"type","mapping":{"default":{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]},"structured":{"title":"StructuredOutputParser","description":"Parses agent output as structured JSON conforming to a specified schema.\nUses the model's native structured outputs capability to guarantee valid JSON\nthat adheres to the provided schema. This is useful when you need the agent's\nfinal response in a specific format for downstream processing.\n\nWhen this parser is configured, the agent emits a StructuredOutputEvent instead\nof AgentOutputEvent. The StructuredOutputEvent contains the validated JSON content\nalong with the schema name for identification.\n\nNote: When using structured outputs, the agent can still use tools normally.\nThe schema constraint only applies to the agent's final text response.\nWhen streaming, the structured output is delivered as a single complete event\nrather than being streamed in chunks.\n","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'structured' for this parser type.","type":"string","default":"structured","example":"structured"},"json_schema":{"description":"Specification wrapper for a named JSON schema.","type":"object","required":["name","schema"],"properties":{"description":{"description":"A description of what the response format is for, used by the model to determine how to respond in the format.","type":"string"},"name":{"description":"A unique name identifier for this schema.","type":"string","pattern":"^[a-zA-Z0-9_-]+$","minLength":1},"strict":{"description":"When true, enforces strict schema adherence. The model will always follow the exact schema structure.\nWhen strict mode is enabled, the schema must follow these rules:\n- `additionalProperties: false` must be set on all object types\n- All properties must be listed in the `required` array\n- Maximum 100 properties total, with max 5 levels of nesting\n- Unsupported keywords: minLength, maxLength, pattern, minimum, maximum, minItems, maxItems\n- Root schema cannot use `anyOf` type\n","type":"boolean","nullable":true},"schema":{"description":"The JSON Schema definition that the model output must conform to.","type":"object","required":["type"],"properties":{"type":{"description":"The JSON type for this schema element.","type":"string","enum":["object","array","string","number","integer","boolean"]},"properties":{"description":"Property definitions when type is 'object'. Each key maps to a nested JsonSchemaDefinition.","type":"object","additionalProperties":{"description":"A JSON Schema definition for specifying data structure. Supports recursive schemas for nested objects.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"}},"required":{"description":"List of required property names when type is 'object'.","type":"array","items":{"type":"string"}},"additionalProperties":{"description":"Whether to allow additional properties beyond those defined.","type":"boolean","default":false},"items":{"description":"Schema for array items when type is 'array'.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"},"enum":{"description":"Allowed values for this schema element.","type":"array"},"description":{"description":"Human-readable description of this schema element.","type":"string"}},"title":"JsonSchemaDefinition"}},"title":"JsonSchemaSpec"}},"required":["type","json_schema"],"x-vectaraParents":["AgentOutputParser"]}}},"oneOf":[{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]},{"title":"StructuredOutputParser","description":"Parses agent output as structured JSON conforming to a specified schema.\nUses the model's native structured outputs capability to guarantee valid JSON\nthat adheres to the provided schema. This is useful when you need the agent's\nfinal response in a specific format for downstream processing.\n\nWhen this parser is configured, the agent emits a StructuredOutputEvent instead\nof AgentOutputEvent. The StructuredOutputEvent contains the validated JSON content\nalong with the schema name for identification.\n\nNote: When using structured outputs, the agent can still use tools normally.\nThe schema constraint only applies to the agent's final text response.\nWhen streaming, the structured output is delivered as a single complete event\nrather than being streamed in chunks.\n","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'structured' for this parser type.","type":"string","default":"structured","example":"structured"},"json_schema":{"description":"Specification wrapper for a named JSON schema.","type":"object","required":["name","schema"],"properties":{"description":{"description":"A description of what the response format is for, used by the model to determine how to respond in the format.","type":"string"},"name":{"description":"A unique name identifier for this schema.","type":"string","pattern":"^[a-zA-Z0-9_-]+$","minLength":1},"strict":{"description":"When true, enforces strict schema adherence. The model will always follow the exact schema structure.\nWhen strict mode is enabled, the schema must follow these rules:\n- `additionalProperties: false` must be set on all object types\n- All properties must be listed in the `required` array\n- Maximum 100 properties total, with max 5 levels of nesting\n- Unsupported keywords: minLength, maxLength, pattern, minimum, maximum, minItems, maxItems\n- Root schema cannot use `anyOf` type\n","type":"boolean","nullable":true},"schema":{"description":"The JSON Schema definition that the model output must conform to.","type":"object","required":["type"],"properties":{"type":{"description":"The JSON type for this schema element.","type":"string","enum":["object","array","string","number","integer","boolean"]},"properties":{"description":"Property definitions when type is 'object'. Each key maps to a nested JsonSchemaDefinition.","type":"object","additionalProperties":{"description":"A JSON Schema definition for specifying data structure. Supports recursive schemas for nested objects.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"}},"required":{"description":"List of required property names when type is 'object'.","type":"array","items":{"type":"string"}},"additionalProperties":{"description":"Whether to allow additional properties beyond those defined.","type":"boolean","default":false},"items":{"description":"Schema for array items when type is 'array'.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"},"enum":{"description":"Allowed values for this schema element.","type":"array"},"description":{"description":"Human-readable description of this schema element.","type":"string"}},"title":"JsonSchemaDefinition"}},"title":"JsonSchemaSpec"}},"required":["type","json_schema"],"x-vectaraParents":["AgentOutputParser"]}]}},"required":["type","instructions","output_parser"],"x-vectaraParents":["AgentStep"]}}},"oneOf":[{"title":"ConversationalAgentStep","description":"A step that receives instructions and responds through dialogue. This is a step that gets instructions and engages in conversation with users based on those instructions. This only type step supported, with no way to go next steps. A conversational step responds to an input following its instructions and uses the agent tools. The first response from the model will terminate processing the input.","type":"object","properties":{"type":{"description":"The type of step, which is always 'conversational' for this step type.","type":"string","default":"conversational","example":"conversational"},"instructions":{"description":"List of instructions that guide the agent's behavior in this step. If no instructions are given, the agent is instructed to be helpful and use tools.","type":"array","items":{"title":"AgentStepInstruction","description":"An instruction that can be used in an agent step, either by reference or defined inline.","discriminator":{"propertyName":"type","mapping":{"reference":{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},"inline":{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Base properties for creating an instruction, without the type discriminator field.","type":"object","properties":{"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["name","template"],"title":"InstructionRequestBase"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}}},"oneOf":[{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Base properties for creating an instruction, without the type discriminator field.","type":"object","properties":{"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["name","template"],"title":"InstructionRequestBase"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}],"example":[{"type":"reference","name":"Customer Support Initial Instruction","version":1},{"type":"inline","name":"Temporary On-the-fly Guideline","description":"A special instruction for this specific step only.","template_type":"velocity","template":"Please prioritize issues tagged with 'urgent' for the next hour."}]}},"output_parser":{"title":"AgentOutputParser","description":"Configuration for how the agent's output should be parsed and formatted.\n\nThe output parser determines how the agent's responses are processed before being returned to the user.\n","discriminator":{"propertyName":"type","mapping":{"default":{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]},"structured":{"title":"StructuredOutputParser","description":"Parses agent output as structured JSON conforming to a specified schema.\nUses the model's native structured outputs capability to guarantee valid JSON\nthat adheres to the provided schema. This is useful when you need the agent's\nfinal response in a specific format for downstream processing.\n\nWhen this parser is configured, the agent emits a StructuredOutputEvent instead\nof AgentOutputEvent. The StructuredOutputEvent contains the validated JSON content\nalong with the schema name for identification.\n\nNote: When using structured outputs, the agent can still use tools normally.\nThe schema constraint only applies to the agent's final text response.\nWhen streaming, the structured output is delivered as a single complete event\nrather than being streamed in chunks.\n","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'structured' for this parser type.","type":"string","default":"structured","example":"structured"},"json_schema":{"description":"Specification wrapper for a named JSON schema.","type":"object","required":["name","schema"],"properties":{"description":{"description":"A description of what the response format is for, used by the model to determine how to respond in the format.","type":"string"},"name":{"description":"A unique name identifier for this schema.","type":"string","pattern":"^[a-zA-Z0-9_-]+$","minLength":1},"strict":{"description":"When true, enforces strict schema adherence. The model will always follow the exact schema structure.\nWhen strict mode is enabled, the schema must follow these rules:\n- `additionalProperties: false` must be set on all object types\n- All properties must be listed in the `required` array\n- Maximum 100 properties total, with max 5 levels of nesting\n- Unsupported keywords: minLength, maxLength, pattern, minimum, maximum, minItems, maxItems\n- Root schema cannot use `anyOf` type\n","type":"boolean","nullable":true},"schema":{"description":"The JSON Schema definition that the model output must conform to.","type":"object","required":["type"],"properties":{"type":{"description":"The JSON type for this schema element.","type":"string","enum":["object","array","string","number","integer","boolean"]},"properties":{"description":"Property definitions when type is 'object'. Each key maps to a nested JsonSchemaDefinition.","type":"object","additionalProperties":{"description":"A JSON Schema definition for specifying data structure. Supports recursive schemas for nested objects.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"}},"required":{"description":"List of required property names when type is 'object'.","type":"array","items":{"type":"string"}},"additionalProperties":{"description":"Whether to allow additional properties beyond those defined.","type":"boolean","default":false},"items":{"description":"Schema for array items when type is 'array'.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"},"enum":{"description":"Allowed values for this schema element.","type":"array"},"description":{"description":"Human-readable description of this schema element.","type":"string"}},"title":"JsonSchemaDefinition"}},"title":"JsonSchemaSpec"}},"required":["type","json_schema"],"x-vectaraParents":["AgentOutputParser"]}}},"oneOf":[{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]},{"title":"StructuredOutputParser","description":"Parses agent output as structured JSON conforming to a specified schema.\nUses the model's native structured outputs capability to guarantee valid JSON\nthat adheres to the provided schema. This is useful when you need the agent's\nfinal response in a specific format for downstream processing.\n\nWhen this parser is configured, the agent emits a StructuredOutputEvent instead\nof AgentOutputEvent. The StructuredOutputEvent contains the validated JSON content\nalong with the schema name for identification.\n\nNote: When using structured outputs, the agent can still use tools normally.\nThe schema constraint only applies to the agent's final text response.\nWhen streaming, the structured output is delivered as a single complete event\nrather than being streamed in chunks.\n","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'structured' for this parser type.","type":"string","default":"structured","example":"structured"},"json_schema":{"description":"Specification wrapper for a named JSON schema.","type":"object","required":["name","schema"],"properties":{"description":{"description":"A description of what the response format is for, used by the model to determine how to respond in the format.","type":"string"},"name":{"description":"A unique name identifier for this schema.","type":"string","pattern":"^[a-zA-Z0-9_-]+$","minLength":1},"strict":{"description":"When true, enforces strict schema adherence. The model will always follow the exact schema structure.\nWhen strict mode is enabled, the schema must follow these rules:\n- `additionalProperties: false` must be set on all object types\n- All properties must be listed in the `required` array\n- Maximum 100 properties total, with max 5 levels of nesting\n- Unsupported keywords: minLength, maxLength, pattern, minimum, maximum, minItems, maxItems\n- Root schema cannot use `anyOf` type\n","type":"boolean","nullable":true},"schema":{"description":"The JSON Schema definition that the model output must conform to.","type":"object","required":["type"],"properties":{"type":{"description":"The JSON type for this schema element.","type":"string","enum":["object","array","string","number","integer","boolean"]},"properties":{"description":"Property definitions when type is 'object'. Each key maps to a nested JsonSchemaDefinition.","type":"object","additionalProperties":{"description":"A JSON Schema definition for specifying data structure. Supports recursive schemas for nested objects.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"}},"required":{"description":"List of required property names when type is 'object'.","type":"array","items":{"type":"string"}},"additionalProperties":{"description":"Whether to allow additional properties beyond those defined.","type":"boolean","default":false},"items":{"description":"Schema for array items when type is 'array'.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"},"enum":{"description":"Allowed values for this schema element.","type":"array"},"description":{"description":"Human-readable description of this schema element.","type":"string"}},"title":"JsonSchemaDefinition"}},"title":"JsonSchemaSpec"}},"required":["type","json_schema"],"x-vectaraParents":["AgentOutputParser"]}]}},"required":["type","instructions","output_parser"],"x-vectaraParents":["AgentStep"]}]},"metadata":{"description":"Arbitrary metadata associated with the agent for customization and configuration.","type":"object","additionalProperties":true,"example":{"department":"customer_service","version":"1.2.0","owner":"support-team"}},"enabled":{"description":"Whether the agent is currently enabled and available for use.","type":"boolean","default":true,"example":true},"created_at":{"description":"Timestamp when the agent was created.","type":"string","format":"date-time","example":"2024-01-15T10:30:00Z"},"updated_at":{"description":"Timestamp when the agent was last updated.","type":"string","format":"date-time","example":"2024-01-16T14:45:00Z"}},"required":["key","name","tool_configurations","model","first_step","enabled"],"title":"Agent"}}}},"403":{"description":"Permissions do not allow accessing this agent.","content":{"application/json":{"schema":{"description":"A general error response with an error code and message.","type":"object","properties":{"messages":{"description":"The messages describing why the error occurred.","type":"array","items":{"title":"message","type":"string","example":"Internal server error."}},"request_id":{"description":"The ID of the request that can be used to help Vectara support debug what went wrong.","type":"string"}},"title":"Error"}}}},"404":{"description":"Agent not found.","content":{"application/json":{"schema":{"description":"Error returned when a requested resource does not exist.","type":"object","properties":{"id":{"description":"The ID cannot be found.","type":"string"},"messages":{"type":"array","items":{"title":"message","type":"string"}},"request_id":{"description":"The ID of the request that can be used to help Vectara support debug what went wrong.","type":"string"}},"title":"NotFoundError"}}}}}}
>
diff --git a/www/docs/rest-api/get-api-key.api.mdx b/www/docs/rest-api/get-api-key.api.mdx
index f5f324260..5506ae6ca 100644
--- a/www/docs/rest-api/get-api-key.api.mdx
+++ b/www/docs/rest-api/get-api-key.api.mdx
@@ -5,7 +5,7 @@ description: "The Get API Key API lists all existing API keys for a customer ID.
sidebar_label: "Get an API key"
hide_title: true
hide_table_of_contents: true
-api: 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
+api: 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
sidebar_class_name: "get api-method"
info_path: docs/rest-api/vectara-rest-api-v-2
custom_edit_url: null
@@ -65,7 +65,7 @@ This capability can provide insights into key usage and status and help you mana
diff --git a/www/docs/rest-api/get-app-client.api.mdx b/www/docs/rest-api/get-app-client.api.mdx
index f050f1e11..0f4441933 100644
--- a/www/docs/rest-api/get-app-client.api.mdx
+++ b/www/docs/rest-api/get-app-client.api.mdx
@@ -5,7 +5,7 @@ description: "Retrieve details of a specific application client by its ID."
sidebar_label: "Get an App Client"
hide_title: true
hide_table_of_contents: true
-api: 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
+api: eJzFGWtvG7nxrwyIfmhTPdL0PglFUSHJXY22iOH47lA4hj1ajrQ8cck9kitFEPTfiyH3Ka+cXNK0n2yRw3m/9ygCbrxY3IllWWqVYVDWwGutyAQv7ifi49RXZWldIDnFUk23dJiGQ0n85JqctwY1w0nymVMlPxcLcUPBKdoRSAqotAe7BgRfUqbWKgPs0coiLVgdQAUPV29mYiJsSS7eXkmxEBsKy7JMPImJKNFhQYEcs30UiunlhJKcmAiDBUX6v1bkw/RWFWQrfjXk7zYnWF5fwV5pDQVuCRBW5APQem1dgGAhs0WpKRCEnMAlfKBM/FkLQhI8ZdZID9ZBUAWBrQIL4LOcChSLo0i6EsoE2kQOC2VUURVi8afTRDBe5UiKxRq1p9Pk8+SZ/ktprfy3E6uI+L9GNhalZh7L8iFZ+UFJMUkSlhjyUf6v3rCzMDvLsqw9kcl2qgquohE2fHDKbMTpdM/AvrTGk+f7Vy9f8p8RVQ0IZNYE9rDFUfT8c/6LZ/hjj94Q0dLAu2UV8jGnzqxZq02VfBkqTxLW1gFWIScTamCmXYtgV79QFn3ccQgElQRQcpz/nygL6LAnB8cP3OaKAwmUB2NDIisrVg5gw+xa2/0M4O92Tztyk6jvqzcJdq9CXntES+H6qsdmrWkOxRDImdrGsz/+Tpwalx3jN68KNFNHKHGlCRhw3NZnFj1zk3PUb7pfn4mu88ZRPrNGl50+Itae6p7B6ilzFJ7FnEASdmViyNah6GcADFhD+NxWWsKKYEtlfFc5GiWOpXpwVieHGc8K8RowBMxykpwMLqoKncMDh2qgYgTjTcQUcgyALIXjHIGGQ6B1fTQQOAMNHLz1HDKcJu6E3ZuYOVBy7vDBYbD8e8UJyGwezs8z68rKXzqWtCPNkcMYN2yMc8B0ulO07wE9fcYycVULKmjme1kqllmcTi2tC8p+HW+nbaljMEDv1cYUXFNjAggcoV+i+E9g/3QqqZnf0mHcT7Z0aGIogSZeEx1OcGx3O+qBDDOOtMdlnQEj0laKROlL3KQ1JEnFJ/enQVG968tbc9izatJma9hk+gt2XfLltzLr88g/bdXE+UWjdiU1Av4vTBoJzT6YF/A4EoiPMIXvK62hd6p2BJhl5H2TmRKzymS6kly8JGmKSR6NHJbWPqHkEkzhhlBOrdGHHl6+rREPMEzAk/fKGj8B2rFFJ6CMD67KQjplosFa7fvE2szB9F6jgcJKtT6MU8gcYaB5gQY31KNXlRK5IWPkkUyfcJ8aZyUm9E9VqECyJxa3YA6z0NWqxMHqkKiy+hqCkYQnE3WqTFlx0XmNhnuFS+rh/F6L5ikwOmbsmYD9L2Tf81DunPxpJMcA6gK5VA+l1SobiYefY9FKugWE0imTqRJ1v2ANWp9SY1hbV3w6Ci83PoNOp67E41Vca7sn+dAOQCPJ4l17V1dgR1C/Y3sPaMBbzHJosUGBB0gRwQ8gIxdQGXDkbeUy6mFMNFcJJ7YQwH07e1x7sENdERRYzuAqSZhOuPustI6tZdJox4byLccxnA8tujEto5SKn6G+Huh7qJbraHBmLcnWqRDUOgldeXb54aTzHOGzJMtoH9AcHpo3T5m4Wg+k6QuacmRPCz2KK2s1oYnz0BorHdKQ03OI1kIj/hDZTZG/pUOctQfmihkCQSsf4hxeM9SinMHyzL4+oAs+oSQVcnKwsvIwibcTTgaq4GFHBX7LV3wWn/ZF7w0Sne0TIs5BaFo0Q431fvF959d1k/xbnORSAT4fGp9km6fWHvaDbRgmxxNPMMR0MBrSQ0Tt+/5ps+5IjH338s8jDk+uUHVKlzaOesnzNylDj7UjXzrjwoYMOdRAzlkHzXidPARNfZxZSdGyBXmPm8+IqRrwwtDS3DbJiIXa58kVEkWbZZVzJJ9rtRql1tjGitZH5KUIxy/XUYMaPLkduURlJhrTkr88NHZNVrNVibmUy8qK0qgXLOSky7a01Js1kLSqWDIMsOfSu3fWbEbqQ89D3jJj0TtOvKNbkzNTL7fTjbNVOe0WL80mbwBUUMitbKA2FKIOAhmfKs7dUcRe8vLybyJikh8uAXnl07wbY6h91Gds9FGfwe4VM8rLnXTbch43SQsx372ad5smPz8O1k4nXlxFmyb5Kqd5zRZC6RfzOZZqtktGmSkbicRRW4VDhF6W6h904OlfLO6inHEV8Cr+6gG/5/hJ3twAtJnGYjw4X3kluF4rVzuHmAheNKShLUrx2pHkrRHq5NZ2S+bHoRhVyHtyzBPJeYSMiztbRuaS1/SF6vJkPGyWdOdryI+NF0RfVGZt+wHWuPXN2/e3sQXZPRW3ufNQOrtTnC8gOGxyd2xkN3WliPWEy+aeVtMVcgT1khY3oP+2VQywteJyojVHoK1cIoABHscNzK7yF5aEjCytMuGvj9AsSZojH7sgWwWtTNrSpNbGKVt58NXKU91ExqjnTHt9BTe0Jkcmiwucdlap+6k0KwXL+UCZUKk08xjuDWLiRi68RqKTUYfrSkMaBHjp88F8MNPIZkx5JgA7c91NvXixe/XixYwhHvuCPdaouajmihy6LFcZ9vBO6q6Ii5TL0CeG8kOZU1QxwPfWQZ0hJ/A454naOpwvutF6Lm1WxTH4MU0FNWdiIV7NXs5eciYjV/h36/fkdoobp9ZnG6tktphr2qCeR9CpXU99Ap7H5KXtJjrbMHClzfysj0IVmwblw946WaDbzsqY5VGHW/oYOkcVMXVKdNuvwf6g1SYPz9HgootZLLpUoGIKayK5wmz7tx72GFOl9aFA040T4gcKXGG7On4eU8euqn/td5c6CQT6GOalRmWY/aiTY51m70QM6l6iFROxGG747ycitz4w8PHIcfuj06cTH/9akeOMes9J3SneAsf8KpXn/5vPIM8I+PubusP6Azz3sWBUkCbFmUOvqIhJXX6GMpzuT5Mm/f02Dr/1p6VR0ZIIT796tVJyzfo/yPDcd6TPF6T73DWQJ8Eus4zKMGwuho3toGf44e2tOJ3+A0YdMUk=
sidebar_class_name: "get api-method"
info_path: docs/rest-api/vectara-rest-api-v-2
custom_edit_url: null
@@ -62,7 +62,7 @@ Retrieve details of a specific application client by its ID.
diff --git a/www/docs/rest-api/get-job.api.mdx b/www/docs/rest-api/get-job.api.mdx
index a077c587e..fc8710b02 100644
--- a/www/docs/rest-api/get-job.api.mdx
+++ b/www/docs/rest-api/get-job.api.mdx
@@ -5,7 +5,7 @@ description: "Get a job by a specific `job_id`. Jobs are background processes li
sidebar_label: "Get a job by ID"
hide_title: true
hide_table_of_contents: true
-api: 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
+api: eJzNWG1v48YR/iuDRT80V1JynOuHCm0QI3ECX9rmcHYKNLYhD7lDcU/kLm93KFk19N+LWZISbemcuxpB+skWd3Zen3nbB8W4CGp2rd64LKjbRN2noW0a55l0io1Jl7RJedOQ0LwlH5zFSug0hdybho2zaqZ+IAaE9y6DbAMIoaHcFCaHu/cumxt9NwHhD+gJMsyXC+9aq6HxLqcQKEBllgSemgpzYxfAJUFhKiaPWUVQE6NGRkBmb7KWKUxUolxDHkWBC61makH8xmUqUQ16rInJi10Pyoh+JaEmrxJlsSY1U+/oQ0uB0ytTk2tZPbXnqiQ4e3sBa1NVUOOSACGjwEBF4TwDO8hd3VTEFJX1HT8wNv7s7ScNgXJndQDngU1N4FoW1UNeUo1q9qA63ypjmRZRw9pYU7e1mn25TZTwNZ60mhVYBdomn2ZP+g9TVSb8dmbVkf9LbBNTeuU7jKikM61BLo8qfvEduCLqIThjBwuK8vY+Yt/SEfmBvbGLiAxm8rYXOfnTH9R2eysMQuNsoCB3Tk9O5M9j8WciUmTlzjJZFgpsmsrkEX/T90HIHkain94foV60L5wf0C94r5xdpL61Vn7sYB3AdX5vKuTC+Vo06G1y2XvKBbeNF3o2nfZGHwo/8N2IzTOuSRTdo2Ch//bl6Vev1Xa4eUyInIiYj4ggK5G/Vp6y1lR6vqKcnZ8bq+k+hlGyn+Zd3s/3qa4SlbXVcq5JcDnXLm9rsizfW7u0bm3V7VZC45s2zJe0CcfVEwLnEbhEBi5N6OoVifMDsJvABUONG7CO+8+CMrSb4erIKvQeNwJZpvqIvDNoA/m08W5lNGlY0ibGHKFT86h/du6uN2lH9igw15j+5yz95ST9y/zm5m83N+ltjFKN938nu+BSzf58kig2HHl8Gxn8SBu13SYqMPKRqJ3btpay6ymQ5aHyNi4EI3U33goSUnwC4OfiOwQlUR9aakkSOzBKQ4kJ1JUX+b9AU43+mUtVmntiL47FLPYgaTWDSW9cdhntkGh7QiY9Rz606rIvUwHWJdldxVhjgP7aMfUlwYSb0siUSkFT253mnyunv/bpcnZ++WyLhoufIav3XbaZC0q7KnwsY4bToXbIb1iXbnDjrqDAlaRTX4o2MYkygtrE6pYATRaTBExxLBQyMMTesglMdRKTD6OkQ4MEySMwqO1Wvrw++epQ/bfko3ipotp1XKvKrUHwZWglWMcXV/UFWfJYAXnvPAx9BNaGS0Dbf86dJkCroaYQcEG/XsV7wo/UseEUuqNMTFmXnRc7iS7PW+8fQeKgXg1+7Lk9W48urJQgrCCQX5HvpExiOPoJYf7rjWeYJWL5zdEKQtogIHJQUtXAvyhn9Aj9/AmaslYsQ4Y1WYa1d3bxPCjORbEdLF4fqvTGZRELhRSyF4T+vA84t96S7rISBxNJCxRc63MC7ShEiXRvAr+ogedou8601/6JJ5JHyPlfI///F9Z/Ov5eTN6HdyuLSkHepkEvU+lLTbqfJqVvjo5r4tLp4XxBHMHNZGN5iEvCkjZq9vHdJ1ErrNonO5BMsMO9Y6rsLnUqHSUfq7anFxVlMO1OdzrHyXimpqvTqXCcPnSD81YabEzMzpbWV7IhMDdhNp1iYyarLgQT4yLbQHnrDW8i9VljfqTNWSusr6NNP8mP0/hrRHwpmdABayDYQcxh/PB0aO/oAHMZcwUPPRSkMVVuHXnllSHL33rSMoBg1SHULcn+/NiMlsuRHdNO5DRSxp3DNVG5Dhtjo/aJED8Oa8bTDep+iHhEnrGFG+fKAOJ355dXcYNaHZo7nMVGKGMfILBHbeQcK4hrUDfZg4QyDoRrytIMJV9G5SdMbuy/XRvTqTBWS+uSfHOt7wQgw93xAAs4/iqWkNWNM5a/voNh6xs+dXu4a7kyUrz65W6F3rg2QGizQHm/fxTdoCy331FBnmxO0B/HniacNAWzsF3KZyR2tobNqmt6hYttF2Ukshq9jj4s2goC+zbn1tPkxt7YNKoZ+5ZlEDCLCBPg1avV6atXE6G4Gxt217MOgFAa8ujz0uQ44ptA229Xa/I5hk6hctOUFF0M8L3z0Le5BO6m/Zg/ne13ielu3bib3AjSes3UTJ1OTiYnUrfI1+Gn4pL8yuQ0wuwQldzV04oWWE0jaeqKNHTE01ioKreIYHucuNrlYTJmYerFwHK+dl7X6JeTJrZqrPiK7nkPVBULpEa/fAn3eWUWJT8nQ9on5rF9Uo1GJBREWpaFb0bcY041LnCNsa32Offo1ejiu6cZ9bDvzr/PA1NfOJjuedpUaKyYHP340BfjaxULQd9zZv1Lxm2iShdYjh8eJLt/9tV2K58/tOSl7t5KsfdGhMcqrE2Q/4d3nmcc8cd3/XPHF/Dco8hR1YdCaDejZqOSvi31ym9lme6r4+ep9ls/mh21qdP98D1vZ560tN/BhudeyD7dkP1D3iN7OtqzPKdmbOvBBPtoiPjh/Eptt/8Ffouevw==
sidebar_class_name: "get api-method"
info_path: docs/rest-api/vectara-rest-api-v-2
custom_edit_url: null
@@ -62,7 +62,7 @@ Get a job by a specific `job_id`. Jobs are background processes like replacing t
diff --git a/www/docs/rest-api/get-llm.api.mdx b/www/docs/rest-api/get-llm.api.mdx
index 07f57be69..5d247e400 100644
--- a/www/docs/rest-api/get-llm.api.mdx
+++ b/www/docs/rest-api/get-llm.api.mdx
@@ -5,7 +5,7 @@ description: "The Get LLM API allows users to retrieve details about a specific
sidebar_label: "Get an LLM"
hide_title: true
hide_table_of_contents: true
-api: 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
+api: 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
sidebar_class_name: "get api-method"
info_path: docs/rest-api/vectara-rest-api-v-2
custom_edit_url: null
@@ -68,7 +68,7 @@ The request requires authentication details, and you can provide them either as
diff --git a/www/docs/rest-api/get-query-histories.api.mdx b/www/docs/rest-api/get-query-histories.api.mdx
index 696d57c5d..d222f7bca 100644
--- a/www/docs/rest-api/get-query-histories.api.mdx
+++ b/www/docs/rest-api/get-query-histories.api.mdx
@@ -5,7 +5,7 @@ description: "The List Query Histories API allows you to retrieve, update, and m
sidebar_label: "List the history of previous queries"
hide_title: true
hide_table_of_contents: true
-api: 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
+api: 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
sidebar_class_name: "get api-method"
info_path: docs/rest-api/vectara-rest-api-v-2
custom_edit_url: null
@@ -65,7 +65,7 @@ You can specify the `corpus_key`, `chat_id`, and the `limit` which is the maximu
diff --git a/www/docs/rest-api/get-query-history.api.mdx b/www/docs/rest-api/get-query-history.api.mdx
index f3bc4df1d..9f58c7bf7 100644
--- a/www/docs/rest-api/get-query-history.api.mdx
+++ b/www/docs/rest-api/get-query-history.api.mdx
@@ -5,7 +5,7 @@ description: "The Get Query History API allows you to retrieve detailed history
sidebar_label: "Get a query history"
hide_title: true
hide_table_of_contents: true
-api: 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
+api: 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
sidebar_class_name: "get api-method"
info_path: docs/rest-api/vectara-rest-api-v-2
custom_edit_url: null
@@ -65,7 +65,7 @@ You specify the `query_id` and the response includes the `id` of the query, the
"},"end_tag":{"description":"The tag that wraps the document part at the end. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the document part ends and the context after begins.","type":"string","example":""}},"example":{"sentences_before":2,"sentences_after":2,"start_tag":"","end_tag":""},"title":"ContextConfiguration"},"reranker":{"type":"object","description":"Rerank results of the search. Rerankers are very powerful tools to improve the order of search results. By default the search will use the most powerful reranker available to the customer's plan. To disable reranking, set the reranker `type` to `\"none\"`.","discriminator":{"propertyName":"type","mapping":{"customer_reranker":{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},"userfn":{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},"mmr":{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},"chain":{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},"none":{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}}},"oneOf":[{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}],"title":"SearchReranker"}},"example":{"limit":50},"title":"SearchParameters"}],"required":["corpora"],"title":"SearchCorporaParameters"},"generation":{"description":"The parameters to control generation.","type":"object","properties":{"enabled":{"description":"Whether generation is enabled for this query. This field is ignored if using chat.","type":"boolean","default":true},"generation_preset_name":{"description":"The preset values to use to feed the query results and other context to the model. \n\nA `generation_preset` is an object with a bundle of properties that specifies: \n* The `prompt_template` that is rendered and then sent to the LLM. \n* The LLM used. * `model_parameter`s such as temperature.\n\nAll of these properties except the model can be overridden by setting them in this object. Even when a `prompt_template` is set, the `generation_preset_name` is used to set the model used. See `model_parameters.model` if you want to set the model explicitly.\n\nIf `generation_preset_name` is not set, the Vectara platform will use the default model and prompt.'\n","type":"string","minLength":1,"example":"mockingbird-2.0"},"prompt_name":{"description":"Use `generation_preset_name` instead of `prompt_name`.","type":"string","minLength":1,"example":"mockingbird-2.0","deprecated":true},"max_used_search_results":{"description":"The maximum number of search results to be available to the prompt.","type":"integer","format":"int32","minimum":0,"default":5},"prompt_template":{"description":"Vectara manages both system and user roles and prompts for the generative LLM out of the box by default. However, users can override the `prompt_template` via this variable. The `prompt_template` is in the form of an Apache Velocity template. For more details on how to configure the `prompt_template`, see the [long-form documentation](https://docs.vectara.com/docs/prompts/vectara-prompt-engine).","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n"},"prompt_text":{"description":"This property is deprecated in favor of clearer naming. Use `prompt_template`. This property will be ignored if `prompt_template` is set.","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n","deprecated":true},"max_response_characters":{"description":"Controls the length of the generated output. This is a rough estimate and not a hard limit: the end output can be longer or shorter than this value. This is generally implemented by including the `max_response_characters` in the prompt, and the LLM's instruction following capability dictates how closely the generated output is limited.","type":"integer","format":"int32","example":300,"minimum":0},"response_language":{"description":"Languages that the Vectara platform supports.","type":"string","enum":["auto","eng","deu","fra","zho","kor","ara","rus","tha","nld","ita","por","spa","jpn","pol","tur","vie","ind","ces","ukr","ell","heb","fas","hin","urd","swe","ben","msa","ron"],"default":"auto","title":"Language"},"model_parameters":{"title":"ModelParameters","description":"The parameters for the model. WARNING: This is an experimental feature, and breakable at any point with virtually no notice. It is meant for experimentation to converge on optimal parameters that can then be set in the prompt definitions.","type":"object","properties":{"llm_name":{"description":"The model (e.g., `gpt-4`) to use for summarization. If specified, it will override the model behind `generation_preset_name`.","type":"string","example":"gpt4"},"max_tokens":{"description":"The maximum number of tokens to be returned by the model.","type":"integer","format":"int32","minimum":1},"temperature":{"description":"The sampling temperature to use. Higher values make the output more random, while lower values make it more focused and deterministic.","type":"number","format":"float"},"frequency_penalty":{"description":"Higher values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.","type":"number","format":"float"},"presence_penalty":{"description":"Higher values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.","type":"number","format":"float"}}},"citations":{"description":"Style the generator should use when making citations.","type":"object","properties":{"style":{"description":"The citation style that you want to use in the summary: \n* `numeric` - Citations formatted as simple numerals: \\[1\\], \\[2\\], etc.\n* `none` - Citations removed from text.\n* `html` - Citation formatted as a URL like `text_pattern`.\n* `markdown` - Formatted as `[text_pattern](url_pattern)`.\n","type":"string","enum":["none","numeric","html","markdown"]},"url_pattern":{"description":"The URL pattern if the citation_style is set to `html` or `markdown`. The pattern can access metadata attributes in the document or part. e.g. `https://my.doc/foo/{doc.id}/{part.id}` The default `url_pattern` is an empty string.","type":"string","example":"https://vectara.com/documents/{doc.id}"},"text_pattern":{"description":"The text pattern if the citation_style is set to `html` or `markdown`. This pattern sets the href for HTML or the text within `[]` in markdown, and defaults to N being the index of result if it is not set. The default citation style looks like `[N]()` for markdown. You can use metadata attributes in the `text_pattern`. For example, the pattern `{doc.title}` with citation style `markdown` would result in final citation output like `[Title]()` when the document's metadata includes `{\"title\":\"Title\"}`.","type":"string","example":"{doc.title}"}},"title":"CitationParameters"},"enable_factual_consistency_score":{"description":"Enable returning the factual consistency score with query results.","type":"boolean","default":true}},"title":"GenerationParameters"},"stream_response":{"description":"Indicates whether the response should be streamed or not.","type":"boolean","default":false},"save_history":{"description":"Indicates whether to save the query to query history.","type":"boolean"},"intelligent_query_rewriting":{"description":"[Tech Preview] Indicates whether to enable intelligent query rewriting. When enabled, the platform will attempt to extract metadata filter and rewrite the query to improve search results. Read [here](https://docs.vectara.com/docs/search-and-retrieval/intelligent-query-rewriting) for more details.","type":"boolean","default":false}},"example":{"query":"Summarize risk exposure and QA issues across divisions","search":{"corpora":[{"corpus_key":"ops_manuals","metadata_filter":"doc.topic = 'QA' AND doc.severity = 'high'","lexical_interpolation":0.005},{"corpus_key":"fin_docs","metadata_filter":"doc.region = 'EMEA' AND doc.type = 'risk_report'","lexical_interpolation":0.005}],"context_configuration":{"sentences_before":2,"sentences_after":2,"start_tag":"","end_tag":""},"reranker":{"type":"customer_reranker","reranker_name":"Rerank_Multilingual_v1"}},"generation":{"generation_preset_name":"vectara-summary-ext-24-05-med-omni","response_language":"eng","enable_factual_consistency_score":true},"stream_response":false},"required":["query","search"],"title":"QueryRequest"},"chat_id":{"description":"The ID of the chat the query is a part of.","type":"string","example":"chat_1234567890"},"latency_millis":{"description":"Time taken to complete the query, measured in milliseconds.","type":"integer","example":150},"started_at":{"description":"ISO date time indicating when the query was first received.","type":"string","format":"date-time","example":"2025-06-01T12:00:00Z"},"spans":{"description":"Parts of the query pipeline. Each span explains what happened during that stage of the query pipeline.","type":"array","items":{"description":"Portion of the query history.","type":"object","discriminator":{"propertyName":"type","mapping":{"rephrase":{"description":"During the query pipeline, the query may be rephrased to better suit the corpus.","type":"object","properties":{"type":{"description":"This value is always `rephrase`.","type":"string"},"latency_millis":{"description":"Time taken in milliseconds.","type":"integer"},"started_at":{"description":"When the span started.","type":"string","format":"date-time"},"rephrased_query":{"description":"Query made to the corpora.","type":"string"}},"x-vectaraParents":["QueryHistorySpan"],"title":"RephraseSpan"},"search":{"description":"The search portion of the query pipeline. This occurs before any reranking span.","type":"object","properties":{"type":{"description":"This value is always `search`.","type":"string"},"latency_millis":{"description":"Time taken in milliseconds.","type":"integer"},"started_at":{"description":"ISO date time that indicates when the span started.","type":"string","format":"date-time"},"search_results":{"description":"The search results before reranking.","type":"array","items":{"description":"An individual ranked search result from a query.","type":"object","properties":{"text":{"description":"The document part altered by the context configuration that matches the query.","type":"string","example":"EU banks reported a 20% increase in carbon reduction initiatives in 2023, driven by regulatory pressure."},"score":{"description":"The score of the individual result.","type":"number","format":"double","example":0.92},"part_metadata":{"description":"The metadata for the document part.","type":"object","additionalProperties":true,"example":{"section":"executive_summary"}},"document_metadata":{"description":"The metadata for the document that contains the document part.","type":"object","additionalProperties":true,"example":{"industry":"banking","year":2023,"doc_type":"annual_report"}},"document_id":{"description":"The ID of the document that contains the document part.","type":"string","example":"financial-report-2023"},"table":{"description":"A table in a document.","type":"object","properties":{"id":{"description":"The unique ID of the table within the document.","type":"string","example":"billing_table_111"},"title":{"description":"The title of the table.","type":"string","example":"Carbon Reduction Metrics"},"data":{"description":"The data of the table.","type":"object","properties":{"headers":{"description":"The headers of the table.","type":"array","items":{"description":"The header of a table.","type":"array","items":{"description":"A cell in a table.","type":"object","properties":{"text_value":{"description":"A text value.","type":"string","example":"Bank A"},"int_value":{"description":"A signed 64-bit integer value.","type":"integer","format":"int64"},"float_value":{"description":"A floating-point value with double precision.","type":"number","format":"double"},"bool_value":{"description":"A boolean value.","type":"boolean"},"colspan":{"description":"The number of columns the cell spans. This field is optional; if not specified, default is 1. Must be greater than 0.","type":"integer","format":"int32","example":1},"rowspan":{"description":"The number of rows the cell spans. This field is optional; if not specified, default is 1. Must be greater than 0.","type":"integer","format":"int32","example":1}},"title":"Cell"},"title":"Header"}},"rows":{"description":"The rows in the data.","type":"array","items":{"description":"A row in a table.","type":"array","items":{"description":"A cell in a table.","type":"object","properties":{"text_value":{"description":"A text value.","type":"string","example":"Bank A"},"int_value":{"description":"A signed 64-bit integer value.","type":"integer","format":"int64"},"float_value":{"description":"A floating-point value with double precision.","type":"number","format":"double"},"bool_value":{"description":"A boolean value.","type":"boolean"},"colspan":{"description":"The number of columns the cell spans. This field is optional; if not specified, default is 1. Must be greater than 0.","type":"integer","format":"int32","example":1},"rowspan":{"description":"The number of rows the cell spans. This field is optional; if not specified, default is 1. Must be greater than 0.","type":"integer","format":"int32","example":1}},"title":"Cell"},"title":"Row"}}},"title":"Data"},"description":{"description":"The description of the table.","type":"string","example":"Summary of carbon reduction efforts by EU banks in 2023."}},"title":"Table"},"image":{"description":"An image element within a document, containing its identifying information and optional metadata.","type":"object","properties":{"id":{"description":"The unique identifier of the image within the document, used to reference it in related content.","type":"string","example":"chart_1"},"title":{"description":"A short, human-readable title for the image, often displayed above or alongside it.","type":"string","example":"Quarterly Sales Performance"},"caption":{"description":"A brief caption providing context or an explanation for the image, typically displayed below it.","type":"string","example":"Sales growth trends for Q1 to Q4 of 2024"},"description":{"description":"A longer, detailed description of the image for accessibility or additional context.","type":"string","example":"A bar chart showing quarterly sales growth, with Q4 outperforming all previous quarters by 15%"},"mime_type":{"description":"The MIME type of the image, indicating the format of the binary data (e.g., image/jpeg for JPEG images).","type":"string","example":"image/jpeg"}},"required":["id","image_data","mime_type"],"title":"ImageMetadata"},"request_corpora_index":{"description":"A query request can search over multiple corpora at a time. This property is set to the index in the list of corpora in the original search request that this search result originated from. If the query request is only over one corpus, this property is 0.","type":"integer","format":"int32","example":0,"minimum":0}},"title":"IndividualSearchResult"}}},"x-vectaraParents":["QueryHistorySpan"],"title":"SearchSpan"},"rerank":{"description":"The reranking of the search result.","type":"object","properties":{"type":{"description":"This value is always `rerank`.","type":"string"},"latency_millis":{"description":"Time taken in milliseconds.","type":"integer"},"started_at":{"description":"When the span started.","type":"string","format":"date-time"},"reranked_search_results":{"description":"The new search results after reranking.","type":"array","items":{"description":"An individual reranked search result from a query.","type":"object","properties":{"text":{"description":"The document part altered by the context configuration that matches the query.","type":"string"},"score":{"description":"The score of the individual result.","type":"number","format":"double"},"original_score":{"description":"The original score of the individual result before reranking.","type":"number","format":"double"}},"title":"RerankedSearchResult"}}},"x-vectaraParents":["QueryHistorySpan"],"title":"RerankSpan"},"generation":{"description":"The generation by an LLM.","type":"object","properties":{"type":{"description":"This value is always `generation`.","type":"string"},"latency_millis":{"description":"Time taken in milliseconds.","type":"integer"},"started_at":{"description":"When the span started.","type":"string","format":"date-time"},"prompt":{"description":"The text sent as a prompt to the LLM.","type":"string"},"generation":{"description":"The text generated from the LLM.","type":"string"}},"x-vectaraParents":["QueryHistorySpan"],"title":"GenerationSpan"},"fcs":{"description":"The factual consistency of the generation.","type":"object","properties":{"type":{"description":"This value is always `fcs`.","type":"string"},"latency_millis":{"description":"Time taken in milliseconds.","type":"integer"},"started_at":{"description":"When the span started.","type":"string","format":"date-time"},"score":{"description":"The probability that the summary is factually consistent with the results.","type":"number","format":"float"}},"x-vectaraParents":["QueryHistorySpan"],"title":"FactualConsistencyScoreSpan"},"rewritten_query":{"description":"Provides detailed information about a rewritten query generated for a specific corpus when intelligent query rewriting is enabled.","type":"object","properties":{"type":{"description":"Indicates the type of span. This value is always `rewritten_query`.","type":"string"},"corpus_key":{"description":"The corpus key that the query was made on.","type":"string"},"latency_millis":{"description":"Time taken in milliseconds.","type":"integer"},"started_at":{"description":"ISO date time that indicates when the span started.","type":"string","format":"date-time"},"warnings":{"description":"Warnings that occurred during query rewriting.","items":{"description":"The warning for the rewritten query.\n * `no_filter_attrs`: Corpus has no filter attributes.\n * `extracted_empty_filter`: No filter found in the query to extract or the platform failed to extract it.\n * `failed_to_parse_extracted_filter`: Failed to parse the extracted filter due to invalid syntax.\n * `failure`: Unexpected error occurred.","type":"string","enum":["no_filter_attrs","extracted_empty_filter","failed_to_parse_extracted_filter","failure"],"title":"RewrittenQueryWarning"}},"filter_extraction":{"type":"object","description":"The result of query filter extraction.","properties":{"query":{"description":"The query rephrased from the input query and executed.","type":"string"},"metadata_filter":{"description":"The metadata filter extracted from the input query.","type":"string"}},"title":"FilterExtraction"}},"x-vectaraParents":["QueryHistorySpan"],"title":"RewrittenQuerySpan"}}},"oneOf":[{"description":"During the query pipeline, the query may be rephrased to better suit the corpus.","type":"object","properties":{"type":{"description":"This value is always `rephrase`.","type":"string"},"latency_millis":{"description":"Time taken in milliseconds.","type":"integer"},"started_at":{"description":"When the span started.","type":"string","format":"date-time"},"rephrased_query":{"description":"Query made to the corpora.","type":"string"}},"x-vectaraParents":["QueryHistorySpan"],"title":"RephraseSpan"},{"description":"The search portion of the query pipeline. This occurs before any reranking span.","type":"object","properties":{"type":{"description":"This value is always `search`.","type":"string"},"latency_millis":{"description":"Time taken in milliseconds.","type":"integer"},"started_at":{"description":"ISO date time that indicates when the span started.","type":"string","format":"date-time"},"search_results":{"description":"The search results before reranking.","type":"array","items":{"description":"An individual ranked search result from a query.","type":"object","properties":{"text":{"description":"The document part altered by the context configuration that matches the query.","type":"string","example":"EU banks reported a 20% increase in carbon reduction initiatives in 2023, driven by regulatory pressure."},"score":{"description":"The score of the individual result.","type":"number","format":"double","example":0.92},"part_metadata":{"description":"The metadata for the document part.","type":"object","additionalProperties":true,"example":{"section":"executive_summary"}},"document_metadata":{"description":"The metadata for the document that contains the document part.","type":"object","additionalProperties":true,"example":{"industry":"banking","year":2023,"doc_type":"annual_report"}},"document_id":{"description":"The ID of the document that contains the document part.","type":"string","example":"financial-report-2023"},"table":{"description":"A table in a document.","type":"object","properties":{"id":{"description":"The unique ID of the table within the document.","type":"string","example":"billing_table_111"},"title":{"description":"The title of the table.","type":"string","example":"Carbon Reduction Metrics"},"data":{"description":"The data of the table.","type":"object","properties":{"headers":{"description":"The headers of the table.","type":"array","items":{"description":"The header of a table.","type":"array","items":{"description":"A cell in a table.","type":"object","properties":{"text_value":{"description":"A text value.","type":"string","example":"Bank A"},"int_value":{"description":"A signed 64-bit integer value.","type":"integer","format":"int64"},"float_value":{"description":"A floating-point value with double precision.","type":"number","format":"double"},"bool_value":{"description":"A boolean value.","type":"boolean"},"colspan":{"description":"The number of columns the cell spans. This field is optional; if not specified, default is 1. Must be greater than 0.","type":"integer","format":"int32","example":1},"rowspan":{"description":"The number of rows the cell spans. This field is optional; if not specified, default is 1. Must be greater than 0.","type":"integer","format":"int32","example":1}},"title":"Cell"},"title":"Header"}},"rows":{"description":"The rows in the data.","type":"array","items":{"description":"A row in a table.","type":"array","items":{"description":"A cell in a table.","type":"object","properties":{"text_value":{"description":"A text value.","type":"string","example":"Bank A"},"int_value":{"description":"A signed 64-bit integer value.","type":"integer","format":"int64"},"float_value":{"description":"A floating-point value with double precision.","type":"number","format":"double"},"bool_value":{"description":"A boolean value.","type":"boolean"},"colspan":{"description":"The number of columns the cell spans. This field is optional; if not specified, default is 1. Must be greater than 0.","type":"integer","format":"int32","example":1},"rowspan":{"description":"The number of rows the cell spans. This field is optional; if not specified, default is 1. Must be greater than 0.","type":"integer","format":"int32","example":1}},"title":"Cell"},"title":"Row"}}},"title":"Data"},"description":{"description":"The description of the table.","type":"string","example":"Summary of carbon reduction efforts by EU banks in 2023."}},"title":"Table"},"image":{"description":"An image element within a document, containing its identifying information and optional metadata.","type":"object","properties":{"id":{"description":"The unique identifier of the image within the document, used to reference it in related content.","type":"string","example":"chart_1"},"title":{"description":"A short, human-readable title for the image, often displayed above or alongside it.","type":"string","example":"Quarterly Sales Performance"},"caption":{"description":"A brief caption providing context or an explanation for the image, typically displayed below it.","type":"string","example":"Sales growth trends for Q1 to Q4 of 2024"},"description":{"description":"A longer, detailed description of the image for accessibility or additional context.","type":"string","example":"A bar chart showing quarterly sales growth, with Q4 outperforming all previous quarters by 15%"},"mime_type":{"description":"The MIME type of the image, indicating the format of the binary data (e.g., image/jpeg for JPEG images).","type":"string","example":"image/jpeg"}},"required":["id","image_data","mime_type"],"title":"ImageMetadata"},"request_corpora_index":{"description":"A query request can search over multiple corpora at a time. This property is set to the index in the list of corpora in the original search request that this search result originated from. If the query request is only over one corpus, this property is 0.","type":"integer","format":"int32","example":0,"minimum":0}},"title":"IndividualSearchResult"}}},"x-vectaraParents":["QueryHistorySpan"],"title":"SearchSpan"},{"description":"The reranking of the search result.","type":"object","properties":{"type":{"description":"This value is always `rerank`.","type":"string"},"latency_millis":{"description":"Time taken in milliseconds.","type":"integer"},"started_at":{"description":"When the span started.","type":"string","format":"date-time"},"reranked_search_results":{"description":"The new search results after reranking.","type":"array","items":{"description":"An individual reranked search result from a query.","type":"object","properties":{"text":{"description":"The document part altered by the context configuration that matches the query.","type":"string"},"score":{"description":"The score of the individual result.","type":"number","format":"double"},"original_score":{"description":"The original score of the individual result before reranking.","type":"number","format":"double"}},"title":"RerankedSearchResult"}}},"x-vectaraParents":["QueryHistorySpan"],"title":"RerankSpan"},{"description":"The generation by an LLM.","type":"object","properties":{"type":{"description":"This value is always `generation`.","type":"string"},"latency_millis":{"description":"Time taken in milliseconds.","type":"integer"},"started_at":{"description":"When the span started.","type":"string","format":"date-time"},"prompt":{"description":"The text sent as a prompt to the LLM.","type":"string"},"generation":{"description":"The text generated from the LLM.","type":"string"}},"x-vectaraParents":["QueryHistorySpan"],"title":"GenerationSpan"},{"description":"The factual consistency of the generation.","type":"object","properties":{"type":{"description":"This value is always `fcs`.","type":"string"},"latency_millis":{"description":"Time taken in milliseconds.","type":"integer"},"started_at":{"description":"When the span started.","type":"string","format":"date-time"},"score":{"description":"The probability that the summary is factually consistent with the results.","type":"number","format":"float"}},"x-vectaraParents":["QueryHistorySpan"],"title":"FactualConsistencyScoreSpan"},{"description":"Provides detailed information about a rewritten query generated for a specific corpus when intelligent query rewriting is enabled.","type":"object","properties":{"type":{"description":"Indicates the type of span. This value is always `rewritten_query`.","type":"string"},"corpus_key":{"description":"The corpus key that the query was made on.","type":"string"},"latency_millis":{"description":"Time taken in milliseconds.","type":"integer"},"started_at":{"description":"ISO date time that indicates when the span started.","type":"string","format":"date-time"},"warnings":{"description":"Warnings that occurred during query rewriting.","items":{"description":"The warning for the rewritten query.\n * `no_filter_attrs`: Corpus has no filter attributes.\n * `extracted_empty_filter`: No filter found in the query to extract or the platform failed to extract it.\n * `failed_to_parse_extracted_filter`: Failed to parse the extracted filter due to invalid syntax.\n * `failure`: Unexpected error occurred.","type":"string","enum":["no_filter_attrs","extracted_empty_filter","failed_to_parse_extracted_filter","failure"],"title":"RewrittenQueryWarning"}},"filter_extraction":{"type":"object","description":"The result of query filter extraction.","properties":{"query":{"description":"The query rephrased from the input query and executed.","type":"string"},"metadata_filter":{"description":"The metadata filter extracted from the input query.","type":"string"}},"title":"FilterExtraction"}},"x-vectaraParents":["QueryHistorySpan"],"title":"RewrittenQuerySpan"}],"title":"QueryHistorySpan"}}},"title":"QueryHistory"}}}},"403":{"description":"Permissions do not allow retrieving the query history.","content":{"application/json":{"schema":{"description":"A general error response with an error code and message.","type":"object","properties":{"messages":{"description":"The messages describing why the error occurred.","type":"array","items":{"title":"message","type":"string","example":"Internal server error."}},"request_id":{"description":"The ID of the request that can be used to help Vectara support debug what went wrong.","type":"string"}},"title":"Error"}}}},"404":{"description":"Query history not found.","content":{"application/json":{"schema":{"description":"Error returned when a requested resource does not exist.","type":"object","properties":{"id":{"description":"The ID cannot be found.","type":"string"},"messages":{"type":"array","items":{"title":"message","type":"string"}},"request_id":{"description":"The ID of the request that can be used to help Vectara support debug what went wrong.","type":"string"}},"title":"NotFoundError"}}}}}}
+ responses={{"200":{"description":"The `spans` object provides information about the ordered parts of the query pipeline and you get information about what happens during each stage of the pipeline.\n","content":{"application/json":{"schema":{"description":"A complete record of a previously executed query, including the request parameters and response.","type":"object","properties":{"id":{"description":"The ID of the query history.","type":"string","example":"qry_1234567890"},"query":{"description":"Query one or more corpora.","type":"object","properties":{"query":{"description":"The search query string, which is the question the user is asking.","type":"string","maxLength":5000,"example":"Am I allowed to bring pets to work?"},"search":{"description":"The parameters to search one or more corpora.","allOf":[{"type":"object","properties":{"corpora":{"description":"The corpora that you want to search.","type":"array","items":{"description":"A corpus with its identifying key for use in search operations within a customer account.","allOf":[{"description":"Configuration for search parameters specific to a single corpus within a customer account, including filters and semantics.","type":"object","properties":{"custom_dimensions":{"description":"The custom dimensions as additional weights.","type":"object","additionalProperties":{"type":"number","format":"double","nullable":false},"title":"CustomDimensions"},"metadata_filter":{"description":"The filter string used to narrow the search based on metadata attributes. The query against this corpus will be confined to document parts that match the `metadata_filter`. Only metadata fields set as `filter_attributes` on the corpus can be filtered. Filter syntax is similar to a SQL WHERE clause. See [metadata filters documentation](https://docs.vectara.com/docs/learn/metadata-search-filtering/filter-overview) for more information.","type":"string","maxLength":8000,"example":"doc.title = 'Annual Report'"},"lexical_interpolation":{"description":"How much to weigh lexical scores compared to the embedding score. 0 means lexical search is not used at all, and 1 means only lexical search is used.","type":"number","format":"float","minimum":0,"maximum":1,"example":0.005},"semantics":{"description":"Indicates whether to consider a query against this corpus as a query or a response.","type":"string","enum":["default","query","response"],"default":"default","title":"SearchSemantics"}},"title":"SearchCorpus"},{"type":"object","properties":{"corpus_key":{"description":"A user-provided key for a corpus.","type":"string","example":"my-corpus","pattern":"[a-zA-Z0-9_\\=\\-]+$","maxLength":50,"title":"CorpusKey"},"query":{"description":"Query for a particular corpus that will override the overall query if present.","type":"string","maxLength":5000,"example":"What are some important facts in my-corpus?"}}}],"required":["corpus_key"],"title":"KeyedSearchCorpus"},"minItems":1}}},{"type":"object","description":"Search parameters to retrieve knowledge for the query.","properties":{"offset":{"description":"Specifies how many results into the result to skip. This is useful for pagination.","type":"integer","format":"int32","default":0,"minimum":0},"limit":{"description":"The maximum number of results returned.","type":"integer","format":"int32","minimum":1,"default":10},"context_configuration":{"type":"object","description":"Configuration on the presentation of each document part in the result set. You can only use characters_before/after or sentences_before/after, but not both. If you specify both in the query, sentences_before/after takes precedence","properties":{"characters_before":{"description":"The number of characters that are shown before the matching document part. This is useful to show the context of the document part in the wider document. Ignored if `sentences_before` is set. Vectara will capture the full sentence that contains the captured characters, to not lose the meaning caused by a truncated word or sentence.","type":"integer","format":"int32"},"characters_after":{"description":"The number of characters that are shown after the matching document part. This is useful to show the context of the document part in the wider document. Ignored if `sentences_after` is set. Vectara will capture the full sentence that contains the captured characters, to not lose the meaning caused by a truncated word or sentence.","type":"integer","format":"int32"},"sentences_before":{"description":"The number of sentences that are shown before the matching document part. This is useful to show the context of the document part in the wider document.","type":"integer","format":"int32","default":0,"minimum":0,"example":2},"sentences_after":{"description":"The number of sentences that are shown after the matching document part. This is useful to show the context of the document part in the wider document.","type":"integer","format":"int32","default":0,"minimum":0,"example":2},"start_tag":{"description":"The tag that wraps the document part at the start. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the context before ends and the document part begins.","type":"string","example":""},"end_tag":{"description":"The tag that wraps the document part at the end. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the document part ends and the context after begins.","type":"string","example":""}},"example":{"sentences_before":2,"sentences_after":2,"start_tag":"","end_tag":""},"title":"ContextConfiguration"},"reranker":{"type":"object","description":"Rerank results of the search. Rerankers are very powerful tools to improve the order of search results. By default the search will use the most powerful reranker available to the customer's plan. To disable reranking, set the reranker `type` to `\"none\"`.","discriminator":{"propertyName":"type","mapping":{"customer_reranker":{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},"userfn":{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},"mmr":{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},"chain":{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},"none":{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}}},"oneOf":[{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}],"title":"SearchReranker"}},"example":{"limit":50},"title":"SearchParameters"}],"required":["corpora"],"title":"SearchCorporaParameters"},"generation":{"description":"The parameters to control generation.","type":"object","properties":{"enabled":{"description":"Whether generation is enabled for this query. This field is ignored if using chat.","type":"boolean","default":true},"generation_preset_name":{"description":"The preset values to use to feed the query results and other context to the model. \n\nA `generation_preset` is an object with a bundle of properties that specifies: \n* The `prompt_template` that is rendered and then sent to the LLM. \n* The LLM used. * `model_parameter`s such as temperature.\n\nAll of these properties except the model can be overridden by setting them in this object. Even when a `prompt_template` is set, the `generation_preset_name` is used to set the model used. See `model_parameters.model` if you want to set the model explicitly.\n\nIf `generation_preset_name` is not set, the Vectara platform will use the default model and prompt.'\n","type":"string","minLength":1,"example":"mockingbird-2.0"},"prompt_name":{"description":"Use `generation_preset_name` instead of `prompt_name`.","type":"string","minLength":1,"example":"mockingbird-2.0","deprecated":true},"max_used_search_results":{"description":"The maximum number of search results to be available to the prompt.","type":"integer","format":"int32","minimum":0,"default":5},"prompt_template":{"description":"Vectara manages both system and user roles and prompts for the generative LLM out of the box by default. However, users can override the `prompt_template` via this variable. The `prompt_template` is in the form of an Apache Velocity template. For more details on how to configure the `prompt_template`, see the [long-form documentation](https://docs.vectara.com/docs/prompts/vectara-prompt-engine).","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n"},"prompt_text":{"description":"This property is deprecated in favor of clearer naming. Use `prompt_template`. This property will be ignored if `prompt_template` is set.","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n","deprecated":true},"max_response_characters":{"description":"Controls the length of the generated output. This is a rough estimate and not a hard limit: the end output can be longer or shorter than this value. This is generally implemented by including the `max_response_characters` in the prompt, and the LLM's instruction following capability dictates how closely the generated output is limited.","type":"integer","format":"int32","example":300,"minimum":0},"response_language":{"description":"Languages that the Vectara platform supports.","type":"string","enum":["auto","eng","deu","fra","zho","kor","ara","rus","tha","nld","ita","por","spa","jpn","pol","tur","vie","ind","ces","ukr","ell","heb","fas","hin","urd","swe","ben","msa","ron"],"default":"auto","title":"Language"},"model_parameters":{"title":"ModelParameters","description":"The parameters for the model. WARNING: This is an experimental feature, and breakable at any point with virtually no notice. It is meant for experimentation to converge on optimal parameters that can then be set in the prompt definitions.","type":"object","properties":{"llm_name":{"description":"The model (e.g., `gpt-4`) to use for summarization. If specified, it will override the model behind `generation_preset_name`.","type":"string","example":"gpt4"},"max_tokens":{"description":"The maximum number of tokens to be returned by the model.","type":"integer","format":"int32","minimum":1},"temperature":{"description":"The sampling temperature to use. Higher values make the output more random, while lower values make it more focused and deterministic.","type":"number","format":"float"},"frequency_penalty":{"description":"Higher values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.","type":"number","format":"float"},"presence_penalty":{"description":"Higher values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.","type":"number","format":"float"}}},"citations":{"description":"Style the generator should use when making citations.","type":"object","properties":{"style":{"description":"The citation style that you want to use in the summary: \n* `numeric` - Citations formatted as simple numerals: \\[1\\], \\[2\\], etc.\n* `none` - Citations removed from text.\n* `html` - Citation formatted as a URL like `text_pattern`.\n* `markdown` - Formatted as `[text_pattern](url_pattern)`.\n","type":"string","enum":["none","numeric","html","markdown"]},"url_pattern":{"description":"The URL pattern if the citation_style is set to `html` or `markdown`. The pattern can access metadata attributes in the document or part. e.g. `https://my.doc/foo/{doc.id}/{part.id}` The default `url_pattern` is an empty string.","type":"string","example":"https://vectara.com/documents/{doc.id}"},"text_pattern":{"description":"The text pattern if the citation_style is set to `html` or `markdown`. This pattern sets the href for HTML or the text within `[]` in markdown, and defaults to N being the index of result if it is not set. The default citation style looks like `[N]()` for markdown. You can use metadata attributes in the `text_pattern`. For example, the pattern `{doc.title}` with citation style `markdown` would result in final citation output like `[Title]()` when the document's metadata includes `{\"title\":\"Title\"}`.","type":"string","example":"{doc.title}"}},"title":"CitationParameters"},"enable_factual_consistency_score":{"description":"Enable returning the factual consistency score with query results.","type":"boolean","default":true}},"title":"GenerationParameters"},"stream_response":{"description":"Indicates whether the response should be streamed or not.","type":"boolean","default":false},"save_history":{"description":"Indicates whether to save the query to query history.","type":"boolean"},"intelligent_query_rewriting":{"description":"[Tech Preview] Indicates whether to enable intelligent query rewriting. When enabled, the platform will attempt to extract metadata filter and rewrite the query to improve search results. Read [here](https://docs.vectara.com/docs/search-and-retrieval/intelligent-query-rewriting) for more details.","type":"boolean","default":false}},"example":{"query":"Summarize risk exposure and QA issues across divisions","search":{"corpora":[{"corpus_key":"ops_manuals","metadata_filter":"doc.topic = 'QA' AND doc.severity = 'high'","lexical_interpolation":0.005},{"corpus_key":"fin_docs","metadata_filter":"doc.region = 'EMEA' AND doc.type = 'risk_report'","lexical_interpolation":0.005}],"context_configuration":{"sentences_before":2,"sentences_after":2,"start_tag":"","end_tag":""},"reranker":{"type":"customer_reranker","reranker_name":"Rerank_Multilingual_v1"}},"generation":{"generation_preset_name":"vectara-summary-ext-24-05-med-omni","response_language":"eng","enable_factual_consistency_score":true},"stream_response":false},"required":["query","search"],"title":"QueryRequest"},"chat_id":{"description":"The ID of the chat the query is a part of.","type":"string","example":"chat_1234567890"},"latency_millis":{"description":"Time taken to complete the query, measured in milliseconds.","type":"integer","example":150},"started_at":{"description":"ISO date time indicating when the query was first received.","type":"string","format":"date-time","example":"2025-06-01T12:00:00Z"},"agent_key":{"description":"The agent key if this query was made through an agent.","type":"string"},"session_key":{"description":"The session key if this query was made through an agent session.","type":"string"},"spans":{"description":"Parts of the query pipeline. Each span explains what happened during that stage of the query pipeline.","type":"array","items":{"description":"Portion of the query history.","type":"object","discriminator":{"propertyName":"type","mapping":{"rephrase":{"description":"During the query pipeline, the query may be rephrased to better suit the corpus.","type":"object","properties":{"type":{"description":"This value is always `rephrase`.","type":"string"},"latency_millis":{"description":"Time taken in milliseconds.","type":"integer"},"started_at":{"description":"When the span started.","type":"string","format":"date-time"},"rephrased_query":{"description":"Query made to the corpora.","type":"string"}},"x-vectaraParents":["QueryHistorySpan"],"title":"RephraseSpan"},"search":{"description":"The search portion of the query pipeline. This occurs before any reranking span.","type":"object","properties":{"type":{"description":"This value is always `search`.","type":"string"},"latency_millis":{"description":"Time taken in milliseconds.","type":"integer"},"started_at":{"description":"ISO date time that indicates when the span started.","type":"string","format":"date-time"},"search_results":{"description":"The search results before reranking.","type":"array","items":{"description":"An individual ranked search result from a query.","type":"object","properties":{"text":{"description":"The document part altered by the context configuration that matches the query.","type":"string","example":"EU banks reported a 20% increase in carbon reduction initiatives in 2023, driven by regulatory pressure."},"score":{"description":"The score of the individual result.","type":"number","format":"double","example":0.92},"part_metadata":{"description":"The metadata for the document part.","type":"object","additionalProperties":true,"example":{"section":"executive_summary"}},"document_metadata":{"description":"The metadata for the document that contains the document part.","type":"object","additionalProperties":true,"example":{"industry":"banking","year":2023,"doc_type":"annual_report"}},"document_id":{"description":"The ID of the document that contains the document part.","type":"string","example":"financial-report-2023"},"table":{"description":"A table in a document.","type":"object","properties":{"id":{"description":"The unique ID of the table within the document.","type":"string","example":"billing_table_111"},"title":{"description":"The title of the table.","type":"string","example":"Carbon Reduction Metrics"},"data":{"description":"The data of the table.","type":"object","properties":{"headers":{"description":"The headers of the table.","type":"array","items":{"description":"The header of a table.","type":"array","items":{"description":"A cell in a table.","type":"object","properties":{"text_value":{"description":"A text value.","type":"string","example":"Bank A"},"int_value":{"description":"A signed 64-bit integer value.","type":"integer","format":"int64"},"float_value":{"description":"A floating-point value with double precision.","type":"number","format":"double"},"bool_value":{"description":"A boolean value.","type":"boolean"},"colspan":{"description":"The number of columns the cell spans. This field is optional; if not specified, default is 1. Must be greater than 0.","type":"integer","format":"int32","example":1},"rowspan":{"description":"The number of rows the cell spans. This field is optional; if not specified, default is 1. Must be greater than 0.","type":"integer","format":"int32","example":1}},"title":"Cell"},"title":"Header"}},"rows":{"description":"The rows in the data.","type":"array","items":{"description":"A row in a table.","type":"array","items":{"description":"A cell in a table.","type":"object","properties":{"text_value":{"description":"A text value.","type":"string","example":"Bank A"},"int_value":{"description":"A signed 64-bit integer value.","type":"integer","format":"int64"},"float_value":{"description":"A floating-point value with double precision.","type":"number","format":"double"},"bool_value":{"description":"A boolean value.","type":"boolean"},"colspan":{"description":"The number of columns the cell spans. This field is optional; if not specified, default is 1. Must be greater than 0.","type":"integer","format":"int32","example":1},"rowspan":{"description":"The number of rows the cell spans. This field is optional; if not specified, default is 1. Must be greater than 0.","type":"integer","format":"int32","example":1}},"title":"Cell"},"title":"Row"}}},"title":"Data"},"description":{"description":"The description of the table.","type":"string","example":"Summary of carbon reduction efforts by EU banks in 2023."}},"title":"Table"},"image":{"description":"An image element within a document, containing its identifying information and optional metadata.","type":"object","properties":{"id":{"description":"The unique identifier of the image within the document, used to reference it in related content.","type":"string","example":"chart_1"},"title":{"description":"A short, human-readable title for the image, often displayed above or alongside it.","type":"string","example":"Quarterly Sales Performance"},"caption":{"description":"A brief caption providing context or an explanation for the image, typically displayed below it.","type":"string","example":"Sales growth trends for Q1 to Q4 of 2024"},"description":{"description":"A longer, detailed description of the image for accessibility or additional context.","type":"string","example":"A bar chart showing quarterly sales growth, with Q4 outperforming all previous quarters by 15%"},"mime_type":{"description":"The MIME type of the image, indicating the format of the binary data (e.g., image/jpeg for JPEG images).","type":"string","example":"image/jpeg"}},"required":["id","image_data","mime_type"],"title":"ImageMetadata"},"request_corpora_index":{"description":"A query request can search over multiple corpora at a time. This property is set to the index in the list of corpora in the original search request that this search result originated from. If the query request is only over one corpus, this property is 0.","type":"integer","format":"int32","example":0,"minimum":0}},"title":"IndividualSearchResult"}}},"x-vectaraParents":["QueryHistorySpan"],"title":"SearchSpan"},"rerank":{"description":"The reranking of the search result.","type":"object","properties":{"type":{"description":"This value is always `rerank`.","type":"string"},"latency_millis":{"description":"Time taken in milliseconds.","type":"integer"},"started_at":{"description":"When the span started.","type":"string","format":"date-time"},"reranked_search_results":{"description":"The new search results after reranking.","type":"array","items":{"description":"An individual reranked search result from a query.","type":"object","properties":{"text":{"description":"The document part altered by the context configuration that matches the query.","type":"string"},"score":{"description":"The score of the individual result.","type":"number","format":"double"},"original_score":{"description":"The original score of the individual result before reranking.","type":"number","format":"double"}},"title":"RerankedSearchResult"}}},"x-vectaraParents":["QueryHistorySpan"],"title":"RerankSpan"},"generation":{"description":"The generation by an LLM.","type":"object","properties":{"type":{"description":"This value is always `generation`.","type":"string"},"latency_millis":{"description":"Time taken in milliseconds.","type":"integer"},"started_at":{"description":"When the span started.","type":"string","format":"date-time"},"prompt":{"description":"The text sent as a prompt to the LLM.","type":"string"},"generation":{"description":"The text generated from the LLM.","type":"string"}},"x-vectaraParents":["QueryHistorySpan"],"title":"GenerationSpan"},"fcs":{"description":"The factual consistency of the generation.","type":"object","properties":{"type":{"description":"This value is always `fcs`.","type":"string"},"latency_millis":{"description":"Time taken in milliseconds.","type":"integer"},"started_at":{"description":"When the span started.","type":"string","format":"date-time"},"score":{"description":"The probability that the summary is factually consistent with the results.","type":"number","format":"float"}},"x-vectaraParents":["QueryHistorySpan"],"title":"FactualConsistencyScoreSpan"},"rewritten_query":{"description":"Provides detailed information about a rewritten query generated for a specific corpus when intelligent query rewriting is enabled.","type":"object","properties":{"type":{"description":"Indicates the type of span. This value is always `rewritten_query`.","type":"string"},"corpus_key":{"description":"The corpus key that the query was made on.","type":"string"},"latency_millis":{"description":"Time taken in milliseconds.","type":"integer"},"started_at":{"description":"ISO date time that indicates when the span started.","type":"string","format":"date-time"},"warnings":{"description":"Warnings that occurred during query rewriting.","items":{"description":"The warning for the rewritten query.\n * `no_filter_attrs`: Corpus has no filter attributes.\n * `extracted_empty_filter`: No filter found in the query to extract or the platform failed to extract it.\n * `failed_to_parse_extracted_filter`: Failed to parse the extracted filter due to invalid syntax.\n * `failure`: Unexpected error occurred.","type":"string","enum":["no_filter_attrs","extracted_empty_filter","failed_to_parse_extracted_filter","failure"],"title":"RewrittenQueryWarning"}},"filter_extraction":{"type":"object","description":"The result of query filter extraction.","properties":{"query":{"description":"The query rephrased from the input query and executed.","type":"string"},"metadata_filter":{"description":"The metadata filter extracted from the input query.","type":"string"}},"title":"FilterExtraction"}},"x-vectaraParents":["QueryHistorySpan"],"title":"RewrittenQuerySpan"}}},"oneOf":[{"description":"During the query pipeline, the query may be rephrased to better suit the corpus.","type":"object","properties":{"type":{"description":"This value is always `rephrase`.","type":"string"},"latency_millis":{"description":"Time taken in milliseconds.","type":"integer"},"started_at":{"description":"When the span started.","type":"string","format":"date-time"},"rephrased_query":{"description":"Query made to the corpora.","type":"string"}},"x-vectaraParents":["QueryHistorySpan"],"title":"RephraseSpan"},{"description":"The search portion of the query pipeline. This occurs before any reranking span.","type":"object","properties":{"type":{"description":"This value is always `search`.","type":"string"},"latency_millis":{"description":"Time taken in milliseconds.","type":"integer"},"started_at":{"description":"ISO date time that indicates when the span started.","type":"string","format":"date-time"},"search_results":{"description":"The search results before reranking.","type":"array","items":{"description":"An individual ranked search result from a query.","type":"object","properties":{"text":{"description":"The document part altered by the context configuration that matches the query.","type":"string","example":"EU banks reported a 20% increase in carbon reduction initiatives in 2023, driven by regulatory pressure."},"score":{"description":"The score of the individual result.","type":"number","format":"double","example":0.92},"part_metadata":{"description":"The metadata for the document part.","type":"object","additionalProperties":true,"example":{"section":"executive_summary"}},"document_metadata":{"description":"The metadata for the document that contains the document part.","type":"object","additionalProperties":true,"example":{"industry":"banking","year":2023,"doc_type":"annual_report"}},"document_id":{"description":"The ID of the document that contains the document part.","type":"string","example":"financial-report-2023"},"table":{"description":"A table in a document.","type":"object","properties":{"id":{"description":"The unique ID of the table within the document.","type":"string","example":"billing_table_111"},"title":{"description":"The title of the table.","type":"string","example":"Carbon Reduction Metrics"},"data":{"description":"The data of the table.","type":"object","properties":{"headers":{"description":"The headers of the table.","type":"array","items":{"description":"The header of a table.","type":"array","items":{"description":"A cell in a table.","type":"object","properties":{"text_value":{"description":"A text value.","type":"string","example":"Bank A"},"int_value":{"description":"A signed 64-bit integer value.","type":"integer","format":"int64"},"float_value":{"description":"A floating-point value with double precision.","type":"number","format":"double"},"bool_value":{"description":"A boolean value.","type":"boolean"},"colspan":{"description":"The number of columns the cell spans. This field is optional; if not specified, default is 1. Must be greater than 0.","type":"integer","format":"int32","example":1},"rowspan":{"description":"The number of rows the cell spans. This field is optional; if not specified, default is 1. Must be greater than 0.","type":"integer","format":"int32","example":1}},"title":"Cell"},"title":"Header"}},"rows":{"description":"The rows in the data.","type":"array","items":{"description":"A row in a table.","type":"array","items":{"description":"A cell in a table.","type":"object","properties":{"text_value":{"description":"A text value.","type":"string","example":"Bank A"},"int_value":{"description":"A signed 64-bit integer value.","type":"integer","format":"int64"},"float_value":{"description":"A floating-point value with double precision.","type":"number","format":"double"},"bool_value":{"description":"A boolean value.","type":"boolean"},"colspan":{"description":"The number of columns the cell spans. This field is optional; if not specified, default is 1. Must be greater than 0.","type":"integer","format":"int32","example":1},"rowspan":{"description":"The number of rows the cell spans. This field is optional; if not specified, default is 1. Must be greater than 0.","type":"integer","format":"int32","example":1}},"title":"Cell"},"title":"Row"}}},"title":"Data"},"description":{"description":"The description of the table.","type":"string","example":"Summary of carbon reduction efforts by EU banks in 2023."}},"title":"Table"},"image":{"description":"An image element within a document, containing its identifying information and optional metadata.","type":"object","properties":{"id":{"description":"The unique identifier of the image within the document, used to reference it in related content.","type":"string","example":"chart_1"},"title":{"description":"A short, human-readable title for the image, often displayed above or alongside it.","type":"string","example":"Quarterly Sales Performance"},"caption":{"description":"A brief caption providing context or an explanation for the image, typically displayed below it.","type":"string","example":"Sales growth trends for Q1 to Q4 of 2024"},"description":{"description":"A longer, detailed description of the image for accessibility or additional context.","type":"string","example":"A bar chart showing quarterly sales growth, with Q4 outperforming all previous quarters by 15%"},"mime_type":{"description":"The MIME type of the image, indicating the format of the binary data (e.g., image/jpeg for JPEG images).","type":"string","example":"image/jpeg"}},"required":["id","image_data","mime_type"],"title":"ImageMetadata"},"request_corpora_index":{"description":"A query request can search over multiple corpora at a time. This property is set to the index in the list of corpora in the original search request that this search result originated from. If the query request is only over one corpus, this property is 0.","type":"integer","format":"int32","example":0,"minimum":0}},"title":"IndividualSearchResult"}}},"x-vectaraParents":["QueryHistorySpan"],"title":"SearchSpan"},{"description":"The reranking of the search result.","type":"object","properties":{"type":{"description":"This value is always `rerank`.","type":"string"},"latency_millis":{"description":"Time taken in milliseconds.","type":"integer"},"started_at":{"description":"When the span started.","type":"string","format":"date-time"},"reranked_search_results":{"description":"The new search results after reranking.","type":"array","items":{"description":"An individual reranked search result from a query.","type":"object","properties":{"text":{"description":"The document part altered by the context configuration that matches the query.","type":"string"},"score":{"description":"The score of the individual result.","type":"number","format":"double"},"original_score":{"description":"The original score of the individual result before reranking.","type":"number","format":"double"}},"title":"RerankedSearchResult"}}},"x-vectaraParents":["QueryHistorySpan"],"title":"RerankSpan"},{"description":"The generation by an LLM.","type":"object","properties":{"type":{"description":"This value is always `generation`.","type":"string"},"latency_millis":{"description":"Time taken in milliseconds.","type":"integer"},"started_at":{"description":"When the span started.","type":"string","format":"date-time"},"prompt":{"description":"The text sent as a prompt to the LLM.","type":"string"},"generation":{"description":"The text generated from the LLM.","type":"string"}},"x-vectaraParents":["QueryHistorySpan"],"title":"GenerationSpan"},{"description":"The factual consistency of the generation.","type":"object","properties":{"type":{"description":"This value is always `fcs`.","type":"string"},"latency_millis":{"description":"Time taken in milliseconds.","type":"integer"},"started_at":{"description":"When the span started.","type":"string","format":"date-time"},"score":{"description":"The probability that the summary is factually consistent with the results.","type":"number","format":"float"}},"x-vectaraParents":["QueryHistorySpan"],"title":"FactualConsistencyScoreSpan"},{"description":"Provides detailed information about a rewritten query generated for a specific corpus when intelligent query rewriting is enabled.","type":"object","properties":{"type":{"description":"Indicates the type of span. This value is always `rewritten_query`.","type":"string"},"corpus_key":{"description":"The corpus key that the query was made on.","type":"string"},"latency_millis":{"description":"Time taken in milliseconds.","type":"integer"},"started_at":{"description":"ISO date time that indicates when the span started.","type":"string","format":"date-time"},"warnings":{"description":"Warnings that occurred during query rewriting.","items":{"description":"The warning for the rewritten query.\n * `no_filter_attrs`: Corpus has no filter attributes.\n * `extracted_empty_filter`: No filter found in the query to extract or the platform failed to extract it.\n * `failed_to_parse_extracted_filter`: Failed to parse the extracted filter due to invalid syntax.\n * `failure`: Unexpected error occurred.","type":"string","enum":["no_filter_attrs","extracted_empty_filter","failed_to_parse_extracted_filter","failure"],"title":"RewrittenQueryWarning"}},"filter_extraction":{"type":"object","description":"The result of query filter extraction.","properties":{"query":{"description":"The query rephrased from the input query and executed.","type":"string"},"metadata_filter":{"description":"The metadata filter extracted from the input query.","type":"string"}},"title":"FilterExtraction"}},"x-vectaraParents":["QueryHistorySpan"],"title":"RewrittenQuerySpan"}],"title":"QueryHistorySpan"}}},"title":"QueryHistory"}}}},"403":{"description":"Permissions do not allow retrieving the query history.","content":{"application/json":{"schema":{"description":"A general error response with an error code and message.","type":"object","properties":{"messages":{"description":"The messages describing why the error occurred.","type":"array","items":{"title":"message","type":"string","example":"Internal server error."}},"request_id":{"description":"The ID of the request that can be used to help Vectara support debug what went wrong.","type":"string"}},"title":"Error"}}}},"404":{"description":"Query history not found.","content":{"application/json":{"schema":{"description":"Error returned when a requested resource does not exist.","type":"object","properties":{"id":{"description":"The ID cannot be found.","type":"string"},"messages":{"type":"array","items":{"title":"message","type":"string"}},"request_id":{"description":"The ID of the request that can be used to help Vectara support debug what went wrong.","type":"string"}},"title":"NotFoundError"}}}}}}
>
diff --git a/www/docs/rest-api/get-tool.api.mdx b/www/docs/rest-api/get-tool.api.mdx
index c84a8fc10..afc772b3f 100644
--- a/www/docs/rest-api/get-tool.api.mdx
+++ b/www/docs/rest-api/get-tool.api.mdx
@@ -5,7 +5,7 @@ description: "Retrieve the full details of a specific tool, including its descri
sidebar_label: "Get tool"
hide_title: true
hide_table_of_contents: true
-api: eJztXftzG7mR/ldQU6myrSMp6mEnYSWp0/qxp9zaVlnybiWWjwJnmiQiDDALYERxVfzfr7qBeVAcPbzabNkK/IvFGUyjATT6+/BqXCWOz2wy+pScaC1t8rmXXPZtWRTaOMj6vBD9c1j23bIATHQExmrFJabLwKZGFE5olYySD+CMgAtgbg5sWkrJMnBcSMv0lHFmC0jFVKTMaS17TKhUlplQMyacZS1J+KooHbPpHHLeYzk4nnHHe4yrjKW84BMhhRNgB4w0ZjlfMgOFAQvKMetMmbrSQMYscJPO2bRUKUq2PZbptMxBuX5hdArWYv4Lbc6nUi9sj2nDSgumn8FUKMjYDzyfZLwRMGDHOgcqgaXv2EK4OePGiSlPnWXWacxYKCwwysfyLOZCAtNuDsYyXYDhDphWbU2pyFgNPt/JEitRGPb34/fvQk0Mkl7iPxZaHWbJKJmBwwpIeknBDc/BgcF2vEoENscceAYm6SWK50DN83MJ1vVPRA66dMn15juZAzs4OmQLISXL+TkwziZgHYPpVBvHnGapzgsJzrew8fKwrPgzNC/VeqpVZrEynciB6dKh7r4Uyegq8aaUCOVgRhrmQom8zJPRzqqXoFxhIEtGUy4trHr3K0//rZBS2H9fsXKS/5Cy1UUpuJs3BUFrGousU/NSiZ9LYCID5VANg30J9cKPUHcTOh1q0dScMyV0aGWdEWpG9uIcGEWZy/GnYf/PvP/LQf+f4/7n//pD0kvgkmOVhPeGz8a+KyWr1WfMxxZaWbAoenc4xP82VQ8VCZnXNfgC1DPVyoFy+BkvCilSMuntf1n89qql9rrQg1DoOXcs5YpNADsrdRY+A+Us1kcBZqpN3ngb7nsutljde0iLTKDwXCjutMHcCoMJ3PJdaBass16S86LAShtdJXladGil2NuXR+zpW52BZC+xaJeOHRntdKrls7bOWilIvZpwifXPJX1rwVyga5hqQy9UBlntc7gUbon6cinfT6l7ryvwHbfAgu4CLLNzbkKtSBmyXxZAZQ52oCf/ghQ9QPMZFkxkm8X7uGGAqCUnuS2JHZb1f2g6g60Na9rZ3YP95y/+2Ic//XnS39nN9vp8//mL/v7uixc7+zt/3B8OhyhYOPoEPdxhlqyq7nI/BasusqniqhZ9XdL/lDlXfQM84xMJjFK1u1unrDURmxbrrR6yNsChzAUaRN2PMw2W0G2uF0ysWfddmY4d5IXkrqM8P4LUqXBLViWhmpmBol6gZixbKp4HQG4raAfspzkoZsH1mJsL20gQlhm0T7Qw7pgpFblB7HhGZ2UKrUI1Agen6lQdXHAhqWZrxS64EfjEjk5Vn539gbrxANv5jPXZAf5i+Kv9tqIDTYrqCct54VMG5B2cwxKTHfuf7ByW6+/bsqpEm9LS0hhQ7hV3pNZL/5Nl3ME2lV4odnj8nv3pxXAHqzjnjj2FwWzQY6fJ7nD3eX9n2N/dP9l5Ptobjvaf//M0eYYV8tp3ixE7TY49UaF6S7WaihmxAupqVMZW1SBzaOt0mpyqjo7Y7j+vmqY4qcxl1UtAYeV3dPqf5oBkpWlLYVnIUS5Z+IwMlteNOvXcqWWvE60lcEW4NuWldB6XVr0kNcAdZGPuOqBD5GAdzwu2QBusVVhwy8J3XX7H13sySrBZ+tgsWMKyyH5VRpJbx8LH98+NSNz4JvhCTPTvPBx4rmcpY7gsIHUVD2yI4U2+rHbgPMuER4mjliunal6jUp8SIhjkQtedVmMG1wrwed2GEGYSZDC3Y4h/u1l2gcCkS5kxLhd8adG/neVpcdZVvbW9EOS2AQR/r3qJR8zxlwJWQNq7cMuaDdyyps2C1mvmmIR6jOJKaec5xqZq7wvfVGwukK3wiS6d12sCc34hdGm2K/dzN1ojUI21kssxitvM7XDKiAZegxmlHct1JqZLGniBuhBGKxwTdXRdjzVkjeIC7p0RDsgqItb6PvQo252RyCAvNBLDu/IxUJAfYCmXOA7DIZhFz8jNzLI5vwCmNGu6BlJ9SG8ony5AjRfayOzO4pEnVA4MDfUo25rHobXRmLQjk9Vt/bSxpbdpgeZ00DKh652YJH9e0RD9AlLHDT/i6Jbr8Xu72waBWMpUm0IbXhlwB1MJKaoxc0Nb/QNyVEaXszn70Wdcf+E0mwqVMQMSLrjCoZP3jwixkbhG4hqJaySukbhG4vp4iOs6nN7BYa9hbxtWrr16GNy/9MJ8l6yAfwGTW0B/AZNbAR8831HgqEEjwkeEjwgfET4ifET4R47wDW7ege4tgG3DSevxw1D9J5isI7qkNekuj762dF2tH62tl8ElpCU2JrfVlFi9ejY4VWG52y9vm1JV69hpaaDHLFfZRF9C1p408tMgBqwuTQpMilyQqJd1nwxbCSw7Wrq5VmxvsLMbls2x59JEjgWH0CPFxHCDsyhtv/FbNKevtDuaMtRsuxnDI5qeigzk92YgtQ1/KQuRXM1KPuu0D2KkM8PzHIlGlbIqi1zf8TFgjSHjXOuaEaOlVftkupobFK77f0oK+sZvmKlsLTxrt394FNHvW0K/2lC+CAFbzX4XaiHha6XixvDlxlaRQ9KOuKHnu7i3aUDdeW7AzrXMWjJUmU9ob8r1eghJ2QWXpS/iVEgHWLeDZLVCINOle3BdehntyjQ6f0BtrnpJ9eGYMhTdHudV/c7vSGsgUt8Ajh7/unCPxg1bW8EdvG5ejLa2kJuHF7ivQ2g1IoeBz19TJvTouJZb0j602Y/Cau+hCXJxGCKsljTMxm+3tg6k1Avci6SzUoLd2hqxM9w2c9ZjZzl3c/wfLR8NH/9OtZTgN8DgT+HAELjjDyp99cNQ8uozt8QtL2eY51vItVl6XB+xneHw7XfsaTUOIP9SFlh/O99/92ytfLQ/SpduxPaG9Zawri/3hvV7kvAOHO2s4yka8Yi9Eta7tXbFYMI3uKvOLq2DvE78AXjWJ0eN40JtuFnSPj1b8JTGau80S0vrdM4Knp6j4xfKOi59LTf+nD2t2yDVyjrDhXLPfKOfLAtgrWWa0OQfLdB0BmstAnpCUDqNkyWp9yLblf37foL7kPQFGCrTcZ2/b4OQeZk6O2JnPwjrsH1eiZT+rxYU8e+PSmhFTXaIBXe+U1VNGSzGe1Rvbn7X26WfgbkH3/r1mPpvAtMu5Ex1doOCdWfHJKH3fgisHPvR29JW7opxdhZ86NNnZ7i0Z5as0EK5VlE6W1sr1mzFvNb215ubdDhqUnMDrODWegd0DsuFNhkuadKGVdzl6tI57aZb50ZWzBRHNzroHGw3tZTBtIKGpwgVIyaFpWmU4PdHbCo1d+yvbPhsdKoYY8H/Q8b+yj5dUoEu0SkS0ogpu2R/az7/7D8x4Eqj2JX/hf+epLpU7smISVBPK4nPeq0E/AIMn8GTEbNl3iRh2+ufYJa1RiAtsGFbSvVqjOo9GdVJfZLVKVnIBZcio+YaW8dd2bFOj+bSJGM+WWXMZD632SeozD8hETR09X+tmax/tK4PGKNNhz7Y7TH7lk4+KdZHpRN2oJBTS72KLggHeWvUVFNlJJuVxx7XzrkbPhvXvpbwXlRo3ZXk/HLcZItAMQ4IsJnrW36J+2cZrAELGmH4pJVd165b3MF56f/eGw5blHdv2GqPveGKEo5zwrtxPrlZE5+EldajB8thxifL9X0NXZoMW6rsDHf3W7rsDNvK7AyHq2Yk1tT7y7X2uT6tUPvn4AVbcwhvQss0BKh7UqJ3y1RMS3wzK9NFu+45r+HnGqpJjWYr/FioDC7DjtubNwBTKlxSaPbQV3v7sR8EJ1ltVcB5RdqNQvMOdDYBNyEbLRn64vrTRlwPzcv5QwPNCQRHU8L+JILI+cy3eVz+eIyTD3H5Iy5/xOWPOAH0H7n80YHHd0yedyF4G2C63j9sZeS4lngYBNZsopyMqVveziFswRfKVkcTuRS/4FJEOen7nu00m3OVSaiGyj2Wl9KJvnVQMMftuaXhndK5Lq3EAd1x9TEO14RynGgqDgkdEOPAs0H1bBcmCV7EH20kbGkrQ1Me9blJ5AoEe5S1FOeB+Ru4ELDoBQCRuBpDXovOM9aTbUuJ03jkkSJhiYQlEpZIWCJhiYTlsRCWCvLvoik1NVgjJ/XTB1KSckKOpCIiVWCAsTe3O840UxrbiibgmQJyBuQBrZkOdCrhFPXa/o4QfoDTaYwpGFApZAw7qYkTFRH3I+5H3I+4H3H/EeH+NYS9A/2v43EbWK6/exgTOAjSXpKwDT6AEHE7G8AUDReo0b6ePPCdOrihZo9DWOGQcCmwS1nxC3g6wBUuyAfnHLlA5AKRC0QuELlA5AKPkAug070vEyAk7uQB9Oa3YQG4LXGDA8wMdMUTuy30Alc1I3hia04Qto8aKEIsDL+Pzvd3KXEDk8q4yXySyAEiB4gcIHKAyAEiB3jEHACx7r4cgJC4kwPQm9+GA3xvoA7HRHsH7zEJIDVOAlDq1rJAvb0x1QoPmPBqU67fXqANw/0A6I6pPykul1ZEwI+AHwE/An4E/Aj4jwnwGyi9A+1bmNuGk9bjh+H8IQpqD/SrQwXjANM3uPfWBgBKh9cAVMcRGsx/evTqTY/9pE3WY0d6AeYIz6P1GLh0gEHGyQ/q0gbnEdE+on1E+4j2Ee0j2j8mtO/A1DtgvwuF105Fd7x/GBF4FSS+rAV6RkDhMxR0QnK8RSRygsgJIieInCBygsgJvowTxFtE4i0i8RaR3+EWkU1iEi8NiTw18tTIUyNPjTw18tQ7eOo3c2nIpmOP94REUI+gHkE9gnoE9Qjq38Q9IZuOPF4PEq8HeVTEI14PEkHvKwe9eD3Il9dlvB4kXg8SrweJ14PE60Hi9SDxepB4PUi8HuQ//XqQ2w7NxItA4jRDXN+I6xtxfSNO9cT1jXgRSPsikFtja8XLPyJJiSQlkpRIUiJJiSTl2yYpX+PlH7dG+ohXfUSUjygfUT6ifET5iPL3Q/lv6qqP29A/Xu0RsT9if8T+iP0R+yP2fxn2f81Xe9y63BCv8oiYHzE/Yn7E/Ij5EfO/CPO/5qs8bsP8eHtHxPiI8RHjI8ZHjI8Y/23d3nHr6n28pyPiesT1iOsR1yOuR1x/bPd0XKueENlif7i3WfojMLkg74JkgKJic4zBEAIOoCv2XjY0cpjmR0G8KKRIafC/jTEa8NlNBnZQ7+6ng724x7/QyoYdATyc9/XnAbDv5mDx9Ok9Ttr6hDcccq7eBoc/weIs5ktv15SjTsl53H6kONRlkHbrGfRDFQJh+xDrPpdB3c5gXWe0dlT28FWF6CHl2m5JBFw60wGyqA+DVosrGUzKmQfuBcWsMhojmmzAc/vQLSpWW8Z+h0rocNAeprpU2QPa/nVocTw1D5n3aLwqI2RNbK06LjtcCut+HScMFZlS0AKst1r7DabSNp1f2/RfX7u+0+4NFrlp3xU6kykY1bfZeX9mdFn0PV9NKDxKsvY+BzfXWZVgBn6nsQNlfTD/T1fJOSyTUXLZr8NZ9Hkh+uew7IdD1hReBx3WERiLAJB8Ru9cfdelS/1R0KkzfVu35gPUEV2ef1srXXA3T0bJ9sXuNoncvsL/xiJbJdXFCb44pZHJKJk7V9jR9jYvxCB43oHQJLgKlEKpDwrxv7A8KFH4JyrWe/yxS79aiY+xN3jjqhI0+MTpwfX4RD5d8LxoE8EcENSlXpCsVAp0+AZoTMGlt1J9DurjejFKN2+VY9tnuU0psfypLkg5bx/tQjWdgR4S9KJg4Bmd9w+WcVk1Olkfhslt95fKkD+8Pj5hB0eH7GKzuNU7i/z8QqDnZ87w+rYCCjEQQjBgYxLhWMCkP+EUQ6RxQRhO7x+6pC5FMflxdKmnTJfGZ8AdO+tuYDSPv2BJQGUUAeVvZww7LepcPfKhS3TpJAUeFJ6QVcNgW06q8/W+nwtLX3+o9rRXx+89KTWAYCRmynf7CQUeLgXdC4EJptrDb7NQjvU0LWXDvGjI0ic1A/OtwjAhGd7autjd2hrQ+KBdsLMgGk8MzgUYZPUi5bIdKMAv3mMIJpPi0J3GfctiDlTFjL2hm7kI63rsbDvEcd4e4R+lHZ/DcrsOXXDmD+vV94Ymu4PhgEbPYHL7forXhYgUWjZbtUqq820JMy63KWlfT/vWJ94mXyX1jIxtveNmOrWDtgiRzyqReLFFlnNzPigIr7l0J3DpGkNNyElm3Jw/RPpYitnc3ZYHQihPCUIh5wJzmAJkE56e/3dLOvWpQluXc4LW0Oe+B39PyvWudNVAc/IBnBFwASFiiZRhnG99SLDmOKbWsseESmWJ4VzoEpSW0F5F9wnU24Ej/FnPgk+E9Dd9sBMKp4mXnRgo8PRmO/pEVoXdrkJp2F4969QP0XqIlmlzTl6Ojn2uRfr8YT1koR2wY51DiOJJobQ8i6ynsMLJkhDck9htjy3mGE5L4+DRMqQROGdA0W9qTanIllX5TogoCsP+fvz+XaiJFvjiatd2IbmgsDtkLlcBdT4l5O8qeB0F5EHuPtfWYYKrK3RjH41crfDxzyUYBJjPiGt+5sHPp4XgYMloyqWFWxr+aRXs6Rl5hnJj7qk1XYSexwRDubFEFQyoZQtsk16A5apIq8+rXgUOX6Zw5WYXQuJVOefo/ydIj2A6RfLjdDi57GCNPQX/GyyZDMwHX8PxKM556NLdWCiv/Acvqn/iQ7i1y0cTp79/GXIhpXhwQfpvScz18vi0B2kKRbusGyR+jUV9//okWa3+H6hdyiE=
+api: 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
sidebar_class_name: "get api-method"
info_path: docs/rest-api/vectara-rest-api-v-2
custom_edit_url: null
@@ -62,7 +62,7 @@ Retrieve the full details of a specific tool, including its description, input s
threshold]\n return {\n 'count': len(filtered),\n 'average': sum(filtered) / len(filtered) if filtered else 0,\n 'filtered_data': filtered\n }\n"},"validation_status":{"description":"The validation status of the code.","type":"string","enum":["pending","valid","invalid"],"example":"valid"},"validation_errors":{"description":"List of validation errors if the code is invalid.","type":"array","items":{"type":"string"}},"execution_configuration":{"description":"Execution configuration for the function.","type":"object","properties":{"max_execution_time_seconds":{"description":"Maximum execution time in seconds.","type":"integer","minimum":1,"maximum":300,"default":30,"example":30},"max_memory_mb":{"description":"Maximum memory usage in megabytes.","type":"integer","minimum":10,"maximum":1024,"default":100,"example":100}},"title":"ExecutionConfiguration"}},"required":["language","code"],"title":"FunctionDefinition"}},"required":["type","id","name","description","language","enabled","function_definition"],"x-vectaraParents":["Tool"],"title":"LambdaTool"},"structured_indexing":{"description":"A tool that indexes structured documents into the Vectara platform with full control over document structure, sections, metadata, tables, and images.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `structured_indexing`.","type":"string","default":"structured_indexing","example":"structured_indexing"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"StructuredIndexingTool"},"sub_agent":{"description":"A tool that spawns a specialized sub-agent to handle complex, multi-step tasks autonomously.\nSub-agents maintain separate context from the main agent and can be specialized for specific types of tasks like code review, general research, or output styling.\n","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `sub_agent`.","type":"string","default":"sub_agent","example":"sub_agent"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"SubAgentTool"},"artifact_create":{"description":"A tool that creates artifacts from text or structured data content that can be stored and referenced later.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_create`.","type":"string","default":"artifact_create","example":"artifact_create"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactCreateTool"},"artifact_read":{"description":"A tool that reads artifact content from the agent session workspace with flexible size and range options.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_read`.","type":"string","default":"artifact_read","example":"artifact_read"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactReadTool"},"artifact_grep":{"description":"A tool that searches through an artifact's content using grep with support for all standard grep options.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_grep`.","type":"string","default":"artifact_grep","example":"artifact_grep"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactGrepTool"},"image_read":{"description":"A tool that loads image artifacts into the conversation context for viewing and analysis.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `image_read`.","type":"string","default":"image_read","example":"image_read"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ImageReadTool"},"document_conversion":{"description":"A tool that converts document artifacts (PDF, Word, PowerPoint, etc.) to various formats.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `document_conversion`.","type":"string","default":"document_conversion","example":"document_conversion"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"DocumentConversionTool"}}},"oneOf":[{"description":"An MCP (Model Context Protocol) tool that connects to external MCP servers for extended functionality.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `mcp`.","type":"string","default":"mcp","example":"mcp"},"server_id":{"description":"Unique identifier for a tool server.","type":"string","pattern":"^tsr_.*","example":"tsr_rag_search","title":"ToolServerId"},"annotations":{"description":"Optional hints about tool behaviour/metadata.","type":"object","properties":{"read_only_hint":{"description":"If true, the tool does not modify its environment.","type":"boolean"},"destructive_hint":{"description":"If true, the tool may perform destructive updates.","type":"boolean"},"idempotent_hint":{"description":"If true, repeated calls with same args have no additional effect.","type":"boolean"},"open_world_hint":{"description":"If true, tool interacts with external entities.","type":"boolean"}},"additionalProperties":true,"title":"McpToolAnnotations"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"McpTool"},{"description":"A corpora search tool that searches through Vectara corpora to find relevant information.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `corpora_search`.","type":"string","default":"corpora_search","example":"corpora_search"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"CorporaSearchTool"},{"description":"A web search tool that searches the internet for relevant information.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `web_search`.","type":"string","default":"web_search","example":"web_search"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"WebSearchTool"},{"description":"A user-defined function that can be executed as a tool by agents.\nLambda tools run in a secure, sandboxed environment with resource limits.\nCurrently supports Python 3.12 with a curated set of libraries.\n","type":"object","properties":{"type":{"description":"This should always be `lambda`.","type":"string","default":"lambda","example":"lambda"},"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the function does and how it can be used.","type":"string"},"language":{"description":"The programming language of the lambda function. Currently only Python 3.12 is supported.","type":"string","enum":["python"],"default":"python","example":"python"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the function.","type":"object","additionalProperties":true,"example":{"type":"object","properties":{"data":{"type":"array","description":"Input data to process."},"threshold":{"type":"number","description":"Threshold value for filtering."}}}},"output_schema":{"description":"The schema that defines the expected output structure from the function.","type":"object","additionalProperties":true},"function_definition":{"description":"Definition of a function to be executed as a tool in a sandboxed environment.\n\n**Python Environment:**\n- Python version: 3.12\n- Execution: Sandboxed using gVisor for security isolation\n- **Allowed modules**: `json`, `math`, `datetime`, `collections`, `itertools`, `functools`, `re`, `time`, `typing`\n- Memory limit: 100MB (configurable up to 1GB)\n- Execution timeout: 30 seconds (configurable up to 300 seconds)\n- Network access: Disabled for security\n- File system access: Read-only temporary workspace\n- No custom package installation supported (security constraint)\n\n**Type Annotations:**\n- Use type annotations for automatic input/output schema discovery\n- Supported typing constructs: `List`, `Dict`, `Optional`, `Union`\n- Import from `typing` module when using complex types\n","type":"object","properties":{"language":{"description":"The programming language of the function. Currently only Python 3.12 is supported.","type":"string","enum":["python"],"example":"python"},"code":{"description":"The function code.\n\n**Required**: Must define a `process()` entry point function. Use type annotations on parameters for automatic schema discovery.\n\nParameters are passed as keyword arguments matched to the function signature.\n","type":"string","example":"def process(data: list, threshold: float = 0):\n filtered = [x for x in data if x > threshold]\n return {\n 'count': len(filtered),\n 'average': sum(filtered) / len(filtered) if filtered else 0,\n 'filtered_data': filtered\n }\n"},"validation_status":{"description":"The validation status of the code.","type":"string","enum":["pending","valid","invalid"],"example":"valid"},"validation_errors":{"description":"List of validation errors if the code is invalid.","type":"array","items":{"type":"string"}},"execution_configuration":{"description":"Execution configuration for the function.","type":"object","properties":{"max_execution_time_seconds":{"description":"Maximum execution time in seconds.","type":"integer","minimum":1,"maximum":300,"default":30,"example":30},"max_memory_mb":{"description":"Maximum memory usage in megabytes.","type":"integer","minimum":10,"maximum":1024,"default":100,"example":100}},"title":"ExecutionConfiguration"}},"required":["language","code"],"title":"FunctionDefinition"}},"required":["type","id","name","description","language","enabled","function_definition"],"x-vectaraParents":["Tool"],"title":"LambdaTool"},{"description":"A tool that indexes structured documents into the Vectara platform with full control over document structure, sections, metadata, tables, and images.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `structured_indexing`.","type":"string","default":"structured_indexing","example":"structured_indexing"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"StructuredIndexingTool"},{"description":"A tool that spawns a specialized sub-agent to handle complex, multi-step tasks autonomously.\nSub-agents maintain separate context from the main agent and can be specialized for specific types of tasks like code review, general research, or output styling.\n","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `sub_agent`.","type":"string","default":"sub_agent","example":"sub_agent"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"SubAgentTool"},{"description":"A tool that creates artifacts from text or structured data content that can be stored and referenced later.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_create`.","type":"string","default":"artifact_create","example":"artifact_create"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactCreateTool"},{"description":"A tool that reads artifact content from the agent session workspace with flexible size and range options.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_read`.","type":"string","default":"artifact_read","example":"artifact_read"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactReadTool"},{"description":"A tool that searches through an artifact's content using grep with support for all standard grep options.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_grep`.","type":"string","default":"artifact_grep","example":"artifact_grep"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactGrepTool"},{"description":"A tool that loads image artifacts into the conversation context for viewing and analysis.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `image_read`.","type":"string","default":"image_read","example":"image_read"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ImageReadTool"},{"description":"A tool that converts document artifacts (PDF, Word, PowerPoint, etc.) to various formats.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `document_conversion`.","type":"string","default":"document_conversion","example":"document_conversion"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"DocumentConversionTool"}],"title":"Tool"}}}},"403":{"description":"Permissions do not allow accessing this tool.","content":{"application/json":{"schema":{"description":"A general error response with an error code and message.","type":"object","properties":{"messages":{"description":"The messages describing why the error occurred.","type":"array","items":{"title":"message","type":"string","example":"Internal server error."}},"request_id":{"description":"The ID of the request that can be used to help Vectara support debug what went wrong.","type":"string"}},"title":"Error"}}}},"404":{"description":"Tool not found.","content":{"application/json":{"schema":{"description":"Error returned when a requested resource does not exist.","type":"object","properties":{"id":{"description":"The ID cannot be found.","type":"string"},"messages":{"type":"array","items":{"title":"message","type":"string"}},"request_id":{"description":"The ID of the request that can be used to help Vectara support debug what went wrong.","type":"string"}},"title":"NotFoundError"}}}}}}
+ responses={{"200":{"description":"The requested tool details.","content":{"application/json":{"schema":{"description":"A tool that can be used by agents to perform specific actions or operations.","x-vectara-base-schema":"#/ToolBase","discriminator":{"propertyName":"type","mapping":{"dynamic_vectara":{"description":"A tool type for built-in Vectara tools that have implementations within the platform but do not have a dedicated tool type schema. Examples include tools like `sub_agent`, `corpora_search`, `web_search`, and similar platform-provided capabilities. Use the List Tools endpoint to discover available tools and obtain the `tool_id` required for configuration.\n","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `dynamic_vectara`.","type":"string","default":"dynamic_vectara","example":"dynamic_vectara"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"DynamicVectaraTool"},"mcp":{"description":"An MCP (Model Context Protocol) tool that connects to external MCP servers for extended functionality.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `mcp`.","type":"string","default":"mcp","example":"mcp"},"server_id":{"description":"Unique identifier for a tool server.","type":"string","pattern":"^tsr_.*","example":"tsr_rag_search","title":"ToolServerId"},"annotations":{"description":"Optional hints about tool behaviour/metadata.","type":"object","properties":{"read_only_hint":{"description":"If true, the tool does not modify its environment.","type":"boolean"},"destructive_hint":{"description":"If true, the tool may perform destructive updates.","type":"boolean"},"idempotent_hint":{"description":"If true, repeated calls with same args have no additional effect.","type":"boolean"},"open_world_hint":{"description":"If true, tool interacts with external entities.","type":"boolean"}},"additionalProperties":true,"title":"McpToolAnnotations"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"McpTool"},"corpora_search":{"description":"A corpora search tool that searches through Vectara corpora to find relevant information.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `corpora_search`.","type":"string","default":"corpora_search","example":"corpora_search"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"CorporaSearchTool"},"web_search":{"description":"A web search tool that searches the internet for relevant information.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `web_search`.","type":"string","default":"web_search","example":"web_search"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"WebSearchTool"},"web_get":{"description":"A web get tool that fetches content from URLs using HTTP requests.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `web_get`.","type":"string","default":"web_get","example":"web_get"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"WebGetTool"},"lambda":{"description":"A user-defined function that can be executed as a tool by agents.\nLambda tools run in a secure, sandboxed environment with resource limits.\nCurrently supports Python 3.12 with a curated set of libraries.\n","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `lambda`.","type":"string","default":"lambda","example":"lambda"},"language":{"description":"The programming language of the lambda function. Currently only Python 3.12 is supported.","type":"string","enum":["python"],"default":"python","example":"python"},"output_schema":{"description":"The schema that defines the expected output structure from the function.","type":"object","additionalProperties":true},"function_definition":{"description":"Definition of a function to be executed as a tool in a sandboxed environment.\n\n**Python Environment:**\n- Python version: 3.12\n- Execution: Sandboxed using gVisor for security isolation\n- **Allowed modules**: `json`, `math`, `datetime`, `collections`, `itertools`, `functools`, `re`, `time`, `typing`\n- Memory limit: 100MB (configurable up to 1GB)\n- Execution timeout: 30 seconds (configurable up to 300 seconds)\n- Network access: Disabled for security\n- File system access: Read-only temporary workspace\n- No custom package installation supported (security constraint)\n\n**Type Annotations:**\n- Use type annotations for automatic input/output schema discovery\n- Supported typing constructs: `List`, `Dict`, `Optional`, `Union`\n- Import from `typing` module when using complex types\n","type":"object","properties":{"language":{"description":"The programming language of the function. Currently only Python 3.12 is supported.","type":"string","enum":["python"],"example":"python"},"code":{"description":"The function code.\n\n**Required**: Must define a `process()` entry point function. Use type annotations on parameters for automatic schema discovery.\n\nParameters are passed as keyword arguments matched to the function signature.\n","type":"string","example":"def process(data: list, threshold: float = 0):\n filtered = [x for x in data if x > threshold]\n return {\n 'count': len(filtered),\n 'average': sum(filtered) / len(filtered) if filtered else 0,\n 'filtered_data': filtered\n }\n"},"validation_status":{"description":"The validation status of the code.","type":"string","enum":["pending","valid","invalid"],"example":"valid"},"validation_errors":{"description":"List of validation errors if the code is invalid.","type":"array","items":{"type":"string"}},"execution_configuration":{"description":"Execution configuration for the function.","type":"object","properties":{"max_execution_time_seconds":{"description":"Maximum execution time in seconds.","type":"integer","minimum":1,"maximum":300,"default":30,"example":30},"max_memory_mb":{"description":"Maximum memory usage in megabytes.","type":"integer","minimum":10,"maximum":1024,"default":100,"example":100}},"title":"ExecutionConfiguration"}},"required":["language","code"],"title":"FunctionDefinition"}},"required":["type","language","function_definition"]}],"x-vectaraParents":["Tool"],"title":"LambdaTool"},"structured_indexing":{"description":"A tool that indexes structured documents into the Vectara platform with full control over document structure, sections, metadata, tables, and images.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `structured_indexing`.","type":"string","default":"structured_indexing","example":"structured_indexing"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"StructuredIndexingTool"},"sub_agent":{"description":"A tool that spawns a specialized sub-agent to handle complex, multi-step tasks autonomously.\nSub-agents maintain separate context from the main agent and can be specialized for specific types of tasks like code review, general research, or output styling.\n","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `sub_agent`.","type":"string","default":"sub_agent","example":"sub_agent"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"SubAgentTool"},"artifact_create":{"description":"A tool that creates artifacts from text or structured data content that can be stored and referenced later.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_create`.","type":"string","default":"artifact_create","example":"artifact_create"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactCreateTool"},"artifact_read":{"description":"A tool that reads artifact content from the agent session workspace with flexible size and range options.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_read`.","type":"string","default":"artifact_read","example":"artifact_read"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactReadTool"},"artifact_grep":{"description":"A tool that searches through an artifact's content using grep with support for all standard grep options.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_grep`.","type":"string","default":"artifact_grep","example":"artifact_grep"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactGrepTool"},"image_read":{"description":"A tool that loads image artifacts into the conversation context for viewing and analysis.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `image_read`.","type":"string","default":"image_read","example":"image_read"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ImageReadTool"},"document_conversion":{"description":"A tool that converts document artifacts (PDF, Word, PowerPoint, etc.) to various formats.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `document_conversion`.","type":"string","default":"document_conversion","example":"document_conversion"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"DocumentConversionTool"}}},"oneOf":[{"description":"A tool type for built-in Vectara tools that have implementations within the platform but do not have a dedicated tool type schema. Examples include tools like `sub_agent`, `corpora_search`, `web_search`, and similar platform-provided capabilities. Use the List Tools endpoint to discover available tools and obtain the `tool_id` required for configuration.\n","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `dynamic_vectara`.","type":"string","default":"dynamic_vectara","example":"dynamic_vectara"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"DynamicVectaraTool"},{"description":"An MCP (Model Context Protocol) tool that connects to external MCP servers for extended functionality.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `mcp`.","type":"string","default":"mcp","example":"mcp"},"server_id":{"description":"Unique identifier for a tool server.","type":"string","pattern":"^tsr_.*","example":"tsr_rag_search","title":"ToolServerId"},"annotations":{"description":"Optional hints about tool behaviour/metadata.","type":"object","properties":{"read_only_hint":{"description":"If true, the tool does not modify its environment.","type":"boolean"},"destructive_hint":{"description":"If true, the tool may perform destructive updates.","type":"boolean"},"idempotent_hint":{"description":"If true, repeated calls with same args have no additional effect.","type":"boolean"},"open_world_hint":{"description":"If true, tool interacts with external entities.","type":"boolean"}},"additionalProperties":true,"title":"McpToolAnnotations"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"McpTool"},{"description":"A corpora search tool that searches through Vectara corpora to find relevant information.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `corpora_search`.","type":"string","default":"corpora_search","example":"corpora_search"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"CorporaSearchTool"},{"description":"A web search tool that searches the internet for relevant information.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `web_search`.","type":"string","default":"web_search","example":"web_search"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"WebSearchTool"},{"description":"A web get tool that fetches content from URLs using HTTP requests.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `web_get`.","type":"string","default":"web_get","example":"web_get"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"WebGetTool"},{"description":"A user-defined function that can be executed as a tool by agents.\nLambda tools run in a secure, sandboxed environment with resource limits.\nCurrently supports Python 3.12 with a curated set of libraries.\n","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `lambda`.","type":"string","default":"lambda","example":"lambda"},"language":{"description":"The programming language of the lambda function. Currently only Python 3.12 is supported.","type":"string","enum":["python"],"default":"python","example":"python"},"output_schema":{"description":"The schema that defines the expected output structure from the function.","type":"object","additionalProperties":true},"function_definition":{"description":"Definition of a function to be executed as a tool in a sandboxed environment.\n\n**Python Environment:**\n- Python version: 3.12\n- Execution: Sandboxed using gVisor for security isolation\n- **Allowed modules**: `json`, `math`, `datetime`, `collections`, `itertools`, `functools`, `re`, `time`, `typing`\n- Memory limit: 100MB (configurable up to 1GB)\n- Execution timeout: 30 seconds (configurable up to 300 seconds)\n- Network access: Disabled for security\n- File system access: Read-only temporary workspace\n- No custom package installation supported (security constraint)\n\n**Type Annotations:**\n- Use type annotations for automatic input/output schema discovery\n- Supported typing constructs: `List`, `Dict`, `Optional`, `Union`\n- Import from `typing` module when using complex types\n","type":"object","properties":{"language":{"description":"The programming language of the function. Currently only Python 3.12 is supported.","type":"string","enum":["python"],"example":"python"},"code":{"description":"The function code.\n\n**Required**: Must define a `process()` entry point function. Use type annotations on parameters for automatic schema discovery.\n\nParameters are passed as keyword arguments matched to the function signature.\n","type":"string","example":"def process(data: list, threshold: float = 0):\n filtered = [x for x in data if x > threshold]\n return {\n 'count': len(filtered),\n 'average': sum(filtered) / len(filtered) if filtered else 0,\n 'filtered_data': filtered\n }\n"},"validation_status":{"description":"The validation status of the code.","type":"string","enum":["pending","valid","invalid"],"example":"valid"},"validation_errors":{"description":"List of validation errors if the code is invalid.","type":"array","items":{"type":"string"}},"execution_configuration":{"description":"Execution configuration for the function.","type":"object","properties":{"max_execution_time_seconds":{"description":"Maximum execution time in seconds.","type":"integer","minimum":1,"maximum":300,"default":30,"example":30},"max_memory_mb":{"description":"Maximum memory usage in megabytes.","type":"integer","minimum":10,"maximum":1024,"default":100,"example":100}},"title":"ExecutionConfiguration"}},"required":["language","code"],"title":"FunctionDefinition"}},"required":["type","language","function_definition"]}],"x-vectaraParents":["Tool"],"title":"LambdaTool"},{"description":"A tool that indexes structured documents into the Vectara platform with full control over document structure, sections, metadata, tables, and images.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `structured_indexing`.","type":"string","default":"structured_indexing","example":"structured_indexing"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"StructuredIndexingTool"},{"description":"A tool that spawns a specialized sub-agent to handle complex, multi-step tasks autonomously.\nSub-agents maintain separate context from the main agent and can be specialized for specific types of tasks like code review, general research, or output styling.\n","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `sub_agent`.","type":"string","default":"sub_agent","example":"sub_agent"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"SubAgentTool"},{"description":"A tool that creates artifacts from text or structured data content that can be stored and referenced later.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_create`.","type":"string","default":"artifact_create","example":"artifact_create"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactCreateTool"},{"description":"A tool that reads artifact content from the agent session workspace with flexible size and range options.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_read`.","type":"string","default":"artifact_read","example":"artifact_read"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactReadTool"},{"description":"A tool that searches through an artifact's content using grep with support for all standard grep options.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_grep`.","type":"string","default":"artifact_grep","example":"artifact_grep"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactGrepTool"},{"description":"A tool that loads image artifacts into the conversation context for viewing and analysis.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `image_read`.","type":"string","default":"image_read","example":"image_read"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ImageReadTool"},{"description":"A tool that converts document artifacts (PDF, Word, PowerPoint, etc.) to various formats.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `document_conversion`.","type":"string","default":"document_conversion","example":"document_conversion"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"DocumentConversionTool"}],"title":"Tool"}}}},"403":{"description":"Permissions do not allow accessing this tool.","content":{"application/json":{"schema":{"description":"A general error response with an error code and message.","type":"object","properties":{"messages":{"description":"The messages describing why the error occurred.","type":"array","items":{"title":"message","type":"string","example":"Internal server error."}},"request_id":{"description":"The ID of the request that can be used to help Vectara support debug what went wrong.","type":"string"}},"title":"Error"}}}},"404":{"description":"Tool not found.","content":{"application/json":{"schema":{"description":"Error returned when a requested resource does not exist.","type":"object","properties":{"id":{"description":"The ID cannot be found.","type":"string"},"messages":{"type":"array","items":{"title":"message","type":"string"}},"request_id":{"description":"The ID of the request that can be used to help Vectara support debug what went wrong.","type":"string"}},"title":"NotFoundError"}}}}}}
>
diff --git a/www/docs/rest-api/get-user.api.mdx b/www/docs/rest-api/get-user.api.mdx
index ab717f745..6017dc6ee 100644
--- a/www/docs/rest-api/get-user.api.mdx
+++ b/www/docs/rest-api/get-user.api.mdx
@@ -5,7 +5,7 @@ description: "Get a user and view details like the email, username, and associat
sidebar_label: "Get a user"
hide_title: true
hide_table_of_contents: true
-api: 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
+api: eJzNGWtvG7nxrwz2U5uupDS9T8LhUCOPg9H2EjhJDwfHkKnlSMsTl9wjuZIFQ/+9mCH3IWtl5y5J20+2yOG833ufBbH22fw6++jR+ewmz+4mvqlr6wLKiajVZIP7SdjXSEDv0HlrhCY4ib5wqg7Kmmye/YgBBDQeHQgjYatwBxKDUNqDVhuEUCJgJZTOGcqICnMGFd7bQomAEpzV6KdZntkanSDMlzKbZ2sMxF2WZ7VwosJAnM6v7zNFlEsUki8JZTbPrvC3Bn2YfFAV2iZkDzn9UCJcvLuEndIaKrFBELBEHwBXK+sCBAuFrWqNITLtIj5Qhn/6Ggu1UijBY2GN9GAdBFUh2CYQ774osRLZ/D6LWsuUCbhmDitlVNVU2fyvhzwjvMqhzOYroT0e8s+TZ/IvpbXy306sivF/iWwkSmK+NXWWR+FqEcoT1t8n2p45YR+6fAWhFMy1w+AUbnEKP1nmnY4THKGGqvEBlgg1ugJNADSFlSiJ317HwTU4wr8PTpl1djjcELCvrfHo6f7F8+f055jRCyZKiAtrAppAIKKutSrYW2e/eoK7H9AZQwCiKGxjAuxUKIf+Xzu7UhpBmZV1FaPkEKnRVcp7ZQ1HR+LdLn/Fgvy7dhQvQUXOlTylS87xbyyCcIJUuyKzJhUOECZlUJiFgM6w/dxi+pfskGccu+OY+QqElA69fxJ5FC2bJ4yHvHeSUeydnR9HTCwasdQ4Iv6lkWQh9LArMZTY4wHlIT0jX5fK8/8D9EtrNQpD+I+QjrE6OAG7epzZwiHZfCHCKa6fSzQ9izvhIUE/qk8pAk4oWlmntXwcfUrWyXf2TEULHyC9/HxSolYLztzjSikaH2yFbqJxi5pzPJA9/RkVCefEnvJFwGoE5RVRilkgiWCp5ICoayi0ogRQCAOBMqA1Y1KgoTR1ndmd4cwlJOUuH5wIln4vKQGa9eLheWFd3fhzx5KkI10SxjWacAIYT6kyDoBOn5FMVF+DCpr4vqgVyZwdDh2tM9p+ybeTlMqLqGrhvVqbCk04G5pPaPwJtE9npMT1BvfjHrLBfesLERRCqXyiQ9mVDG5Ho4hgxpEOuESZJFceOikipT/iH50FUSo6uTkcVfProbyJw4E5ozY7i0abnzHoBV1+dXs+jvVpc0aWz1rz8lVrTAb8b9iSCU0/mWdwOxJ6tzCBN42mCtWdqi1SFaZ6FeyAWWUK3Uhl1iBRY1eAC2tWat3EnnRIKPoCUbhCISfW6P0AL3fBEfERhhw8xnKeA27JlDko44NrihBPiWiwVvshsS5XEL2XwkBlpVrtxynEijGrhBFrHNCL6T0iZzJDwkNq5FRE6J+qUtSc9GJR0+dEkfqXXnnLfaRK6msJMgmPhnWqTN0EPyXejQ1n1UMZPYnmMRA6YuyRSP0K+fZhDPdOfhrCHEB9BNdqUVutipF4+JnLVNQtCKidMoWqhR6WKFZg25zVWgSqsk9H4fmGiZulFII0ERD7owEntLY7lItu2hpJFm+7u1RzHUJ6R/Y+ogGvRVFChw0qsYcYEfQACnRBKAMOvW1cgQOMkeYy4hQdBNC4EGeAdLAVukGoRD2FyyhhPFEeTKN1TkdRoz0bynccczjvO3RjWhZSKnom9LsjfR+r5R0bnFiLsvUqBLWKQjeeXP54tnqM8IMkS2gXwuwX7ZuRtnZ1JM1Q0LYydHyNdLTU0K5Eo0OcjgYO0VloxB+Y3Rj5G9xzE3dkLs4QArTyge5ahjqUU7h4YF8fhAs+okTF7fnSyn3OtzklA1XRiKUCvaUrOuOnQ9HpvXpo+4iI1wymQ3OsscEvuu/9Ok3Iv8dJzhXgh9PmSbY5tfZxB9iFYXS87ARDGrJHQvoYUfe+P+XdSuTpu+d/G/H1fvoEaYEyd3T6NJm3bv7Fs/EaDTqhAZ2zDtpxPE3JJh3TbM8GrdB7sf6MUEqAZ8aT9rbNQSTNroweECnaomicO5qITg2cdJmwjdWqO0HbF55GabgWGjy6LbpIZZq1FkUfFudm+L63atc3nEKpmizZANQ1QIm67ipKWuaBxGVDkokAO6q4O2fNeqQsDBzjNTHWecZ3pyyR57A/rGxj5BfY/nWyeGgcdXi7OKAmGQfZA6RFzxTxTo2H5uctQy5fkdII0RJ77k8q5NB1/qjp///s+pMNb0jk3r4HWvuu0JmJl5vJ2tmmngw2eLRtHNxXGEorW4A1BnbvgMbHHuL6PuPp4PwqOc+4bB+vlGlt2L4b46V7lHgahR/y1j8gHmnFF287pnkbOc9m2xczRjm7b5dNB1p2cnhGeRqnaTUbQu3ns5mo1XQb7TBVljF7LBqnwp6hL2r1D9xfNIT9muV6Sz9e8K8B8HsKh+hdLUDnZ1bwwcNdaYQbNOPJH2g7o+0uztu8BnnpUKIJSujopnaD5uOxGE0oB3LMIskZQ/Ky19bMXHSQoVB9NPBhu919uLq+a63O7kdbzWHAtJ589fr9B24it6fitneeFlVbRakfghNt9eVRZJ1qPXcE1PjscDlZCgqaQQ6iEeIX23BMrRQ1BFpT0NnGRQIiwO24gck/vidJ0MjaKhN+uIV23d4eee5jbRO0ogyWGpGtcMo2Hnyz9JjGAA505fn1Fa7QoSloQCu6aTN1xHHaDZZSgDKhUXFqNdTdcf0V1DoZKZxkHa4aDXGUaxxOP5lPZgJxAeccZQZy5tQPP3u2ffHs2ZQgboeC3SbU1BaVCp1wRakKMcCbp76W2gxXCB8ZKvd1iaxigDfWQSp2OdzOaBlinZjN+63ITNqi4Q3GbZzrEmfZPHsxfT59TskLXeXfrt6j2ypqfTufba1S2GqmcS30jEEndjXxEXjGyUrbNTvbceBKW/jpEIWq1i3Kxc46WQm3mdZcsIUOH/Au9I6acZaUwm2+BPtCq3UZHqNBNVQUXEPT0j1bIcqlKDZ/H2DnmKqtD5Uw/UA4+BD3MJju++r8lT/XpWQQ8C7Mai0Ub8tZN/cpx15nHNxtMZl3K/+bPCutDwRxf09B+9Hpw4GOf2vQUTq9oTTuFO3lObm2O/r03ewRIf90lRrkP8O3+8Q0KnubHc1+UISyPJWrTvjDzSFvk+bvE+1bf8QclSpyf/p9tROQKt3/QIbHvlh+viD9h9UjeSLsRVFgPZT1pLs9ai9+fP0hOxz+AyeJDEk=
sidebar_class_name: "get api-method"
info_path: docs/rest-api/vectara-rest-api-v-2
custom_edit_url: null
@@ -62,7 +62,7 @@ Get a user and view details like the email, username, and associated roles.
diff --git a/www/docs/rest-api/list-agent-events.api.mdx b/www/docs/rest-api/list-agent-events.api.mdx
index a7c608232..b24951ca1 100644
--- a/www/docs/rest-api/list-agent-events.api.mdx
+++ b/www/docs/rest-api/list-agent-events.api.mdx
@@ -5,7 +5,7 @@ description: "List all events in a specific agent session, with optional paginat
sidebar_label: "List events in agent session"
hide_title: true
hide_table_of_contents: true
-api: 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
+api: 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
sidebar_class_name: "get api-method"
info_path: docs/rest-api/vectara-rest-api-v-2
custom_edit_url: null
@@ -62,7 +62,7 @@ List all events in a specific agent session, with optional pagination.
diff --git a/www/docs/rest-api/list-agents.api.mdx b/www/docs/rest-api/list-agents.api.mdx
index 6e6beb1ce..89690c9a3 100644
--- a/www/docs/rest-api/list-agents.api.mdx
+++ b/www/docs/rest-api/list-agents.api.mdx
@@ -5,7 +5,7 @@ description: "The List Agents API enables you to retrieve a paginated list of al
sidebar_label: "List agents"
hide_title: true
hide_table_of_contents: true
-api: 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
+api: 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
sidebar_class_name: "get api-method"
info_path: docs/rest-api/vectara-rest-api-v-2
custom_edit_url: null
@@ -62,7 +62,7 @@ The List Agents API enables you to retrieve a paginated list of all agents avail
"},"end_tag":{"description":"The tag that wraps the document part at the end. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the document part ends and the context after begins.","type":"string","example":""}},"example":{"sentences_before":2,"sentences_after":2,"start_tag":"","end_tag":""},"title":"ContextConfiguration"},"reranker":{"type":"object","description":"Rerank results of the search. Rerankers are very powerful tools to improve the order of search results. By default the search will use the most powerful reranker available to the customer's plan. To disable reranking, set the reranker `type` to `\"none\"`.","discriminator":{"propertyName":"type","mapping":{"customer_reranker":{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},"userfn":{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},"mmr":{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},"chain":{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},"none":{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}}},"oneOf":[{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}],"title":"SearchReranker"}},"example":{"limit":50},"title":"SearchParameters"}],"required":["corpora"],"title":"SearchCorporaParameters"},"generation":{"description":"The parameters to control generation.","type":"object","properties":{"enabled":{"description":"Whether generation is enabled for this query. This field is ignored if using chat.","type":"boolean","default":true},"generation_preset_name":{"description":"The preset values to use to feed the query results and other context to the model. \n\nA `generation_preset` is an object with a bundle of properties that specifies: \n* The `prompt_template` that is rendered and then sent to the LLM. \n* The LLM used. * `model_parameter`s such as temperature.\n\nAll of these properties except the model can be overridden by setting them in this object. Even when a `prompt_template` is set, the `generation_preset_name` is used to set the model used. See `model_parameters.model` if you want to set the model explicitly.\n\nIf `generation_preset_name` is not set, the Vectara platform will use the default model and prompt.'\n","type":"string","minLength":1,"example":"mockingbird-2.0"},"prompt_name":{"description":"Use `generation_preset_name` instead of `prompt_name`.","type":"string","minLength":1,"example":"mockingbird-2.0","deprecated":true},"max_used_search_results":{"description":"The maximum number of search results to be available to the prompt.","type":"integer","format":"int32","minimum":0,"default":5},"prompt_template":{"description":"Vectara manages both system and user roles and prompts for the generative LLM out of the box by default. However, users can override the `prompt_template` via this variable. The `prompt_template` is in the form of an Apache Velocity template. For more details on how to configure the `prompt_template`, see the [long-form documentation](https://docs.vectara.com/docs/prompts/vectara-prompt-engine).","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n"},"prompt_text":{"description":"This property is deprecated in favor of clearer naming. Use `prompt_template`. This property will be ignored if `prompt_template` is set.","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n","deprecated":true},"max_response_characters":{"description":"Controls the length of the generated output. This is a rough estimate and not a hard limit: the end output can be longer or shorter than this value. This is generally implemented by including the `max_response_characters` in the prompt, and the LLM's instruction following capability dictates how closely the generated output is limited.","type":"integer","format":"int32","example":300,"minimum":0},"response_language":{"description":"Languages that the Vectara platform supports.","type":"string","enum":["auto","eng","deu","fra","zho","kor","ara","rus","tha","nld","ita","por","spa","jpn","pol","tur","vie","ind","ces","ukr","ell","heb","fas","hin","urd","swe","ben","msa","ron"],"default":"auto","title":"Language"},"model_parameters":{"title":"ModelParameters","description":"The parameters for the model. WARNING: This is an experimental feature, and breakable at any point with virtually no notice. It is meant for experimentation to converge on optimal parameters that can then be set in the prompt definitions.","type":"object","properties":{"llm_name":{"description":"The model (e.g., `gpt-4`) to use for summarization. If specified, it will override the model behind `generation_preset_name`.","type":"string","example":"gpt4"},"max_tokens":{"description":"The maximum number of tokens to be returned by the model.","type":"integer","format":"int32","minimum":1},"temperature":{"description":"The sampling temperature to use. Higher values make the output more random, while lower values make it more focused and deterministic.","type":"number","format":"float"},"frequency_penalty":{"description":"Higher values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.","type":"number","format":"float"},"presence_penalty":{"description":"Higher values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.","type":"number","format":"float"}}},"citations":{"description":"Style the generator should use when making citations.","type":"object","properties":{"style":{"description":"The citation style that you want to use in the summary: \n* `numeric` - Citations formatted as simple numerals: \\[1\\], \\[2\\], etc.\n* `none` - Citations removed from text.\n* `html` - Citation formatted as a URL like `text_pattern`.\n* `markdown` - Formatted as `[text_pattern](url_pattern)`.\n","type":"string","enum":["none","numeric","html","markdown"]},"url_pattern":{"description":"The URL pattern if the citation_style is set to `html` or `markdown`. The pattern can access metadata attributes in the document or part. e.g. `https://my.doc/foo/{doc.id}/{part.id}` The default `url_pattern` is an empty string.","type":"string","example":"https://vectara.com/documents/{doc.id}"},"text_pattern":{"description":"The text pattern if the citation_style is set to `html` or `markdown`. This pattern sets the href for HTML or the text within `[]` in markdown, and defaults to N being the index of result if it is not set. The default citation style looks like `[N]()` for markdown. You can use metadata attributes in the `text_pattern`. For example, the pattern `{doc.title}` with citation style `markdown` would result in final citation output like `[Title]()` when the document's metadata includes `{\"title\":\"Title\"}`.","type":"string","example":"{doc.title}"}},"title":"CitationParameters"},"enable_factual_consistency_score":{"description":"Enable returning the factual consistency score with query results.","type":"boolean","default":true}},"title":"GenerationParameters"},"save_history":{"description":"Indicates whether to save the query to query history.","type":"boolean"}},"required":["search"],"title":"CorporaSearchQueryConfiguration"}},"required":["type","query_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},"web_search":{"title":"InlineWebSearchToolConfiguration","description":"A web search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'web_search' for inline web search tool configurations.","default":"web_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the web search tool call such as limit etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query to execute.","type":"string","example":"latest AI developments 2024"},"limit":{"description":"Maximum number of results to return.","type":"integer","minimum":1,"example":10},"provider":{"description":"Search provider to use.","type":"string","enum":["tavily"],"example":"tavily"},"include_domains":{"description":"List of domains to specifically include in search results. When specified, results will ONLY come from these domains. Supports exact domains (e.g., \"github.com\"), subdomains (e.g., \"docs.github.com\"), and wildcard patterns (e.g., \"*.github.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["github.com","docs.github.com","*.stackoverflow.com"]},"exclude_domains":{"description":"List of domains to specifically exclude from search results. Supports exact domains (e.g., \"spam.com\"), subdomains (e.g., \"bad.spam.com\"), and wildcard patterns (e.g., \"*.spam.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["spam.com","unreliable-source.com"]}},"additionalProperties":false,"title":"WebSearchToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"lambda":{"title":"InlineLambdaToolConfiguration","description":"A lambda tool configuration defined inline in the agent for executing user-defined functions.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'lambda' for inline lambda tool configurations.","default":"lambda"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments that will be passed to the lambda function. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","additionalProperties":true,"example":{"custom_param":"value"}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},"structured_indexing":{"title":"InlineStructuredIndexingToolConfiguration","description":"A structured indexing tool configuration defined inline in the agent for indexing into the Vectara platform.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'structured_indexing' for inline structured indexing tool configurations.","default":"structured_indexing"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the structured indexing tool call such as corpus_key etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"corpus_key":{"description":"The key identifying the target corpus for document indexing. If not provided, will be filled in by the LLM.","type":"string","example":"my-knowledge-base"},"document_id":{"description":"The unique identifier for the document within the corpus, preferably human readable IDs.","type":"string","example":"annual_report_2024"},"title":{"description":"The title of the document being indexed.","type":"string","example":"2024 Annual ESG Report"},"description":{"description":"A brief description or summary of the document content.","type":"string","example":"Comprehensive environmental, social, and governance report"},"metadata":{"description":"The metadata key-value pairs to associate with the document. If present, this gets merged with existing artifact metadata.","type":"object","additionalProperties":true,"example":{"doc_type":"annual_report","year":2024,"department":"sustainability"}},"document":{"description":"The structured document to index with full hierarchical content.","type":"object","additionalProperties":true,"example":{"id":"annual_report_2024","type":"structured","title":"2024 Annual ESG Report"}}},"additionalProperties":false,"title":"StructuredIndexingToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"sub_agent":{"title":"InlineSubAgentToolConfiguration","description":"A sub-agent tool configuration defined inline in the agent for invoking specialized sub-agents.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'sub_agent' for inline sub-agent tool configurations.","default":"sub_agent"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the sub-agent tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"message":{"description":"The detailed task instructions for the sub-agent to perform autonomously.","type":"string","example":"Review the code changes in pull request \\#123 for security issues"},"session_tti_minutes":{"description":"Time to idle in minutes before the session expires.","type":"integer","format":"int64","minimum":1,"example":60}},"additionalProperties":false,"title":"SubAgentToolParameters"},"sub_agent_configuration":{"description":"User-configurable settings for the sub-agent tool. These parameters are never exposed to the agent.","type":"object","properties":{"agent_key":{"description":"A unique key that identifies an agent.","type":"string","pattern":"[0-9a-zA-Z_-]+$","minLength":1,"maxLength":50,"example":"customer_support","title":"AgentKey"}},"required":["agent_key"],"title":"SubAgentConfiguration"}},"required":["type","sub_agent_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},"artifact_read":{"title":"InlineArtifactReadToolConfiguration","description":"An artifact read tool configuration defined inline in the agent for reading artifacts from the session workspace.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_read' for inline artifact read tool configurations.","default":"artifact_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to read.","type":"string","example":"art_abc123"},"encoding":{"description":"The encoding format for the content.","type":"string","enum":["raw","base64"],"example":"raw"},"start_line":{"description":"Optional starting line number (1-indexed).","type":"integer","format":"int32","example":100},"end_line":{"description":"Optional ending line number (1-indexed, inclusive).","type":"integer","format":"int32","example":200}},"additionalProperties":false,"title":"ArtifactReadToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"artifact_grep":{"title":"InlineArtifactGrepToolConfiguration","description":"An artifact grep tool configuration defined inline in the agent for searching through artifact content.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_grep' for inline artifact grep tool configurations.","default":"artifact_grep"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact grep tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to search.","type":"string","example":"art_abc123"},"pattern":{"description":"The pattern to search for (supports grep regex).","type":"string","example":"error|exception"},"grep_options":{"description":"Optional grep command options.","type":"array","items":{"type":"string"},"example":["-i","-n"]}},"additionalProperties":false,"title":"ArtifactGrepToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"image_read":{"title":"InlineImageReadToolConfiguration","description":"An image read tool configuration defined inline in the agent for loading images into the conversation context.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'image_read' for inline image read tool configurations.","default":"image_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the image read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the image artifact to view.","type":"string","pattern":"^art_[a-z0-9_-]+$","example":"art_photo_a3f2"},"detail":{"description":"Detail level for image processing.","type":"string","enum":["auto","low","high"],"default":"auto","example":"auto"}},"additionalProperties":false,"title":"ImageReadToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"document_conversion":{"title":"InlineDocumentConversionToolConfiguration","description":"A document conversion tool configuration defined inline in the agent for converting document artifacts to various formats.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'document_conversion' for inline document conversion tool configurations.","default":"document_conversion"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the document conversion tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to convert.","type":"string","example":"art_abc123"},"output_format":{"description":"Output format for the converted document.","type":"string","enum":["markdown","structured_document"],"example":"markdown"},"description":{"description":"Optional description for the converted artifact.","type":"string","example":"PDF converted to markdown"}},"additionalProperties":false,"title":"DocumentConversionToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]}}},"oneOf":[{"title":"InlineMcpToolConfiguration","description":"An MCP tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'mcp' for inline MCP tool configurations.","default":"mcp"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for tool calls. The key specifies the location in the tool arguments to overide, and the value specifies what to override with. The LLM will not be able to change the parameters, nor know those values exist within the tool.\n\nThe values can also be dynamic references to context values using $ref with dot notation path syntax:\n- Static value: \"fixed_value\" or 123\n- Dynamic reference: `{\"$ref\": \"session.metadata.field_name\"}`\n\nReferences are resolved at runtime from context:\n- session.metadata.* - Access session metadata fields\n- agent.metadata.* - Access agent metadata fields\n\nExample:\n `{\"query\": {\"$ref\": \".session.metadata.query\"}}`\n\nIf you want to have a real value `\"$ref\"` use `\"$$ref\"`, that is you can escape the first $ by using $$.","type":"object","additionalProperties":true,"example":{"custom_param":"value","limit":10}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineCorporaSearchToolConfiguration","description":"A corpora search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'corpora_search' for inline corpora search tool configurations.","default":"corpora_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the corpus search call such as the query. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query string, which is the question the user is asking. If not provided, will be filled in by the LLM.","type":"string","maxLength":5000,"example":"Am I allowed to bring pets to work?"}},"additionalProperties":false,"title":"CorporaSearchToolParameters"},"query_configuration":{"description":"User-configurable settings for the corpus search that are not exposed to the LLM.","type":"object","properties":{"search":{"description":"The parameters to search one or more corpora.","allOf":[{"type":"object","properties":{"corpora":{"description":"The corpora that you want to search.","type":"array","items":{"description":"A corpus with its identifying key for use in search operations within a customer account.","allOf":[{"description":"Configuration for search parameters specific to a single corpus within a customer account, including filters and semantics.","type":"object","properties":{"custom_dimensions":{"description":"The custom dimensions as additional weights.","type":"object","additionalProperties":{"type":"number","format":"double","nullable":false},"title":"CustomDimensions"},"metadata_filter":{"description":"The filter string used to narrow the search based on metadata attributes. The query against this corpus will be confined to document parts that match the `metadata_filter`. Only metadata fields set as `filter_attributes` on the corpus can be filtered. Filter syntax is similar to a SQL WHERE clause. See [metadata filters documentation](https://docs.vectara.com/docs/learn/metadata-search-filtering/filter-overview) for more information.","type":"string","maxLength":8000,"example":"doc.title = 'Annual Report'"},"lexical_interpolation":{"description":"How much to weigh lexical scores compared to the embedding score. 0 means lexical search is not used at all, and 1 means only lexical search is used.","type":"number","format":"float","minimum":0,"maximum":1,"example":0.005},"semantics":{"description":"Indicates whether to consider a query against this corpus as a query or a response.","type":"string","enum":["default","query","response"],"default":"default","title":"SearchSemantics"}},"title":"SearchCorpus"},{"type":"object","properties":{"corpus_key":{"description":"A user-provided key for a corpus.","type":"string","example":"my-corpus","pattern":"[a-zA-Z0-9_\\=\\-]+$","maxLength":50,"title":"CorpusKey"},"query":{"description":"Query for a particular corpus that will override the overall query if present.","type":"string","maxLength":5000,"example":"What are some important facts in my-corpus?"}}}],"required":["corpus_key"],"title":"KeyedSearchCorpus"},"minItems":1}}},{"type":"object","description":"Search parameters to retrieve knowledge for the query.","properties":{"offset":{"description":"Specifies how many results into the result to skip. This is useful for pagination.","type":"integer","format":"int32","default":0,"minimum":0},"limit":{"description":"The maximum number of results returned.","type":"integer","format":"int32","minimum":1,"default":10},"context_configuration":{"type":"object","description":"Configuration on the presentation of each document part in the result set. You can only use characters_before/after or sentences_before/after, but not both. If you specify both in the query, sentences_before/after takes precedence","properties":{"characters_before":{"description":"The number of characters that are shown before the matching document part. This is useful to show the context of the document part in the wider document. Ignored if `sentences_before` is set. Vectara will capture the full sentence that contains the captured characters, to not lose the meaning caused by a truncated word or sentence.","type":"integer","format":"int32"},"characters_after":{"description":"The number of characters that are shown after the matching document part. This is useful to show the context of the document part in the wider document. Ignored if `sentences_after` is set. Vectara will capture the full sentence that contains the captured characters, to not lose the meaning caused by a truncated word or sentence.","type":"integer","format":"int32"},"sentences_before":{"description":"The number of sentences that are shown before the matching document part. This is useful to show the context of the document part in the wider document.","type":"integer","format":"int32","default":0,"minimum":0,"example":2},"sentences_after":{"description":"The number of sentences that are shown after the matching document part. This is useful to show the context of the document part in the wider document.","type":"integer","format":"int32","default":0,"minimum":0,"example":2},"start_tag":{"description":"The tag that wraps the document part at the start. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the context before ends and the document part begins.","type":"string","example":""},"end_tag":{"description":"The tag that wraps the document part at the end. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the document part ends and the context after begins.","type":"string","example":""}},"example":{"sentences_before":2,"sentences_after":2,"start_tag":"","end_tag":""},"title":"ContextConfiguration"},"reranker":{"type":"object","description":"Rerank results of the search. Rerankers are very powerful tools to improve the order of search results. By default the search will use the most powerful reranker available to the customer's plan. To disable reranking, set the reranker `type` to `\"none\"`.","discriminator":{"propertyName":"type","mapping":{"customer_reranker":{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},"userfn":{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},"mmr":{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},"chain":{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},"none":{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}}},"oneOf":[{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}],"title":"SearchReranker"}},"example":{"limit":50},"title":"SearchParameters"}],"required":["corpora"],"title":"SearchCorporaParameters"},"generation":{"description":"The parameters to control generation.","type":"object","properties":{"enabled":{"description":"Whether generation is enabled for this query. This field is ignored if using chat.","type":"boolean","default":true},"generation_preset_name":{"description":"The preset values to use to feed the query results and other context to the model. \n\nA `generation_preset` is an object with a bundle of properties that specifies: \n* The `prompt_template` that is rendered and then sent to the LLM. \n* The LLM used. * `model_parameter`s such as temperature.\n\nAll of these properties except the model can be overridden by setting them in this object. Even when a `prompt_template` is set, the `generation_preset_name` is used to set the model used. See `model_parameters.model` if you want to set the model explicitly.\n\nIf `generation_preset_name` is not set, the Vectara platform will use the default model and prompt.'\n","type":"string","minLength":1,"example":"mockingbird-2.0"},"prompt_name":{"description":"Use `generation_preset_name` instead of `prompt_name`.","type":"string","minLength":1,"example":"mockingbird-2.0","deprecated":true},"max_used_search_results":{"description":"The maximum number of search results to be available to the prompt.","type":"integer","format":"int32","minimum":0,"default":5},"prompt_template":{"description":"Vectara manages both system and user roles and prompts for the generative LLM out of the box by default. However, users can override the `prompt_template` via this variable. The `prompt_template` is in the form of an Apache Velocity template. For more details on how to configure the `prompt_template`, see the [long-form documentation](https://docs.vectara.com/docs/prompts/vectara-prompt-engine).","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n"},"prompt_text":{"description":"This property is deprecated in favor of clearer naming. Use `prompt_template`. This property will be ignored if `prompt_template` is set.","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n","deprecated":true},"max_response_characters":{"description":"Controls the length of the generated output. This is a rough estimate and not a hard limit: the end output can be longer or shorter than this value. This is generally implemented by including the `max_response_characters` in the prompt, and the LLM's instruction following capability dictates how closely the generated output is limited.","type":"integer","format":"int32","example":300,"minimum":0},"response_language":{"description":"Languages that the Vectara platform supports.","type":"string","enum":["auto","eng","deu","fra","zho","kor","ara","rus","tha","nld","ita","por","spa","jpn","pol","tur","vie","ind","ces","ukr","ell","heb","fas","hin","urd","swe","ben","msa","ron"],"default":"auto","title":"Language"},"model_parameters":{"title":"ModelParameters","description":"The parameters for the model. WARNING: This is an experimental feature, and breakable at any point with virtually no notice. It is meant for experimentation to converge on optimal parameters that can then be set in the prompt definitions.","type":"object","properties":{"llm_name":{"description":"The model (e.g., `gpt-4`) to use for summarization. If specified, it will override the model behind `generation_preset_name`.","type":"string","example":"gpt4"},"max_tokens":{"description":"The maximum number of tokens to be returned by the model.","type":"integer","format":"int32","minimum":1},"temperature":{"description":"The sampling temperature to use. Higher values make the output more random, while lower values make it more focused and deterministic.","type":"number","format":"float"},"frequency_penalty":{"description":"Higher values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.","type":"number","format":"float"},"presence_penalty":{"description":"Higher values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.","type":"number","format":"float"}}},"citations":{"description":"Style the generator should use when making citations.","type":"object","properties":{"style":{"description":"The citation style that you want to use in the summary: \n* `numeric` - Citations formatted as simple numerals: \\[1\\], \\[2\\], etc.\n* `none` - Citations removed from text.\n* `html` - Citation formatted as a URL like `text_pattern`.\n* `markdown` - Formatted as `[text_pattern](url_pattern)`.\n","type":"string","enum":["none","numeric","html","markdown"]},"url_pattern":{"description":"The URL pattern if the citation_style is set to `html` or `markdown`. The pattern can access metadata attributes in the document or part. e.g. `https://my.doc/foo/{doc.id}/{part.id}` The default `url_pattern` is an empty string.","type":"string","example":"https://vectara.com/documents/{doc.id}"},"text_pattern":{"description":"The text pattern if the citation_style is set to `html` or `markdown`. This pattern sets the href for HTML or the text within `[]` in markdown, and defaults to N being the index of result if it is not set. The default citation style looks like `[N]()` for markdown. You can use metadata attributes in the `text_pattern`. For example, the pattern `{doc.title}` with citation style `markdown` would result in final citation output like `[Title]()` when the document's metadata includes `{\"title\":\"Title\"}`.","type":"string","example":"{doc.title}"}},"title":"CitationParameters"},"enable_factual_consistency_score":{"description":"Enable returning the factual consistency score with query results.","type":"boolean","default":true}},"title":"GenerationParameters"},"save_history":{"description":"Indicates whether to save the query to query history.","type":"boolean"}},"required":["search"],"title":"CorporaSearchQueryConfiguration"}},"required":["type","query_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineWebSearchToolConfiguration","description":"A web search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'web_search' for inline web search tool configurations.","default":"web_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the web search tool call such as limit etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query to execute.","type":"string","example":"latest AI developments 2024"},"limit":{"description":"Maximum number of results to return.","type":"integer","minimum":1,"example":10},"provider":{"description":"Search provider to use.","type":"string","enum":["tavily"],"example":"tavily"},"include_domains":{"description":"List of domains to specifically include in search results. When specified, results will ONLY come from these domains. Supports exact domains (e.g., \"github.com\"), subdomains (e.g., \"docs.github.com\"), and wildcard patterns (e.g., \"*.github.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["github.com","docs.github.com","*.stackoverflow.com"]},"exclude_domains":{"description":"List of domains to specifically exclude from search results. Supports exact domains (e.g., \"spam.com\"), subdomains (e.g., \"bad.spam.com\"), and wildcard patterns (e.g., \"*.spam.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["spam.com","unreliable-source.com"]}},"additionalProperties":false,"title":"WebSearchToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineLambdaToolConfiguration","description":"A lambda tool configuration defined inline in the agent for executing user-defined functions.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'lambda' for inline lambda tool configurations.","default":"lambda"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments that will be passed to the lambda function. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","additionalProperties":true,"example":{"custom_param":"value"}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineStructuredIndexingToolConfiguration","description":"A structured indexing tool configuration defined inline in the agent for indexing into the Vectara platform.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'structured_indexing' for inline structured indexing tool configurations.","default":"structured_indexing"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the structured indexing tool call such as corpus_key etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"corpus_key":{"description":"The key identifying the target corpus for document indexing. If not provided, will be filled in by the LLM.","type":"string","example":"my-knowledge-base"},"document_id":{"description":"The unique identifier for the document within the corpus, preferably human readable IDs.","type":"string","example":"annual_report_2024"},"title":{"description":"The title of the document being indexed.","type":"string","example":"2024 Annual ESG Report"},"description":{"description":"A brief description or summary of the document content.","type":"string","example":"Comprehensive environmental, social, and governance report"},"metadata":{"description":"The metadata key-value pairs to associate with the document. If present, this gets merged with existing artifact metadata.","type":"object","additionalProperties":true,"example":{"doc_type":"annual_report","year":2024,"department":"sustainability"}},"document":{"description":"The structured document to index with full hierarchical content.","type":"object","additionalProperties":true,"example":{"id":"annual_report_2024","type":"structured","title":"2024 Annual ESG Report"}}},"additionalProperties":false,"title":"StructuredIndexingToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineSubAgentToolConfiguration","description":"A sub-agent tool configuration defined inline in the agent for invoking specialized sub-agents.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'sub_agent' for inline sub-agent tool configurations.","default":"sub_agent"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the sub-agent tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"message":{"description":"The detailed task instructions for the sub-agent to perform autonomously.","type":"string","example":"Review the code changes in pull request \\#123 for security issues"},"session_tti_minutes":{"description":"Time to idle in minutes before the session expires.","type":"integer","format":"int64","minimum":1,"example":60}},"additionalProperties":false,"title":"SubAgentToolParameters"},"sub_agent_configuration":{"description":"User-configurable settings for the sub-agent tool. These parameters are never exposed to the agent.","type":"object","properties":{"agent_key":{"description":"A unique key that identifies an agent.","type":"string","pattern":"[0-9a-zA-Z_-]+$","minLength":1,"maxLength":50,"example":"customer_support","title":"AgentKey"}},"required":["agent_key"],"title":"SubAgentConfiguration"}},"required":["type","sub_agent_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineArtifactReadToolConfiguration","description":"An artifact read tool configuration defined inline in the agent for reading artifacts from the session workspace.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_read' for inline artifact read tool configurations.","default":"artifact_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to read.","type":"string","example":"art_abc123"},"encoding":{"description":"The encoding format for the content.","type":"string","enum":["raw","base64"],"example":"raw"},"start_line":{"description":"Optional starting line number (1-indexed).","type":"integer","format":"int32","example":100},"end_line":{"description":"Optional ending line number (1-indexed, inclusive).","type":"integer","format":"int32","example":200}},"additionalProperties":false,"title":"ArtifactReadToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineArtifactGrepToolConfiguration","description":"An artifact grep tool configuration defined inline in the agent for searching through artifact content.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_grep' for inline artifact grep tool configurations.","default":"artifact_grep"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact grep tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to search.","type":"string","example":"art_abc123"},"pattern":{"description":"The pattern to search for (supports grep regex).","type":"string","example":"error|exception"},"grep_options":{"description":"Optional grep command options.","type":"array","items":{"type":"string"},"example":["-i","-n"]}},"additionalProperties":false,"title":"ArtifactGrepToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineImageReadToolConfiguration","description":"An image read tool configuration defined inline in the agent for loading images into the conversation context.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'image_read' for inline image read tool configurations.","default":"image_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the image read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the image artifact to view.","type":"string","pattern":"^art_[a-z0-9_-]+$","example":"art_photo_a3f2"},"detail":{"description":"Detail level for image processing.","type":"string","enum":["auto","low","high"],"default":"auto","example":"auto"}},"additionalProperties":false,"title":"ImageReadToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineDocumentConversionToolConfiguration","description":"A document conversion tool configuration defined inline in the agent for converting document artifacts to various formats.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'document_conversion' for inline document conversion tool configurations.","default":"document_conversion"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the document conversion tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to convert.","type":"string","example":"art_abc123"},"output_format":{"description":"Output format for the converted document.","type":"string","enum":["markdown","structured_document"],"example":"markdown"},"description":{"description":"Optional description for the converted artifact.","type":"string","example":"PDF converted to markdown"}},"additionalProperties":false,"title":"DocumentConversionToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]}],"example":[{"type":"web_search","argument_override":{"limit":5,"include_domains":["github.com","stackoverflow.com"],"exclude_domains":["spam.com"]}}]},"example":{"customer_search":{"type":"corpora_search","argument_override":{"query":"customer support documentation"}}}},"model":{"title":"AgentModel","description":"Configuration for the model used in this step, including the model name and arbitrary parameters.","type":"object","properties":{"name":{"description":"The name of the model to use for this step.","type":"string","example":"gpt-4"},"parameters":{"description":"Arbitrary model-specific parameters that can be passed to the model.","type":"object","additionalProperties":true,"example":{"temperature":0.7,"max_tokens":1000,"top_p":0.9}},"retry_configuration":{"description":"Optional retry configuration for handling transient failures. When not provided, no retry is performed.","title":"RetryConfiguration","type":"object","properties":{"enabled":{"description":"Whether retry is enabled. Enabled by default to provide resilience against transient failures.","type":"boolean","default":true,"example":true},"max_retries":{"description":"Maximum number of retry attempts after initial failure.","type":"integer","minimum":0,"maximum":10,"default":3,"example":3},"initial_backoff_ms":{"description":"Initial backoff time in milliseconds before first retry.","type":"integer","minimum":100,"maximum":60000,"default":1000,"example":1000},"max_backoff_ms":{"description":"Maximum backoff time in milliseconds between retries.","type":"integer","minimum":1000,"maximum":300000,"default":30000,"example":30000},"backoff_factor":{"description":"Multiplication factor for exponential backoff between retries.","type":"number","format":"double","minimum":1,"maximum":10,"default":2,"example":2}}}},"required":["name"]},"first_step":{"title":"AgentStep","description":"A step in an agent's execution flow that defines how the agent processes and responds to input.","discriminator":{"propertyName":"type","mapping":{"conversational":{"title":"ConversationalAgentStep","description":"A step that receives instructions and responds through dialogue. This is a step that gets instructions and engages in conversation with users based on those instructions. This only type step supported, with no way to go next steps. A conversational step responds to an input following its instructions and uses the agent tools. The first response from the model will terminate processing the input.","type":"object","properties":{"type":{"description":"The type of step, which is always 'conversational' for this step type.","type":"string","default":"conversational","example":"conversational"},"instructions":{"description":"List of instructions that guide the agent's behavior in this step. If no instructions are given, the agent is instructed to be helpful and use tools.","type":"array","items":{"title":"AgentStepInstruction","description":"An instruction that can be used in an agent step, either by reference or defined inline.","discriminator":{"propertyName":"type","mapping":{"reference":{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},"inline":{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Request object for creating a new initial instruction.","type":"object","properties":{"type":{"description":"The type of instruction to create.","type":"string","default":"initial","example":"initial"},"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["type","name","template"],"x-vectaraParents":["CreateInstructionRequest"],"title":"CreateInitialInstructionRequest"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}}},"oneOf":[{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Request object for creating a new initial instruction.","type":"object","properties":{"type":{"description":"The type of instruction to create.","type":"string","default":"initial","example":"initial"},"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["type","name","template"],"x-vectaraParents":["CreateInstructionRequest"],"title":"CreateInitialInstructionRequest"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}],"example":[{"type":"reference","name":"Customer Support Initial Instruction","version":1},{"type":"inline","name":"Temporary On-the-fly Guideline","description":"A special instruction for this specific step only.","template_type":"velocity","template":"Please prioritize issues tagged with 'urgent' for the next hour."}]}},"output_parser":{"title":"AgentOutputParser","description":"Configuration for how the agent's output should be parsed and formatted.\n\nThe output parser determines how the agent's responses are processed before being returned to the user.\n","discriminator":{"propertyName":"type","mapping":{"default":{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]}}},"oneOf":[{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]}]}},"required":["type","instructions","output_parser"],"x-vectaraParents":["AgentStep"]}}},"oneOf":[{"title":"ConversationalAgentStep","description":"A step that receives instructions and responds through dialogue. This is a step that gets instructions and engages in conversation with users based on those instructions. This only type step supported, with no way to go next steps. A conversational step responds to an input following its instructions and uses the agent tools. The first response from the model will terminate processing the input.","type":"object","properties":{"type":{"description":"The type of step, which is always 'conversational' for this step type.","type":"string","default":"conversational","example":"conversational"},"instructions":{"description":"List of instructions that guide the agent's behavior in this step. If no instructions are given, the agent is instructed to be helpful and use tools.","type":"array","items":{"title":"AgentStepInstruction","description":"An instruction that can be used in an agent step, either by reference or defined inline.","discriminator":{"propertyName":"type","mapping":{"reference":{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},"inline":{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Request object for creating a new initial instruction.","type":"object","properties":{"type":{"description":"The type of instruction to create.","type":"string","default":"initial","example":"initial"},"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["type","name","template"],"x-vectaraParents":["CreateInstructionRequest"],"title":"CreateInitialInstructionRequest"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}}},"oneOf":[{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Request object for creating a new initial instruction.","type":"object","properties":{"type":{"description":"The type of instruction to create.","type":"string","default":"initial","example":"initial"},"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["type","name","template"],"x-vectaraParents":["CreateInstructionRequest"],"title":"CreateInitialInstructionRequest"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}],"example":[{"type":"reference","name":"Customer Support Initial Instruction","version":1},{"type":"inline","name":"Temporary On-the-fly Guideline","description":"A special instruction for this specific step only.","template_type":"velocity","template":"Please prioritize issues tagged with 'urgent' for the next hour."}]}},"output_parser":{"title":"AgentOutputParser","description":"Configuration for how the agent's output should be parsed and formatted.\n\nThe output parser determines how the agent's responses are processed before being returned to the user.\n","discriminator":{"propertyName":"type","mapping":{"default":{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]}}},"oneOf":[{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]}]}},"required":["type","instructions","output_parser"],"x-vectaraParents":["AgentStep"]}]},"metadata":{"description":"Arbitrary metadata associated with the agent for customization and configuration.","type":"object","additionalProperties":true,"example":{"department":"customer_service","version":"1.2.0","owner":"support-team"}},"enabled":{"description":"Whether the agent is currently enabled and available for use.","type":"boolean","default":true,"example":true},"created_at":{"description":"Timestamp when the agent was created.","type":"string","format":"date-time","example":"2024-01-15T10:30:00Z"},"updated_at":{"description":"Timestamp when the agent was last updated.","type":"string","format":"date-time","example":"2024-01-16T14:45:00Z"}},"required":["key","name","tool_configurations","model","first_step","enabled"],"title":"Agent"}},"metadata":{"type":"object","description":"The standard metadata in the response of a list operation.","properties":{"page_key":{"description":"When requesting the next page of this list, this is needed as a query parameter.","type":"string"}},"example":{"page_key":"eyJvZmZzZXQiOjF9"},"title":"ListMetadata"}},"required":["agents","metadata"],"title":"ListAgentsResponse"}}}},"403":{"description":"Permissions do not allow listing agents.","content":{"application/json":{"schema":{"description":"A general error response with an error code and message.","type":"object","properties":{"messages":{"description":"The messages describing why the error occurred.","type":"array","items":{"title":"message","type":"string","example":"Internal server error."}},"request_id":{"description":"The ID of the request that can be used to help Vectara support debug what went wrong.","type":"string"}},"title":"Error"}}}}}}
+ responses={{"200":{"description":"List of available agents.","content":{"application/json":{"schema":{"description":"Response containing a list of agents.","type":"object","properties":{"agents":{"description":"List of agents.","type":"array","items":{"description":"An AI agent that can use tools to provide intelligent responses and actions.","type":"object","properties":{"key":{"description":"A unique key that identifies an agent.","type":"string","pattern":"[0-9a-zA-Z_-]+$","minLength":1,"maxLength":50,"example":"customer_support","title":"AgentKey"},"name":{"description":"The human-readable name of an agent.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Agent","title":"AgentName"},"description":{"description":"A detailed description of the agent's purpose and capabilities.","type":"string","example":"An AI agent specialized in handling customer support inquiries using company documentation and support tools."},"tool_configurations":{"description":"A map of tool configurations available to the agent. The key is the name of the tool configuration and the value is an agent tool configuration.","type":"object","additionalProperties":{"nullable":true,"title":"AgentToolConfiguration","description":"A tool configuration that can be used by an agent, defined inline with a specific configuration type.","discriminator":{"propertyName":"type","mapping":{"dynamic_vectara":{"title":"InlineDynamicVectaraToolConfiguration","description":"An inline configuration for built-in Vectara tools that have implementations within the platform but do not have a dedicated configuration type schema. Use the List Tools endpoint to discover available tools and obtain the `tool_id` required for this configuration.\n","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'dynamic_vectara' for generic Vectara tool configurations.","default":"dynamic_vectara"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for tool calls. The key specifies the location in the tool arguments to overide, and the value specifies what to override with. The LLM will not be able to change the parameters, nor know those values exist within the tool.\n\nThe values can also be dynamic references to context values using $ref with dot notation path syntax:\n- Static value: \"fixed_value\" or 123\n- Dynamic reference: `{\"$ref\": \"session.metadata.field_name\"}`\n\nReferences are resolved at runtime from context:\n- session.metadata.* - Access session metadata fields\n- agent.metadata.* - Access agent metadata fields\n\nExample:\n `{\"query\": {\"$ref\": \".session.metadata.query\"}}`\n\nIf you want to have a real value `\"$ref\"` use `\"$$ref\"`, that is you can escape the first $ by using $$.","type":"object","additionalProperties":true,"example":{"custom_param":"value","limit":10}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},"mcp":{"title":"InlineMcpToolConfiguration","description":"An MCP tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'mcp' for inline MCP tool configurations.","default":"mcp"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for tool calls. The key specifies the location in the tool arguments to overide, and the value specifies what to override with. The LLM will not be able to change the parameters, nor know those values exist within the tool.\n\nThe values can also be dynamic references to context values using $ref with dot notation path syntax:\n- Static value: \"fixed_value\" or 123\n- Dynamic reference: `{\"$ref\": \"session.metadata.field_name\"}`\n\nReferences are resolved at runtime from context:\n- session.metadata.* - Access session metadata fields\n- agent.metadata.* - Access agent metadata fields\n\nExample:\n `{\"query\": {\"$ref\": \".session.metadata.query\"}}`\n\nIf you want to have a real value `\"$ref\"` use `\"$$ref\"`, that is you can escape the first $ by using $$.","type":"object","additionalProperties":true,"example":{"custom_param":"value","limit":10}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},"corpora_search":{"title":"InlineCorporaSearchToolConfiguration","description":"A corpora search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'corpora_search' for inline corpora search tool configurations.","default":"corpora_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the corpus search call such as the query. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query string, which is the question the user is asking. If not provided, will be filled in by the agent.","type":"string","maxLength":5000,"example":"Am I allowed to bring pets to work?"}},"additionalProperties":false,"title":"CorporaSearchToolParameters"},"query_configuration":{"description":"User-configurable settings for the corpus search that are not exposed to the LLM. Supports dynamic references for runtime resolution from session context.","title":"AgentCorporaSearchQueryConfiguration","type":"object","properties":{"search":{"title":"AgentSearchCorporaParameters","description":"Agent-specific search parameters that support eager references.","type":"object","properties":{"corpora":{"description":"The corpora to search, with support for eager references.","type":"array","items":{"title":"AgentKeyedSearchCorpus","description":"Agent-specific keyed search corpus that supports eager references for corpus_key and metadata_filter.","type":"object","properties":{"corpus_key":{"description":"The corpus to search. Can be either:\n- A static string: \"my-corpus\"\n- An EagerReference object: {\"$ref\": \"session.metadata.corpus\"}\n\nWhen an EagerReference is provided, the $ref path is resolved from the session context\nat the start of each turn, before LLM processing begins.\n","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"custom_dimensions":{"description":"The custom dimensions as additional weights.","type":"object","additionalProperties":{"type":"number","format":"double","nullable":false},"title":"CustomDimensions"},"metadata_filter":{"description":"The filter to narrow search results. Can be either:\n- A static string: \"doc.department = 'engineering'\"\n- An EagerReference object: {\"$ref\": \"session.metadata.filters.user\"}\n\nWhen an EagerReference is provided, the $ref path is resolved from the session context\nat the start of each turn, before LLM processing begins.\n","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"lexical_interpolation":{"description":"How much to weigh lexical scores compared to the embedding score.","type":"number","format":"float","minimum":0,"maximum":1},"semantics":{"description":"Indicates whether to consider a query against this corpus as a query or a response.","type":"string","enum":["default","query","response"],"default":"default","title":"SearchSemantics"},"query":{"description":"Query override for this specific corpus.","type":"string","maxLength":5000}},"required":["corpus_key"]},"minItems":1},"offset":{"description":"Number of results to skip for pagination.","type":"integer","format":"int32","minimum":0,"default":0},"limit":{"description":"Maximum number of results to return.","type":"integer","format":"int32","minimum":1,"default":10},"context_configuration":{"type":"object","description":"Configuration on the presentation of each document part in the result set. You can only use characters_before/after or sentences_before/after, but not both. If you specify both in the query, sentences_before/after takes precedence","properties":{"characters_before":{"description":"The number of characters that are shown before the matching document part. This is useful to show the context of the document part in the wider document. Ignored if `sentences_before` is set. Vectara will capture the full sentence that contains the captured characters, to not lose the meaning caused by a truncated word or sentence.","type":"integer","format":"int32"},"characters_after":{"description":"The number of characters that are shown after the matching document part. This is useful to show the context of the document part in the wider document. Ignored if `sentences_after` is set. Vectara will capture the full sentence that contains the captured characters, to not lose the meaning caused by a truncated word or sentence.","type":"integer","format":"int32"},"sentences_before":{"description":"The number of sentences that are shown before the matching document part. This is useful to show the context of the document part in the wider document.","type":"integer","format":"int32","default":0,"minimum":0,"example":2},"sentences_after":{"description":"The number of sentences that are shown after the matching document part. This is useful to show the context of the document part in the wider document.","type":"integer","format":"int32","default":0,"minimum":0,"example":2},"start_tag":{"description":"The tag that wraps the document part at the start. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the context before ends and the document part begins.","type":"string","example":""},"end_tag":{"description":"The tag that wraps the document part at the end. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the document part ends and the context after begins.","type":"string","example":""}},"example":{"sentences_before":2,"sentences_after":2,"start_tag":"","end_tag":""},"title":"ContextConfiguration"},"reranker":{"type":"object","description":"Rerank results of the search. Rerankers are very powerful tools to improve the order of search results. By default the search will use the most powerful reranker available to the customer's plan. To disable reranking, set the reranker `type` to `\"none\"`.","discriminator":{"propertyName":"type","mapping":{"customer_reranker":{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},"userfn":{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},"mmr":{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},"chain":{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},"none":{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}}},"oneOf":[{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}],"title":"SearchReranker"}},"required":["corpora"]},"generation":{"description":"The parameters to control generation.","type":"object","properties":{"enabled":{"description":"Whether generation is enabled for this query. This field is ignored if using chat.","type":"boolean","default":true},"generation_preset_name":{"description":"The preset values to use to feed the query results and other context to the model. \n\nA `generation_preset` is an object with a bundle of properties that specifies: \n* The `prompt_template` that is rendered and then sent to the LLM. \n* The LLM used. * `model_parameter`s such as temperature.\n\nAll of these properties except the model can be overridden by setting them in this object. Even when a `prompt_template` is set, the `generation_preset_name` is used to set the model used. See `model_parameters.model` if you want to set the model explicitly.\n\nIf `generation_preset_name` is not set, the Vectara platform will use the default model and prompt.'\n","type":"string","minLength":1,"example":"mockingbird-2.0"},"prompt_name":{"description":"Use `generation_preset_name` instead of `prompt_name`.","type":"string","minLength":1,"example":"mockingbird-2.0","deprecated":true},"max_used_search_results":{"description":"The maximum number of search results to be available to the prompt.","type":"integer","format":"int32","minimum":0,"default":5},"prompt_template":{"description":"Vectara manages both system and user roles and prompts for the generative LLM out of the box by default. However, users can override the `prompt_template` via this variable. The `prompt_template` is in the form of an Apache Velocity template. For more details on how to configure the `prompt_template`, see the [long-form documentation](https://docs.vectara.com/docs/prompts/vectara-prompt-engine).","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n"},"prompt_text":{"description":"This property is deprecated in favor of clearer naming. Use `prompt_template`. This property will be ignored if `prompt_template` is set.","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n","deprecated":true},"max_response_characters":{"description":"Controls the length of the generated output. This is a rough estimate and not a hard limit: the end output can be longer or shorter than this value. This is generally implemented by including the `max_response_characters` in the prompt, and the LLM's instruction following capability dictates how closely the generated output is limited.","type":"integer","format":"int32","example":300,"minimum":0},"response_language":{"description":"Languages that the Vectara platform supports.","type":"string","enum":["auto","eng","deu","fra","zho","kor","ara","rus","tha","nld","ita","por","spa","jpn","pol","tur","vie","ind","ces","ukr","ell","heb","fas","hin","urd","swe","ben","msa","ron"],"default":"auto","title":"Language"},"model_parameters":{"title":"ModelParameters","description":"The parameters for the model. WARNING: This is an experimental feature, and breakable at any point with virtually no notice. It is meant for experimentation to converge on optimal parameters that can then be set in the prompt definitions.","type":"object","properties":{"llm_name":{"description":"The model (e.g., `gpt-4`) to use for summarization. If specified, it will override the model behind `generation_preset_name`.","type":"string","example":"gpt4"},"max_tokens":{"description":"The maximum number of tokens to be returned by the model.","type":"integer","format":"int32","minimum":1},"temperature":{"description":"The sampling temperature to use. Higher values make the output more random, while lower values make it more focused and deterministic.","type":"number","format":"float"},"frequency_penalty":{"description":"Higher values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.","type":"number","format":"float"},"presence_penalty":{"description":"Higher values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.","type":"number","format":"float"}}},"citations":{"description":"Style the generator should use when making citations.","type":"object","properties":{"style":{"description":"The citation style that you want to use in the summary: \n* `numeric` - Citations formatted as simple numerals: \\[1\\], \\[2\\], etc.\n* `none` - Citations removed from text.\n* `html` - Citation formatted as a URL like `text_pattern`.\n* `markdown` - Formatted as `[text_pattern](url_pattern)`.\n","type":"string","enum":["none","numeric","html","markdown"]},"url_pattern":{"description":"The URL pattern if the citation_style is set to `html` or `markdown`. The pattern can access metadata attributes in the document or part. e.g. `https://my.doc/foo/{doc.id}/{part.id}` The default `url_pattern` is an empty string.","type":"string","example":"https://vectara.com/documents/{doc.id}"},"text_pattern":{"description":"The text pattern if the citation_style is set to `html` or `markdown`. This pattern sets the href for HTML or the text within `[]` in markdown, and defaults to N being the index of result if it is not set. The default citation style looks like `[N]()` for markdown. You can use metadata attributes in the `text_pattern`. For example, the pattern `{doc.title}` with citation style `markdown` would result in final citation output like `[Title]()` when the document's metadata includes `{\"title\":\"Title\"}`.","type":"string","example":"{doc.title}"}},"title":"CitationParameters"},"enable_factual_consistency_score":{"description":"Enable returning the factual consistency score with query results.","type":"boolean","default":true}},"title":"GenerationParameters"},"save_history":{"description":"Whether to save the query to history.","type":"boolean"}},"required":["search"]}},"required":["type","query_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},"web_search":{"title":"InlineWebSearchToolConfiguration","description":"A web search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'web_search' for inline web search tool configurations.","default":"web_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the web search tool call such as limit etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query to execute.","type":"string","example":"latest AI developments 2024"},"limit":{"description":"Maximum number of results to return.","type":"integer","minimum":1,"maximum":20,"example":10},"provider":{"description":"Search provider to use.","type":"string","enum":["tavily"],"example":"tavily"},"include_domains":{"description":"List of domains to specifically include in search results. When specified, results will ONLY come from these domains. Supports exact domains (e.g., \"github.com\"), subdomains (e.g., \"docs.github.com\"), and wildcard patterns (e.g., \"*.github.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["github.com","docs.github.com","*.stackoverflow.com"]},"exclude_domains":{"description":"List of domains to specifically exclude from search results. Supports exact domains (e.g., \"spam.com\"), subdomains (e.g., \"bad.spam.com\"), and wildcard patterns (e.g., \"*.spam.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["spam.com","unreliable-source.com"]}},"additionalProperties":false,"title":"WebSearchToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"web_get":{"title":"InlineWebGetToolConfiguration","description":"A web get tool configuration defined inline in the agent for fetching content from URLs.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'web_get' for inline web get tool configurations.","default":"web_get"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the web get tool call. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"url":{"description":"The URL to fetch content from.","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"method":{"description":"HTTP method to use.","type":"string","enum":["GET","POST","PUT","DELETE","HEAD"]},"headers":{"description":"HTTP headers to include in the request.","oneOf":[{"type":"object","additionalProperties":{"type":"string"}},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"body":{"description":"Request body for POST/PUT requests.","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"follow_redirects":{"description":"Whether to follow HTTP redirects.","oneOf":[{"type":"boolean"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"timeout_seconds":{"description":"Request timeout in seconds.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"head_lines":{"description":"Number of lines from start to include in response.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"tail_lines":{"description":"Number of lines from end to include in response.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"ssl_verify":{"description":"Whether to verify SSL certificates.","oneOf":[{"type":"boolean"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"max_content_bytes":{"description":"Maximum response size in bytes before truncation.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]}},"additionalProperties":false,"title":"WebGetToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"lambda":{"title":"InlineLambdaToolConfiguration","description":"A lambda tool configuration defined inline in the agent for executing user-defined functions.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'lambda' for inline lambda tool configurations.","default":"lambda"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments that will be passed to the lambda function. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","additionalProperties":true,"example":{"custom_param":"value"}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},"structured_indexing":{"title":"InlineStructuredIndexingToolConfiguration","description":"A structured indexing tool configuration defined inline in the agent for indexing into the Vectara platform.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'structured_indexing' for inline structured indexing tool configurations.","default":"structured_indexing"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the structured indexing tool call such as corpus_key etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"corpus_key":{"description":"The key identifying the target corpus for document indexing. If not provided, will be filled in by the agent.","type":"string","example":"my-knowledge-base"},"document_id":{"description":"The unique identifier for the document within the corpus, preferably human readable IDs.","type":"string","example":"annual_report_2024"},"title":{"description":"The title of the document being indexed.","type":"string","example":"2024 Annual ESG Report"},"description":{"description":"A brief description or summary of the document content.","type":"string","example":"Comprehensive environmental, social, and governance report"},"metadata":{"description":"The metadata key-value pairs to associate with the document. If present, this gets merged with existing artifact metadata.","type":"object","additionalProperties":true,"example":{"doc_type":"annual_report","year":2024,"department":"sustainability"}},"document":{"description":"The structured document to index with full hierarchical content.","type":"object","additionalProperties":true,"example":{"id":"annual_report_2024","type":"structured","title":"2024 Annual ESG Report"}}},"additionalProperties":false,"title":"StructuredIndexingToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"sub_agent":{"title":"InlineSubAgentToolConfiguration","description":"A sub-agent tool configuration defined inline in the agent for invoking specialized sub-agents.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'sub_agent' for inline sub-agent tool configurations.","default":"sub_agent"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the sub-agent tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"message":{"description":"The detailed task instructions for the sub-agent to perform autonomously.","type":"string","example":"Review the code changes in pull request \\#123 for security issues"},"session_tti_minutes":{"description":"Time to idle in minutes before the session expires.","type":"integer","format":"int64","minimum":1,"example":60}},"additionalProperties":false,"title":"SubAgentToolParameters"},"sub_agent_configuration":{"description":"User-configurable settings for the sub-agent tool. These parameters are never exposed to the agent.","type":"object","properties":{"agent_key":{"description":"A unique key that identifies an agent.","type":"string","pattern":"[0-9a-zA-Z_-]+$","minLength":1,"maxLength":50,"example":"customer_support","title":"AgentKey"},"session_mode":{"description":"Controls session behavior for sub-agent invocations:\n- llm_controlled: LLM decides whether to create new or resume existing session\n- persistent: Always reuse the same session (created on first invocation)\n- ephemeral: Always create a new session on each invocation\n","type":"string","enum":["llm_controlled","persistent","ephemeral"],"default":"llm_controlled","example":"llm_controlled","title":"SubAgentSessionMode"},"session_metadata":{"description":"Optional metadata to associate with the sub-agent session. Can contain any key-value pairs.","type":"object","additionalProperties":true,"example":{"source":"parent_agent","task_type":"code_review"}}},"required":["agent_key"],"title":"SubAgentConfiguration"}},"required":["type","sub_agent_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},"artifact_read":{"title":"InlineArtifactReadToolConfiguration","description":"An artifact read tool configuration defined inline in the agent for reading artifacts from the session workspace.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_read' for inline artifact read tool configurations.","default":"artifact_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to read.","type":"string","example":"art_abc123"},"encoding":{"description":"The encoding format for the content.","type":"string","enum":["raw","base64"],"example":"raw"},"start_line":{"description":"Optional starting line number (1-indexed).","type":"integer","format":"int32","example":100},"end_line":{"description":"Optional ending line number (1-indexed, inclusive).","type":"integer","format":"int32","example":200}},"additionalProperties":false,"title":"ArtifactReadToolParameters"},"tool_configuration":{"description":"User-configurable settings for the artifact read tool.","type":"object","properties":{"max_size_bytes":{"description":"Maximum file size in bytes for full reads without line ranges. Defaults to 256KB.","type":"integer","format":"int64","minimum":1,"maximum":10485760,"default":262144},"max_lines":{"description":"Maximum number of lines for range-based reads. Defaults to 200.","type":"integer","format":"int32","minimum":1,"maximum":10000,"default":200}},"title":"ArtifactReadConfiguration"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"artifact_grep":{"title":"InlineArtifactGrepToolConfiguration","description":"An artifact grep tool configuration defined inline in the agent for searching through artifact content.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_grep' for inline artifact grep tool configurations.","default":"artifact_grep"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact grep tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to search.","type":"string","example":"art_abc123"},"pattern":{"description":"The pattern to search for (supports grep regex).","type":"string","example":"error|exception"},"grep_options":{"description":"Optional grep command options.","type":"array","items":{"type":"string"},"example":["-i","-n"]}},"additionalProperties":false,"title":"ArtifactGrepToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"image_read":{"title":"InlineImageReadToolConfiguration","description":"An image read tool configuration defined inline in the agent for loading images into the conversation context.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'image_read' for inline image read tool configurations.","default":"image_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the image read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the image artifact to view.","type":"string","pattern":"^art_[a-z0-9_-]+$","example":"art_photo_a3f2"},"detail":{"description":"Detail level for image processing.","type":"string","enum":["auto","low","high"],"default":"auto","example":"auto"}},"additionalProperties":false,"title":"ImageReadToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"document_conversion":{"title":"InlineDocumentConversionToolConfiguration","description":"A document conversion tool configuration defined inline in the agent for converting document artifacts to various formats.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'document_conversion' for inline document conversion tool configurations.","default":"document_conversion"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the document conversion tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to convert.","type":"string","example":"art_abc123"},"output_format":{"description":"Output format for the converted document.","type":"string","enum":["markdown","structured_document"],"example":"markdown"},"description":{"description":"Optional description for the converted artifact.","type":"string","example":"PDF converted to markdown"}},"additionalProperties":false,"title":"DocumentConversionToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]}}},"oneOf":[{"title":"InlineDynamicVectaraToolConfiguration","description":"An inline configuration for built-in Vectara tools that have implementations within the platform but do not have a dedicated configuration type schema. Use the List Tools endpoint to discover available tools and obtain the `tool_id` required for this configuration.\n","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'dynamic_vectara' for generic Vectara tool configurations.","default":"dynamic_vectara"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for tool calls. The key specifies the location in the tool arguments to overide, and the value specifies what to override with. The LLM will not be able to change the parameters, nor know those values exist within the tool.\n\nThe values can also be dynamic references to context values using $ref with dot notation path syntax:\n- Static value: \"fixed_value\" or 123\n- Dynamic reference: `{\"$ref\": \"session.metadata.field_name\"}`\n\nReferences are resolved at runtime from context:\n- session.metadata.* - Access session metadata fields\n- agent.metadata.* - Access agent metadata fields\n\nExample:\n `{\"query\": {\"$ref\": \".session.metadata.query\"}}`\n\nIf you want to have a real value `\"$ref\"` use `\"$$ref\"`, that is you can escape the first $ by using $$.","type":"object","additionalProperties":true,"example":{"custom_param":"value","limit":10}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineMcpToolConfiguration","description":"An MCP tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'mcp' for inline MCP tool configurations.","default":"mcp"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for tool calls. The key specifies the location in the tool arguments to overide, and the value specifies what to override with. The LLM will not be able to change the parameters, nor know those values exist within the tool.\n\nThe values can also be dynamic references to context values using $ref with dot notation path syntax:\n- Static value: \"fixed_value\" or 123\n- Dynamic reference: `{\"$ref\": \"session.metadata.field_name\"}`\n\nReferences are resolved at runtime from context:\n- session.metadata.* - Access session metadata fields\n- agent.metadata.* - Access agent metadata fields\n\nExample:\n `{\"query\": {\"$ref\": \".session.metadata.query\"}}`\n\nIf you want to have a real value `\"$ref\"` use `\"$$ref\"`, that is you can escape the first $ by using $$.","type":"object","additionalProperties":true,"example":{"custom_param":"value","limit":10}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineCorporaSearchToolConfiguration","description":"A corpora search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'corpora_search' for inline corpora search tool configurations.","default":"corpora_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the corpus search call such as the query. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query string, which is the question the user is asking. If not provided, will be filled in by the agent.","type":"string","maxLength":5000,"example":"Am I allowed to bring pets to work?"}},"additionalProperties":false,"title":"CorporaSearchToolParameters"},"query_configuration":{"description":"User-configurable settings for the corpus search that are not exposed to the LLM. Supports dynamic references for runtime resolution from session context.","title":"AgentCorporaSearchQueryConfiguration","type":"object","properties":{"search":{"title":"AgentSearchCorporaParameters","description":"Agent-specific search parameters that support eager references.","type":"object","properties":{"corpora":{"description":"The corpora to search, with support for eager references.","type":"array","items":{"title":"AgentKeyedSearchCorpus","description":"Agent-specific keyed search corpus that supports eager references for corpus_key and metadata_filter.","type":"object","properties":{"corpus_key":{"description":"The corpus to search. Can be either:\n- A static string: \"my-corpus\"\n- An EagerReference object: {\"$ref\": \"session.metadata.corpus\"}\n\nWhen an EagerReference is provided, the $ref path is resolved from the session context\nat the start of each turn, before LLM processing begins.\n","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"custom_dimensions":{"description":"The custom dimensions as additional weights.","type":"object","additionalProperties":{"type":"number","format":"double","nullable":false},"title":"CustomDimensions"},"metadata_filter":{"description":"The filter to narrow search results. Can be either:\n- A static string: \"doc.department = 'engineering'\"\n- An EagerReference object: {\"$ref\": \"session.metadata.filters.user\"}\n\nWhen an EagerReference is provided, the $ref path is resolved from the session context\nat the start of each turn, before LLM processing begins.\n","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"lexical_interpolation":{"description":"How much to weigh lexical scores compared to the embedding score.","type":"number","format":"float","minimum":0,"maximum":1},"semantics":{"description":"Indicates whether to consider a query against this corpus as a query or a response.","type":"string","enum":["default","query","response"],"default":"default","title":"SearchSemantics"},"query":{"description":"Query override for this specific corpus.","type":"string","maxLength":5000}},"required":["corpus_key"]},"minItems":1},"offset":{"description":"Number of results to skip for pagination.","type":"integer","format":"int32","minimum":0,"default":0},"limit":{"description":"Maximum number of results to return.","type":"integer","format":"int32","minimum":1,"default":10},"context_configuration":{"type":"object","description":"Configuration on the presentation of each document part in the result set. You can only use characters_before/after or sentences_before/after, but not both. If you specify both in the query, sentences_before/after takes precedence","properties":{"characters_before":{"description":"The number of characters that are shown before the matching document part. This is useful to show the context of the document part in the wider document. Ignored if `sentences_before` is set. Vectara will capture the full sentence that contains the captured characters, to not lose the meaning caused by a truncated word or sentence.","type":"integer","format":"int32"},"characters_after":{"description":"The number of characters that are shown after the matching document part. This is useful to show the context of the document part in the wider document. Ignored if `sentences_after` is set. Vectara will capture the full sentence that contains the captured characters, to not lose the meaning caused by a truncated word or sentence.","type":"integer","format":"int32"},"sentences_before":{"description":"The number of sentences that are shown before the matching document part. This is useful to show the context of the document part in the wider document.","type":"integer","format":"int32","default":0,"minimum":0,"example":2},"sentences_after":{"description":"The number of sentences that are shown after the matching document part. This is useful to show the context of the document part in the wider document.","type":"integer","format":"int32","default":0,"minimum":0,"example":2},"start_tag":{"description":"The tag that wraps the document part at the start. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the context before ends and the document part begins.","type":"string","example":""},"end_tag":{"description":"The tag that wraps the document part at the end. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the document part ends and the context after begins.","type":"string","example":""}},"example":{"sentences_before":2,"sentences_after":2,"start_tag":"","end_tag":""},"title":"ContextConfiguration"},"reranker":{"type":"object","description":"Rerank results of the search. Rerankers are very powerful tools to improve the order of search results. By default the search will use the most powerful reranker available to the customer's plan. To disable reranking, set the reranker `type` to `\"none\"`.","discriminator":{"propertyName":"type","mapping":{"customer_reranker":{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},"userfn":{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},"mmr":{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},"chain":{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},"none":{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}}},"oneOf":[{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}],"title":"SearchReranker"}},"required":["corpora"]},"generation":{"description":"The parameters to control generation.","type":"object","properties":{"enabled":{"description":"Whether generation is enabled for this query. This field is ignored if using chat.","type":"boolean","default":true},"generation_preset_name":{"description":"The preset values to use to feed the query results and other context to the model. \n\nA `generation_preset` is an object with a bundle of properties that specifies: \n* The `prompt_template` that is rendered and then sent to the LLM. \n* The LLM used. * `model_parameter`s such as temperature.\n\nAll of these properties except the model can be overridden by setting them in this object. Even when a `prompt_template` is set, the `generation_preset_name` is used to set the model used. See `model_parameters.model` if you want to set the model explicitly.\n\nIf `generation_preset_name` is not set, the Vectara platform will use the default model and prompt.'\n","type":"string","minLength":1,"example":"mockingbird-2.0"},"prompt_name":{"description":"Use `generation_preset_name` instead of `prompt_name`.","type":"string","minLength":1,"example":"mockingbird-2.0","deprecated":true},"max_used_search_results":{"description":"The maximum number of search results to be available to the prompt.","type":"integer","format":"int32","minimum":0,"default":5},"prompt_template":{"description":"Vectara manages both system and user roles and prompts for the generative LLM out of the box by default. However, users can override the `prompt_template` via this variable. The `prompt_template` is in the form of an Apache Velocity template. For more details on how to configure the `prompt_template`, see the [long-form documentation](https://docs.vectara.com/docs/prompts/vectara-prompt-engine).","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n"},"prompt_text":{"description":"This property is deprecated in favor of clearer naming. Use `prompt_template`. This property will be ignored if `prompt_template` is set.","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n","deprecated":true},"max_response_characters":{"description":"Controls the length of the generated output. This is a rough estimate and not a hard limit: the end output can be longer or shorter than this value. This is generally implemented by including the `max_response_characters` in the prompt, and the LLM's instruction following capability dictates how closely the generated output is limited.","type":"integer","format":"int32","example":300,"minimum":0},"response_language":{"description":"Languages that the Vectara platform supports.","type":"string","enum":["auto","eng","deu","fra","zho","kor","ara","rus","tha","nld","ita","por","spa","jpn","pol","tur","vie","ind","ces","ukr","ell","heb","fas","hin","urd","swe","ben","msa","ron"],"default":"auto","title":"Language"},"model_parameters":{"title":"ModelParameters","description":"The parameters for the model. WARNING: This is an experimental feature, and breakable at any point with virtually no notice. It is meant for experimentation to converge on optimal parameters that can then be set in the prompt definitions.","type":"object","properties":{"llm_name":{"description":"The model (e.g., `gpt-4`) to use for summarization. If specified, it will override the model behind `generation_preset_name`.","type":"string","example":"gpt4"},"max_tokens":{"description":"The maximum number of tokens to be returned by the model.","type":"integer","format":"int32","minimum":1},"temperature":{"description":"The sampling temperature to use. Higher values make the output more random, while lower values make it more focused and deterministic.","type":"number","format":"float"},"frequency_penalty":{"description":"Higher values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.","type":"number","format":"float"},"presence_penalty":{"description":"Higher values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.","type":"number","format":"float"}}},"citations":{"description":"Style the generator should use when making citations.","type":"object","properties":{"style":{"description":"The citation style that you want to use in the summary: \n* `numeric` - Citations formatted as simple numerals: \\[1\\], \\[2\\], etc.\n* `none` - Citations removed from text.\n* `html` - Citation formatted as a URL like `text_pattern`.\n* `markdown` - Formatted as `[text_pattern](url_pattern)`.\n","type":"string","enum":["none","numeric","html","markdown"]},"url_pattern":{"description":"The URL pattern if the citation_style is set to `html` or `markdown`. The pattern can access metadata attributes in the document or part. e.g. `https://my.doc/foo/{doc.id}/{part.id}` The default `url_pattern` is an empty string.","type":"string","example":"https://vectara.com/documents/{doc.id}"},"text_pattern":{"description":"The text pattern if the citation_style is set to `html` or `markdown`. This pattern sets the href for HTML or the text within `[]` in markdown, and defaults to N being the index of result if it is not set. The default citation style looks like `[N]()` for markdown. You can use metadata attributes in the `text_pattern`. For example, the pattern `{doc.title}` with citation style `markdown` would result in final citation output like `[Title]()` when the document's metadata includes `{\"title\":\"Title\"}`.","type":"string","example":"{doc.title}"}},"title":"CitationParameters"},"enable_factual_consistency_score":{"description":"Enable returning the factual consistency score with query results.","type":"boolean","default":true}},"title":"GenerationParameters"},"save_history":{"description":"Whether to save the query to history.","type":"boolean"}},"required":["search"]}},"required":["type","query_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineWebSearchToolConfiguration","description":"A web search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'web_search' for inline web search tool configurations.","default":"web_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the web search tool call such as limit etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query to execute.","type":"string","example":"latest AI developments 2024"},"limit":{"description":"Maximum number of results to return.","type":"integer","minimum":1,"maximum":20,"example":10},"provider":{"description":"Search provider to use.","type":"string","enum":["tavily"],"example":"tavily"},"include_domains":{"description":"List of domains to specifically include in search results. When specified, results will ONLY come from these domains. Supports exact domains (e.g., \"github.com\"), subdomains (e.g., \"docs.github.com\"), and wildcard patterns (e.g., \"*.github.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["github.com","docs.github.com","*.stackoverflow.com"]},"exclude_domains":{"description":"List of domains to specifically exclude from search results. Supports exact domains (e.g., \"spam.com\"), subdomains (e.g., \"bad.spam.com\"), and wildcard patterns (e.g., \"*.spam.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["spam.com","unreliable-source.com"]}},"additionalProperties":false,"title":"WebSearchToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineWebGetToolConfiguration","description":"A web get tool configuration defined inline in the agent for fetching content from URLs.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'web_get' for inline web get tool configurations.","default":"web_get"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the web get tool call. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"url":{"description":"The URL to fetch content from.","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"method":{"description":"HTTP method to use.","type":"string","enum":["GET","POST","PUT","DELETE","HEAD"]},"headers":{"description":"HTTP headers to include in the request.","oneOf":[{"type":"object","additionalProperties":{"type":"string"}},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"body":{"description":"Request body for POST/PUT requests.","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"follow_redirects":{"description":"Whether to follow HTTP redirects.","oneOf":[{"type":"boolean"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"timeout_seconds":{"description":"Request timeout in seconds.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"head_lines":{"description":"Number of lines from start to include in response.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"tail_lines":{"description":"Number of lines from end to include in response.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"ssl_verify":{"description":"Whether to verify SSL certificates.","oneOf":[{"type":"boolean"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"max_content_bytes":{"description":"Maximum response size in bytes before truncation.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]}},"additionalProperties":false,"title":"WebGetToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineLambdaToolConfiguration","description":"A lambda tool configuration defined inline in the agent for executing user-defined functions.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'lambda' for inline lambda tool configurations.","default":"lambda"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments that will be passed to the lambda function. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","additionalProperties":true,"example":{"custom_param":"value"}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineStructuredIndexingToolConfiguration","description":"A structured indexing tool configuration defined inline in the agent for indexing into the Vectara platform.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'structured_indexing' for inline structured indexing tool configurations.","default":"structured_indexing"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the structured indexing tool call such as corpus_key etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"corpus_key":{"description":"The key identifying the target corpus for document indexing. If not provided, will be filled in by the agent.","type":"string","example":"my-knowledge-base"},"document_id":{"description":"The unique identifier for the document within the corpus, preferably human readable IDs.","type":"string","example":"annual_report_2024"},"title":{"description":"The title of the document being indexed.","type":"string","example":"2024 Annual ESG Report"},"description":{"description":"A brief description or summary of the document content.","type":"string","example":"Comprehensive environmental, social, and governance report"},"metadata":{"description":"The metadata key-value pairs to associate with the document. If present, this gets merged with existing artifact metadata.","type":"object","additionalProperties":true,"example":{"doc_type":"annual_report","year":2024,"department":"sustainability"}},"document":{"description":"The structured document to index with full hierarchical content.","type":"object","additionalProperties":true,"example":{"id":"annual_report_2024","type":"structured","title":"2024 Annual ESG Report"}}},"additionalProperties":false,"title":"StructuredIndexingToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineSubAgentToolConfiguration","description":"A sub-agent tool configuration defined inline in the agent for invoking specialized sub-agents.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'sub_agent' for inline sub-agent tool configurations.","default":"sub_agent"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the sub-agent tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"message":{"description":"The detailed task instructions for the sub-agent to perform autonomously.","type":"string","example":"Review the code changes in pull request \\#123 for security issues"},"session_tti_minutes":{"description":"Time to idle in minutes before the session expires.","type":"integer","format":"int64","minimum":1,"example":60}},"additionalProperties":false,"title":"SubAgentToolParameters"},"sub_agent_configuration":{"description":"User-configurable settings for the sub-agent tool. These parameters are never exposed to the agent.","type":"object","properties":{"agent_key":{"description":"A unique key that identifies an agent.","type":"string","pattern":"[0-9a-zA-Z_-]+$","minLength":1,"maxLength":50,"example":"customer_support","title":"AgentKey"},"session_mode":{"description":"Controls session behavior for sub-agent invocations:\n- llm_controlled: LLM decides whether to create new or resume existing session\n- persistent: Always reuse the same session (created on first invocation)\n- ephemeral: Always create a new session on each invocation\n","type":"string","enum":["llm_controlled","persistent","ephemeral"],"default":"llm_controlled","example":"llm_controlled","title":"SubAgentSessionMode"},"session_metadata":{"description":"Optional metadata to associate with the sub-agent session. Can contain any key-value pairs.","type":"object","additionalProperties":true,"example":{"source":"parent_agent","task_type":"code_review"}}},"required":["agent_key"],"title":"SubAgentConfiguration"}},"required":["type","sub_agent_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineArtifactReadToolConfiguration","description":"An artifact read tool configuration defined inline in the agent for reading artifacts from the session workspace.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_read' for inline artifact read tool configurations.","default":"artifact_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to read.","type":"string","example":"art_abc123"},"encoding":{"description":"The encoding format for the content.","type":"string","enum":["raw","base64"],"example":"raw"},"start_line":{"description":"Optional starting line number (1-indexed).","type":"integer","format":"int32","example":100},"end_line":{"description":"Optional ending line number (1-indexed, inclusive).","type":"integer","format":"int32","example":200}},"additionalProperties":false,"title":"ArtifactReadToolParameters"},"tool_configuration":{"description":"User-configurable settings for the artifact read tool.","type":"object","properties":{"max_size_bytes":{"description":"Maximum file size in bytes for full reads without line ranges. Defaults to 256KB.","type":"integer","format":"int64","minimum":1,"maximum":10485760,"default":262144},"max_lines":{"description":"Maximum number of lines for range-based reads. Defaults to 200.","type":"integer","format":"int32","minimum":1,"maximum":10000,"default":200}},"title":"ArtifactReadConfiguration"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineArtifactGrepToolConfiguration","description":"An artifact grep tool configuration defined inline in the agent for searching through artifact content.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_grep' for inline artifact grep tool configurations.","default":"artifact_grep"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact grep tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to search.","type":"string","example":"art_abc123"},"pattern":{"description":"The pattern to search for (supports grep regex).","type":"string","example":"error|exception"},"grep_options":{"description":"Optional grep command options.","type":"array","items":{"type":"string"},"example":["-i","-n"]}},"additionalProperties":false,"title":"ArtifactGrepToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineImageReadToolConfiguration","description":"An image read tool configuration defined inline in the agent for loading images into the conversation context.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'image_read' for inline image read tool configurations.","default":"image_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the image read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the image artifact to view.","type":"string","pattern":"^art_[a-z0-9_-]+$","example":"art_photo_a3f2"},"detail":{"description":"Detail level for image processing.","type":"string","enum":["auto","low","high"],"default":"auto","example":"auto"}},"additionalProperties":false,"title":"ImageReadToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineDocumentConversionToolConfiguration","description":"A document conversion tool configuration defined inline in the agent for converting document artifacts to various formats.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'document_conversion' for inline document conversion tool configurations.","default":"document_conversion"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the document conversion tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to convert.","type":"string","example":"art_abc123"},"output_format":{"description":"Output format for the converted document.","type":"string","enum":["markdown","structured_document"],"example":"markdown"},"description":{"description":"Optional description for the converted artifact.","type":"string","example":"PDF converted to markdown"}},"additionalProperties":false,"title":"DocumentConversionToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]}],"example":[{"type":"web_search","argument_override":{"limit":5,"include_domains":["github.com","stackoverflow.com"],"exclude_domains":["spam.com"]}}]},"example":{"customer_search":{"type":"corpora_search","argument_override":{"query":"customer support documentation"}}}},"model":{"title":"AgentModel","description":"Configuration for the model used in this step, including the model name and arbitrary parameters.","type":"object","properties":{"name":{"description":"The name of the model to use for this step.","type":"string","example":"gpt-4"},"parameters":{"description":"Arbitrary model-specific parameters that can be passed to the model.","type":"object","additionalProperties":true,"example":{"temperature":0.7,"max_tokens":1000,"top_p":0.9}},"retry_configuration":{"description":"Optional retry configuration for handling transient failures. When not provided, no retry is performed.","title":"RetryConfiguration","type":"object","properties":{"enabled":{"description":"Whether retry is enabled. Enabled by default to provide resilience against transient failures.","type":"boolean","default":true,"example":true},"max_retries":{"description":"Maximum number of retry attempts after initial failure.","type":"integer","minimum":0,"maximum":10,"default":3,"example":3},"initial_backoff_ms":{"description":"Initial backoff time in milliseconds before first retry.","type":"integer","minimum":100,"maximum":60000,"default":1000,"example":1000},"max_backoff_ms":{"description":"Maximum backoff time in milliseconds between retries.","type":"integer","minimum":1000,"maximum":300000,"default":30000,"example":30000},"backoff_factor":{"description":"Multiplication factor for exponential backoff between retries.","type":"number","format":"double","minimum":1,"maximum":10,"default":2,"example":2}}}},"required":["name"]},"first_step":{"title":"AgentStep","description":"A step in an agent's execution flow that defines how the agent processes and responds to input.","discriminator":{"propertyName":"type","mapping":{"conversational":{"title":"ConversationalAgentStep","description":"A step that receives instructions and responds through dialogue. This is a step that gets instructions and engages in conversation with users based on those instructions. This only type step supported, with no way to go next steps. A conversational step responds to an input following its instructions and uses the agent tools. The first response from the model will terminate processing the input.","type":"object","properties":{"type":{"description":"The type of step, which is always 'conversational' for this step type.","type":"string","default":"conversational","example":"conversational"},"instructions":{"description":"List of instructions that guide the agent's behavior in this step. If no instructions are given, the agent is instructed to be helpful and use tools.","type":"array","items":{"title":"AgentStepInstruction","description":"An instruction that can be used in an agent step, either by reference or defined inline.","discriminator":{"propertyName":"type","mapping":{"reference":{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},"inline":{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Base properties for creating an instruction, without the type discriminator field.","type":"object","properties":{"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["name","template"],"title":"InstructionRequestBase"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}}},"oneOf":[{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Base properties for creating an instruction, without the type discriminator field.","type":"object","properties":{"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["name","template"],"title":"InstructionRequestBase"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}],"example":[{"type":"reference","name":"Customer Support Initial Instruction","version":1},{"type":"inline","name":"Temporary On-the-fly Guideline","description":"A special instruction for this specific step only.","template_type":"velocity","template":"Please prioritize issues tagged with 'urgent' for the next hour."}]}},"output_parser":{"title":"AgentOutputParser","description":"Configuration for how the agent's output should be parsed and formatted.\n\nThe output parser determines how the agent's responses are processed before being returned to the user.\n","discriminator":{"propertyName":"type","mapping":{"default":{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]},"structured":{"title":"StructuredOutputParser","description":"Parses agent output as structured JSON conforming to a specified schema.\nUses the model's native structured outputs capability to guarantee valid JSON\nthat adheres to the provided schema. This is useful when you need the agent's\nfinal response in a specific format for downstream processing.\n\nWhen this parser is configured, the agent emits a StructuredOutputEvent instead\nof AgentOutputEvent. The StructuredOutputEvent contains the validated JSON content\nalong with the schema name for identification.\n\nNote: When using structured outputs, the agent can still use tools normally.\nThe schema constraint only applies to the agent's final text response.\nWhen streaming, the structured output is delivered as a single complete event\nrather than being streamed in chunks.\n","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'structured' for this parser type.","type":"string","default":"structured","example":"structured"},"json_schema":{"description":"Specification wrapper for a named JSON schema.","type":"object","required":["name","schema"],"properties":{"description":{"description":"A description of what the response format is for, used by the model to determine how to respond in the format.","type":"string"},"name":{"description":"A unique name identifier for this schema.","type":"string","pattern":"^[a-zA-Z0-9_-]+$","minLength":1},"strict":{"description":"When true, enforces strict schema adherence. The model will always follow the exact schema structure.\nWhen strict mode is enabled, the schema must follow these rules:\n- `additionalProperties: false` must be set on all object types\n- All properties must be listed in the `required` array\n- Maximum 100 properties total, with max 5 levels of nesting\n- Unsupported keywords: minLength, maxLength, pattern, minimum, maximum, minItems, maxItems\n- Root schema cannot use `anyOf` type\n","type":"boolean","nullable":true},"schema":{"description":"The JSON Schema definition that the model output must conform to.","type":"object","required":["type"],"properties":{"type":{"description":"The JSON type for this schema element.","type":"string","enum":["object","array","string","number","integer","boolean"]},"properties":{"description":"Property definitions when type is 'object'. Each key maps to a nested JsonSchemaDefinition.","type":"object","additionalProperties":{"description":"A JSON Schema definition for specifying data structure. Supports recursive schemas for nested objects.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"}},"required":{"description":"List of required property names when type is 'object'.","type":"array","items":{"type":"string"}},"additionalProperties":{"description":"Whether to allow additional properties beyond those defined.","type":"boolean","default":false},"items":{"description":"Schema for array items when type is 'array'.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"},"enum":{"description":"Allowed values for this schema element.","type":"array"},"description":{"description":"Human-readable description of this schema element.","type":"string"}},"title":"JsonSchemaDefinition"}},"title":"JsonSchemaSpec"}},"required":["type","json_schema"],"x-vectaraParents":["AgentOutputParser"]}}},"oneOf":[{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]},{"title":"StructuredOutputParser","description":"Parses agent output as structured JSON conforming to a specified schema.\nUses the model's native structured outputs capability to guarantee valid JSON\nthat adheres to the provided schema. This is useful when you need the agent's\nfinal response in a specific format for downstream processing.\n\nWhen this parser is configured, the agent emits a StructuredOutputEvent instead\nof AgentOutputEvent. The StructuredOutputEvent contains the validated JSON content\nalong with the schema name for identification.\n\nNote: When using structured outputs, the agent can still use tools normally.\nThe schema constraint only applies to the agent's final text response.\nWhen streaming, the structured output is delivered as a single complete event\nrather than being streamed in chunks.\n","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'structured' for this parser type.","type":"string","default":"structured","example":"structured"},"json_schema":{"description":"Specification wrapper for a named JSON schema.","type":"object","required":["name","schema"],"properties":{"description":{"description":"A description of what the response format is for, used by the model to determine how to respond in the format.","type":"string"},"name":{"description":"A unique name identifier for this schema.","type":"string","pattern":"^[a-zA-Z0-9_-]+$","minLength":1},"strict":{"description":"When true, enforces strict schema adherence. The model will always follow the exact schema structure.\nWhen strict mode is enabled, the schema must follow these rules:\n- `additionalProperties: false` must be set on all object types\n- All properties must be listed in the `required` array\n- Maximum 100 properties total, with max 5 levels of nesting\n- Unsupported keywords: minLength, maxLength, pattern, minimum, maximum, minItems, maxItems\n- Root schema cannot use `anyOf` type\n","type":"boolean","nullable":true},"schema":{"description":"The JSON Schema definition that the model output must conform to.","type":"object","required":["type"],"properties":{"type":{"description":"The JSON type for this schema element.","type":"string","enum":["object","array","string","number","integer","boolean"]},"properties":{"description":"Property definitions when type is 'object'. Each key maps to a nested JsonSchemaDefinition.","type":"object","additionalProperties":{"description":"A JSON Schema definition for specifying data structure. Supports recursive schemas for nested objects.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"}},"required":{"description":"List of required property names when type is 'object'.","type":"array","items":{"type":"string"}},"additionalProperties":{"description":"Whether to allow additional properties beyond those defined.","type":"boolean","default":false},"items":{"description":"Schema for array items when type is 'array'.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"},"enum":{"description":"Allowed values for this schema element.","type":"array"},"description":{"description":"Human-readable description of this schema element.","type":"string"}},"title":"JsonSchemaDefinition"}},"title":"JsonSchemaSpec"}},"required":["type","json_schema"],"x-vectaraParents":["AgentOutputParser"]}]}},"required":["type","instructions","output_parser"],"x-vectaraParents":["AgentStep"]}}},"oneOf":[{"title":"ConversationalAgentStep","description":"A step that receives instructions and responds through dialogue. This is a step that gets instructions and engages in conversation with users based on those instructions. This only type step supported, with no way to go next steps. A conversational step responds to an input following its instructions and uses the agent tools. The first response from the model will terminate processing the input.","type":"object","properties":{"type":{"description":"The type of step, which is always 'conversational' for this step type.","type":"string","default":"conversational","example":"conversational"},"instructions":{"description":"List of instructions that guide the agent's behavior in this step. If no instructions are given, the agent is instructed to be helpful and use tools.","type":"array","items":{"title":"AgentStepInstruction","description":"An instruction that can be used in an agent step, either by reference or defined inline.","discriminator":{"propertyName":"type","mapping":{"reference":{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},"inline":{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Base properties for creating an instruction, without the type discriminator field.","type":"object","properties":{"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["name","template"],"title":"InstructionRequestBase"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}}},"oneOf":[{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Base properties for creating an instruction, without the type discriminator field.","type":"object","properties":{"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["name","template"],"title":"InstructionRequestBase"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}],"example":[{"type":"reference","name":"Customer Support Initial Instruction","version":1},{"type":"inline","name":"Temporary On-the-fly Guideline","description":"A special instruction for this specific step only.","template_type":"velocity","template":"Please prioritize issues tagged with 'urgent' for the next hour."}]}},"output_parser":{"title":"AgentOutputParser","description":"Configuration for how the agent's output should be parsed and formatted.\n\nThe output parser determines how the agent's responses are processed before being returned to the user.\n","discriminator":{"propertyName":"type","mapping":{"default":{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]},"structured":{"title":"StructuredOutputParser","description":"Parses agent output as structured JSON conforming to a specified schema.\nUses the model's native structured outputs capability to guarantee valid JSON\nthat adheres to the provided schema. This is useful when you need the agent's\nfinal response in a specific format for downstream processing.\n\nWhen this parser is configured, the agent emits a StructuredOutputEvent instead\nof AgentOutputEvent. The StructuredOutputEvent contains the validated JSON content\nalong with the schema name for identification.\n\nNote: When using structured outputs, the agent can still use tools normally.\nThe schema constraint only applies to the agent's final text response.\nWhen streaming, the structured output is delivered as a single complete event\nrather than being streamed in chunks.\n","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'structured' for this parser type.","type":"string","default":"structured","example":"structured"},"json_schema":{"description":"Specification wrapper for a named JSON schema.","type":"object","required":["name","schema"],"properties":{"description":{"description":"A description of what the response format is for, used by the model to determine how to respond in the format.","type":"string"},"name":{"description":"A unique name identifier for this schema.","type":"string","pattern":"^[a-zA-Z0-9_-]+$","minLength":1},"strict":{"description":"When true, enforces strict schema adherence. The model will always follow the exact schema structure.\nWhen strict mode is enabled, the schema must follow these rules:\n- `additionalProperties: false` must be set on all object types\n- All properties must be listed in the `required` array\n- Maximum 100 properties total, with max 5 levels of nesting\n- Unsupported keywords: minLength, maxLength, pattern, minimum, maximum, minItems, maxItems\n- Root schema cannot use `anyOf` type\n","type":"boolean","nullable":true},"schema":{"description":"The JSON Schema definition that the model output must conform to.","type":"object","required":["type"],"properties":{"type":{"description":"The JSON type for this schema element.","type":"string","enum":["object","array","string","number","integer","boolean"]},"properties":{"description":"Property definitions when type is 'object'. Each key maps to a nested JsonSchemaDefinition.","type":"object","additionalProperties":{"description":"A JSON Schema definition for specifying data structure. Supports recursive schemas for nested objects.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"}},"required":{"description":"List of required property names when type is 'object'.","type":"array","items":{"type":"string"}},"additionalProperties":{"description":"Whether to allow additional properties beyond those defined.","type":"boolean","default":false},"items":{"description":"Schema for array items when type is 'array'.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"},"enum":{"description":"Allowed values for this schema element.","type":"array"},"description":{"description":"Human-readable description of this schema element.","type":"string"}},"title":"JsonSchemaDefinition"}},"title":"JsonSchemaSpec"}},"required":["type","json_schema"],"x-vectaraParents":["AgentOutputParser"]}}},"oneOf":[{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]},{"title":"StructuredOutputParser","description":"Parses agent output as structured JSON conforming to a specified schema.\nUses the model's native structured outputs capability to guarantee valid JSON\nthat adheres to the provided schema. This is useful when you need the agent's\nfinal response in a specific format for downstream processing.\n\nWhen this parser is configured, the agent emits a StructuredOutputEvent instead\nof AgentOutputEvent. The StructuredOutputEvent contains the validated JSON content\nalong with the schema name for identification.\n\nNote: When using structured outputs, the agent can still use tools normally.\nThe schema constraint only applies to the agent's final text response.\nWhen streaming, the structured output is delivered as a single complete event\nrather than being streamed in chunks.\n","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'structured' for this parser type.","type":"string","default":"structured","example":"structured"},"json_schema":{"description":"Specification wrapper for a named JSON schema.","type":"object","required":["name","schema"],"properties":{"description":{"description":"A description of what the response format is for, used by the model to determine how to respond in the format.","type":"string"},"name":{"description":"A unique name identifier for this schema.","type":"string","pattern":"^[a-zA-Z0-9_-]+$","minLength":1},"strict":{"description":"When true, enforces strict schema adherence. The model will always follow the exact schema structure.\nWhen strict mode is enabled, the schema must follow these rules:\n- `additionalProperties: false` must be set on all object types\n- All properties must be listed in the `required` array\n- Maximum 100 properties total, with max 5 levels of nesting\n- Unsupported keywords: minLength, maxLength, pattern, minimum, maximum, minItems, maxItems\n- Root schema cannot use `anyOf` type\n","type":"boolean","nullable":true},"schema":{"description":"The JSON Schema definition that the model output must conform to.","type":"object","required":["type"],"properties":{"type":{"description":"The JSON type for this schema element.","type":"string","enum":["object","array","string","number","integer","boolean"]},"properties":{"description":"Property definitions when type is 'object'. Each key maps to a nested JsonSchemaDefinition.","type":"object","additionalProperties":{"description":"A JSON Schema definition for specifying data structure. Supports recursive schemas for nested objects.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"}},"required":{"description":"List of required property names when type is 'object'.","type":"array","items":{"type":"string"}},"additionalProperties":{"description":"Whether to allow additional properties beyond those defined.","type":"boolean","default":false},"items":{"description":"Schema for array items when type is 'array'.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"},"enum":{"description":"Allowed values for this schema element.","type":"array"},"description":{"description":"Human-readable description of this schema element.","type":"string"}},"title":"JsonSchemaDefinition"}},"title":"JsonSchemaSpec"}},"required":["type","json_schema"],"x-vectaraParents":["AgentOutputParser"]}]}},"required":["type","instructions","output_parser"],"x-vectaraParents":["AgentStep"]}]},"metadata":{"description":"Arbitrary metadata associated with the agent for customization and configuration.","type":"object","additionalProperties":true,"example":{"department":"customer_service","version":"1.2.0","owner":"support-team"}},"enabled":{"description":"Whether the agent is currently enabled and available for use.","type":"boolean","default":true,"example":true},"created_at":{"description":"Timestamp when the agent was created.","type":"string","format":"date-time","example":"2024-01-15T10:30:00Z"},"updated_at":{"description":"Timestamp when the agent was last updated.","type":"string","format":"date-time","example":"2024-01-16T14:45:00Z"}},"required":["key","name","tool_configurations","model","first_step","enabled"],"title":"Agent"}},"metadata":{"type":"object","description":"The standard metadata in the response of a list operation.","properties":{"page_key":{"description":"When requesting the next page of this list, this is needed as a query parameter.","type":"string"}},"example":{"page_key":"eyJvZmZzZXQiOjF9"},"title":"ListMetadata"}},"required":["agents","metadata"],"title":"ListAgentsResponse"}}}},"403":{"description":"Permissions do not allow listing agents.","content":{"application/json":{"schema":{"description":"A general error response with an error code and message.","type":"object","properties":{"messages":{"description":"The messages describing why the error occurred.","type":"array","items":{"title":"message","type":"string","example":"Internal server error."}},"request_id":{"description":"The ID of the request that can be used to help Vectara support debug what went wrong.","type":"string"}},"title":"Error"}}}}}}
>
diff --git a/www/docs/rest-api/list-api-keys.api.mdx b/www/docs/rest-api/list-api-keys.api.mdx
index d16f63d03..c936dc877 100644
--- a/www/docs/rest-api/list-api-keys.api.mdx
+++ b/www/docs/rest-api/list-api-keys.api.mdx
@@ -5,7 +5,7 @@ description: "The List API Keys API lists all existing API keys for a customer I
sidebar_label: "List API keys"
hide_title: true
hide_table_of_contents: true
-api: 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
+api: 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
sidebar_class_name: "get api-method"
info_path: docs/rest-api/vectara-rest-api-v-2
custom_edit_url: null
@@ -63,7 +63,7 @@ The List API Keys API lists all existing API keys for a customer ID. It also sho
diff --git a/www/docs/rest-api/list-app-client.api.mdx b/www/docs/rest-api/list-app-client.api.mdx
index 63649c0ec..fc0b32c42 100644
--- a/www/docs/rest-api/list-app-client.api.mdx
+++ b/www/docs/rest-api/list-app-client.api.mdx
@@ -5,7 +5,7 @@ description: "Retrieve a list of application clients configured for the customer
sidebar_label: "List App Clients"
hide_title: true
hide_table_of_contents: true
-api: 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
+api: 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
sidebar_class_name: "get api-method"
info_path: docs/rest-api/vectara-rest-api-v-2
custom_edit_url: null
@@ -62,7 +62,7 @@ Retrieve a list of application clients configured for the customer account.
diff --git a/www/docs/rest-api/list-jobs.api.mdx b/www/docs/rest-api/list-jobs.api.mdx
index b000d2bcc..ecb8394b9 100644
--- a/www/docs/rest-api/list-jobs.api.mdx
+++ b/www/docs/rest-api/list-jobs.api.mdx
@@ -5,7 +5,7 @@ description: "List jobs for the account. Jobs are background processes like repl
sidebar_label: "List jobs"
hide_title: true
hide_table_of_contents: true
-api: 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
+api: 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
sidebar_class_name: "get api-method"
info_path: docs/rest-api/vectara-rest-api-v-2
custom_edit_url: null
@@ -62,7 +62,7 @@ List jobs for the account. Jobs are background processes like replacing the filt
diff --git a/www/docs/rest-api/list-ll-ms.api.mdx b/www/docs/rest-api/list-ll-ms.api.mdx
index 1d4ca17b5..0f925bbd7 100644
--- a/www/docs/rest-api/list-ll-ms.api.mdx
+++ b/www/docs/rest-api/list-ll-ms.api.mdx
@@ -5,7 +5,7 @@ description: "List LLMs that can be used with query and chat endpoints. The LLM
sidebar_label: "List LLMs"
hide_title: true
hide_table_of_contents: true
-api: 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
+api: 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
sidebar_class_name: "get api-method"
info_path: docs/rest-api/vectara-rest-api-v-2
custom_edit_url: null
@@ -62,7 +62,7 @@ List LLMs that can be used with query and chat endpoints. The LLM is not directl
diff --git a/www/docs/rest-api/list-tools.api.mdx b/www/docs/rest-api/list-tools.api.mdx
index 3abeb5eac..86db81126 100644
--- a/www/docs/rest-api/list-tools.api.mdx
+++ b/www/docs/rest-api/list-tools.api.mdx
@@ -5,7 +5,7 @@ description: "List all tools available to the authenticated user, with optional
sidebar_label: "List tools"
hide_title: true
hide_table_of_contents: true
-api: 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
+api: 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
sidebar_class_name: "get api-method"
info_path: docs/rest-api/vectara-rest-api-v-2
custom_edit_url: null
@@ -62,7 +62,7 @@ List all tools available to the authenticated user, with optional filtering and
threshold]\n return {\n 'count': len(filtered),\n 'average': sum(filtered) / len(filtered) if filtered else 0,\n 'filtered_data': filtered\n }\n"},"validation_status":{"description":"The validation status of the code.","type":"string","enum":["pending","valid","invalid"],"example":"valid"},"validation_errors":{"description":"List of validation errors if the code is invalid.","type":"array","items":{"type":"string"}},"execution_configuration":{"description":"Execution configuration for the function.","type":"object","properties":{"max_execution_time_seconds":{"description":"Maximum execution time in seconds.","type":"integer","minimum":1,"maximum":300,"default":30,"example":30},"max_memory_mb":{"description":"Maximum memory usage in megabytes.","type":"integer","minimum":10,"maximum":1024,"default":100,"example":100}},"title":"ExecutionConfiguration"}},"required":["language","code"],"title":"FunctionDefinition"}},"required":["type","id","name","description","language","enabled","function_definition"],"x-vectaraParents":["Tool"],"title":"LambdaTool"},"structured_indexing":{"description":"A tool that indexes structured documents into the Vectara platform with full control over document structure, sections, metadata, tables, and images.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `structured_indexing`.","type":"string","default":"structured_indexing","example":"structured_indexing"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"StructuredIndexingTool"},"sub_agent":{"description":"A tool that spawns a specialized sub-agent to handle complex, multi-step tasks autonomously.\nSub-agents maintain separate context from the main agent and can be specialized for specific types of tasks like code review, general research, or output styling.\n","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `sub_agent`.","type":"string","default":"sub_agent","example":"sub_agent"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"SubAgentTool"},"artifact_create":{"description":"A tool that creates artifacts from text or structured data content that can be stored and referenced later.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_create`.","type":"string","default":"artifact_create","example":"artifact_create"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactCreateTool"},"artifact_read":{"description":"A tool that reads artifact content from the agent session workspace with flexible size and range options.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_read`.","type":"string","default":"artifact_read","example":"artifact_read"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactReadTool"},"artifact_grep":{"description":"A tool that searches through an artifact's content using grep with support for all standard grep options.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_grep`.","type":"string","default":"artifact_grep","example":"artifact_grep"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactGrepTool"},"image_read":{"description":"A tool that loads image artifacts into the conversation context for viewing and analysis.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `image_read`.","type":"string","default":"image_read","example":"image_read"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ImageReadTool"},"document_conversion":{"description":"A tool that converts document artifacts (PDF, Word, PowerPoint, etc.) to various formats.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `document_conversion`.","type":"string","default":"document_conversion","example":"document_conversion"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"DocumentConversionTool"}}},"oneOf":[{"description":"An MCP (Model Context Protocol) tool that connects to external MCP servers for extended functionality.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `mcp`.","type":"string","default":"mcp","example":"mcp"},"server_id":{"description":"Unique identifier for a tool server.","type":"string","pattern":"^tsr_.*","example":"tsr_rag_search","title":"ToolServerId"},"annotations":{"description":"Optional hints about tool behaviour/metadata.","type":"object","properties":{"read_only_hint":{"description":"If true, the tool does not modify its environment.","type":"boolean"},"destructive_hint":{"description":"If true, the tool may perform destructive updates.","type":"boolean"},"idempotent_hint":{"description":"If true, repeated calls with same args have no additional effect.","type":"boolean"},"open_world_hint":{"description":"If true, tool interacts with external entities.","type":"boolean"}},"additionalProperties":true,"title":"McpToolAnnotations"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"McpTool"},{"description":"A corpora search tool that searches through Vectara corpora to find relevant information.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `corpora_search`.","type":"string","default":"corpora_search","example":"corpora_search"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"CorporaSearchTool"},{"description":"A web search tool that searches the internet for relevant information.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `web_search`.","type":"string","default":"web_search","example":"web_search"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"WebSearchTool"},{"description":"A user-defined function that can be executed as a tool by agents.\nLambda tools run in a secure, sandboxed environment with resource limits.\nCurrently supports Python 3.12 with a curated set of libraries.\n","type":"object","properties":{"type":{"description":"This should always be `lambda`.","type":"string","default":"lambda","example":"lambda"},"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the function does and how it can be used.","type":"string"},"language":{"description":"The programming language of the lambda function. Currently only Python 3.12 is supported.","type":"string","enum":["python"],"default":"python","example":"python"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the function.","type":"object","additionalProperties":true,"example":{"type":"object","properties":{"data":{"type":"array","description":"Input data to process."},"threshold":{"type":"number","description":"Threshold value for filtering."}}}},"output_schema":{"description":"The schema that defines the expected output structure from the function.","type":"object","additionalProperties":true},"function_definition":{"description":"Definition of a function to be executed as a tool in a sandboxed environment.\n\n**Python Environment:**\n- Python version: 3.12\n- Execution: Sandboxed using gVisor for security isolation\n- **Allowed modules**: `json`, `math`, `datetime`, `collections`, `itertools`, `functools`, `re`, `time`, `typing`\n- Memory limit: 100MB (configurable up to 1GB)\n- Execution timeout: 30 seconds (configurable up to 300 seconds)\n- Network access: Disabled for security\n- File system access: Read-only temporary workspace\n- No custom package installation supported (security constraint)\n\n**Type Annotations:**\n- Use type annotations for automatic input/output schema discovery\n- Supported typing constructs: `List`, `Dict`, `Optional`, `Union`\n- Import from `typing` module when using complex types\n","type":"object","properties":{"language":{"description":"The programming language of the function. Currently only Python 3.12 is supported.","type":"string","enum":["python"],"example":"python"},"code":{"description":"The function code.\n\n**Required**: Must define a `process()` entry point function. Use type annotations on parameters for automatic schema discovery.\n\nParameters are passed as keyword arguments matched to the function signature.\n","type":"string","example":"def process(data: list, threshold: float = 0):\n filtered = [x for x in data if x > threshold]\n return {\n 'count': len(filtered),\n 'average': sum(filtered) / len(filtered) if filtered else 0,\n 'filtered_data': filtered\n }\n"},"validation_status":{"description":"The validation status of the code.","type":"string","enum":["pending","valid","invalid"],"example":"valid"},"validation_errors":{"description":"List of validation errors if the code is invalid.","type":"array","items":{"type":"string"}},"execution_configuration":{"description":"Execution configuration for the function.","type":"object","properties":{"max_execution_time_seconds":{"description":"Maximum execution time in seconds.","type":"integer","minimum":1,"maximum":300,"default":30,"example":30},"max_memory_mb":{"description":"Maximum memory usage in megabytes.","type":"integer","minimum":10,"maximum":1024,"default":100,"example":100}},"title":"ExecutionConfiguration"}},"required":["language","code"],"title":"FunctionDefinition"}},"required":["type","id","name","description","language","enabled","function_definition"],"x-vectaraParents":["Tool"],"title":"LambdaTool"},{"description":"A tool that indexes structured documents into the Vectara platform with full control over document structure, sections, metadata, tables, and images.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `structured_indexing`.","type":"string","default":"structured_indexing","example":"structured_indexing"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"StructuredIndexingTool"},{"description":"A tool that spawns a specialized sub-agent to handle complex, multi-step tasks autonomously.\nSub-agents maintain separate context from the main agent and can be specialized for specific types of tasks like code review, general research, or output styling.\n","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `sub_agent`.","type":"string","default":"sub_agent","example":"sub_agent"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"SubAgentTool"},{"description":"A tool that creates artifacts from text or structured data content that can be stored and referenced later.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_create`.","type":"string","default":"artifact_create","example":"artifact_create"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactCreateTool"},{"description":"A tool that reads artifact content from the agent session workspace with flexible size and range options.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_read`.","type":"string","default":"artifact_read","example":"artifact_read"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactReadTool"},{"description":"A tool that searches through an artifact's content using grep with support for all standard grep options.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_grep`.","type":"string","default":"artifact_grep","example":"artifact_grep"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactGrepTool"},{"description":"A tool that loads image artifacts into the conversation context for viewing and analysis.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `image_read`.","type":"string","default":"image_read","example":"image_read"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ImageReadTool"},{"description":"A tool that converts document artifacts (PDF, Word, PowerPoint, etc.) to various formats.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `document_conversion`.","type":"string","default":"document_conversion","example":"document_conversion"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"DocumentConversionTool"}],"title":"Tool"}},"metadata":{"type":"object","description":"The standard metadata in the response of a list operation.","properties":{"page_key":{"description":"When requesting the next page of this list, this is needed as a query parameter.","type":"string"}},"example":{"page_key":"eyJvZmZzZXQiOjF9"},"title":"ListMetadata"}},"required":["tools"],"title":"ListToolsResponse"}}}},"403":{"description":"Permissions do not allow listing tools.","content":{"application/json":{"schema":{"description":"A general error response with an error code and message.","type":"object","properties":{"messages":{"description":"The messages describing why the error occurred.","type":"array","items":{"title":"message","type":"string","example":"Internal server error."}},"request_id":{"description":"The ID of the request that can be used to help Vectara support debug what went wrong.","type":"string"}},"title":"Error"}}}}}}
+ responses={{"200":{"description":"List of available tools.","content":{"application/json":{"schema":{"description":"Response containing a list of tools.","type":"object","properties":{"tools":{"description":"List of tools.","type":"array","items":{"description":"A tool that can be used by agents to perform specific actions or operations.","x-vectara-base-schema":"#/ToolBase","discriminator":{"propertyName":"type","mapping":{"dynamic_vectara":{"description":"A tool type for built-in Vectara tools that have implementations within the platform but do not have a dedicated tool type schema. Examples include tools like `sub_agent`, `corpora_search`, `web_search`, and similar platform-provided capabilities. Use the List Tools endpoint to discover available tools and obtain the `tool_id` required for configuration.\n","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `dynamic_vectara`.","type":"string","default":"dynamic_vectara","example":"dynamic_vectara"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"DynamicVectaraTool"},"mcp":{"description":"An MCP (Model Context Protocol) tool that connects to external MCP servers for extended functionality.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `mcp`.","type":"string","default":"mcp","example":"mcp"},"server_id":{"description":"Unique identifier for a tool server.","type":"string","pattern":"^tsr_.*","example":"tsr_rag_search","title":"ToolServerId"},"annotations":{"description":"Optional hints about tool behaviour/metadata.","type":"object","properties":{"read_only_hint":{"description":"If true, the tool does not modify its environment.","type":"boolean"},"destructive_hint":{"description":"If true, the tool may perform destructive updates.","type":"boolean"},"idempotent_hint":{"description":"If true, repeated calls with same args have no additional effect.","type":"boolean"},"open_world_hint":{"description":"If true, tool interacts with external entities.","type":"boolean"}},"additionalProperties":true,"title":"McpToolAnnotations"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"McpTool"},"corpora_search":{"description":"A corpora search tool that searches through Vectara corpora to find relevant information.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `corpora_search`.","type":"string","default":"corpora_search","example":"corpora_search"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"CorporaSearchTool"},"web_search":{"description":"A web search tool that searches the internet for relevant information.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `web_search`.","type":"string","default":"web_search","example":"web_search"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"WebSearchTool"},"web_get":{"description":"A web get tool that fetches content from URLs using HTTP requests.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `web_get`.","type":"string","default":"web_get","example":"web_get"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"WebGetTool"},"lambda":{"description":"A user-defined function that can be executed as a tool by agents.\nLambda tools run in a secure, sandboxed environment with resource limits.\nCurrently supports Python 3.12 with a curated set of libraries.\n","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `lambda`.","type":"string","default":"lambda","example":"lambda"},"language":{"description":"The programming language of the lambda function. Currently only Python 3.12 is supported.","type":"string","enum":["python"],"default":"python","example":"python"},"output_schema":{"description":"The schema that defines the expected output structure from the function.","type":"object","additionalProperties":true},"function_definition":{"description":"Definition of a function to be executed as a tool in a sandboxed environment.\n\n**Python Environment:**\n- Python version: 3.12\n- Execution: Sandboxed using gVisor for security isolation\n- **Allowed modules**: `json`, `math`, `datetime`, `collections`, `itertools`, `functools`, `re`, `time`, `typing`\n- Memory limit: 100MB (configurable up to 1GB)\n- Execution timeout: 30 seconds (configurable up to 300 seconds)\n- Network access: Disabled for security\n- File system access: Read-only temporary workspace\n- No custom package installation supported (security constraint)\n\n**Type Annotations:**\n- Use type annotations for automatic input/output schema discovery\n- Supported typing constructs: `List`, `Dict`, `Optional`, `Union`\n- Import from `typing` module when using complex types\n","type":"object","properties":{"language":{"description":"The programming language of the function. Currently only Python 3.12 is supported.","type":"string","enum":["python"],"example":"python"},"code":{"description":"The function code.\n\n**Required**: Must define a `process()` entry point function. Use type annotations on parameters for automatic schema discovery.\n\nParameters are passed as keyword arguments matched to the function signature.\n","type":"string","example":"def process(data: list, threshold: float = 0):\n filtered = [x for x in data if x > threshold]\n return {\n 'count': len(filtered),\n 'average': sum(filtered) / len(filtered) if filtered else 0,\n 'filtered_data': filtered\n }\n"},"validation_status":{"description":"The validation status of the code.","type":"string","enum":["pending","valid","invalid"],"example":"valid"},"validation_errors":{"description":"List of validation errors if the code is invalid.","type":"array","items":{"type":"string"}},"execution_configuration":{"description":"Execution configuration for the function.","type":"object","properties":{"max_execution_time_seconds":{"description":"Maximum execution time in seconds.","type":"integer","minimum":1,"maximum":300,"default":30,"example":30},"max_memory_mb":{"description":"Maximum memory usage in megabytes.","type":"integer","minimum":10,"maximum":1024,"default":100,"example":100}},"title":"ExecutionConfiguration"}},"required":["language","code"],"title":"FunctionDefinition"}},"required":["type","language","function_definition"]}],"x-vectaraParents":["Tool"],"title":"LambdaTool"},"structured_indexing":{"description":"A tool that indexes structured documents into the Vectara platform with full control over document structure, sections, metadata, tables, and images.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `structured_indexing`.","type":"string","default":"structured_indexing","example":"structured_indexing"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"StructuredIndexingTool"},"sub_agent":{"description":"A tool that spawns a specialized sub-agent to handle complex, multi-step tasks autonomously.\nSub-agents maintain separate context from the main agent and can be specialized for specific types of tasks like code review, general research, or output styling.\n","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `sub_agent`.","type":"string","default":"sub_agent","example":"sub_agent"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"SubAgentTool"},"artifact_create":{"description":"A tool that creates artifacts from text or structured data content that can be stored and referenced later.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_create`.","type":"string","default":"artifact_create","example":"artifact_create"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactCreateTool"},"artifact_read":{"description":"A tool that reads artifact content from the agent session workspace with flexible size and range options.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_read`.","type":"string","default":"artifact_read","example":"artifact_read"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactReadTool"},"artifact_grep":{"description":"A tool that searches through an artifact's content using grep with support for all standard grep options.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_grep`.","type":"string","default":"artifact_grep","example":"artifact_grep"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactGrepTool"},"image_read":{"description":"A tool that loads image artifacts into the conversation context for viewing and analysis.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `image_read`.","type":"string","default":"image_read","example":"image_read"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ImageReadTool"},"document_conversion":{"description":"A tool that converts document artifacts (PDF, Word, PowerPoint, etc.) to various formats.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `document_conversion`.","type":"string","default":"document_conversion","example":"document_conversion"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"DocumentConversionTool"}}},"oneOf":[{"description":"A tool type for built-in Vectara tools that have implementations within the platform but do not have a dedicated tool type schema. Examples include tools like `sub_agent`, `corpora_search`, `web_search`, and similar platform-provided capabilities. Use the List Tools endpoint to discover available tools and obtain the `tool_id` required for configuration.\n","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `dynamic_vectara`.","type":"string","default":"dynamic_vectara","example":"dynamic_vectara"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"DynamicVectaraTool"},{"description":"An MCP (Model Context Protocol) tool that connects to external MCP servers for extended functionality.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `mcp`.","type":"string","default":"mcp","example":"mcp"},"server_id":{"description":"Unique identifier for a tool server.","type":"string","pattern":"^tsr_.*","example":"tsr_rag_search","title":"ToolServerId"},"annotations":{"description":"Optional hints about tool behaviour/metadata.","type":"object","properties":{"read_only_hint":{"description":"If true, the tool does not modify its environment.","type":"boolean"},"destructive_hint":{"description":"If true, the tool may perform destructive updates.","type":"boolean"},"idempotent_hint":{"description":"If true, repeated calls with same args have no additional effect.","type":"boolean"},"open_world_hint":{"description":"If true, tool interacts with external entities.","type":"boolean"}},"additionalProperties":true,"title":"McpToolAnnotations"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"McpTool"},{"description":"A corpora search tool that searches through Vectara corpora to find relevant information.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `corpora_search`.","type":"string","default":"corpora_search","example":"corpora_search"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"CorporaSearchTool"},{"description":"A web search tool that searches the internet for relevant information.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `web_search`.","type":"string","default":"web_search","example":"web_search"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"WebSearchTool"},{"description":"A web get tool that fetches content from URLs using HTTP requests.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `web_get`.","type":"string","default":"web_get","example":"web_get"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"WebGetTool"},{"description":"A user-defined function that can be executed as a tool by agents.\nLambda tools run in a secure, sandboxed environment with resource limits.\nCurrently supports Python 3.12 with a curated set of libraries.\n","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `lambda`.","type":"string","default":"lambda","example":"lambda"},"language":{"description":"The programming language of the lambda function. Currently only Python 3.12 is supported.","type":"string","enum":["python"],"default":"python","example":"python"},"output_schema":{"description":"The schema that defines the expected output structure from the function.","type":"object","additionalProperties":true},"function_definition":{"description":"Definition of a function to be executed as a tool in a sandboxed environment.\n\n**Python Environment:**\n- Python version: 3.12\n- Execution: Sandboxed using gVisor for security isolation\n- **Allowed modules**: `json`, `math`, `datetime`, `collections`, `itertools`, `functools`, `re`, `time`, `typing`\n- Memory limit: 100MB (configurable up to 1GB)\n- Execution timeout: 30 seconds (configurable up to 300 seconds)\n- Network access: Disabled for security\n- File system access: Read-only temporary workspace\n- No custom package installation supported (security constraint)\n\n**Type Annotations:**\n- Use type annotations for automatic input/output schema discovery\n- Supported typing constructs: `List`, `Dict`, `Optional`, `Union`\n- Import from `typing` module when using complex types\n","type":"object","properties":{"language":{"description":"The programming language of the function. Currently only Python 3.12 is supported.","type":"string","enum":["python"],"example":"python"},"code":{"description":"The function code.\n\n**Required**: Must define a `process()` entry point function. Use type annotations on parameters for automatic schema discovery.\n\nParameters are passed as keyword arguments matched to the function signature.\n","type":"string","example":"def process(data: list, threshold: float = 0):\n filtered = [x for x in data if x > threshold]\n return {\n 'count': len(filtered),\n 'average': sum(filtered) / len(filtered) if filtered else 0,\n 'filtered_data': filtered\n }\n"},"validation_status":{"description":"The validation status of the code.","type":"string","enum":["pending","valid","invalid"],"example":"valid"},"validation_errors":{"description":"List of validation errors if the code is invalid.","type":"array","items":{"type":"string"}},"execution_configuration":{"description":"Execution configuration for the function.","type":"object","properties":{"max_execution_time_seconds":{"description":"Maximum execution time in seconds.","type":"integer","minimum":1,"maximum":300,"default":30,"example":30},"max_memory_mb":{"description":"Maximum memory usage in megabytes.","type":"integer","minimum":10,"maximum":1024,"default":100,"example":100}},"title":"ExecutionConfiguration"}},"required":["language","code"],"title":"FunctionDefinition"}},"required":["type","language","function_definition"]}],"x-vectaraParents":["Tool"],"title":"LambdaTool"},{"description":"A tool that indexes structured documents into the Vectara platform with full control over document structure, sections, metadata, tables, and images.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `structured_indexing`.","type":"string","default":"structured_indexing","example":"structured_indexing"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"StructuredIndexingTool"},{"description":"A tool that spawns a specialized sub-agent to handle complex, multi-step tasks autonomously.\nSub-agents maintain separate context from the main agent and can be specialized for specific types of tasks like code review, general research, or output styling.\n","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `sub_agent`.","type":"string","default":"sub_agent","example":"sub_agent"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"SubAgentTool"},{"description":"A tool that creates artifacts from text or structured data content that can be stored and referenced later.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_create`.","type":"string","default":"artifact_create","example":"artifact_create"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactCreateTool"},{"description":"A tool that reads artifact content from the agent session workspace with flexible size and range options.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_read`.","type":"string","default":"artifact_read","example":"artifact_read"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactReadTool"},{"description":"A tool that searches through an artifact's content using grep with support for all standard grep options.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_grep`.","type":"string","default":"artifact_grep","example":"artifact_grep"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactGrepTool"},{"description":"A tool that loads image artifacts into the conversation context for viewing and analysis.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `image_read`.","type":"string","default":"image_read","example":"image_read"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ImageReadTool"},{"description":"A tool that converts document artifacts (PDF, Word, PowerPoint, etc.) to various formats.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `document_conversion`.","type":"string","default":"document_conversion","example":"document_conversion"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"DocumentConversionTool"}],"title":"Tool"}},"metadata":{"type":"object","description":"The standard metadata in the response of a list operation.","properties":{"page_key":{"description":"When requesting the next page of this list, this is needed as a query parameter.","type":"string"}},"example":{"page_key":"eyJvZmZzZXQiOjF9"},"title":"ListMetadata"}},"required":["tools"],"title":"ListToolsResponse"}}}},"403":{"description":"Permissions do not allow listing tools.","content":{"application/json":{"schema":{"description":"A general error response with an error code and message.","type":"object","properties":{"messages":{"description":"The messages describing why the error occurred.","type":"array","items":{"title":"message","type":"string","example":"Internal server error."}},"request_id":{"description":"The ID of the request that can be used to help Vectara support debug what went wrong.","type":"string"}},"title":"Error"}}}}}}
>
diff --git a/www/docs/rest-api/list-users.api.mdx b/www/docs/rest-api/list-users.api.mdx
index bdb19c156..57ffb8b38 100644
--- a/www/docs/rest-api/list-users.api.mdx
+++ b/www/docs/rest-api/list-users.api.mdx
@@ -5,7 +5,7 @@ description: "The List Users API lets you list all users on your team and also t
sidebar_label: "List users in the account"
hide_title: true
hide_table_of_contents: true
-api: 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
+api: eJztGttyG7f1V85g8tA6vChO+xBO26kmsTtqnLHr2E1rSUOBu4ckIiywAbCkGA3/vXMOsDdxScnO5alvXFzO/Q7eiyBXXswuxXuPzovrkbgb+6osrQuYj2Wpxre4G4ddiXToDTpvjdR0LkefOVUGZY2YiXdrhFfKB2A4cP7mAjQGDztbgaZ1qTVUvGcNrToIKAuQJgepvYWwRuUgs66sPMgsQ+95M6t8sAW6scYNapBVWFunfpaE10+uzJV5HdboQGZBbVRQ6MFX2RqkB5nnyqxGkKPGwL/QyIWOa8rXPx16DLQPpfR+a13uR4wac8XLRDY4q9GDdAgluqV1Beaw2BHZcPm+zGVAZv36D9PcZn7q0AcS37TivTHB+COgyUurTJhcGTEStkTHfFzkYiZISlEJI1FKJwsM9DG7vBeKJLxGmaMTI2FkgWIm3uJPFSF5pwq0VRBDGiE1bJXWUMhbBAkL9AFwubQuQLCQ2aLUGJC5cBEeKMOfvsRMLRXm4DGzJvdgHQRVINgqTMRI+GyNhRSzexGtQygTcMUUFsqooirE7Iv9SBBc5TAXs6XUHvejp/Ez/k5prfxvx1bB8H8Jb8RKIl6rQpEKmLOfKnS7QcILeUeXwVTFAh3YZXKJYMFhqJwBGcAaZGKIkAfCO0kZGaUMcenL5z1SRyJhFrMvzs6IsqWsdKCvLhelXOH8FnenGXnvMU8UO4WbKGaDdwHofsuUXAZ0vMnSgbX0sEA04FBma8yfxp8PTpmV6JIZg8TjhL5UmiiI1Cx2dVQJFGyUT7HmESr6EM8Z2Lh0dqNyzOEWd7C0DmQHWJ/ukcA7SeYoZqLYjeMx9vAQ0BHMSzn++Xz84Wz81fzq6q9XV+Przz8TrLBXaFZhLWZ/PhuJoALD+JoBfIs7sd9fE+W+tMajJ1qfn50dksxBudYJ0ZdZE9AEOinLUquMQ9D0R0/H74+y/jZhArovlaHAKGNoT9BJvrYyoSsFu/gRM3KM0lG0o/BMoJmYJ9CaoEjnJOs6YDFw7byHHrYqUPj3NlMyYA6ls0ulEZSJHqKs4fBeoiuU95xHHqVY5Yd4yaP/jVmQTsLFN2wIZO1EzJAhtCqvvJtPPhf7kcBCKj0Mmbcohzky2seAN84fIe5HLOPoMEPQ691HABOJlDNxgP0Lk5PxoIftGjkH13BAeUjXKLLGXBsdPoFfWKtRGoLfAzpEameFjOMksZlD0vlchkNYP6zRtCRupYd0+qQ8OXtTOGaZcjI/AV5G4Ml2doxFSx8g3Xw6KlmqOdccw0J5UBbRSSB9+iMiesSF3nJ1E9Yy1CxQVDMgyxIyrdAEyKSBQPnWmsEwZyi7XAq7NZyNZE7pxwcng6XvBaVbs5o/XE/B/MhyTtyRLAniCk04OBhXNwq3nUOH14gnqlrrOHpeKuKZ8kqN64i0Y8Qdp8Ihi6KW3quVKdCEo675iMQfAft4ROpkwUELodyUbCFV1Zz1Ih4K/KRwO+hFdGYYaIdKzBPnykPDxYk0+Ih9NBqkqts6cb3v1Y6X/azPFF4/TIuNRqPOjyj0nDZ/dX2ehvq4OiPJR7V58U2tTD74e+iSEU2uzDO4GXC9GxjDy0pThmpW1QZ7RVZNrDKZrqgXS61YSsCZNUu1qmIP1EUUbYEwvEWZj63R3eKNdhPgHoQReIzpfAS4IVWOQBkfXJWFuEpIg7Xad5E1sYLwfS0NFDZXy90whpgxpoU0VOq2+GJ4j8AZTRdxFxsZFSF6RSUx5h22qJB3Mkv1Syu8xS5iJfHVCBmFR8MyVaasgp8Q7caGo+KhiJ5YS/2uj23oMU/9FeLtQx9ujfzQhdmBWg8u1by0WmUD/vADp6koW5BQOmUyVUrdTVEswLo4K7UMlGUf98LjBRMXS8kFqf8k8gcdTmptt5jPm+5+IFi8bvZSznUI6V49VGhwwAuZraGBBoXcQfQIugAZOirHaYphK5dhB2LEuYgwZXMCSkkGZtuFjdQVNaflBC4ih3FFeTCV1iNaihJtyVC+oZjdedeAG5IyjWLomtRvevLui+UNK5xIi7y1IgS1jExXnky+38mfQvwgyBLYuTS7eX1noKxd9rjpMlpnhoaugYq201wHV2HHIBoNDdgDkxs9/xZ3XMT11MURom23aoIakBM4f6BfH6QLPoJExeX5wua7Ee+OKBiogro/FegubdEaX+2yTvfVQ91HQDy6Mw2YvsQ6X7Tf2nWax3yMkRxLwA8nBAfR5lDb/QqwccNoeOIAAoeDQZfuA2rut6s0yuOFAoPMZejONBqOD8OMD9Lk0uVQX6sHV3Wnz+pPhtA1w76hN5Oc4TYlKaF2pd7whosAgj+KPykIINK0g0aqwKMWaAaUAyFw35l5dCkRuPvn5kPx4ecP//mXev3jy69ER1zU+n9XS2r/YIPHovUAIin6T2dfDgSQtqWH3AKlwxhJiJ96lPtLpiDnsEKDTmpA56xrtRKHDiYtZzZH9o8CvZerJ0SmdPBIt1fv1iGdWNmuo0NFjDbLKud6DeahvySRJmgnZ1UXVI0YqcGj26CLWCaidhD0YX5sJNKWqvXslTMSJecFV9U8PVyjLpsEnV4cIMdFRZzJAFsqYLbOmtWwidXMvCDC2Cb29HaxRGfGPr8dr5ytynGaGFZprt7ZLzCsbT5u5rc+tPulXCkj64lEVjlvnZiJz+rY1ZmTkuvMuyeiPUxq9+2edegrHXzvXKSMXSag8bFcuLwX0WOOvsWMBGfo/psMjUjre0NyaC6JGuvA+a5c2gssn4PzHTk1R38fedHsM1IqZmKFIY7X1mImppvn01rd0XajQCun6dEhhNLPplNZqskmGt9EWUHgPGaVU2HHp89L9S3uzisCecmCfU0fz/mrc/h7ihPRa+sDbZSXvPAwysdzncI/OQFNgrTdxt6eRy5fO8zRBCV1dF97i+Z9n40qrDt8TCPKKZ/kZwxbMnHRO7pMtVmVF+tB+sNHmbva7NjnaILaDSS1+7598f07Llg3h+zWex7S1BwkBCfrTM9tzyrVFVx9UJG1xcV4ISlSdIIztSv/tRUHkqXid0NNkYbeEhmBDHAzrGAyir8QJ/UD3N9uoH5Iqpfi456tglbUD6e0u5FO2YreFBceU8tRJ0m6/RaX6NBk1AxmTWebqu/YWQdLcU+ZUKnYIRuqJDktyTbfk5yWlYbYNlYO+W1zDHHY5xyFQzLmVHs/e7Z5/uzZhE7cdBm7SaApVa8VOumytcpkB+4o1dBU0rhM+kjQeleukUUM8NI6SJlgBDdTGrxYJ6ezdgJDb5wVT0tuYg+ZKBMz8XxyNjmjiI2u8K+X36PbKCqzG5uttZLZYqpxJfWUj47tcuzj4SlHYm1XbGx9x6XH1UkXhCpWNcg5vd0W0t1OSs5mUod3eBdaQxWcInLpbn8J9LlWq3U4hYOfSDIuLtKAXywR84XMbv/egc4+VVofCmna5jO+gsRHq2SE6WXjoW/dt1XM/9/fP+H9PUXAgHdhWmqp+DmCDeI+ZZNLwRGtqv8bsbY+0Or9PUWn907v97Qcnx8pb9RPHc1L4kmFffRz8CDFMSXXL9B1xuZs/XRyfs1H3RNUdrL7JxL65EfdE1T0RsktHdf04RQRErN+nQ4/XrO/5R8vTjB2+J+QT5Ty7/Ivi6cz0v4ZpMdPPHueZVh2eT1o6HrV4j9evBP7/f8Ag3oKEw==
sidebar_class_name: "get api-method"
info_path: docs/rest-api/vectara-rest-api-v-2
custom_edit_url: null
@@ -65,7 +65,7 @@ Other activities such as adding, deleting, enabling, disabling, resetting passwo
diff --git a/www/docs/rest-api/query-corpus.api.mdx b/www/docs/rest-api/query-corpus.api.mdx
index ed4454c7f..1906eb95b 100644
--- a/www/docs/rest-api/query-corpus.api.mdx
+++ b/www/docs/rest-api/query-corpus.api.mdx
@@ -227,4 +227,4 @@ Setting this value too high may prevent the model from generating a response.
-
+
\ No newline at end of file
diff --git a/www/docs/rest-api/replace-agent.api.mdx b/www/docs/rest-api/replace-agent.api.mdx
index ac63ce1ca..8cb7538b3 100644
--- a/www/docs/rest-api/replace-agent.api.mdx
+++ b/www/docs/rest-api/replace-agent.api.mdx
@@ -5,7 +5,7 @@ description: "The Replace Agent API enables you to completely replace an existin
sidebar_label: "Replace agent"
hide_title: true
hide_table_of_contents: true
-api: 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
+api: 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
sidebar_class_name: "put api-method"
info_path: docs/rest-api/vectara-rest-api-v-2
custom_edit_url: null
@@ -54,7 +54,7 @@ The Replace Agent API enables you to completely replace an existing agent config
"},"end_tag":{"description":"The tag that wraps the document part at the end. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the document part ends and the context after begins.","type":"string","example":""}},"example":{"sentences_before":2,"sentences_after":2,"start_tag":"","end_tag":""},"title":"ContextConfiguration"},"reranker":{"type":"object","description":"Rerank results of the search. Rerankers are very powerful tools to improve the order of search results. By default the search will use the most powerful reranker available to the customer's plan. To disable reranking, set the reranker `type` to `\"none\"`.","discriminator":{"propertyName":"type","mapping":{"customer_reranker":{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},"userfn":{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},"mmr":{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},"chain":{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},"none":{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}}},"oneOf":[{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}],"title":"SearchReranker"}},"example":{"limit":50},"title":"SearchParameters"}],"required":["corpora"],"title":"SearchCorporaParameters"},"generation":{"description":"The parameters to control generation.","type":"object","properties":{"enabled":{"description":"Whether generation is enabled for this query. This field is ignored if using chat.","type":"boolean","default":true},"generation_preset_name":{"description":"The preset values to use to feed the query results and other context to the model. \n\nA `generation_preset` is an object with a bundle of properties that specifies: \n* The `prompt_template` that is rendered and then sent to the LLM. \n* The LLM used. * `model_parameter`s such as temperature.\n\nAll of these properties except the model can be overridden by setting them in this object. Even when a `prompt_template` is set, the `generation_preset_name` is used to set the model used. See `model_parameters.model` if you want to set the model explicitly.\n\nIf `generation_preset_name` is not set, the Vectara platform will use the default model and prompt.'\n","type":"string","minLength":1,"example":"mockingbird-2.0"},"prompt_name":{"description":"Use `generation_preset_name` instead of `prompt_name`.","type":"string","minLength":1,"example":"mockingbird-2.0","deprecated":true},"max_used_search_results":{"description":"The maximum number of search results to be available to the prompt.","type":"integer","format":"int32","minimum":0,"default":5},"prompt_template":{"description":"Vectara manages both system and user roles and prompts for the generative LLM out of the box by default. However, users can override the `prompt_template` via this variable. The `prompt_template` is in the form of an Apache Velocity template. For more details on how to configure the `prompt_template`, see the [long-form documentation](https://docs.vectara.com/docs/prompts/vectara-prompt-engine).","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n"},"prompt_text":{"description":"This property is deprecated in favor of clearer naming. Use `prompt_template`. This property will be ignored if `prompt_template` is set.","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n","deprecated":true},"max_response_characters":{"description":"Controls the length of the generated output. This is a rough estimate and not a hard limit: the end output can be longer or shorter than this value. This is generally implemented by including the `max_response_characters` in the prompt, and the LLM's instruction following capability dictates how closely the generated output is limited.","type":"integer","format":"int32","example":300,"minimum":0},"response_language":{"description":"Languages that the Vectara platform supports.","type":"string","enum":["auto","eng","deu","fra","zho","kor","ara","rus","tha","nld","ita","por","spa","jpn","pol","tur","vie","ind","ces","ukr","ell","heb","fas","hin","urd","swe","ben","msa","ron"],"default":"auto","title":"Language"},"model_parameters":{"title":"ModelParameters","description":"The parameters for the model. WARNING: This is an experimental feature, and breakable at any point with virtually no notice. It is meant for experimentation to converge on optimal parameters that can then be set in the prompt definitions.","type":"object","properties":{"llm_name":{"description":"The model (e.g., `gpt-4`) to use for summarization. If specified, it will override the model behind `generation_preset_name`.","type":"string","example":"gpt4"},"max_tokens":{"description":"The maximum number of tokens to be returned by the model.","type":"integer","format":"int32","minimum":1},"temperature":{"description":"The sampling temperature to use. Higher values make the output more random, while lower values make it more focused and deterministic.","type":"number","format":"float"},"frequency_penalty":{"description":"Higher values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.","type":"number","format":"float"},"presence_penalty":{"description":"Higher values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.","type":"number","format":"float"}}},"citations":{"description":"Style the generator should use when making citations.","type":"object","properties":{"style":{"description":"The citation style that you want to use in the summary: \n* `numeric` - Citations formatted as simple numerals: \\[1\\], \\[2\\], etc.\n* `none` - Citations removed from text.\n* `html` - Citation formatted as a URL like `text_pattern`.\n* `markdown` - Formatted as `[text_pattern](url_pattern)`.\n","type":"string","enum":["none","numeric","html","markdown"]},"url_pattern":{"description":"The URL pattern if the citation_style is set to `html` or `markdown`. The pattern can access metadata attributes in the document or part. e.g. `https://my.doc/foo/{doc.id}/{part.id}` The default `url_pattern` is an empty string.","type":"string","example":"https://vectara.com/documents/{doc.id}"},"text_pattern":{"description":"The text pattern if the citation_style is set to `html` or `markdown`. This pattern sets the href for HTML or the text within `[]` in markdown, and defaults to N being the index of result if it is not set. The default citation style looks like `[N]()` for markdown. You can use metadata attributes in the `text_pattern`. For example, the pattern `{doc.title}` with citation style `markdown` would result in final citation output like `[Title]()` when the document's metadata includes `{\"title\":\"Title\"}`.","type":"string","example":"{doc.title}"}},"title":"CitationParameters"},"enable_factual_consistency_score":{"description":"Enable returning the factual consistency score with query results.","type":"boolean","default":true}},"title":"GenerationParameters"},"save_history":{"description":"Indicates whether to save the query to query history.","type":"boolean"}},"required":["search"],"title":"CorporaSearchQueryConfiguration"}},"required":["type","query_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},"web_search":{"title":"InlineWebSearchToolConfiguration","description":"A web search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'web_search' for inline web search tool configurations.","default":"web_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the web search tool call such as limit etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query to execute.","type":"string","example":"latest AI developments 2024"},"limit":{"description":"Maximum number of results to return.","type":"integer","minimum":1,"example":10},"provider":{"description":"Search provider to use.","type":"string","enum":["tavily"],"example":"tavily"},"include_domains":{"description":"List of domains to specifically include in search results. When specified, results will ONLY come from these domains. Supports exact domains (e.g., \"github.com\"), subdomains (e.g., \"docs.github.com\"), and wildcard patterns (e.g., \"*.github.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["github.com","docs.github.com","*.stackoverflow.com"]},"exclude_domains":{"description":"List of domains to specifically exclude from search results. Supports exact domains (e.g., \"spam.com\"), subdomains (e.g., \"bad.spam.com\"), and wildcard patterns (e.g., \"*.spam.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["spam.com","unreliable-source.com"]}},"additionalProperties":false,"title":"WebSearchToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"lambda":{"title":"InlineLambdaToolConfiguration","description":"A lambda tool configuration defined inline in the agent for executing user-defined functions.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'lambda' for inline lambda tool configurations.","default":"lambda"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments that will be passed to the lambda function. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","additionalProperties":true,"example":{"custom_param":"value"}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},"structured_indexing":{"title":"InlineStructuredIndexingToolConfiguration","description":"A structured indexing tool configuration defined inline in the agent for indexing into the Vectara platform.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'structured_indexing' for inline structured indexing tool configurations.","default":"structured_indexing"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the structured indexing tool call such as corpus_key etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"corpus_key":{"description":"The key identifying the target corpus for document indexing. If not provided, will be filled in by the LLM.","type":"string","example":"my-knowledge-base"},"document_id":{"description":"The unique identifier for the document within the corpus, preferably human readable IDs.","type":"string","example":"annual_report_2024"},"title":{"description":"The title of the document being indexed.","type":"string","example":"2024 Annual ESG Report"},"description":{"description":"A brief description or summary of the document content.","type":"string","example":"Comprehensive environmental, social, and governance report"},"metadata":{"description":"The metadata key-value pairs to associate with the document. If present, this gets merged with existing artifact metadata.","type":"object","additionalProperties":true,"example":{"doc_type":"annual_report","year":2024,"department":"sustainability"}},"document":{"description":"The structured document to index with full hierarchical content.","type":"object","additionalProperties":true,"example":{"id":"annual_report_2024","type":"structured","title":"2024 Annual ESG Report"}}},"additionalProperties":false,"title":"StructuredIndexingToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"sub_agent":{"title":"InlineSubAgentToolConfiguration","description":"A sub-agent tool configuration defined inline in the agent for invoking specialized sub-agents.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'sub_agent' for inline sub-agent tool configurations.","default":"sub_agent"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the sub-agent tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"message":{"description":"The detailed task instructions for the sub-agent to perform autonomously.","type":"string","example":"Review the code changes in pull request \\#123 for security issues"},"session_tti_minutes":{"description":"Time to idle in minutes before the session expires.","type":"integer","format":"int64","minimum":1,"example":60}},"additionalProperties":false,"title":"SubAgentToolParameters"},"sub_agent_configuration":{"description":"User-configurable settings for the sub-agent tool. These parameters are never exposed to the agent.","type":"object","properties":{"agent_key":{"description":"A unique key that identifies an agent.","type":"string","pattern":"[0-9a-zA-Z_-]+$","minLength":1,"maxLength":50,"example":"customer_support","title":"AgentKey"}},"required":["agent_key"],"title":"SubAgentConfiguration"}},"required":["type","sub_agent_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},"artifact_read":{"title":"InlineArtifactReadToolConfiguration","description":"An artifact read tool configuration defined inline in the agent for reading artifacts from the session workspace.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_read' for inline artifact read tool configurations.","default":"artifact_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to read.","type":"string","example":"art_abc123"},"encoding":{"description":"The encoding format for the content.","type":"string","enum":["raw","base64"],"example":"raw"},"start_line":{"description":"Optional starting line number (1-indexed).","type":"integer","format":"int32","example":100},"end_line":{"description":"Optional ending line number (1-indexed, inclusive).","type":"integer","format":"int32","example":200}},"additionalProperties":false,"title":"ArtifactReadToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"artifact_grep":{"title":"InlineArtifactGrepToolConfiguration","description":"An artifact grep tool configuration defined inline in the agent for searching through artifact content.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_grep' for inline artifact grep tool configurations.","default":"artifact_grep"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact grep tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to search.","type":"string","example":"art_abc123"},"pattern":{"description":"The pattern to search for (supports grep regex).","type":"string","example":"error|exception"},"grep_options":{"description":"Optional grep command options.","type":"array","items":{"type":"string"},"example":["-i","-n"]}},"additionalProperties":false,"title":"ArtifactGrepToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"image_read":{"title":"InlineImageReadToolConfiguration","description":"An image read tool configuration defined inline in the agent for loading images into the conversation context.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'image_read' for inline image read tool configurations.","default":"image_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the image read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the image artifact to view.","type":"string","pattern":"^art_[a-z0-9_-]+$","example":"art_photo_a3f2"},"detail":{"description":"Detail level for image processing.","type":"string","enum":["auto","low","high"],"default":"auto","example":"auto"}},"additionalProperties":false,"title":"ImageReadToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"document_conversion":{"title":"InlineDocumentConversionToolConfiguration","description":"A document conversion tool configuration defined inline in the agent for converting document artifacts to various formats.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'document_conversion' for inline document conversion tool configurations.","default":"document_conversion"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the document conversion tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to convert.","type":"string","example":"art_abc123"},"output_format":{"description":"Output format for the converted document.","type":"string","enum":["markdown","structured_document"],"example":"markdown"},"description":{"description":"Optional description for the converted artifact.","type":"string","example":"PDF converted to markdown"}},"additionalProperties":false,"title":"DocumentConversionToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]}}},"oneOf":[{"title":"InlineMcpToolConfiguration","description":"An MCP tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'mcp' for inline MCP tool configurations.","default":"mcp"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for tool calls. The key specifies the location in the tool arguments to overide, and the value specifies what to override with. The LLM will not be able to change the parameters, nor know those values exist within the tool.\n\nThe values can also be dynamic references to context values using $ref with dot notation path syntax:\n- Static value: \"fixed_value\" or 123\n- Dynamic reference: `{\"$ref\": \"session.metadata.field_name\"}`\n\nReferences are resolved at runtime from context:\n- session.metadata.* - Access session metadata fields\n- agent.metadata.* - Access agent metadata fields\n\nExample:\n `{\"query\": {\"$ref\": \".session.metadata.query\"}}`\n\nIf you want to have a real value `\"$ref\"` use `\"$$ref\"`, that is you can escape the first $ by using $$.","type":"object","additionalProperties":true,"example":{"custom_param":"value","limit":10}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineCorporaSearchToolConfiguration","description":"A corpora search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'corpora_search' for inline corpora search tool configurations.","default":"corpora_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the corpus search call such as the query. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query string, which is the question the user is asking. If not provided, will be filled in by the LLM.","type":"string","maxLength":5000,"example":"Am I allowed to bring pets to work?"}},"additionalProperties":false,"title":"CorporaSearchToolParameters"},"query_configuration":{"description":"User-configurable settings for the corpus search that are not exposed to the LLM.","type":"object","properties":{"search":{"description":"The parameters to search one or more corpora.","allOf":[{"type":"object","properties":{"corpora":{"description":"The corpora that you want to search.","type":"array","items":{"description":"A corpus with its identifying key for use in search operations within a customer account.","allOf":[{"description":"Configuration for search parameters specific to a single corpus within a customer account, including filters and semantics.","type":"object","properties":{"custom_dimensions":{"description":"The custom dimensions as additional weights.","type":"object","additionalProperties":{"type":"number","format":"double","nullable":false},"title":"CustomDimensions"},"metadata_filter":{"description":"The filter string used to narrow the search based on metadata attributes. The query against this corpus will be confined to document parts that match the `metadata_filter`. Only metadata fields set as `filter_attributes` on the corpus can be filtered. Filter syntax is similar to a SQL WHERE clause. See [metadata filters documentation](https://docs.vectara.com/docs/learn/metadata-search-filtering/filter-overview) for more information.","type":"string","maxLength":8000,"example":"doc.title = 'Annual Report'"},"lexical_interpolation":{"description":"How much to weigh lexical scores compared to the embedding score. 0 means lexical search is not used at all, and 1 means only lexical search is used.","type":"number","format":"float","minimum":0,"maximum":1,"example":0.005},"semantics":{"description":"Indicates whether to consider a query against this corpus as a query or a response.","type":"string","enum":["default","query","response"],"default":"default","title":"SearchSemantics"}},"title":"SearchCorpus"},{"type":"object","properties":{"corpus_key":{"description":"A user-provided key for a corpus.","type":"string","example":"my-corpus","pattern":"[a-zA-Z0-9_\\=\\-]+$","maxLength":50,"title":"CorpusKey"},"query":{"description":"Query for a particular corpus that will override the overall query if present.","type":"string","maxLength":5000,"example":"What are some important facts in my-corpus?"}}}],"required":["corpus_key"],"title":"KeyedSearchCorpus"},"minItems":1}}},{"type":"object","description":"Search parameters to retrieve knowledge for the query.","properties":{"offset":{"description":"Specifies how many results into the result to skip. This is useful for pagination.","type":"integer","format":"int32","default":0,"minimum":0},"limit":{"description":"The maximum number of results returned.","type":"integer","format":"int32","minimum":1,"default":10},"context_configuration":{"type":"object","description":"Configuration on the presentation of each document part in the result set. You can only use characters_before/after or sentences_before/after, but not both. If you specify both in the query, sentences_before/after takes precedence","properties":{"characters_before":{"description":"The number of characters that are shown before the matching document part. This is useful to show the context of the document part in the wider document. Ignored if `sentences_before` is set. Vectara will capture the full sentence that contains the captured characters, to not lose the meaning caused by a truncated word or sentence.","type":"integer","format":"int32"},"characters_after":{"description":"The number of characters that are shown after the matching document part. This is useful to show the context of the document part in the wider document. Ignored if `sentences_after` is set. Vectara will capture the full sentence that contains the captured characters, to not lose the meaning caused by a truncated word or sentence.","type":"integer","format":"int32"},"sentences_before":{"description":"The number of sentences that are shown before the matching document part. This is useful to show the context of the document part in the wider document.","type":"integer","format":"int32","default":0,"minimum":0,"example":2},"sentences_after":{"description":"The number of sentences that are shown after the matching document part. This is useful to show the context of the document part in the wider document.","type":"integer","format":"int32","default":0,"minimum":0,"example":2},"start_tag":{"description":"The tag that wraps the document part at the start. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the context before ends and the document part begins.","type":"string","example":""},"end_tag":{"description":"The tag that wraps the document part at the end. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the document part ends and the context after begins.","type":"string","example":""}},"example":{"sentences_before":2,"sentences_after":2,"start_tag":"","end_tag":""},"title":"ContextConfiguration"},"reranker":{"type":"object","description":"Rerank results of the search. Rerankers are very powerful tools to improve the order of search results. By default the search will use the most powerful reranker available to the customer's plan. To disable reranking, set the reranker `type` to `\"none\"`.","discriminator":{"propertyName":"type","mapping":{"customer_reranker":{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},"userfn":{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},"mmr":{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},"chain":{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},"none":{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}}},"oneOf":[{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}],"title":"SearchReranker"}},"example":{"limit":50},"title":"SearchParameters"}],"required":["corpora"],"title":"SearchCorporaParameters"},"generation":{"description":"The parameters to control generation.","type":"object","properties":{"enabled":{"description":"Whether generation is enabled for this query. This field is ignored if using chat.","type":"boolean","default":true},"generation_preset_name":{"description":"The preset values to use to feed the query results and other context to the model. \n\nA `generation_preset` is an object with a bundle of properties that specifies: \n* The `prompt_template` that is rendered and then sent to the LLM. \n* The LLM used. * `model_parameter`s such as temperature.\n\nAll of these properties except the model can be overridden by setting them in this object. Even when a `prompt_template` is set, the `generation_preset_name` is used to set the model used. See `model_parameters.model` if you want to set the model explicitly.\n\nIf `generation_preset_name` is not set, the Vectara platform will use the default model and prompt.'\n","type":"string","minLength":1,"example":"mockingbird-2.0"},"prompt_name":{"description":"Use `generation_preset_name` instead of `prompt_name`.","type":"string","minLength":1,"example":"mockingbird-2.0","deprecated":true},"max_used_search_results":{"description":"The maximum number of search results to be available to the prompt.","type":"integer","format":"int32","minimum":0,"default":5},"prompt_template":{"description":"Vectara manages both system and user roles and prompts for the generative LLM out of the box by default. However, users can override the `prompt_template` via this variable. The `prompt_template` is in the form of an Apache Velocity template. For more details on how to configure the `prompt_template`, see the [long-form documentation](https://docs.vectara.com/docs/prompts/vectara-prompt-engine).","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n"},"prompt_text":{"description":"This property is deprecated in favor of clearer naming. Use `prompt_template`. This property will be ignored if `prompt_template` is set.","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n","deprecated":true},"max_response_characters":{"description":"Controls the length of the generated output. This is a rough estimate and not a hard limit: the end output can be longer or shorter than this value. This is generally implemented by including the `max_response_characters` in the prompt, and the LLM's instruction following capability dictates how closely the generated output is limited.","type":"integer","format":"int32","example":300,"minimum":0},"response_language":{"description":"Languages that the Vectara platform supports.","type":"string","enum":["auto","eng","deu","fra","zho","kor","ara","rus","tha","nld","ita","por","spa","jpn","pol","tur","vie","ind","ces","ukr","ell","heb","fas","hin","urd","swe","ben","msa","ron"],"default":"auto","title":"Language"},"model_parameters":{"title":"ModelParameters","description":"The parameters for the model. WARNING: This is an experimental feature, and breakable at any point with virtually no notice. It is meant for experimentation to converge on optimal parameters that can then be set in the prompt definitions.","type":"object","properties":{"llm_name":{"description":"The model (e.g., `gpt-4`) to use for summarization. If specified, it will override the model behind `generation_preset_name`.","type":"string","example":"gpt4"},"max_tokens":{"description":"The maximum number of tokens to be returned by the model.","type":"integer","format":"int32","minimum":1},"temperature":{"description":"The sampling temperature to use. Higher values make the output more random, while lower values make it more focused and deterministic.","type":"number","format":"float"},"frequency_penalty":{"description":"Higher values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.","type":"number","format":"float"},"presence_penalty":{"description":"Higher values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.","type":"number","format":"float"}}},"citations":{"description":"Style the generator should use when making citations.","type":"object","properties":{"style":{"description":"The citation style that you want to use in the summary: \n* `numeric` - Citations formatted as simple numerals: \\[1\\], \\[2\\], etc.\n* `none` - Citations removed from text.\n* `html` - Citation formatted as a URL like `text_pattern`.\n* `markdown` - Formatted as `[text_pattern](url_pattern)`.\n","type":"string","enum":["none","numeric","html","markdown"]},"url_pattern":{"description":"The URL pattern if the citation_style is set to `html` or `markdown`. The pattern can access metadata attributes in the document or part. e.g. `https://my.doc/foo/{doc.id}/{part.id}` The default `url_pattern` is an empty string.","type":"string","example":"https://vectara.com/documents/{doc.id}"},"text_pattern":{"description":"The text pattern if the citation_style is set to `html` or `markdown`. This pattern sets the href for HTML or the text within `[]` in markdown, and defaults to N being the index of result if it is not set. The default citation style looks like `[N]()` for markdown. You can use metadata attributes in the `text_pattern`. For example, the pattern `{doc.title}` with citation style `markdown` would result in final citation output like `[Title]()` when the document's metadata includes `{\"title\":\"Title\"}`.","type":"string","example":"{doc.title}"}},"title":"CitationParameters"},"enable_factual_consistency_score":{"description":"Enable returning the factual consistency score with query results.","type":"boolean","default":true}},"title":"GenerationParameters"},"save_history":{"description":"Indicates whether to save the query to query history.","type":"boolean"}},"required":["search"],"title":"CorporaSearchQueryConfiguration"}},"required":["type","query_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineWebSearchToolConfiguration","description":"A web search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'web_search' for inline web search tool configurations.","default":"web_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the web search tool call such as limit etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query to execute.","type":"string","example":"latest AI developments 2024"},"limit":{"description":"Maximum number of results to return.","type":"integer","minimum":1,"example":10},"provider":{"description":"Search provider to use.","type":"string","enum":["tavily"],"example":"tavily"},"include_domains":{"description":"List of domains to specifically include in search results. When specified, results will ONLY come from these domains. Supports exact domains (e.g., \"github.com\"), subdomains (e.g., \"docs.github.com\"), and wildcard patterns (e.g., \"*.github.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["github.com","docs.github.com","*.stackoverflow.com"]},"exclude_domains":{"description":"List of domains to specifically exclude from search results. Supports exact domains (e.g., \"spam.com\"), subdomains (e.g., \"bad.spam.com\"), and wildcard patterns (e.g., \"*.spam.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["spam.com","unreliable-source.com"]}},"additionalProperties":false,"title":"WebSearchToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineLambdaToolConfiguration","description":"A lambda tool configuration defined inline in the agent for executing user-defined functions.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'lambda' for inline lambda tool configurations.","default":"lambda"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments that will be passed to the lambda function. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","additionalProperties":true,"example":{"custom_param":"value"}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineStructuredIndexingToolConfiguration","description":"A structured indexing tool configuration defined inline in the agent for indexing into the Vectara platform.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'structured_indexing' for inline structured indexing tool configurations.","default":"structured_indexing"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the structured indexing tool call such as corpus_key etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"corpus_key":{"description":"The key identifying the target corpus for document indexing. If not provided, will be filled in by the LLM.","type":"string","example":"my-knowledge-base"},"document_id":{"description":"The unique identifier for the document within the corpus, preferably human readable IDs.","type":"string","example":"annual_report_2024"},"title":{"description":"The title of the document being indexed.","type":"string","example":"2024 Annual ESG Report"},"description":{"description":"A brief description or summary of the document content.","type":"string","example":"Comprehensive environmental, social, and governance report"},"metadata":{"description":"The metadata key-value pairs to associate with the document. If present, this gets merged with existing artifact metadata.","type":"object","additionalProperties":true,"example":{"doc_type":"annual_report","year":2024,"department":"sustainability"}},"document":{"description":"The structured document to index with full hierarchical content.","type":"object","additionalProperties":true,"example":{"id":"annual_report_2024","type":"structured","title":"2024 Annual ESG Report"}}},"additionalProperties":false,"title":"StructuredIndexingToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineSubAgentToolConfiguration","description":"A sub-agent tool configuration defined inline in the agent for invoking specialized sub-agents.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'sub_agent' for inline sub-agent tool configurations.","default":"sub_agent"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the sub-agent tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"message":{"description":"The detailed task instructions for the sub-agent to perform autonomously.","type":"string","example":"Review the code changes in pull request \\#123 for security issues"},"session_tti_minutes":{"description":"Time to idle in minutes before the session expires.","type":"integer","format":"int64","minimum":1,"example":60}},"additionalProperties":false,"title":"SubAgentToolParameters"},"sub_agent_configuration":{"description":"User-configurable settings for the sub-agent tool. These parameters are never exposed to the agent.","type":"object","properties":{"agent_key":{"description":"A unique key that identifies an agent.","type":"string","pattern":"[0-9a-zA-Z_-]+$","minLength":1,"maxLength":50,"example":"customer_support","title":"AgentKey"}},"required":["agent_key"],"title":"SubAgentConfiguration"}},"required":["type","sub_agent_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineArtifactReadToolConfiguration","description":"An artifact read tool configuration defined inline in the agent for reading artifacts from the session workspace.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_read' for inline artifact read tool configurations.","default":"artifact_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to read.","type":"string","example":"art_abc123"},"encoding":{"description":"The encoding format for the content.","type":"string","enum":["raw","base64"],"example":"raw"},"start_line":{"description":"Optional starting line number (1-indexed).","type":"integer","format":"int32","example":100},"end_line":{"description":"Optional ending line number (1-indexed, inclusive).","type":"integer","format":"int32","example":200}},"additionalProperties":false,"title":"ArtifactReadToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineArtifactGrepToolConfiguration","description":"An artifact grep tool configuration defined inline in the agent for searching through artifact content.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_grep' for inline artifact grep tool configurations.","default":"artifact_grep"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact grep tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to search.","type":"string","example":"art_abc123"},"pattern":{"description":"The pattern to search for (supports grep regex).","type":"string","example":"error|exception"},"grep_options":{"description":"Optional grep command options.","type":"array","items":{"type":"string"},"example":["-i","-n"]}},"additionalProperties":false,"title":"ArtifactGrepToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineImageReadToolConfiguration","description":"An image read tool configuration defined inline in the agent for loading images into the conversation context.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'image_read' for inline image read tool configurations.","default":"image_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the image read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the image artifact to view.","type":"string","pattern":"^art_[a-z0-9_-]+$","example":"art_photo_a3f2"},"detail":{"description":"Detail level for image processing.","type":"string","enum":["auto","low","high"],"default":"auto","example":"auto"}},"additionalProperties":false,"title":"ImageReadToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineDocumentConversionToolConfiguration","description":"A document conversion tool configuration defined inline in the agent for converting document artifacts to various formats.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'document_conversion' for inline document conversion tool configurations.","default":"document_conversion"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the document conversion tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to convert.","type":"string","example":"art_abc123"},"output_format":{"description":"Output format for the converted document.","type":"string","enum":["markdown","structured_document"],"example":"markdown"},"description":{"description":"Optional description for the converted artifact.","type":"string","example":"PDF converted to markdown"}},"additionalProperties":false,"title":"DocumentConversionToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]}],"example":[{"type":"web_search","argument_override":{"limit":5,"include_domains":["github.com","stackoverflow.com"],"exclude_domains":["spam.com"]}}]},"example":{"customer_search":{"type":"corpora_search","argument_override":{"query":"customer support documentation"}}}},"model":{"title":"AgentModel","description":"Configuration for the model used in this step, including the model name and arbitrary parameters.","type":"object","properties":{"name":{"description":"The name of the model to use for this step.","type":"string","example":"gpt-4"},"parameters":{"description":"Arbitrary model-specific parameters that can be passed to the model.","type":"object","additionalProperties":true,"example":{"temperature":0.7,"max_tokens":1000,"top_p":0.9}},"retry_configuration":{"description":"Optional retry configuration for handling transient failures. When not provided, no retry is performed.","title":"RetryConfiguration","type":"object","properties":{"enabled":{"description":"Whether retry is enabled. Enabled by default to provide resilience against transient failures.","type":"boolean","default":true,"example":true},"max_retries":{"description":"Maximum number of retry attempts after initial failure.","type":"integer","minimum":0,"maximum":10,"default":3,"example":3},"initial_backoff_ms":{"description":"Initial backoff time in milliseconds before first retry.","type":"integer","minimum":100,"maximum":60000,"default":1000,"example":1000},"max_backoff_ms":{"description":"Maximum backoff time in milliseconds between retries.","type":"integer","minimum":1000,"maximum":300000,"default":30000,"example":30000},"backoff_factor":{"description":"Multiplication factor for exponential backoff between retries.","type":"number","format":"double","minimum":1,"maximum":10,"default":2,"example":2}}}},"required":["name"]},"first_step":{"title":"AgentStep","description":"A step in an agent's execution flow that defines how the agent processes and responds to input.","discriminator":{"propertyName":"type","mapping":{"conversational":{"title":"ConversationalAgentStep","description":"A step that receives instructions and responds through dialogue. This is a step that gets instructions and engages in conversation with users based on those instructions. This only type step supported, with no way to go next steps. A conversational step responds to an input following its instructions and uses the agent tools. The first response from the model will terminate processing the input.","type":"object","properties":{"type":{"description":"The type of step, which is always 'conversational' for this step type.","type":"string","default":"conversational","example":"conversational"},"instructions":{"description":"List of instructions that guide the agent's behavior in this step. If no instructions are given, the agent is instructed to be helpful and use tools.","type":"array","items":{"title":"AgentStepInstruction","description":"An instruction that can be used in an agent step, either by reference or defined inline.","discriminator":{"propertyName":"type","mapping":{"reference":{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},"inline":{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Request object for creating a new initial instruction.","type":"object","properties":{"type":{"description":"The type of instruction to create.","type":"string","default":"initial","example":"initial"},"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["type","name","template"],"x-vectaraParents":["CreateInstructionRequest"],"title":"CreateInitialInstructionRequest"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}}},"oneOf":[{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Request object for creating a new initial instruction.","type":"object","properties":{"type":{"description":"The type of instruction to create.","type":"string","default":"initial","example":"initial"},"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["type","name","template"],"x-vectaraParents":["CreateInstructionRequest"],"title":"CreateInitialInstructionRequest"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}],"example":[{"type":"reference","name":"Customer Support Initial Instruction","version":1},{"type":"inline","name":"Temporary On-the-fly Guideline","description":"A special instruction for this specific step only.","template_type":"velocity","template":"Please prioritize issues tagged with 'urgent' for the next hour."}]}},"output_parser":{"title":"AgentOutputParser","description":"Configuration for how the agent's output should be parsed and formatted.\n\nThe output parser determines how the agent's responses are processed before being returned to the user.\n","discriminator":{"propertyName":"type","mapping":{"default":{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]}}},"oneOf":[{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]}]}},"required":["type","instructions","output_parser"],"x-vectaraParents":["AgentStep"]}}},"oneOf":[{"title":"ConversationalAgentStep","description":"A step that receives instructions and responds through dialogue. This is a step that gets instructions and engages in conversation with users based on those instructions. This only type step supported, with no way to go next steps. A conversational step responds to an input following its instructions and uses the agent tools. The first response from the model will terminate processing the input.","type":"object","properties":{"type":{"description":"The type of step, which is always 'conversational' for this step type.","type":"string","default":"conversational","example":"conversational"},"instructions":{"description":"List of instructions that guide the agent's behavior in this step. If no instructions are given, the agent is instructed to be helpful and use tools.","type":"array","items":{"title":"AgentStepInstruction","description":"An instruction that can be used in an agent step, either by reference or defined inline.","discriminator":{"propertyName":"type","mapping":{"reference":{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},"inline":{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Request object for creating a new initial instruction.","type":"object","properties":{"type":{"description":"The type of instruction to create.","type":"string","default":"initial","example":"initial"},"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["type","name","template"],"x-vectaraParents":["CreateInstructionRequest"],"title":"CreateInitialInstructionRequest"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}}},"oneOf":[{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Request object for creating a new initial instruction.","type":"object","properties":{"type":{"description":"The type of instruction to create.","type":"string","default":"initial","example":"initial"},"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["type","name","template"],"x-vectaraParents":["CreateInstructionRequest"],"title":"CreateInitialInstructionRequest"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}],"example":[{"type":"reference","name":"Customer Support Initial Instruction","version":1},{"type":"inline","name":"Temporary On-the-fly Guideline","description":"A special instruction for this specific step only.","template_type":"velocity","template":"Please prioritize issues tagged with 'urgent' for the next hour."}]}},"output_parser":{"title":"AgentOutputParser","description":"Configuration for how the agent's output should be parsed and formatted.\n\nThe output parser determines how the agent's responses are processed before being returned to the user.\n","discriminator":{"propertyName":"type","mapping":{"default":{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]}}},"oneOf":[{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]}]}},"required":["type","instructions","output_parser"],"x-vectaraParents":["AgentStep"]}]},"metadata":{"description":"Arbitrary metadata associated with the agent for customization and configuration.","type":"object","additionalProperties":true,"default":{},"example":{"department":"customer_service","version":"1.2.0","owner":"support-team"}},"enabled":{"description":"Whether the agent is enabled.","type":"boolean","default":true,"example":true}},"required":["name","tool_configurations","model","first_step"],"title":"ReplaceAgentRequest"}}}}}
+ body={{"required":true,"content":{"application/json":{"schema":{"description":"Request object for replacing an existing agent completely.","type":"object","properties":{"name":{"description":"The human-readable name of an agent.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Agent","title":"AgentName"},"description":{"description":"A detailed description of the agent's purpose and capabilities.","type":"string","example":"An AI agent specialized in handling customer support inquiries using company documentation and support tools."},"tool_configurations":{"description":"A map of tool configurations available to the agent. The key is the name of the tool configuration and the value is an agent tool configuration.","type":"object","additionalProperties":{"nullable":true,"title":"AgentToolConfiguration","description":"A tool configuration that can be used by an agent, defined inline with a specific configuration type.","discriminator":{"propertyName":"type","mapping":{"dynamic_vectara":{"title":"InlineDynamicVectaraToolConfiguration","description":"An inline configuration for built-in Vectara tools that have implementations within the platform but do not have a dedicated configuration type schema. Use the List Tools endpoint to discover available tools and obtain the `tool_id` required for this configuration.\n","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'dynamic_vectara' for generic Vectara tool configurations.","default":"dynamic_vectara"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for tool calls. The key specifies the location in the tool arguments to overide, and the value specifies what to override with. The LLM will not be able to change the parameters, nor know those values exist within the tool.\n\nThe values can also be dynamic references to context values using $ref with dot notation path syntax:\n- Static value: \"fixed_value\" or 123\n- Dynamic reference: `{\"$ref\": \"session.metadata.field_name\"}`\n\nReferences are resolved at runtime from context:\n- session.metadata.* - Access session metadata fields\n- agent.metadata.* - Access agent metadata fields\n\nExample:\n `{\"query\": {\"$ref\": \".session.metadata.query\"}}`\n\nIf you want to have a real value `\"$ref\"` use `\"$$ref\"`, that is you can escape the first $ by using $$.","type":"object","additionalProperties":true,"example":{"custom_param":"value","limit":10}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},"mcp":{"title":"InlineMcpToolConfiguration","description":"An MCP tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'mcp' for inline MCP tool configurations.","default":"mcp"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for tool calls. The key specifies the location in the tool arguments to overide, and the value specifies what to override with. The LLM will not be able to change the parameters, nor know those values exist within the tool.\n\nThe values can also be dynamic references to context values using $ref with dot notation path syntax:\n- Static value: \"fixed_value\" or 123\n- Dynamic reference: `{\"$ref\": \"session.metadata.field_name\"}`\n\nReferences are resolved at runtime from context:\n- session.metadata.* - Access session metadata fields\n- agent.metadata.* - Access agent metadata fields\n\nExample:\n `{\"query\": {\"$ref\": \".session.metadata.query\"}}`\n\nIf you want to have a real value `\"$ref\"` use `\"$$ref\"`, that is you can escape the first $ by using $$.","type":"object","additionalProperties":true,"example":{"custom_param":"value","limit":10}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},"corpora_search":{"title":"InlineCorporaSearchToolConfiguration","description":"A corpora search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'corpora_search' for inline corpora search tool configurations.","default":"corpora_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the corpus search call such as the query. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query string, which is the question the user is asking. If not provided, will be filled in by the agent.","type":"string","maxLength":5000,"example":"Am I allowed to bring pets to work?"}},"additionalProperties":false,"title":"CorporaSearchToolParameters"},"query_configuration":{"description":"User-configurable settings for the corpus search that are not exposed to the LLM. Supports dynamic references for runtime resolution from session context.","title":"AgentCorporaSearchQueryConfiguration","type":"object","properties":{"search":{"title":"AgentSearchCorporaParameters","description":"Agent-specific search parameters that support eager references.","type":"object","properties":{"corpora":{"description":"The corpora to search, with support for eager references.","type":"array","items":{"title":"AgentKeyedSearchCorpus","description":"Agent-specific keyed search corpus that supports eager references for corpus_key and metadata_filter.","type":"object","properties":{"corpus_key":{"description":"The corpus to search. Can be either:\n- A static string: \"my-corpus\"\n- An EagerReference object: {\"$ref\": \"session.metadata.corpus\"}\n\nWhen an EagerReference is provided, the $ref path is resolved from the session context\nat the start of each turn, before LLM processing begins.\n","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"custom_dimensions":{"description":"The custom dimensions as additional weights.","type":"object","additionalProperties":{"type":"number","format":"double","nullable":false},"title":"CustomDimensions"},"metadata_filter":{"description":"The filter to narrow search results. Can be either:\n- A static string: \"doc.department = 'engineering'\"\n- An EagerReference object: {\"$ref\": \"session.metadata.filters.user\"}\n\nWhen an EagerReference is provided, the $ref path is resolved from the session context\nat the start of each turn, before LLM processing begins.\n","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"lexical_interpolation":{"description":"How much to weigh lexical scores compared to the embedding score.","type":"number","format":"float","minimum":0,"maximum":1},"semantics":{"description":"Indicates whether to consider a query against this corpus as a query or a response.","type":"string","enum":["default","query","response"],"default":"default","title":"SearchSemantics"},"query":{"description":"Query override for this specific corpus.","type":"string","maxLength":5000}},"required":["corpus_key"]},"minItems":1},"offset":{"description":"Number of results to skip for pagination.","type":"integer","format":"int32","minimum":0,"default":0},"limit":{"description":"Maximum number of results to return.","type":"integer","format":"int32","minimum":1,"default":10},"context_configuration":{"type":"object","description":"Configuration on the presentation of each document part in the result set. You can only use characters_before/after or sentences_before/after, but not both. If you specify both in the query, sentences_before/after takes precedence","properties":{"characters_before":{"description":"The number of characters that are shown before the matching document part. This is useful to show the context of the document part in the wider document. Ignored if `sentences_before` is set. Vectara will capture the full sentence that contains the captured characters, to not lose the meaning caused by a truncated word or sentence.","type":"integer","format":"int32"},"characters_after":{"description":"The number of characters that are shown after the matching document part. This is useful to show the context of the document part in the wider document. Ignored if `sentences_after` is set. Vectara will capture the full sentence that contains the captured characters, to not lose the meaning caused by a truncated word or sentence.","type":"integer","format":"int32"},"sentences_before":{"description":"The number of sentences that are shown before the matching document part. This is useful to show the context of the document part in the wider document.","type":"integer","format":"int32","default":0,"minimum":0,"example":2},"sentences_after":{"description":"The number of sentences that are shown after the matching document part. This is useful to show the context of the document part in the wider document.","type":"integer","format":"int32","default":0,"minimum":0,"example":2},"start_tag":{"description":"The tag that wraps the document part at the start. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the context before ends and the document part begins.","type":"string","example":""},"end_tag":{"description":"The tag that wraps the document part at the end. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the document part ends and the context after begins.","type":"string","example":""}},"example":{"sentences_before":2,"sentences_after":2,"start_tag":"","end_tag":""},"title":"ContextConfiguration"},"reranker":{"type":"object","description":"Rerank results of the search. Rerankers are very powerful tools to improve the order of search results. By default the search will use the most powerful reranker available to the customer's plan. To disable reranking, set the reranker `type` to `\"none\"`.","discriminator":{"propertyName":"type","mapping":{"customer_reranker":{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},"userfn":{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},"mmr":{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},"chain":{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},"none":{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}}},"oneOf":[{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}],"title":"SearchReranker"}},"required":["corpora"]},"generation":{"description":"The parameters to control generation.","type":"object","properties":{"enabled":{"description":"Whether generation is enabled for this query. This field is ignored if using chat.","type":"boolean","default":true},"generation_preset_name":{"description":"The preset values to use to feed the query results and other context to the model. \n\nA `generation_preset` is an object with a bundle of properties that specifies: \n* The `prompt_template` that is rendered and then sent to the LLM. \n* The LLM used. * `model_parameter`s such as temperature.\n\nAll of these properties except the model can be overridden by setting them in this object. Even when a `prompt_template` is set, the `generation_preset_name` is used to set the model used. See `model_parameters.model` if you want to set the model explicitly.\n\nIf `generation_preset_name` is not set, the Vectara platform will use the default model and prompt.'\n","type":"string","minLength":1,"example":"mockingbird-2.0"},"prompt_name":{"description":"Use `generation_preset_name` instead of `prompt_name`.","type":"string","minLength":1,"example":"mockingbird-2.0","deprecated":true},"max_used_search_results":{"description":"The maximum number of search results to be available to the prompt.","type":"integer","format":"int32","minimum":0,"default":5},"prompt_template":{"description":"Vectara manages both system and user roles and prompts for the generative LLM out of the box by default. However, users can override the `prompt_template` via this variable. The `prompt_template` is in the form of an Apache Velocity template. For more details on how to configure the `prompt_template`, see the [long-form documentation](https://docs.vectara.com/docs/prompts/vectara-prompt-engine).","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n"},"prompt_text":{"description":"This property is deprecated in favor of clearer naming. Use `prompt_template`. This property will be ignored if `prompt_template` is set.","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n","deprecated":true},"max_response_characters":{"description":"Controls the length of the generated output. This is a rough estimate and not a hard limit: the end output can be longer or shorter than this value. This is generally implemented by including the `max_response_characters` in the prompt, and the LLM's instruction following capability dictates how closely the generated output is limited.","type":"integer","format":"int32","example":300,"minimum":0},"response_language":{"description":"Languages that the Vectara platform supports.","type":"string","enum":["auto","eng","deu","fra","zho","kor","ara","rus","tha","nld","ita","por","spa","jpn","pol","tur","vie","ind","ces","ukr","ell","heb","fas","hin","urd","swe","ben","msa","ron"],"default":"auto","title":"Language"},"model_parameters":{"title":"ModelParameters","description":"The parameters for the model. WARNING: This is an experimental feature, and breakable at any point with virtually no notice. It is meant for experimentation to converge on optimal parameters that can then be set in the prompt definitions.","type":"object","properties":{"llm_name":{"description":"The model (e.g., `gpt-4`) to use for summarization. If specified, it will override the model behind `generation_preset_name`.","type":"string","example":"gpt4"},"max_tokens":{"description":"The maximum number of tokens to be returned by the model.","type":"integer","format":"int32","minimum":1},"temperature":{"description":"The sampling temperature to use. Higher values make the output more random, while lower values make it more focused and deterministic.","type":"number","format":"float"},"frequency_penalty":{"description":"Higher values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.","type":"number","format":"float"},"presence_penalty":{"description":"Higher values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.","type":"number","format":"float"}}},"citations":{"description":"Style the generator should use when making citations.","type":"object","properties":{"style":{"description":"The citation style that you want to use in the summary: \n* `numeric` - Citations formatted as simple numerals: \\[1\\], \\[2\\], etc.\n* `none` - Citations removed from text.\n* `html` - Citation formatted as a URL like `text_pattern`.\n* `markdown` - Formatted as `[text_pattern](url_pattern)`.\n","type":"string","enum":["none","numeric","html","markdown"]},"url_pattern":{"description":"The URL pattern if the citation_style is set to `html` or `markdown`. The pattern can access metadata attributes in the document or part. e.g. `https://my.doc/foo/{doc.id}/{part.id}` The default `url_pattern` is an empty string.","type":"string","example":"https://vectara.com/documents/{doc.id}"},"text_pattern":{"description":"The text pattern if the citation_style is set to `html` or `markdown`. This pattern sets the href for HTML or the text within `[]` in markdown, and defaults to N being the index of result if it is not set. The default citation style looks like `[N]()` for markdown. You can use metadata attributes in the `text_pattern`. For example, the pattern `{doc.title}` with citation style `markdown` would result in final citation output like `[Title]()` when the document's metadata includes `{\"title\":\"Title\"}`.","type":"string","example":"{doc.title}"}},"title":"CitationParameters"},"enable_factual_consistency_score":{"description":"Enable returning the factual consistency score with query results.","type":"boolean","default":true}},"title":"GenerationParameters"},"save_history":{"description":"Whether to save the query to history.","type":"boolean"}},"required":["search"]}},"required":["type","query_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},"web_search":{"title":"InlineWebSearchToolConfiguration","description":"A web search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'web_search' for inline web search tool configurations.","default":"web_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the web search tool call such as limit etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query to execute.","type":"string","example":"latest AI developments 2024"},"limit":{"description":"Maximum number of results to return.","type":"integer","minimum":1,"maximum":20,"example":10},"provider":{"description":"Search provider to use.","type":"string","enum":["tavily"],"example":"tavily"},"include_domains":{"description":"List of domains to specifically include in search results. When specified, results will ONLY come from these domains. Supports exact domains (e.g., \"github.com\"), subdomains (e.g., \"docs.github.com\"), and wildcard patterns (e.g., \"*.github.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["github.com","docs.github.com","*.stackoverflow.com"]},"exclude_domains":{"description":"List of domains to specifically exclude from search results. Supports exact domains (e.g., \"spam.com\"), subdomains (e.g., \"bad.spam.com\"), and wildcard patterns (e.g., \"*.spam.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["spam.com","unreliable-source.com"]}},"additionalProperties":false,"title":"WebSearchToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"web_get":{"title":"InlineWebGetToolConfiguration","description":"A web get tool configuration defined inline in the agent for fetching content from URLs.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'web_get' for inline web get tool configurations.","default":"web_get"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the web get tool call. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"url":{"description":"The URL to fetch content from.","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"method":{"description":"HTTP method to use.","type":"string","enum":["GET","POST","PUT","DELETE","HEAD"]},"headers":{"description":"HTTP headers to include in the request.","oneOf":[{"type":"object","additionalProperties":{"type":"string"}},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"body":{"description":"Request body for POST/PUT requests.","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"follow_redirects":{"description":"Whether to follow HTTP redirects.","oneOf":[{"type":"boolean"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"timeout_seconds":{"description":"Request timeout in seconds.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"head_lines":{"description":"Number of lines from start to include in response.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"tail_lines":{"description":"Number of lines from end to include in response.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"ssl_verify":{"description":"Whether to verify SSL certificates.","oneOf":[{"type":"boolean"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"max_content_bytes":{"description":"Maximum response size in bytes before truncation.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]}},"additionalProperties":false,"title":"WebGetToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"lambda":{"title":"InlineLambdaToolConfiguration","description":"A lambda tool configuration defined inline in the agent for executing user-defined functions.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'lambda' for inline lambda tool configurations.","default":"lambda"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments that will be passed to the lambda function. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","additionalProperties":true,"example":{"custom_param":"value"}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},"structured_indexing":{"title":"InlineStructuredIndexingToolConfiguration","description":"A structured indexing tool configuration defined inline in the agent for indexing into the Vectara platform.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'structured_indexing' for inline structured indexing tool configurations.","default":"structured_indexing"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the structured indexing tool call such as corpus_key etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"corpus_key":{"description":"The key identifying the target corpus for document indexing. If not provided, will be filled in by the agent.","type":"string","example":"my-knowledge-base"},"document_id":{"description":"The unique identifier for the document within the corpus, preferably human readable IDs.","type":"string","example":"annual_report_2024"},"title":{"description":"The title of the document being indexed.","type":"string","example":"2024 Annual ESG Report"},"description":{"description":"A brief description or summary of the document content.","type":"string","example":"Comprehensive environmental, social, and governance report"},"metadata":{"description":"The metadata key-value pairs to associate with the document. If present, this gets merged with existing artifact metadata.","type":"object","additionalProperties":true,"example":{"doc_type":"annual_report","year":2024,"department":"sustainability"}},"document":{"description":"The structured document to index with full hierarchical content.","type":"object","additionalProperties":true,"example":{"id":"annual_report_2024","type":"structured","title":"2024 Annual ESG Report"}}},"additionalProperties":false,"title":"StructuredIndexingToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"sub_agent":{"title":"InlineSubAgentToolConfiguration","description":"A sub-agent tool configuration defined inline in the agent for invoking specialized sub-agents.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'sub_agent' for inline sub-agent tool configurations.","default":"sub_agent"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the sub-agent tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"message":{"description":"The detailed task instructions for the sub-agent to perform autonomously.","type":"string","example":"Review the code changes in pull request \\#123 for security issues"},"session_tti_minutes":{"description":"Time to idle in minutes before the session expires.","type":"integer","format":"int64","minimum":1,"example":60}},"additionalProperties":false,"title":"SubAgentToolParameters"},"sub_agent_configuration":{"description":"User-configurable settings for the sub-agent tool. These parameters are never exposed to the agent.","type":"object","properties":{"agent_key":{"description":"A unique key that identifies an agent.","type":"string","pattern":"[0-9a-zA-Z_-]+$","minLength":1,"maxLength":50,"example":"customer_support","title":"AgentKey"},"session_mode":{"description":"Controls session behavior for sub-agent invocations:\n- llm_controlled: LLM decides whether to create new or resume existing session\n- persistent: Always reuse the same session (created on first invocation)\n- ephemeral: Always create a new session on each invocation\n","type":"string","enum":["llm_controlled","persistent","ephemeral"],"default":"llm_controlled","example":"llm_controlled","title":"SubAgentSessionMode"},"session_metadata":{"description":"Optional metadata to associate with the sub-agent session. Can contain any key-value pairs.","type":"object","additionalProperties":true,"example":{"source":"parent_agent","task_type":"code_review"}}},"required":["agent_key"],"title":"SubAgentConfiguration"}},"required":["type","sub_agent_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},"artifact_read":{"title":"InlineArtifactReadToolConfiguration","description":"An artifact read tool configuration defined inline in the agent for reading artifacts from the session workspace.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_read' for inline artifact read tool configurations.","default":"artifact_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to read.","type":"string","example":"art_abc123"},"encoding":{"description":"The encoding format for the content.","type":"string","enum":["raw","base64"],"example":"raw"},"start_line":{"description":"Optional starting line number (1-indexed).","type":"integer","format":"int32","example":100},"end_line":{"description":"Optional ending line number (1-indexed, inclusive).","type":"integer","format":"int32","example":200}},"additionalProperties":false,"title":"ArtifactReadToolParameters"},"tool_configuration":{"description":"User-configurable settings for the artifact read tool.","type":"object","properties":{"max_size_bytes":{"description":"Maximum file size in bytes for full reads without line ranges. Defaults to 256KB.","type":"integer","format":"int64","minimum":1,"maximum":10485760,"default":262144},"max_lines":{"description":"Maximum number of lines for range-based reads. Defaults to 200.","type":"integer","format":"int32","minimum":1,"maximum":10000,"default":200}},"title":"ArtifactReadConfiguration"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"artifact_grep":{"title":"InlineArtifactGrepToolConfiguration","description":"An artifact grep tool configuration defined inline in the agent for searching through artifact content.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_grep' for inline artifact grep tool configurations.","default":"artifact_grep"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact grep tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to search.","type":"string","example":"art_abc123"},"pattern":{"description":"The pattern to search for (supports grep regex).","type":"string","example":"error|exception"},"grep_options":{"description":"Optional grep command options.","type":"array","items":{"type":"string"},"example":["-i","-n"]}},"additionalProperties":false,"title":"ArtifactGrepToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"image_read":{"title":"InlineImageReadToolConfiguration","description":"An image read tool configuration defined inline in the agent for loading images into the conversation context.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'image_read' for inline image read tool configurations.","default":"image_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the image read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the image artifact to view.","type":"string","pattern":"^art_[a-z0-9_-]+$","example":"art_photo_a3f2"},"detail":{"description":"Detail level for image processing.","type":"string","enum":["auto","low","high"],"default":"auto","example":"auto"}},"additionalProperties":false,"title":"ImageReadToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"document_conversion":{"title":"InlineDocumentConversionToolConfiguration","description":"A document conversion tool configuration defined inline in the agent for converting document artifacts to various formats.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'document_conversion' for inline document conversion tool configurations.","default":"document_conversion"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the document conversion tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to convert.","type":"string","example":"art_abc123"},"output_format":{"description":"Output format for the converted document.","type":"string","enum":["markdown","structured_document"],"example":"markdown"},"description":{"description":"Optional description for the converted artifact.","type":"string","example":"PDF converted to markdown"}},"additionalProperties":false,"title":"DocumentConversionToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]}}},"oneOf":[{"title":"InlineDynamicVectaraToolConfiguration","description":"An inline configuration for built-in Vectara tools that have implementations within the platform but do not have a dedicated configuration type schema. Use the List Tools endpoint to discover available tools and obtain the `tool_id` required for this configuration.\n","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'dynamic_vectara' for generic Vectara tool configurations.","default":"dynamic_vectara"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for tool calls. The key specifies the location in the tool arguments to overide, and the value specifies what to override with. The LLM will not be able to change the parameters, nor know those values exist within the tool.\n\nThe values can also be dynamic references to context values using $ref with dot notation path syntax:\n- Static value: \"fixed_value\" or 123\n- Dynamic reference: `{\"$ref\": \"session.metadata.field_name\"}`\n\nReferences are resolved at runtime from context:\n- session.metadata.* - Access session metadata fields\n- agent.metadata.* - Access agent metadata fields\n\nExample:\n `{\"query\": {\"$ref\": \".session.metadata.query\"}}`\n\nIf you want to have a real value `\"$ref\"` use `\"$$ref\"`, that is you can escape the first $ by using $$.","type":"object","additionalProperties":true,"example":{"custom_param":"value","limit":10}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineMcpToolConfiguration","description":"An MCP tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'mcp' for inline MCP tool configurations.","default":"mcp"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for tool calls. The key specifies the location in the tool arguments to overide, and the value specifies what to override with. The LLM will not be able to change the parameters, nor know those values exist within the tool.\n\nThe values can also be dynamic references to context values using $ref with dot notation path syntax:\n- Static value: \"fixed_value\" or 123\n- Dynamic reference: `{\"$ref\": \"session.metadata.field_name\"}`\n\nReferences are resolved at runtime from context:\n- session.metadata.* - Access session metadata fields\n- agent.metadata.* - Access agent metadata fields\n\nExample:\n `{\"query\": {\"$ref\": \".session.metadata.query\"}}`\n\nIf you want to have a real value `\"$ref\"` use `\"$$ref\"`, that is you can escape the first $ by using $$.","type":"object","additionalProperties":true,"example":{"custom_param":"value","limit":10}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineCorporaSearchToolConfiguration","description":"A corpora search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'corpora_search' for inline corpora search tool configurations.","default":"corpora_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the corpus search call such as the query. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query string, which is the question the user is asking. If not provided, will be filled in by the agent.","type":"string","maxLength":5000,"example":"Am I allowed to bring pets to work?"}},"additionalProperties":false,"title":"CorporaSearchToolParameters"},"query_configuration":{"description":"User-configurable settings for the corpus search that are not exposed to the LLM. Supports dynamic references for runtime resolution from session context.","title":"AgentCorporaSearchQueryConfiguration","type":"object","properties":{"search":{"title":"AgentSearchCorporaParameters","description":"Agent-specific search parameters that support eager references.","type":"object","properties":{"corpora":{"description":"The corpora to search, with support for eager references.","type":"array","items":{"title":"AgentKeyedSearchCorpus","description":"Agent-specific keyed search corpus that supports eager references for corpus_key and metadata_filter.","type":"object","properties":{"corpus_key":{"description":"The corpus to search. Can be either:\n- A static string: \"my-corpus\"\n- An EagerReference object: {\"$ref\": \"session.metadata.corpus\"}\n\nWhen an EagerReference is provided, the $ref path is resolved from the session context\nat the start of each turn, before LLM processing begins.\n","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"custom_dimensions":{"description":"The custom dimensions as additional weights.","type":"object","additionalProperties":{"type":"number","format":"double","nullable":false},"title":"CustomDimensions"},"metadata_filter":{"description":"The filter to narrow search results. Can be either:\n- A static string: \"doc.department = 'engineering'\"\n- An EagerReference object: {\"$ref\": \"session.metadata.filters.user\"}\n\nWhen an EagerReference is provided, the $ref path is resolved from the session context\nat the start of each turn, before LLM processing begins.\n","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"lexical_interpolation":{"description":"How much to weigh lexical scores compared to the embedding score.","type":"number","format":"float","minimum":0,"maximum":1},"semantics":{"description":"Indicates whether to consider a query against this corpus as a query or a response.","type":"string","enum":["default","query","response"],"default":"default","title":"SearchSemantics"},"query":{"description":"Query override for this specific corpus.","type":"string","maxLength":5000}},"required":["corpus_key"]},"minItems":1},"offset":{"description":"Number of results to skip for pagination.","type":"integer","format":"int32","minimum":0,"default":0},"limit":{"description":"Maximum number of results to return.","type":"integer","format":"int32","minimum":1,"default":10},"context_configuration":{"type":"object","description":"Configuration on the presentation of each document part in the result set. You can only use characters_before/after or sentences_before/after, but not both. If you specify both in the query, sentences_before/after takes precedence","properties":{"characters_before":{"description":"The number of characters that are shown before the matching document part. This is useful to show the context of the document part in the wider document. Ignored if `sentences_before` is set. Vectara will capture the full sentence that contains the captured characters, to not lose the meaning caused by a truncated word or sentence.","type":"integer","format":"int32"},"characters_after":{"description":"The number of characters that are shown after the matching document part. This is useful to show the context of the document part in the wider document. Ignored if `sentences_after` is set. Vectara will capture the full sentence that contains the captured characters, to not lose the meaning caused by a truncated word or sentence.","type":"integer","format":"int32"},"sentences_before":{"description":"The number of sentences that are shown before the matching document part. This is useful to show the context of the document part in the wider document.","type":"integer","format":"int32","default":0,"minimum":0,"example":2},"sentences_after":{"description":"The number of sentences that are shown after the matching document part. This is useful to show the context of the document part in the wider document.","type":"integer","format":"int32","default":0,"minimum":0,"example":2},"start_tag":{"description":"The tag that wraps the document part at the start. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the context before ends and the document part begins.","type":"string","example":""},"end_tag":{"description":"The tag that wraps the document part at the end. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the document part ends and the context after begins.","type":"string","example":""}},"example":{"sentences_before":2,"sentences_after":2,"start_tag":"","end_tag":""},"title":"ContextConfiguration"},"reranker":{"type":"object","description":"Rerank results of the search. Rerankers are very powerful tools to improve the order of search results. By default the search will use the most powerful reranker available to the customer's plan. To disable reranking, set the reranker `type` to `\"none\"`.","discriminator":{"propertyName":"type","mapping":{"customer_reranker":{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},"userfn":{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},"mmr":{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},"chain":{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},"none":{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}}},"oneOf":[{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}],"title":"SearchReranker"}},"required":["corpora"]},"generation":{"description":"The parameters to control generation.","type":"object","properties":{"enabled":{"description":"Whether generation is enabled for this query. This field is ignored if using chat.","type":"boolean","default":true},"generation_preset_name":{"description":"The preset values to use to feed the query results and other context to the model. \n\nA `generation_preset` is an object with a bundle of properties that specifies: \n* The `prompt_template` that is rendered and then sent to the LLM. \n* The LLM used. * `model_parameter`s such as temperature.\n\nAll of these properties except the model can be overridden by setting them in this object. Even when a `prompt_template` is set, the `generation_preset_name` is used to set the model used. See `model_parameters.model` if you want to set the model explicitly.\n\nIf `generation_preset_name` is not set, the Vectara platform will use the default model and prompt.'\n","type":"string","minLength":1,"example":"mockingbird-2.0"},"prompt_name":{"description":"Use `generation_preset_name` instead of `prompt_name`.","type":"string","minLength":1,"example":"mockingbird-2.0","deprecated":true},"max_used_search_results":{"description":"The maximum number of search results to be available to the prompt.","type":"integer","format":"int32","minimum":0,"default":5},"prompt_template":{"description":"Vectara manages both system and user roles and prompts for the generative LLM out of the box by default. However, users can override the `prompt_template` via this variable. The `prompt_template` is in the form of an Apache Velocity template. For more details on how to configure the `prompt_template`, see the [long-form documentation](https://docs.vectara.com/docs/prompts/vectara-prompt-engine).","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n"},"prompt_text":{"description":"This property is deprecated in favor of clearer naming. Use `prompt_template`. This property will be ignored if `prompt_template` is set.","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n","deprecated":true},"max_response_characters":{"description":"Controls the length of the generated output. This is a rough estimate and not a hard limit: the end output can be longer or shorter than this value. This is generally implemented by including the `max_response_characters` in the prompt, and the LLM's instruction following capability dictates how closely the generated output is limited.","type":"integer","format":"int32","example":300,"minimum":0},"response_language":{"description":"Languages that the Vectara platform supports.","type":"string","enum":["auto","eng","deu","fra","zho","kor","ara","rus","tha","nld","ita","por","spa","jpn","pol","tur","vie","ind","ces","ukr","ell","heb","fas","hin","urd","swe","ben","msa","ron"],"default":"auto","title":"Language"},"model_parameters":{"title":"ModelParameters","description":"The parameters for the model. WARNING: This is an experimental feature, and breakable at any point with virtually no notice. It is meant for experimentation to converge on optimal parameters that can then be set in the prompt definitions.","type":"object","properties":{"llm_name":{"description":"The model (e.g., `gpt-4`) to use for summarization. If specified, it will override the model behind `generation_preset_name`.","type":"string","example":"gpt4"},"max_tokens":{"description":"The maximum number of tokens to be returned by the model.","type":"integer","format":"int32","minimum":1},"temperature":{"description":"The sampling temperature to use. Higher values make the output more random, while lower values make it more focused and deterministic.","type":"number","format":"float"},"frequency_penalty":{"description":"Higher values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.","type":"number","format":"float"},"presence_penalty":{"description":"Higher values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.","type":"number","format":"float"}}},"citations":{"description":"Style the generator should use when making citations.","type":"object","properties":{"style":{"description":"The citation style that you want to use in the summary: \n* `numeric` - Citations formatted as simple numerals: \\[1\\], \\[2\\], etc.\n* `none` - Citations removed from text.\n* `html` - Citation formatted as a URL like `text_pattern`.\n* `markdown` - Formatted as `[text_pattern](url_pattern)`.\n","type":"string","enum":["none","numeric","html","markdown"]},"url_pattern":{"description":"The URL pattern if the citation_style is set to `html` or `markdown`. The pattern can access metadata attributes in the document or part. e.g. `https://my.doc/foo/{doc.id}/{part.id}` The default `url_pattern` is an empty string.","type":"string","example":"https://vectara.com/documents/{doc.id}"},"text_pattern":{"description":"The text pattern if the citation_style is set to `html` or `markdown`. This pattern sets the href for HTML or the text within `[]` in markdown, and defaults to N being the index of result if it is not set. The default citation style looks like `[N]()` for markdown. You can use metadata attributes in the `text_pattern`. For example, the pattern `{doc.title}` with citation style `markdown` would result in final citation output like `[Title]()` when the document's metadata includes `{\"title\":\"Title\"}`.","type":"string","example":"{doc.title}"}},"title":"CitationParameters"},"enable_factual_consistency_score":{"description":"Enable returning the factual consistency score with query results.","type":"boolean","default":true}},"title":"GenerationParameters"},"save_history":{"description":"Whether to save the query to history.","type":"boolean"}},"required":["search"]}},"required":["type","query_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineWebSearchToolConfiguration","description":"A web search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'web_search' for inline web search tool configurations.","default":"web_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the web search tool call such as limit etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query to execute.","type":"string","example":"latest AI developments 2024"},"limit":{"description":"Maximum number of results to return.","type":"integer","minimum":1,"maximum":20,"example":10},"provider":{"description":"Search provider to use.","type":"string","enum":["tavily"],"example":"tavily"},"include_domains":{"description":"List of domains to specifically include in search results. When specified, results will ONLY come from these domains. Supports exact domains (e.g., \"github.com\"), subdomains (e.g., \"docs.github.com\"), and wildcard patterns (e.g., \"*.github.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["github.com","docs.github.com","*.stackoverflow.com"]},"exclude_domains":{"description":"List of domains to specifically exclude from search results. Supports exact domains (e.g., \"spam.com\"), subdomains (e.g., \"bad.spam.com\"), and wildcard patterns (e.g., \"*.spam.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["spam.com","unreliable-source.com"]}},"additionalProperties":false,"title":"WebSearchToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineWebGetToolConfiguration","description":"A web get tool configuration defined inline in the agent for fetching content from URLs.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'web_get' for inline web get tool configurations.","default":"web_get"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the web get tool call. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"url":{"description":"The URL to fetch content from.","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"method":{"description":"HTTP method to use.","type":"string","enum":["GET","POST","PUT","DELETE","HEAD"]},"headers":{"description":"HTTP headers to include in the request.","oneOf":[{"type":"object","additionalProperties":{"type":"string"}},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"body":{"description":"Request body for POST/PUT requests.","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"follow_redirects":{"description":"Whether to follow HTTP redirects.","oneOf":[{"type":"boolean"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"timeout_seconds":{"description":"Request timeout in seconds.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"head_lines":{"description":"Number of lines from start to include in response.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"tail_lines":{"description":"Number of lines from end to include in response.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"ssl_verify":{"description":"Whether to verify SSL certificates.","oneOf":[{"type":"boolean"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"max_content_bytes":{"description":"Maximum response size in bytes before truncation.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]}},"additionalProperties":false,"title":"WebGetToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineLambdaToolConfiguration","description":"A lambda tool configuration defined inline in the agent for executing user-defined functions.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'lambda' for inline lambda tool configurations.","default":"lambda"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments that will be passed to the lambda function. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","additionalProperties":true,"example":{"custom_param":"value"}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineStructuredIndexingToolConfiguration","description":"A structured indexing tool configuration defined inline in the agent for indexing into the Vectara platform.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'structured_indexing' for inline structured indexing tool configurations.","default":"structured_indexing"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the structured indexing tool call such as corpus_key etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"corpus_key":{"description":"The key identifying the target corpus for document indexing. If not provided, will be filled in by the agent.","type":"string","example":"my-knowledge-base"},"document_id":{"description":"The unique identifier for the document within the corpus, preferably human readable IDs.","type":"string","example":"annual_report_2024"},"title":{"description":"The title of the document being indexed.","type":"string","example":"2024 Annual ESG Report"},"description":{"description":"A brief description or summary of the document content.","type":"string","example":"Comprehensive environmental, social, and governance report"},"metadata":{"description":"The metadata key-value pairs to associate with the document. If present, this gets merged with existing artifact metadata.","type":"object","additionalProperties":true,"example":{"doc_type":"annual_report","year":2024,"department":"sustainability"}},"document":{"description":"The structured document to index with full hierarchical content.","type":"object","additionalProperties":true,"example":{"id":"annual_report_2024","type":"structured","title":"2024 Annual ESG Report"}}},"additionalProperties":false,"title":"StructuredIndexingToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineSubAgentToolConfiguration","description":"A sub-agent tool configuration defined inline in the agent for invoking specialized sub-agents.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'sub_agent' for inline sub-agent tool configurations.","default":"sub_agent"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the sub-agent tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"message":{"description":"The detailed task instructions for the sub-agent to perform autonomously.","type":"string","example":"Review the code changes in pull request \\#123 for security issues"},"session_tti_minutes":{"description":"Time to idle in minutes before the session expires.","type":"integer","format":"int64","minimum":1,"example":60}},"additionalProperties":false,"title":"SubAgentToolParameters"},"sub_agent_configuration":{"description":"User-configurable settings for the sub-agent tool. These parameters are never exposed to the agent.","type":"object","properties":{"agent_key":{"description":"A unique key that identifies an agent.","type":"string","pattern":"[0-9a-zA-Z_-]+$","minLength":1,"maxLength":50,"example":"customer_support","title":"AgentKey"},"session_mode":{"description":"Controls session behavior for sub-agent invocations:\n- llm_controlled: LLM decides whether to create new or resume existing session\n- persistent: Always reuse the same session (created on first invocation)\n- ephemeral: Always create a new session on each invocation\n","type":"string","enum":["llm_controlled","persistent","ephemeral"],"default":"llm_controlled","example":"llm_controlled","title":"SubAgentSessionMode"},"session_metadata":{"description":"Optional metadata to associate with the sub-agent session. Can contain any key-value pairs.","type":"object","additionalProperties":true,"example":{"source":"parent_agent","task_type":"code_review"}}},"required":["agent_key"],"title":"SubAgentConfiguration"}},"required":["type","sub_agent_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineArtifactReadToolConfiguration","description":"An artifact read tool configuration defined inline in the agent for reading artifacts from the session workspace.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_read' for inline artifact read tool configurations.","default":"artifact_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to read.","type":"string","example":"art_abc123"},"encoding":{"description":"The encoding format for the content.","type":"string","enum":["raw","base64"],"example":"raw"},"start_line":{"description":"Optional starting line number (1-indexed).","type":"integer","format":"int32","example":100},"end_line":{"description":"Optional ending line number (1-indexed, inclusive).","type":"integer","format":"int32","example":200}},"additionalProperties":false,"title":"ArtifactReadToolParameters"},"tool_configuration":{"description":"User-configurable settings for the artifact read tool.","type":"object","properties":{"max_size_bytes":{"description":"Maximum file size in bytes for full reads without line ranges. Defaults to 256KB.","type":"integer","format":"int64","minimum":1,"maximum":10485760,"default":262144},"max_lines":{"description":"Maximum number of lines for range-based reads. Defaults to 200.","type":"integer","format":"int32","minimum":1,"maximum":10000,"default":200}},"title":"ArtifactReadConfiguration"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineArtifactGrepToolConfiguration","description":"An artifact grep tool configuration defined inline in the agent for searching through artifact content.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_grep' for inline artifact grep tool configurations.","default":"artifact_grep"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact grep tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to search.","type":"string","example":"art_abc123"},"pattern":{"description":"The pattern to search for (supports grep regex).","type":"string","example":"error|exception"},"grep_options":{"description":"Optional grep command options.","type":"array","items":{"type":"string"},"example":["-i","-n"]}},"additionalProperties":false,"title":"ArtifactGrepToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineImageReadToolConfiguration","description":"An image read tool configuration defined inline in the agent for loading images into the conversation context.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'image_read' for inline image read tool configurations.","default":"image_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the image read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the image artifact to view.","type":"string","pattern":"^art_[a-z0-9_-]+$","example":"art_photo_a3f2"},"detail":{"description":"Detail level for image processing.","type":"string","enum":["auto","low","high"],"default":"auto","example":"auto"}},"additionalProperties":false,"title":"ImageReadToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineDocumentConversionToolConfiguration","description":"A document conversion tool configuration defined inline in the agent for converting document artifacts to various formats.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'document_conversion' for inline document conversion tool configurations.","default":"document_conversion"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the document conversion tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to convert.","type":"string","example":"art_abc123"},"output_format":{"description":"Output format for the converted document.","type":"string","enum":["markdown","structured_document"],"example":"markdown"},"description":{"description":"Optional description for the converted artifact.","type":"string","example":"PDF converted to markdown"}},"additionalProperties":false,"title":"DocumentConversionToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]}],"example":[{"type":"web_search","argument_override":{"limit":5,"include_domains":["github.com","stackoverflow.com"],"exclude_domains":["spam.com"]}}]},"example":{"customer_search":{"type":"corpora_search","argument_override":{"query":"customer support documentation"}}}},"model":{"title":"AgentModel","description":"Configuration for the model used in this step, including the model name and arbitrary parameters.","type":"object","properties":{"name":{"description":"The name of the model to use for this step.","type":"string","example":"gpt-4"},"parameters":{"description":"Arbitrary model-specific parameters that can be passed to the model.","type":"object","additionalProperties":true,"example":{"temperature":0.7,"max_tokens":1000,"top_p":0.9}},"retry_configuration":{"description":"Optional retry configuration for handling transient failures. When not provided, no retry is performed.","title":"RetryConfiguration","type":"object","properties":{"enabled":{"description":"Whether retry is enabled. Enabled by default to provide resilience against transient failures.","type":"boolean","default":true,"example":true},"max_retries":{"description":"Maximum number of retry attempts after initial failure.","type":"integer","minimum":0,"maximum":10,"default":3,"example":3},"initial_backoff_ms":{"description":"Initial backoff time in milliseconds before first retry.","type":"integer","minimum":100,"maximum":60000,"default":1000,"example":1000},"max_backoff_ms":{"description":"Maximum backoff time in milliseconds between retries.","type":"integer","minimum":1000,"maximum":300000,"default":30000,"example":30000},"backoff_factor":{"description":"Multiplication factor for exponential backoff between retries.","type":"number","format":"double","minimum":1,"maximum":10,"default":2,"example":2}}}},"required":["name"]},"first_step":{"title":"AgentStep","description":"A step in an agent's execution flow that defines how the agent processes and responds to input.","discriminator":{"propertyName":"type","mapping":{"conversational":{"title":"ConversationalAgentStep","description":"A step that receives instructions and responds through dialogue. This is a step that gets instructions and engages in conversation with users based on those instructions. This only type step supported, with no way to go next steps. A conversational step responds to an input following its instructions and uses the agent tools. The first response from the model will terminate processing the input.","type":"object","properties":{"type":{"description":"The type of step, which is always 'conversational' for this step type.","type":"string","default":"conversational","example":"conversational"},"instructions":{"description":"List of instructions that guide the agent's behavior in this step. If no instructions are given, the agent is instructed to be helpful and use tools.","type":"array","items":{"title":"AgentStepInstruction","description":"An instruction that can be used in an agent step, either by reference or defined inline.","discriminator":{"propertyName":"type","mapping":{"reference":{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},"inline":{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Base properties for creating an instruction, without the type discriminator field.","type":"object","properties":{"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["name","template"],"title":"InstructionRequestBase"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}}},"oneOf":[{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Base properties for creating an instruction, without the type discriminator field.","type":"object","properties":{"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["name","template"],"title":"InstructionRequestBase"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}],"example":[{"type":"reference","name":"Customer Support Initial Instruction","version":1},{"type":"inline","name":"Temporary On-the-fly Guideline","description":"A special instruction for this specific step only.","template_type":"velocity","template":"Please prioritize issues tagged with 'urgent' for the next hour."}]}},"output_parser":{"title":"AgentOutputParser","description":"Configuration for how the agent's output should be parsed and formatted.\n\nThe output parser determines how the agent's responses are processed before being returned to the user.\n","discriminator":{"propertyName":"type","mapping":{"default":{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]},"structured":{"title":"StructuredOutputParser","description":"Parses agent output as structured JSON conforming to a specified schema.\nUses the model's native structured outputs capability to guarantee valid JSON\nthat adheres to the provided schema. This is useful when you need the agent's\nfinal response in a specific format for downstream processing.\n\nWhen this parser is configured, the agent emits a StructuredOutputEvent instead\nof AgentOutputEvent. The StructuredOutputEvent contains the validated JSON content\nalong with the schema name for identification.\n\nNote: When using structured outputs, the agent can still use tools normally.\nThe schema constraint only applies to the agent's final text response.\nWhen streaming, the structured output is delivered as a single complete event\nrather than being streamed in chunks.\n","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'structured' for this parser type.","type":"string","default":"structured","example":"structured"},"json_schema":{"description":"Specification wrapper for a named JSON schema.","type":"object","required":["name","schema"],"properties":{"description":{"description":"A description of what the response format is for, used by the model to determine how to respond in the format.","type":"string"},"name":{"description":"A unique name identifier for this schema.","type":"string","pattern":"^[a-zA-Z0-9_-]+$","minLength":1},"strict":{"description":"When true, enforces strict schema adherence. The model will always follow the exact schema structure.\nWhen strict mode is enabled, the schema must follow these rules:\n- `additionalProperties: false` must be set on all object types\n- All properties must be listed in the `required` array\n- Maximum 100 properties total, with max 5 levels of nesting\n- Unsupported keywords: minLength, maxLength, pattern, minimum, maximum, minItems, maxItems\n- Root schema cannot use `anyOf` type\n","type":"boolean","nullable":true},"schema":{"description":"The JSON Schema definition that the model output must conform to.","type":"object","required":["type"],"properties":{"type":{"description":"The JSON type for this schema element.","type":"string","enum":["object","array","string","number","integer","boolean"]},"properties":{"description":"Property definitions when type is 'object'. Each key maps to a nested JsonSchemaDefinition.","type":"object","additionalProperties":{"description":"A JSON Schema definition for specifying data structure. Supports recursive schemas for nested objects.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"}},"required":{"description":"List of required property names when type is 'object'.","type":"array","items":{"type":"string"}},"additionalProperties":{"description":"Whether to allow additional properties beyond those defined.","type":"boolean","default":false},"items":{"description":"Schema for array items when type is 'array'.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"},"enum":{"description":"Allowed values for this schema element.","type":"array"},"description":{"description":"Human-readable description of this schema element.","type":"string"}},"title":"JsonSchemaDefinition"}},"title":"JsonSchemaSpec"}},"required":["type","json_schema"],"x-vectaraParents":["AgentOutputParser"]}}},"oneOf":[{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]},{"title":"StructuredOutputParser","description":"Parses agent output as structured JSON conforming to a specified schema.\nUses the model's native structured outputs capability to guarantee valid JSON\nthat adheres to the provided schema. This is useful when you need the agent's\nfinal response in a specific format for downstream processing.\n\nWhen this parser is configured, the agent emits a StructuredOutputEvent instead\nof AgentOutputEvent. The StructuredOutputEvent contains the validated JSON content\nalong with the schema name for identification.\n\nNote: When using structured outputs, the agent can still use tools normally.\nThe schema constraint only applies to the agent's final text response.\nWhen streaming, the structured output is delivered as a single complete event\nrather than being streamed in chunks.\n","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'structured' for this parser type.","type":"string","default":"structured","example":"structured"},"json_schema":{"description":"Specification wrapper for a named JSON schema.","type":"object","required":["name","schema"],"properties":{"description":{"description":"A description of what the response format is for, used by the model to determine how to respond in the format.","type":"string"},"name":{"description":"A unique name identifier for this schema.","type":"string","pattern":"^[a-zA-Z0-9_-]+$","minLength":1},"strict":{"description":"When true, enforces strict schema adherence. The model will always follow the exact schema structure.\nWhen strict mode is enabled, the schema must follow these rules:\n- `additionalProperties: false` must be set on all object types\n- All properties must be listed in the `required` array\n- Maximum 100 properties total, with max 5 levels of nesting\n- Unsupported keywords: minLength, maxLength, pattern, minimum, maximum, minItems, maxItems\n- Root schema cannot use `anyOf` type\n","type":"boolean","nullable":true},"schema":{"description":"The JSON Schema definition that the model output must conform to.","type":"object","required":["type"],"properties":{"type":{"description":"The JSON type for this schema element.","type":"string","enum":["object","array","string","number","integer","boolean"]},"properties":{"description":"Property definitions when type is 'object'. Each key maps to a nested JsonSchemaDefinition.","type":"object","additionalProperties":{"description":"A JSON Schema definition for specifying data structure. Supports recursive schemas for nested objects.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"}},"required":{"description":"List of required property names when type is 'object'.","type":"array","items":{"type":"string"}},"additionalProperties":{"description":"Whether to allow additional properties beyond those defined.","type":"boolean","default":false},"items":{"description":"Schema for array items when type is 'array'.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"},"enum":{"description":"Allowed values for this schema element.","type":"array"},"description":{"description":"Human-readable description of this schema element.","type":"string"}},"title":"JsonSchemaDefinition"}},"title":"JsonSchemaSpec"}},"required":["type","json_schema"],"x-vectaraParents":["AgentOutputParser"]}]}},"required":["type","instructions","output_parser"],"x-vectaraParents":["AgentStep"]}}},"oneOf":[{"title":"ConversationalAgentStep","description":"A step that receives instructions and responds through dialogue. This is a step that gets instructions and engages in conversation with users based on those instructions. This only type step supported, with no way to go next steps. A conversational step responds to an input following its instructions and uses the agent tools. The first response from the model will terminate processing the input.","type":"object","properties":{"type":{"description":"The type of step, which is always 'conversational' for this step type.","type":"string","default":"conversational","example":"conversational"},"instructions":{"description":"List of instructions that guide the agent's behavior in this step. If no instructions are given, the agent is instructed to be helpful and use tools.","type":"array","items":{"title":"AgentStepInstruction","description":"An instruction that can be used in an agent step, either by reference or defined inline.","discriminator":{"propertyName":"type","mapping":{"reference":{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},"inline":{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Base properties for creating an instruction, without the type discriminator field.","type":"object","properties":{"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["name","template"],"title":"InstructionRequestBase"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}}},"oneOf":[{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Base properties for creating an instruction, without the type discriminator field.","type":"object","properties":{"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["name","template"],"title":"InstructionRequestBase"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}],"example":[{"type":"reference","name":"Customer Support Initial Instruction","version":1},{"type":"inline","name":"Temporary On-the-fly Guideline","description":"A special instruction for this specific step only.","template_type":"velocity","template":"Please prioritize issues tagged with 'urgent' for the next hour."}]}},"output_parser":{"title":"AgentOutputParser","description":"Configuration for how the agent's output should be parsed and formatted.\n\nThe output parser determines how the agent's responses are processed before being returned to the user.\n","discriminator":{"propertyName":"type","mapping":{"default":{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]},"structured":{"title":"StructuredOutputParser","description":"Parses agent output as structured JSON conforming to a specified schema.\nUses the model's native structured outputs capability to guarantee valid JSON\nthat adheres to the provided schema. This is useful when you need the agent's\nfinal response in a specific format for downstream processing.\n\nWhen this parser is configured, the agent emits a StructuredOutputEvent instead\nof AgentOutputEvent. The StructuredOutputEvent contains the validated JSON content\nalong with the schema name for identification.\n\nNote: When using structured outputs, the agent can still use tools normally.\nThe schema constraint only applies to the agent's final text response.\nWhen streaming, the structured output is delivered as a single complete event\nrather than being streamed in chunks.\n","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'structured' for this parser type.","type":"string","default":"structured","example":"structured"},"json_schema":{"description":"Specification wrapper for a named JSON schema.","type":"object","required":["name","schema"],"properties":{"description":{"description":"A description of what the response format is for, used by the model to determine how to respond in the format.","type":"string"},"name":{"description":"A unique name identifier for this schema.","type":"string","pattern":"^[a-zA-Z0-9_-]+$","minLength":1},"strict":{"description":"When true, enforces strict schema adherence. The model will always follow the exact schema structure.\nWhen strict mode is enabled, the schema must follow these rules:\n- `additionalProperties: false` must be set on all object types\n- All properties must be listed in the `required` array\n- Maximum 100 properties total, with max 5 levels of nesting\n- Unsupported keywords: minLength, maxLength, pattern, minimum, maximum, minItems, maxItems\n- Root schema cannot use `anyOf` type\n","type":"boolean","nullable":true},"schema":{"description":"The JSON Schema definition that the model output must conform to.","type":"object","required":["type"],"properties":{"type":{"description":"The JSON type for this schema element.","type":"string","enum":["object","array","string","number","integer","boolean"]},"properties":{"description":"Property definitions when type is 'object'. Each key maps to a nested JsonSchemaDefinition.","type":"object","additionalProperties":{"description":"A JSON Schema definition for specifying data structure. Supports recursive schemas for nested objects.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"}},"required":{"description":"List of required property names when type is 'object'.","type":"array","items":{"type":"string"}},"additionalProperties":{"description":"Whether to allow additional properties beyond those defined.","type":"boolean","default":false},"items":{"description":"Schema for array items when type is 'array'.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"},"enum":{"description":"Allowed values for this schema element.","type":"array"},"description":{"description":"Human-readable description of this schema element.","type":"string"}},"title":"JsonSchemaDefinition"}},"title":"JsonSchemaSpec"}},"required":["type","json_schema"],"x-vectaraParents":["AgentOutputParser"]}}},"oneOf":[{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]},{"title":"StructuredOutputParser","description":"Parses agent output as structured JSON conforming to a specified schema.\nUses the model's native structured outputs capability to guarantee valid JSON\nthat adheres to the provided schema. This is useful when you need the agent's\nfinal response in a specific format for downstream processing.\n\nWhen this parser is configured, the agent emits a StructuredOutputEvent instead\nof AgentOutputEvent. The StructuredOutputEvent contains the validated JSON content\nalong with the schema name for identification.\n\nNote: When using structured outputs, the agent can still use tools normally.\nThe schema constraint only applies to the agent's final text response.\nWhen streaming, the structured output is delivered as a single complete event\nrather than being streamed in chunks.\n","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'structured' for this parser type.","type":"string","default":"structured","example":"structured"},"json_schema":{"description":"Specification wrapper for a named JSON schema.","type":"object","required":["name","schema"],"properties":{"description":{"description":"A description of what the response format is for, used by the model to determine how to respond in the format.","type":"string"},"name":{"description":"A unique name identifier for this schema.","type":"string","pattern":"^[a-zA-Z0-9_-]+$","minLength":1},"strict":{"description":"When true, enforces strict schema adherence. The model will always follow the exact schema structure.\nWhen strict mode is enabled, the schema must follow these rules:\n- `additionalProperties: false` must be set on all object types\n- All properties must be listed in the `required` array\n- Maximum 100 properties total, with max 5 levels of nesting\n- Unsupported keywords: minLength, maxLength, pattern, minimum, maximum, minItems, maxItems\n- Root schema cannot use `anyOf` type\n","type":"boolean","nullable":true},"schema":{"description":"The JSON Schema definition that the model output must conform to.","type":"object","required":["type"],"properties":{"type":{"description":"The JSON type for this schema element.","type":"string","enum":["object","array","string","number","integer","boolean"]},"properties":{"description":"Property definitions when type is 'object'. Each key maps to a nested JsonSchemaDefinition.","type":"object","additionalProperties":{"description":"A JSON Schema definition for specifying data structure. Supports recursive schemas for nested objects.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"}},"required":{"description":"List of required property names when type is 'object'.","type":"array","items":{"type":"string"}},"additionalProperties":{"description":"Whether to allow additional properties beyond those defined.","type":"boolean","default":false},"items":{"description":"Schema for array items when type is 'array'.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"},"enum":{"description":"Allowed values for this schema element.","type":"array"},"description":{"description":"Human-readable description of this schema element.","type":"string"}},"title":"JsonSchemaDefinition"}},"title":"JsonSchemaSpec"}},"required":["type","json_schema"],"x-vectaraParents":["AgentOutputParser"]}]}},"required":["type","instructions","output_parser"],"x-vectaraParents":["AgentStep"]}]},"metadata":{"description":"Arbitrary metadata associated with the agent for customization and configuration.","type":"object","additionalProperties":true,"default":{},"example":{"department":"customer_service","version":"1.2.0","owner":"support-team"}},"enabled":{"description":"Whether the agent is enabled.","type":"boolean","default":true,"example":true}},"required":["name","tool_configurations","model","first_step"],"title":"ReplaceAgentRequest"}}}}}
>
@@ -62,7 +62,7 @@ The Replace Agent API enables you to completely replace an existing agent config
"},"end_tag":{"description":"The tag that wraps the document part at the end. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the document part ends and the context after begins.","type":"string","example":""}},"example":{"sentences_before":2,"sentences_after":2,"start_tag":"","end_tag":""},"title":"ContextConfiguration"},"reranker":{"type":"object","description":"Rerank results of the search. Rerankers are very powerful tools to improve the order of search results. By default the search will use the most powerful reranker available to the customer's plan. To disable reranking, set the reranker `type` to `\"none\"`.","discriminator":{"propertyName":"type","mapping":{"customer_reranker":{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},"userfn":{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},"mmr":{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},"chain":{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},"none":{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}}},"oneOf":[{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}],"title":"SearchReranker"}},"example":{"limit":50},"title":"SearchParameters"}],"required":["corpora"],"title":"SearchCorporaParameters"},"generation":{"description":"The parameters to control generation.","type":"object","properties":{"enabled":{"description":"Whether generation is enabled for this query. This field is ignored if using chat.","type":"boolean","default":true},"generation_preset_name":{"description":"The preset values to use to feed the query results and other context to the model. \n\nA `generation_preset` is an object with a bundle of properties that specifies: \n* The `prompt_template` that is rendered and then sent to the LLM. \n* The LLM used. * `model_parameter`s such as temperature.\n\nAll of these properties except the model can be overridden by setting them in this object. Even when a `prompt_template` is set, the `generation_preset_name` is used to set the model used. See `model_parameters.model` if you want to set the model explicitly.\n\nIf `generation_preset_name` is not set, the Vectara platform will use the default model and prompt.'\n","type":"string","minLength":1,"example":"mockingbird-2.0"},"prompt_name":{"description":"Use `generation_preset_name` instead of `prompt_name`.","type":"string","minLength":1,"example":"mockingbird-2.0","deprecated":true},"max_used_search_results":{"description":"The maximum number of search results to be available to the prompt.","type":"integer","format":"int32","minimum":0,"default":5},"prompt_template":{"description":"Vectara manages both system and user roles and prompts for the generative LLM out of the box by default. However, users can override the `prompt_template` via this variable. The `prompt_template` is in the form of an Apache Velocity template. For more details on how to configure the `prompt_template`, see the [long-form documentation](https://docs.vectara.com/docs/prompts/vectara-prompt-engine).","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n"},"prompt_text":{"description":"This property is deprecated in favor of clearer naming. Use `prompt_template`. This property will be ignored if `prompt_template` is set.","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n","deprecated":true},"max_response_characters":{"description":"Controls the length of the generated output. This is a rough estimate and not a hard limit: the end output can be longer or shorter than this value. This is generally implemented by including the `max_response_characters` in the prompt, and the LLM's instruction following capability dictates how closely the generated output is limited.","type":"integer","format":"int32","example":300,"minimum":0},"response_language":{"description":"Languages that the Vectara platform supports.","type":"string","enum":["auto","eng","deu","fra","zho","kor","ara","rus","tha","nld","ita","por","spa","jpn","pol","tur","vie","ind","ces","ukr","ell","heb","fas","hin","urd","swe","ben","msa","ron"],"default":"auto","title":"Language"},"model_parameters":{"title":"ModelParameters","description":"The parameters for the model. WARNING: This is an experimental feature, and breakable at any point with virtually no notice. It is meant for experimentation to converge on optimal parameters that can then be set in the prompt definitions.","type":"object","properties":{"llm_name":{"description":"The model (e.g., `gpt-4`) to use for summarization. If specified, it will override the model behind `generation_preset_name`.","type":"string","example":"gpt4"},"max_tokens":{"description":"The maximum number of tokens to be returned by the model.","type":"integer","format":"int32","minimum":1},"temperature":{"description":"The sampling temperature to use. Higher values make the output more random, while lower values make it more focused and deterministic.","type":"number","format":"float"},"frequency_penalty":{"description":"Higher values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.","type":"number","format":"float"},"presence_penalty":{"description":"Higher values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.","type":"number","format":"float"}}},"citations":{"description":"Style the generator should use when making citations.","type":"object","properties":{"style":{"description":"The citation style that you want to use in the summary: \n* `numeric` - Citations formatted as simple numerals: \\[1\\], \\[2\\], etc.\n* `none` - Citations removed from text.\n* `html` - Citation formatted as a URL like `text_pattern`.\n* `markdown` - Formatted as `[text_pattern](url_pattern)`.\n","type":"string","enum":["none","numeric","html","markdown"]},"url_pattern":{"description":"The URL pattern if the citation_style is set to `html` or `markdown`. The pattern can access metadata attributes in the document or part. e.g. `https://my.doc/foo/{doc.id}/{part.id}` The default `url_pattern` is an empty string.","type":"string","example":"https://vectara.com/documents/{doc.id}"},"text_pattern":{"description":"The text pattern if the citation_style is set to `html` or `markdown`. This pattern sets the href for HTML or the text within `[]` in markdown, and defaults to N being the index of result if it is not set. The default citation style looks like `[N]()` for markdown. You can use metadata attributes in the `text_pattern`. For example, the pattern `{doc.title}` with citation style `markdown` would result in final citation output like `[Title]()` when the document's metadata includes `{\"title\":\"Title\"}`.","type":"string","example":"{doc.title}"}},"title":"CitationParameters"},"enable_factual_consistency_score":{"description":"Enable returning the factual consistency score with query results.","type":"boolean","default":true}},"title":"GenerationParameters"},"save_history":{"description":"Indicates whether to save the query to query history.","type":"boolean"}},"required":["search"],"title":"CorporaSearchQueryConfiguration"}},"required":["type","query_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},"web_search":{"title":"InlineWebSearchToolConfiguration","description":"A web search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'web_search' for inline web search tool configurations.","default":"web_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the web search tool call such as limit etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query to execute.","type":"string","example":"latest AI developments 2024"},"limit":{"description":"Maximum number of results to return.","type":"integer","minimum":1,"example":10},"provider":{"description":"Search provider to use.","type":"string","enum":["tavily"],"example":"tavily"},"include_domains":{"description":"List of domains to specifically include in search results. When specified, results will ONLY come from these domains. Supports exact domains (e.g., \"github.com\"), subdomains (e.g., \"docs.github.com\"), and wildcard patterns (e.g., \"*.github.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["github.com","docs.github.com","*.stackoverflow.com"]},"exclude_domains":{"description":"List of domains to specifically exclude from search results. Supports exact domains (e.g., \"spam.com\"), subdomains (e.g., \"bad.spam.com\"), and wildcard patterns (e.g., \"*.spam.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["spam.com","unreliable-source.com"]}},"additionalProperties":false,"title":"WebSearchToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"lambda":{"title":"InlineLambdaToolConfiguration","description":"A lambda tool configuration defined inline in the agent for executing user-defined functions.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'lambda' for inline lambda tool configurations.","default":"lambda"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments that will be passed to the lambda function. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","additionalProperties":true,"example":{"custom_param":"value"}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},"structured_indexing":{"title":"InlineStructuredIndexingToolConfiguration","description":"A structured indexing tool configuration defined inline in the agent for indexing into the Vectara platform.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'structured_indexing' for inline structured indexing tool configurations.","default":"structured_indexing"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the structured indexing tool call such as corpus_key etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"corpus_key":{"description":"The key identifying the target corpus for document indexing. If not provided, will be filled in by the LLM.","type":"string","example":"my-knowledge-base"},"document_id":{"description":"The unique identifier for the document within the corpus, preferably human readable IDs.","type":"string","example":"annual_report_2024"},"title":{"description":"The title of the document being indexed.","type":"string","example":"2024 Annual ESG Report"},"description":{"description":"A brief description or summary of the document content.","type":"string","example":"Comprehensive environmental, social, and governance report"},"metadata":{"description":"The metadata key-value pairs to associate with the document. If present, this gets merged with existing artifact metadata.","type":"object","additionalProperties":true,"example":{"doc_type":"annual_report","year":2024,"department":"sustainability"}},"document":{"description":"The structured document to index with full hierarchical content.","type":"object","additionalProperties":true,"example":{"id":"annual_report_2024","type":"structured","title":"2024 Annual ESG Report"}}},"additionalProperties":false,"title":"StructuredIndexingToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"sub_agent":{"title":"InlineSubAgentToolConfiguration","description":"A sub-agent tool configuration defined inline in the agent for invoking specialized sub-agents.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'sub_agent' for inline sub-agent tool configurations.","default":"sub_agent"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the sub-agent tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"message":{"description":"The detailed task instructions for the sub-agent to perform autonomously.","type":"string","example":"Review the code changes in pull request \\#123 for security issues"},"session_tti_minutes":{"description":"Time to idle in minutes before the session expires.","type":"integer","format":"int64","minimum":1,"example":60}},"additionalProperties":false,"title":"SubAgentToolParameters"},"sub_agent_configuration":{"description":"User-configurable settings for the sub-agent tool. These parameters are never exposed to the agent.","type":"object","properties":{"agent_key":{"description":"A unique key that identifies an agent.","type":"string","pattern":"[0-9a-zA-Z_-]+$","minLength":1,"maxLength":50,"example":"customer_support","title":"AgentKey"}},"required":["agent_key"],"title":"SubAgentConfiguration"}},"required":["type","sub_agent_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},"artifact_read":{"title":"InlineArtifactReadToolConfiguration","description":"An artifact read tool configuration defined inline in the agent for reading artifacts from the session workspace.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_read' for inline artifact read tool configurations.","default":"artifact_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to read.","type":"string","example":"art_abc123"},"encoding":{"description":"The encoding format for the content.","type":"string","enum":["raw","base64"],"example":"raw"},"start_line":{"description":"Optional starting line number (1-indexed).","type":"integer","format":"int32","example":100},"end_line":{"description":"Optional ending line number (1-indexed, inclusive).","type":"integer","format":"int32","example":200}},"additionalProperties":false,"title":"ArtifactReadToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"artifact_grep":{"title":"InlineArtifactGrepToolConfiguration","description":"An artifact grep tool configuration defined inline in the agent for searching through artifact content.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_grep' for inline artifact grep tool configurations.","default":"artifact_grep"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact grep tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to search.","type":"string","example":"art_abc123"},"pattern":{"description":"The pattern to search for (supports grep regex).","type":"string","example":"error|exception"},"grep_options":{"description":"Optional grep command options.","type":"array","items":{"type":"string"},"example":["-i","-n"]}},"additionalProperties":false,"title":"ArtifactGrepToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"image_read":{"title":"InlineImageReadToolConfiguration","description":"An image read tool configuration defined inline in the agent for loading images into the conversation context.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'image_read' for inline image read tool configurations.","default":"image_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the image read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the image artifact to view.","type":"string","pattern":"^art_[a-z0-9_-]+$","example":"art_photo_a3f2"},"detail":{"description":"Detail level for image processing.","type":"string","enum":["auto","low","high"],"default":"auto","example":"auto"}},"additionalProperties":false,"title":"ImageReadToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"document_conversion":{"title":"InlineDocumentConversionToolConfiguration","description":"A document conversion tool configuration defined inline in the agent for converting document artifacts to various formats.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'document_conversion' for inline document conversion tool configurations.","default":"document_conversion"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the document conversion tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to convert.","type":"string","example":"art_abc123"},"output_format":{"description":"Output format for the converted document.","type":"string","enum":["markdown","structured_document"],"example":"markdown"},"description":{"description":"Optional description for the converted artifact.","type":"string","example":"PDF converted to markdown"}},"additionalProperties":false,"title":"DocumentConversionToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]}}},"oneOf":[{"title":"InlineMcpToolConfiguration","description":"An MCP tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'mcp' for inline MCP tool configurations.","default":"mcp"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for tool calls. The key specifies the location in the tool arguments to overide, and the value specifies what to override with. The LLM will not be able to change the parameters, nor know those values exist within the tool.\n\nThe values can also be dynamic references to context values using $ref with dot notation path syntax:\n- Static value: \"fixed_value\" or 123\n- Dynamic reference: `{\"$ref\": \"session.metadata.field_name\"}`\n\nReferences are resolved at runtime from context:\n- session.metadata.* - Access session metadata fields\n- agent.metadata.* - Access agent metadata fields\n\nExample:\n `{\"query\": {\"$ref\": \".session.metadata.query\"}}`\n\nIf you want to have a real value `\"$ref\"` use `\"$$ref\"`, that is you can escape the first $ by using $$.","type":"object","additionalProperties":true,"example":{"custom_param":"value","limit":10}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineCorporaSearchToolConfiguration","description":"A corpora search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'corpora_search' for inline corpora search tool configurations.","default":"corpora_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the corpus search call such as the query. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query string, which is the question the user is asking. If not provided, will be filled in by the LLM.","type":"string","maxLength":5000,"example":"Am I allowed to bring pets to work?"}},"additionalProperties":false,"title":"CorporaSearchToolParameters"},"query_configuration":{"description":"User-configurable settings for the corpus search that are not exposed to the LLM.","type":"object","properties":{"search":{"description":"The parameters to search one or more corpora.","allOf":[{"type":"object","properties":{"corpora":{"description":"The corpora that you want to search.","type":"array","items":{"description":"A corpus with its identifying key for use in search operations within a customer account.","allOf":[{"description":"Configuration for search parameters specific to a single corpus within a customer account, including filters and semantics.","type":"object","properties":{"custom_dimensions":{"description":"The custom dimensions as additional weights.","type":"object","additionalProperties":{"type":"number","format":"double","nullable":false},"title":"CustomDimensions"},"metadata_filter":{"description":"The filter string used to narrow the search based on metadata attributes. The query against this corpus will be confined to document parts that match the `metadata_filter`. Only metadata fields set as `filter_attributes` on the corpus can be filtered. Filter syntax is similar to a SQL WHERE clause. See [metadata filters documentation](https://docs.vectara.com/docs/learn/metadata-search-filtering/filter-overview) for more information.","type":"string","maxLength":8000,"example":"doc.title = 'Annual Report'"},"lexical_interpolation":{"description":"How much to weigh lexical scores compared to the embedding score. 0 means lexical search is not used at all, and 1 means only lexical search is used.","type":"number","format":"float","minimum":0,"maximum":1,"example":0.005},"semantics":{"description":"Indicates whether to consider a query against this corpus as a query or a response.","type":"string","enum":["default","query","response"],"default":"default","title":"SearchSemantics"}},"title":"SearchCorpus"},{"type":"object","properties":{"corpus_key":{"description":"A user-provided key for a corpus.","type":"string","example":"my-corpus","pattern":"[a-zA-Z0-9_\\=\\-]+$","maxLength":50,"title":"CorpusKey"},"query":{"description":"Query for a particular corpus that will override the overall query if present.","type":"string","maxLength":5000,"example":"What are some important facts in my-corpus?"}}}],"required":["corpus_key"],"title":"KeyedSearchCorpus"},"minItems":1}}},{"type":"object","description":"Search parameters to retrieve knowledge for the query.","properties":{"offset":{"description":"Specifies how many results into the result to skip. This is useful for pagination.","type":"integer","format":"int32","default":0,"minimum":0},"limit":{"description":"The maximum number of results returned.","type":"integer","format":"int32","minimum":1,"default":10},"context_configuration":{"type":"object","description":"Configuration on the presentation of each document part in the result set. You can only use characters_before/after or sentences_before/after, but not both. If you specify both in the query, sentences_before/after takes precedence","properties":{"characters_before":{"description":"The number of characters that are shown before the matching document part. This is useful to show the context of the document part in the wider document. Ignored if `sentences_before` is set. Vectara will capture the full sentence that contains the captured characters, to not lose the meaning caused by a truncated word or sentence.","type":"integer","format":"int32"},"characters_after":{"description":"The number of characters that are shown after the matching document part. This is useful to show the context of the document part in the wider document. Ignored if `sentences_after` is set. Vectara will capture the full sentence that contains the captured characters, to not lose the meaning caused by a truncated word or sentence.","type":"integer","format":"int32"},"sentences_before":{"description":"The number of sentences that are shown before the matching document part. This is useful to show the context of the document part in the wider document.","type":"integer","format":"int32","default":0,"minimum":0,"example":2},"sentences_after":{"description":"The number of sentences that are shown after the matching document part. This is useful to show the context of the document part in the wider document.","type":"integer","format":"int32","default":0,"minimum":0,"example":2},"start_tag":{"description":"The tag that wraps the document part at the start. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the context before ends and the document part begins.","type":"string","example":""},"end_tag":{"description":"The tag that wraps the document part at the end. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the document part ends and the context after begins.","type":"string","example":""}},"example":{"sentences_before":2,"sentences_after":2,"start_tag":"","end_tag":""},"title":"ContextConfiguration"},"reranker":{"type":"object","description":"Rerank results of the search. Rerankers are very powerful tools to improve the order of search results. By default the search will use the most powerful reranker available to the customer's plan. To disable reranking, set the reranker `type` to `\"none\"`.","discriminator":{"propertyName":"type","mapping":{"customer_reranker":{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},"userfn":{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},"mmr":{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},"chain":{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},"none":{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}}},"oneOf":[{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}],"title":"SearchReranker"}},"example":{"limit":50},"title":"SearchParameters"}],"required":["corpora"],"title":"SearchCorporaParameters"},"generation":{"description":"The parameters to control generation.","type":"object","properties":{"enabled":{"description":"Whether generation is enabled for this query. This field is ignored if using chat.","type":"boolean","default":true},"generation_preset_name":{"description":"The preset values to use to feed the query results and other context to the model. \n\nA `generation_preset` is an object with a bundle of properties that specifies: \n* The `prompt_template` that is rendered and then sent to the LLM. \n* The LLM used. * `model_parameter`s such as temperature.\n\nAll of these properties except the model can be overridden by setting them in this object. Even when a `prompt_template` is set, the `generation_preset_name` is used to set the model used. See `model_parameters.model` if you want to set the model explicitly.\n\nIf `generation_preset_name` is not set, the Vectara platform will use the default model and prompt.'\n","type":"string","minLength":1,"example":"mockingbird-2.0"},"prompt_name":{"description":"Use `generation_preset_name` instead of `prompt_name`.","type":"string","minLength":1,"example":"mockingbird-2.0","deprecated":true},"max_used_search_results":{"description":"The maximum number of search results to be available to the prompt.","type":"integer","format":"int32","minimum":0,"default":5},"prompt_template":{"description":"Vectara manages both system and user roles and prompts for the generative LLM out of the box by default. However, users can override the `prompt_template` via this variable. The `prompt_template` is in the form of an Apache Velocity template. For more details on how to configure the `prompt_template`, see the [long-form documentation](https://docs.vectara.com/docs/prompts/vectara-prompt-engine).","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n"},"prompt_text":{"description":"This property is deprecated in favor of clearer naming. Use `prompt_template`. This property will be ignored if `prompt_template` is set.","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n","deprecated":true},"max_response_characters":{"description":"Controls the length of the generated output. This is a rough estimate and not a hard limit: the end output can be longer or shorter than this value. This is generally implemented by including the `max_response_characters` in the prompt, and the LLM's instruction following capability dictates how closely the generated output is limited.","type":"integer","format":"int32","example":300,"minimum":0},"response_language":{"description":"Languages that the Vectara platform supports.","type":"string","enum":["auto","eng","deu","fra","zho","kor","ara","rus","tha","nld","ita","por","spa","jpn","pol","tur","vie","ind","ces","ukr","ell","heb","fas","hin","urd","swe","ben","msa","ron"],"default":"auto","title":"Language"},"model_parameters":{"title":"ModelParameters","description":"The parameters for the model. WARNING: This is an experimental feature, and breakable at any point with virtually no notice. It is meant for experimentation to converge on optimal parameters that can then be set in the prompt definitions.","type":"object","properties":{"llm_name":{"description":"The model (e.g., `gpt-4`) to use for summarization. If specified, it will override the model behind `generation_preset_name`.","type":"string","example":"gpt4"},"max_tokens":{"description":"The maximum number of tokens to be returned by the model.","type":"integer","format":"int32","minimum":1},"temperature":{"description":"The sampling temperature to use. Higher values make the output more random, while lower values make it more focused and deterministic.","type":"number","format":"float"},"frequency_penalty":{"description":"Higher values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.","type":"number","format":"float"},"presence_penalty":{"description":"Higher values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.","type":"number","format":"float"}}},"citations":{"description":"Style the generator should use when making citations.","type":"object","properties":{"style":{"description":"The citation style that you want to use in the summary: \n* `numeric` - Citations formatted as simple numerals: \\[1\\], \\[2\\], etc.\n* `none` - Citations removed from text.\n* `html` - Citation formatted as a URL like `text_pattern`.\n* `markdown` - Formatted as `[text_pattern](url_pattern)`.\n","type":"string","enum":["none","numeric","html","markdown"]},"url_pattern":{"description":"The URL pattern if the citation_style is set to `html` or `markdown`. The pattern can access metadata attributes in the document or part. e.g. `https://my.doc/foo/{doc.id}/{part.id}` The default `url_pattern` is an empty string.","type":"string","example":"https://vectara.com/documents/{doc.id}"},"text_pattern":{"description":"The text pattern if the citation_style is set to `html` or `markdown`. This pattern sets the href for HTML or the text within `[]` in markdown, and defaults to N being the index of result if it is not set. The default citation style looks like `[N]()` for markdown. You can use metadata attributes in the `text_pattern`. For example, the pattern `{doc.title}` with citation style `markdown` would result in final citation output like `[Title]()` when the document's metadata includes `{\"title\":\"Title\"}`.","type":"string","example":"{doc.title}"}},"title":"CitationParameters"},"enable_factual_consistency_score":{"description":"Enable returning the factual consistency score with query results.","type":"boolean","default":true}},"title":"GenerationParameters"},"save_history":{"description":"Indicates whether to save the query to query history.","type":"boolean"}},"required":["search"],"title":"CorporaSearchQueryConfiguration"}},"required":["type","query_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineWebSearchToolConfiguration","description":"A web search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'web_search' for inline web search tool configurations.","default":"web_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the web search tool call such as limit etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query to execute.","type":"string","example":"latest AI developments 2024"},"limit":{"description":"Maximum number of results to return.","type":"integer","minimum":1,"example":10},"provider":{"description":"Search provider to use.","type":"string","enum":["tavily"],"example":"tavily"},"include_domains":{"description":"List of domains to specifically include in search results. When specified, results will ONLY come from these domains. Supports exact domains (e.g., \"github.com\"), subdomains (e.g., \"docs.github.com\"), and wildcard patterns (e.g., \"*.github.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["github.com","docs.github.com","*.stackoverflow.com"]},"exclude_domains":{"description":"List of domains to specifically exclude from search results. Supports exact domains (e.g., \"spam.com\"), subdomains (e.g., \"bad.spam.com\"), and wildcard patterns (e.g., \"*.spam.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["spam.com","unreliable-source.com"]}},"additionalProperties":false,"title":"WebSearchToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineLambdaToolConfiguration","description":"A lambda tool configuration defined inline in the agent for executing user-defined functions.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'lambda' for inline lambda tool configurations.","default":"lambda"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments that will be passed to the lambda function. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","additionalProperties":true,"example":{"custom_param":"value"}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineStructuredIndexingToolConfiguration","description":"A structured indexing tool configuration defined inline in the agent for indexing into the Vectara platform.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'structured_indexing' for inline structured indexing tool configurations.","default":"structured_indexing"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the structured indexing tool call such as corpus_key etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"corpus_key":{"description":"The key identifying the target corpus for document indexing. If not provided, will be filled in by the LLM.","type":"string","example":"my-knowledge-base"},"document_id":{"description":"The unique identifier for the document within the corpus, preferably human readable IDs.","type":"string","example":"annual_report_2024"},"title":{"description":"The title of the document being indexed.","type":"string","example":"2024 Annual ESG Report"},"description":{"description":"A brief description or summary of the document content.","type":"string","example":"Comprehensive environmental, social, and governance report"},"metadata":{"description":"The metadata key-value pairs to associate with the document. If present, this gets merged with existing artifact metadata.","type":"object","additionalProperties":true,"example":{"doc_type":"annual_report","year":2024,"department":"sustainability"}},"document":{"description":"The structured document to index with full hierarchical content.","type":"object","additionalProperties":true,"example":{"id":"annual_report_2024","type":"structured","title":"2024 Annual ESG Report"}}},"additionalProperties":false,"title":"StructuredIndexingToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineSubAgentToolConfiguration","description":"A sub-agent tool configuration defined inline in the agent for invoking specialized sub-agents.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'sub_agent' for inline sub-agent tool configurations.","default":"sub_agent"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the sub-agent tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"message":{"description":"The detailed task instructions for the sub-agent to perform autonomously.","type":"string","example":"Review the code changes in pull request \\#123 for security issues"},"session_tti_minutes":{"description":"Time to idle in minutes before the session expires.","type":"integer","format":"int64","minimum":1,"example":60}},"additionalProperties":false,"title":"SubAgentToolParameters"},"sub_agent_configuration":{"description":"User-configurable settings for the sub-agent tool. These parameters are never exposed to the agent.","type":"object","properties":{"agent_key":{"description":"A unique key that identifies an agent.","type":"string","pattern":"[0-9a-zA-Z_-]+$","minLength":1,"maxLength":50,"example":"customer_support","title":"AgentKey"}},"required":["agent_key"],"title":"SubAgentConfiguration"}},"required":["type","sub_agent_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineArtifactReadToolConfiguration","description":"An artifact read tool configuration defined inline in the agent for reading artifacts from the session workspace.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_read' for inline artifact read tool configurations.","default":"artifact_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to read.","type":"string","example":"art_abc123"},"encoding":{"description":"The encoding format for the content.","type":"string","enum":["raw","base64"],"example":"raw"},"start_line":{"description":"Optional starting line number (1-indexed).","type":"integer","format":"int32","example":100},"end_line":{"description":"Optional ending line number (1-indexed, inclusive).","type":"integer","format":"int32","example":200}},"additionalProperties":false,"title":"ArtifactReadToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineArtifactGrepToolConfiguration","description":"An artifact grep tool configuration defined inline in the agent for searching through artifact content.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_grep' for inline artifact grep tool configurations.","default":"artifact_grep"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact grep tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to search.","type":"string","example":"art_abc123"},"pattern":{"description":"The pattern to search for (supports grep regex).","type":"string","example":"error|exception"},"grep_options":{"description":"Optional grep command options.","type":"array","items":{"type":"string"},"example":["-i","-n"]}},"additionalProperties":false,"title":"ArtifactGrepToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineImageReadToolConfiguration","description":"An image read tool configuration defined inline in the agent for loading images into the conversation context.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'image_read' for inline image read tool configurations.","default":"image_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the image read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the image artifact to view.","type":"string","pattern":"^art_[a-z0-9_-]+$","example":"art_photo_a3f2"},"detail":{"description":"Detail level for image processing.","type":"string","enum":["auto","low","high"],"default":"auto","example":"auto"}},"additionalProperties":false,"title":"ImageReadToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineDocumentConversionToolConfiguration","description":"A document conversion tool configuration defined inline in the agent for converting document artifacts to various formats.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'document_conversion' for inline document conversion tool configurations.","default":"document_conversion"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the document conversion tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to convert.","type":"string","example":"art_abc123"},"output_format":{"description":"Output format for the converted document.","type":"string","enum":["markdown","structured_document"],"example":"markdown"},"description":{"description":"Optional description for the converted artifact.","type":"string","example":"PDF converted to markdown"}},"additionalProperties":false,"title":"DocumentConversionToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]}],"example":[{"type":"web_search","argument_override":{"limit":5,"include_domains":["github.com","stackoverflow.com"],"exclude_domains":["spam.com"]}}]},"example":{"customer_search":{"type":"corpora_search","argument_override":{"query":"customer support documentation"}}}},"model":{"title":"AgentModel","description":"Configuration for the model used in this step, including the model name and arbitrary parameters.","type":"object","properties":{"name":{"description":"The name of the model to use for this step.","type":"string","example":"gpt-4"},"parameters":{"description":"Arbitrary model-specific parameters that can be passed to the model.","type":"object","additionalProperties":true,"example":{"temperature":0.7,"max_tokens":1000,"top_p":0.9}},"retry_configuration":{"description":"Optional retry configuration for handling transient failures. When not provided, no retry is performed.","title":"RetryConfiguration","type":"object","properties":{"enabled":{"description":"Whether retry is enabled. Enabled by default to provide resilience against transient failures.","type":"boolean","default":true,"example":true},"max_retries":{"description":"Maximum number of retry attempts after initial failure.","type":"integer","minimum":0,"maximum":10,"default":3,"example":3},"initial_backoff_ms":{"description":"Initial backoff time in milliseconds before first retry.","type":"integer","minimum":100,"maximum":60000,"default":1000,"example":1000},"max_backoff_ms":{"description":"Maximum backoff time in milliseconds between retries.","type":"integer","minimum":1000,"maximum":300000,"default":30000,"example":30000},"backoff_factor":{"description":"Multiplication factor for exponential backoff between retries.","type":"number","format":"double","minimum":1,"maximum":10,"default":2,"example":2}}}},"required":["name"]},"first_step":{"title":"AgentStep","description":"A step in an agent's execution flow that defines how the agent processes and responds to input.","discriminator":{"propertyName":"type","mapping":{"conversational":{"title":"ConversationalAgentStep","description":"A step that receives instructions and responds through dialogue. This is a step that gets instructions and engages in conversation with users based on those instructions. This only type step supported, with no way to go next steps. A conversational step responds to an input following its instructions and uses the agent tools. The first response from the model will terminate processing the input.","type":"object","properties":{"type":{"description":"The type of step, which is always 'conversational' for this step type.","type":"string","default":"conversational","example":"conversational"},"instructions":{"description":"List of instructions that guide the agent's behavior in this step. If no instructions are given, the agent is instructed to be helpful and use tools.","type":"array","items":{"title":"AgentStepInstruction","description":"An instruction that can be used in an agent step, either by reference or defined inline.","discriminator":{"propertyName":"type","mapping":{"reference":{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},"inline":{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Request object for creating a new initial instruction.","type":"object","properties":{"type":{"description":"The type of instruction to create.","type":"string","default":"initial","example":"initial"},"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["type","name","template"],"x-vectaraParents":["CreateInstructionRequest"],"title":"CreateInitialInstructionRequest"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}}},"oneOf":[{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Request object for creating a new initial instruction.","type":"object","properties":{"type":{"description":"The type of instruction to create.","type":"string","default":"initial","example":"initial"},"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["type","name","template"],"x-vectaraParents":["CreateInstructionRequest"],"title":"CreateInitialInstructionRequest"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}],"example":[{"type":"reference","name":"Customer Support Initial Instruction","version":1},{"type":"inline","name":"Temporary On-the-fly Guideline","description":"A special instruction for this specific step only.","template_type":"velocity","template":"Please prioritize issues tagged with 'urgent' for the next hour."}]}},"output_parser":{"title":"AgentOutputParser","description":"Configuration for how the agent's output should be parsed and formatted.\n\nThe output parser determines how the agent's responses are processed before being returned to the user.\n","discriminator":{"propertyName":"type","mapping":{"default":{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]}}},"oneOf":[{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]}]}},"required":["type","instructions","output_parser"],"x-vectaraParents":["AgentStep"]}}},"oneOf":[{"title":"ConversationalAgentStep","description":"A step that receives instructions and responds through dialogue. This is a step that gets instructions and engages in conversation with users based on those instructions. This only type step supported, with no way to go next steps. A conversational step responds to an input following its instructions and uses the agent tools. The first response from the model will terminate processing the input.","type":"object","properties":{"type":{"description":"The type of step, which is always 'conversational' for this step type.","type":"string","default":"conversational","example":"conversational"},"instructions":{"description":"List of instructions that guide the agent's behavior in this step. If no instructions are given, the agent is instructed to be helpful and use tools.","type":"array","items":{"title":"AgentStepInstruction","description":"An instruction that can be used in an agent step, either by reference or defined inline.","discriminator":{"propertyName":"type","mapping":{"reference":{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},"inline":{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Request object for creating a new initial instruction.","type":"object","properties":{"type":{"description":"The type of instruction to create.","type":"string","default":"initial","example":"initial"},"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["type","name","template"],"x-vectaraParents":["CreateInstructionRequest"],"title":"CreateInitialInstructionRequest"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}}},"oneOf":[{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Request object for creating a new initial instruction.","type":"object","properties":{"type":{"description":"The type of instruction to create.","type":"string","default":"initial","example":"initial"},"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["type","name","template"],"x-vectaraParents":["CreateInstructionRequest"],"title":"CreateInitialInstructionRequest"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}],"example":[{"type":"reference","name":"Customer Support Initial Instruction","version":1},{"type":"inline","name":"Temporary On-the-fly Guideline","description":"A special instruction for this specific step only.","template_type":"velocity","template":"Please prioritize issues tagged with 'urgent' for the next hour."}]}},"output_parser":{"title":"AgentOutputParser","description":"Configuration for how the agent's output should be parsed and formatted.\n\nThe output parser determines how the agent's responses are processed before being returned to the user.\n","discriminator":{"propertyName":"type","mapping":{"default":{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]}}},"oneOf":[{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]}]}},"required":["type","instructions","output_parser"],"x-vectaraParents":["AgentStep"]}]},"metadata":{"description":"Arbitrary metadata associated with the agent for customization and configuration.","type":"object","additionalProperties":true,"example":{"department":"customer_service","version":"1.2.0","owner":"support-team"}},"enabled":{"description":"Whether the agent is currently enabled and available for use.","type":"boolean","default":true,"example":true},"created_at":{"description":"Timestamp when the agent was created.","type":"string","format":"date-time","example":"2024-01-15T10:30:00Z"},"updated_at":{"description":"Timestamp when the agent was last updated.","type":"string","format":"date-time","example":"2024-01-16T14:45:00Z"}},"required":["key","name","tool_configurations","model","first_step","enabled"],"title":"Agent"}}}},"400":{"description":"Agent replacement request was malformed or contains invalid references.","content":{"application/json":{"schema":{"description":"Error returned when a request contains invalid parameters or violates schema validation.","type":"object","properties":{"field_errors":{"description":"The errors that relate to specific fields in the request.","type":"object","additionalProperties":{"type":"string"}},"messages":{"type":"array","items":{"title":"message","type":"string"}},"request_id":{"description":"The ID of the request that can be used to help Vectara support debug what went wrong.","type":"string"}},"title":"BadRequestError"}}}},"403":{"description":"Permissions do not allow replacing this agent.","content":{"application/json":{"schema":{"description":"A general error response with an error code and message.","type":"object","properties":{"messages":{"description":"The messages describing why the error occurred.","type":"array","items":{"title":"message","type":"string","example":"Internal server error."}},"request_id":{"description":"The ID of the request that can be used to help Vectara support debug what went wrong.","type":"string"}},"title":"Error"}}}},"404":{"description":"Agent not found.","content":{"application/json":{"schema":{"description":"Error returned when a requested resource does not exist.","type":"object","properties":{"id":{"description":"The ID cannot be found.","type":"string"},"messages":{"type":"array","items":{"title":"message","type":"string"}},"request_id":{"description":"The ID of the request that can be used to help Vectara support debug what went wrong.","type":"string"}},"title":"NotFoundError"}}}}}}
+ responses={{"200":{"description":"The agent has been replaced successfully.","content":{"application/json":{"schema":{"description":"An AI agent that can use tools to provide intelligent responses and actions.","type":"object","properties":{"key":{"description":"A unique key that identifies an agent.","type":"string","pattern":"[0-9a-zA-Z_-]+$","minLength":1,"maxLength":50,"example":"customer_support","title":"AgentKey"},"name":{"description":"The human-readable name of an agent.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Agent","title":"AgentName"},"description":{"description":"A detailed description of the agent's purpose and capabilities.","type":"string","example":"An AI agent specialized in handling customer support inquiries using company documentation and support tools."},"tool_configurations":{"description":"A map of tool configurations available to the agent. The key is the name of the tool configuration and the value is an agent tool configuration.","type":"object","additionalProperties":{"nullable":true,"title":"AgentToolConfiguration","description":"A tool configuration that can be used by an agent, defined inline with a specific configuration type.","discriminator":{"propertyName":"type","mapping":{"dynamic_vectara":{"title":"InlineDynamicVectaraToolConfiguration","description":"An inline configuration for built-in Vectara tools that have implementations within the platform but do not have a dedicated configuration type schema. Use the List Tools endpoint to discover available tools and obtain the `tool_id` required for this configuration.\n","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'dynamic_vectara' for generic Vectara tool configurations.","default":"dynamic_vectara"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for tool calls. The key specifies the location in the tool arguments to overide, and the value specifies what to override with. The LLM will not be able to change the parameters, nor know those values exist within the tool.\n\nThe values can also be dynamic references to context values using $ref with dot notation path syntax:\n- Static value: \"fixed_value\" or 123\n- Dynamic reference: `{\"$ref\": \"session.metadata.field_name\"}`\n\nReferences are resolved at runtime from context:\n- session.metadata.* - Access session metadata fields\n- agent.metadata.* - Access agent metadata fields\n\nExample:\n `{\"query\": {\"$ref\": \".session.metadata.query\"}}`\n\nIf you want to have a real value `\"$ref\"` use `\"$$ref\"`, that is you can escape the first $ by using $$.","type":"object","additionalProperties":true,"example":{"custom_param":"value","limit":10}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},"mcp":{"title":"InlineMcpToolConfiguration","description":"An MCP tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'mcp' for inline MCP tool configurations.","default":"mcp"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for tool calls. The key specifies the location in the tool arguments to overide, and the value specifies what to override with. The LLM will not be able to change the parameters, nor know those values exist within the tool.\n\nThe values can also be dynamic references to context values using $ref with dot notation path syntax:\n- Static value: \"fixed_value\" or 123\n- Dynamic reference: `{\"$ref\": \"session.metadata.field_name\"}`\n\nReferences are resolved at runtime from context:\n- session.metadata.* - Access session metadata fields\n- agent.metadata.* - Access agent metadata fields\n\nExample:\n `{\"query\": {\"$ref\": \".session.metadata.query\"}}`\n\nIf you want to have a real value `\"$ref\"` use `\"$$ref\"`, that is you can escape the first $ by using $$.","type":"object","additionalProperties":true,"example":{"custom_param":"value","limit":10}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},"corpora_search":{"title":"InlineCorporaSearchToolConfiguration","description":"A corpora search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'corpora_search' for inline corpora search tool configurations.","default":"corpora_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the corpus search call such as the query. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query string, which is the question the user is asking. If not provided, will be filled in by the agent.","type":"string","maxLength":5000,"example":"Am I allowed to bring pets to work?"}},"additionalProperties":false,"title":"CorporaSearchToolParameters"},"query_configuration":{"description":"User-configurable settings for the corpus search that are not exposed to the LLM. Supports dynamic references for runtime resolution from session context.","title":"AgentCorporaSearchQueryConfiguration","type":"object","properties":{"search":{"title":"AgentSearchCorporaParameters","description":"Agent-specific search parameters that support eager references.","type":"object","properties":{"corpora":{"description":"The corpora to search, with support for eager references.","type":"array","items":{"title":"AgentKeyedSearchCorpus","description":"Agent-specific keyed search corpus that supports eager references for corpus_key and metadata_filter.","type":"object","properties":{"corpus_key":{"description":"The corpus to search. Can be either:\n- A static string: \"my-corpus\"\n- An EagerReference object: {\"$ref\": \"session.metadata.corpus\"}\n\nWhen an EagerReference is provided, the $ref path is resolved from the session context\nat the start of each turn, before LLM processing begins.\n","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"custom_dimensions":{"description":"The custom dimensions as additional weights.","type":"object","additionalProperties":{"type":"number","format":"double","nullable":false},"title":"CustomDimensions"},"metadata_filter":{"description":"The filter to narrow search results. Can be either:\n- A static string: \"doc.department = 'engineering'\"\n- An EagerReference object: {\"$ref\": \"session.metadata.filters.user\"}\n\nWhen an EagerReference is provided, the $ref path is resolved from the session context\nat the start of each turn, before LLM processing begins.\n","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"lexical_interpolation":{"description":"How much to weigh lexical scores compared to the embedding score.","type":"number","format":"float","minimum":0,"maximum":1},"semantics":{"description":"Indicates whether to consider a query against this corpus as a query or a response.","type":"string","enum":["default","query","response"],"default":"default","title":"SearchSemantics"},"query":{"description":"Query override for this specific corpus.","type":"string","maxLength":5000}},"required":["corpus_key"]},"minItems":1},"offset":{"description":"Number of results to skip for pagination.","type":"integer","format":"int32","minimum":0,"default":0},"limit":{"description":"Maximum number of results to return.","type":"integer","format":"int32","minimum":1,"default":10},"context_configuration":{"type":"object","description":"Configuration on the presentation of each document part in the result set. You can only use characters_before/after or sentences_before/after, but not both. If you specify both in the query, sentences_before/after takes precedence","properties":{"characters_before":{"description":"The number of characters that are shown before the matching document part. This is useful to show the context of the document part in the wider document. Ignored if `sentences_before` is set. Vectara will capture the full sentence that contains the captured characters, to not lose the meaning caused by a truncated word or sentence.","type":"integer","format":"int32"},"characters_after":{"description":"The number of characters that are shown after the matching document part. This is useful to show the context of the document part in the wider document. Ignored if `sentences_after` is set. Vectara will capture the full sentence that contains the captured characters, to not lose the meaning caused by a truncated word or sentence.","type":"integer","format":"int32"},"sentences_before":{"description":"The number of sentences that are shown before the matching document part. This is useful to show the context of the document part in the wider document.","type":"integer","format":"int32","default":0,"minimum":0,"example":2},"sentences_after":{"description":"The number of sentences that are shown after the matching document part. This is useful to show the context of the document part in the wider document.","type":"integer","format":"int32","default":0,"minimum":0,"example":2},"start_tag":{"description":"The tag that wraps the document part at the start. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the context before ends and the document part begins.","type":"string","example":""},"end_tag":{"description":"The tag that wraps the document part at the end. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the document part ends and the context after begins.","type":"string","example":""}},"example":{"sentences_before":2,"sentences_after":2,"start_tag":"","end_tag":""},"title":"ContextConfiguration"},"reranker":{"type":"object","description":"Rerank results of the search. Rerankers are very powerful tools to improve the order of search results. By default the search will use the most powerful reranker available to the customer's plan. To disable reranking, set the reranker `type` to `\"none\"`.","discriminator":{"propertyName":"type","mapping":{"customer_reranker":{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},"userfn":{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},"mmr":{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},"chain":{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},"none":{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}}},"oneOf":[{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}],"title":"SearchReranker"}},"required":["corpora"]},"generation":{"description":"The parameters to control generation.","type":"object","properties":{"enabled":{"description":"Whether generation is enabled for this query. This field is ignored if using chat.","type":"boolean","default":true},"generation_preset_name":{"description":"The preset values to use to feed the query results and other context to the model. \n\nA `generation_preset` is an object with a bundle of properties that specifies: \n* The `prompt_template` that is rendered and then sent to the LLM. \n* The LLM used. * `model_parameter`s such as temperature.\n\nAll of these properties except the model can be overridden by setting them in this object. Even when a `prompt_template` is set, the `generation_preset_name` is used to set the model used. See `model_parameters.model` if you want to set the model explicitly.\n\nIf `generation_preset_name` is not set, the Vectara platform will use the default model and prompt.'\n","type":"string","minLength":1,"example":"mockingbird-2.0"},"prompt_name":{"description":"Use `generation_preset_name` instead of `prompt_name`.","type":"string","minLength":1,"example":"mockingbird-2.0","deprecated":true},"max_used_search_results":{"description":"The maximum number of search results to be available to the prompt.","type":"integer","format":"int32","minimum":0,"default":5},"prompt_template":{"description":"Vectara manages both system and user roles and prompts for the generative LLM out of the box by default. However, users can override the `prompt_template` via this variable. The `prompt_template` is in the form of an Apache Velocity template. For more details on how to configure the `prompt_template`, see the [long-form documentation](https://docs.vectara.com/docs/prompts/vectara-prompt-engine).","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n"},"prompt_text":{"description":"This property is deprecated in favor of clearer naming. Use `prompt_template`. This property will be ignored if `prompt_template` is set.","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n","deprecated":true},"max_response_characters":{"description":"Controls the length of the generated output. This is a rough estimate and not a hard limit: the end output can be longer or shorter than this value. This is generally implemented by including the `max_response_characters` in the prompt, and the LLM's instruction following capability dictates how closely the generated output is limited.","type":"integer","format":"int32","example":300,"minimum":0},"response_language":{"description":"Languages that the Vectara platform supports.","type":"string","enum":["auto","eng","deu","fra","zho","kor","ara","rus","tha","nld","ita","por","spa","jpn","pol","tur","vie","ind","ces","ukr","ell","heb","fas","hin","urd","swe","ben","msa","ron"],"default":"auto","title":"Language"},"model_parameters":{"title":"ModelParameters","description":"The parameters for the model. WARNING: This is an experimental feature, and breakable at any point with virtually no notice. It is meant for experimentation to converge on optimal parameters that can then be set in the prompt definitions.","type":"object","properties":{"llm_name":{"description":"The model (e.g., `gpt-4`) to use for summarization. If specified, it will override the model behind `generation_preset_name`.","type":"string","example":"gpt4"},"max_tokens":{"description":"The maximum number of tokens to be returned by the model.","type":"integer","format":"int32","minimum":1},"temperature":{"description":"The sampling temperature to use. Higher values make the output more random, while lower values make it more focused and deterministic.","type":"number","format":"float"},"frequency_penalty":{"description":"Higher values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.","type":"number","format":"float"},"presence_penalty":{"description":"Higher values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.","type":"number","format":"float"}}},"citations":{"description":"Style the generator should use when making citations.","type":"object","properties":{"style":{"description":"The citation style that you want to use in the summary: \n* `numeric` - Citations formatted as simple numerals: \\[1\\], \\[2\\], etc.\n* `none` - Citations removed from text.\n* `html` - Citation formatted as a URL like `text_pattern`.\n* `markdown` - Formatted as `[text_pattern](url_pattern)`.\n","type":"string","enum":["none","numeric","html","markdown"]},"url_pattern":{"description":"The URL pattern if the citation_style is set to `html` or `markdown`. The pattern can access metadata attributes in the document or part. e.g. `https://my.doc/foo/{doc.id}/{part.id}` The default `url_pattern` is an empty string.","type":"string","example":"https://vectara.com/documents/{doc.id}"},"text_pattern":{"description":"The text pattern if the citation_style is set to `html` or `markdown`. This pattern sets the href for HTML or the text within `[]` in markdown, and defaults to N being the index of result if it is not set. The default citation style looks like `[N]()` for markdown. You can use metadata attributes in the `text_pattern`. For example, the pattern `{doc.title}` with citation style `markdown` would result in final citation output like `[Title]()` when the document's metadata includes `{\"title\":\"Title\"}`.","type":"string","example":"{doc.title}"}},"title":"CitationParameters"},"enable_factual_consistency_score":{"description":"Enable returning the factual consistency score with query results.","type":"boolean","default":true}},"title":"GenerationParameters"},"save_history":{"description":"Whether to save the query to history.","type":"boolean"}},"required":["search"]}},"required":["type","query_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},"web_search":{"title":"InlineWebSearchToolConfiguration","description":"A web search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'web_search' for inline web search tool configurations.","default":"web_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the web search tool call such as limit etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query to execute.","type":"string","example":"latest AI developments 2024"},"limit":{"description":"Maximum number of results to return.","type":"integer","minimum":1,"maximum":20,"example":10},"provider":{"description":"Search provider to use.","type":"string","enum":["tavily"],"example":"tavily"},"include_domains":{"description":"List of domains to specifically include in search results. When specified, results will ONLY come from these domains. Supports exact domains (e.g., \"github.com\"), subdomains (e.g., \"docs.github.com\"), and wildcard patterns (e.g., \"*.github.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["github.com","docs.github.com","*.stackoverflow.com"]},"exclude_domains":{"description":"List of domains to specifically exclude from search results. Supports exact domains (e.g., \"spam.com\"), subdomains (e.g., \"bad.spam.com\"), and wildcard patterns (e.g., \"*.spam.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["spam.com","unreliable-source.com"]}},"additionalProperties":false,"title":"WebSearchToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"web_get":{"title":"InlineWebGetToolConfiguration","description":"A web get tool configuration defined inline in the agent for fetching content from URLs.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'web_get' for inline web get tool configurations.","default":"web_get"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the web get tool call. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"url":{"description":"The URL to fetch content from.","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"method":{"description":"HTTP method to use.","type":"string","enum":["GET","POST","PUT","DELETE","HEAD"]},"headers":{"description":"HTTP headers to include in the request.","oneOf":[{"type":"object","additionalProperties":{"type":"string"}},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"body":{"description":"Request body for POST/PUT requests.","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"follow_redirects":{"description":"Whether to follow HTTP redirects.","oneOf":[{"type":"boolean"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"timeout_seconds":{"description":"Request timeout in seconds.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"head_lines":{"description":"Number of lines from start to include in response.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"tail_lines":{"description":"Number of lines from end to include in response.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"ssl_verify":{"description":"Whether to verify SSL certificates.","oneOf":[{"type":"boolean"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"max_content_bytes":{"description":"Maximum response size in bytes before truncation.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]}},"additionalProperties":false,"title":"WebGetToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"lambda":{"title":"InlineLambdaToolConfiguration","description":"A lambda tool configuration defined inline in the agent for executing user-defined functions.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'lambda' for inline lambda tool configurations.","default":"lambda"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments that will be passed to the lambda function. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","additionalProperties":true,"example":{"custom_param":"value"}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},"structured_indexing":{"title":"InlineStructuredIndexingToolConfiguration","description":"A structured indexing tool configuration defined inline in the agent for indexing into the Vectara platform.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'structured_indexing' for inline structured indexing tool configurations.","default":"structured_indexing"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the structured indexing tool call such as corpus_key etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"corpus_key":{"description":"The key identifying the target corpus for document indexing. If not provided, will be filled in by the agent.","type":"string","example":"my-knowledge-base"},"document_id":{"description":"The unique identifier for the document within the corpus, preferably human readable IDs.","type":"string","example":"annual_report_2024"},"title":{"description":"The title of the document being indexed.","type":"string","example":"2024 Annual ESG Report"},"description":{"description":"A brief description or summary of the document content.","type":"string","example":"Comprehensive environmental, social, and governance report"},"metadata":{"description":"The metadata key-value pairs to associate with the document. If present, this gets merged with existing artifact metadata.","type":"object","additionalProperties":true,"example":{"doc_type":"annual_report","year":2024,"department":"sustainability"}},"document":{"description":"The structured document to index with full hierarchical content.","type":"object","additionalProperties":true,"example":{"id":"annual_report_2024","type":"structured","title":"2024 Annual ESG Report"}}},"additionalProperties":false,"title":"StructuredIndexingToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"sub_agent":{"title":"InlineSubAgentToolConfiguration","description":"A sub-agent tool configuration defined inline in the agent for invoking specialized sub-agents.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'sub_agent' for inline sub-agent tool configurations.","default":"sub_agent"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the sub-agent tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"message":{"description":"The detailed task instructions for the sub-agent to perform autonomously.","type":"string","example":"Review the code changes in pull request \\#123 for security issues"},"session_tti_minutes":{"description":"Time to idle in minutes before the session expires.","type":"integer","format":"int64","minimum":1,"example":60}},"additionalProperties":false,"title":"SubAgentToolParameters"},"sub_agent_configuration":{"description":"User-configurable settings for the sub-agent tool. These parameters are never exposed to the agent.","type":"object","properties":{"agent_key":{"description":"A unique key that identifies an agent.","type":"string","pattern":"[0-9a-zA-Z_-]+$","minLength":1,"maxLength":50,"example":"customer_support","title":"AgentKey"},"session_mode":{"description":"Controls session behavior for sub-agent invocations:\n- llm_controlled: LLM decides whether to create new or resume existing session\n- persistent: Always reuse the same session (created on first invocation)\n- ephemeral: Always create a new session on each invocation\n","type":"string","enum":["llm_controlled","persistent","ephemeral"],"default":"llm_controlled","example":"llm_controlled","title":"SubAgentSessionMode"},"session_metadata":{"description":"Optional metadata to associate with the sub-agent session. Can contain any key-value pairs.","type":"object","additionalProperties":true,"example":{"source":"parent_agent","task_type":"code_review"}}},"required":["agent_key"],"title":"SubAgentConfiguration"}},"required":["type","sub_agent_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},"artifact_read":{"title":"InlineArtifactReadToolConfiguration","description":"An artifact read tool configuration defined inline in the agent for reading artifacts from the session workspace.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_read' for inline artifact read tool configurations.","default":"artifact_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to read.","type":"string","example":"art_abc123"},"encoding":{"description":"The encoding format for the content.","type":"string","enum":["raw","base64"],"example":"raw"},"start_line":{"description":"Optional starting line number (1-indexed).","type":"integer","format":"int32","example":100},"end_line":{"description":"Optional ending line number (1-indexed, inclusive).","type":"integer","format":"int32","example":200}},"additionalProperties":false,"title":"ArtifactReadToolParameters"},"tool_configuration":{"description":"User-configurable settings for the artifact read tool.","type":"object","properties":{"max_size_bytes":{"description":"Maximum file size in bytes for full reads without line ranges. Defaults to 256KB.","type":"integer","format":"int64","minimum":1,"maximum":10485760,"default":262144},"max_lines":{"description":"Maximum number of lines for range-based reads. Defaults to 200.","type":"integer","format":"int32","minimum":1,"maximum":10000,"default":200}},"title":"ArtifactReadConfiguration"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"artifact_grep":{"title":"InlineArtifactGrepToolConfiguration","description":"An artifact grep tool configuration defined inline in the agent for searching through artifact content.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_grep' for inline artifact grep tool configurations.","default":"artifact_grep"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact grep tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to search.","type":"string","example":"art_abc123"},"pattern":{"description":"The pattern to search for (supports grep regex).","type":"string","example":"error|exception"},"grep_options":{"description":"Optional grep command options.","type":"array","items":{"type":"string"},"example":["-i","-n"]}},"additionalProperties":false,"title":"ArtifactGrepToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"image_read":{"title":"InlineImageReadToolConfiguration","description":"An image read tool configuration defined inline in the agent for loading images into the conversation context.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'image_read' for inline image read tool configurations.","default":"image_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the image read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the image artifact to view.","type":"string","pattern":"^art_[a-z0-9_-]+$","example":"art_photo_a3f2"},"detail":{"description":"Detail level for image processing.","type":"string","enum":["auto","low","high"],"default":"auto","example":"auto"}},"additionalProperties":false,"title":"ImageReadToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"document_conversion":{"title":"InlineDocumentConversionToolConfiguration","description":"A document conversion tool configuration defined inline in the agent for converting document artifacts to various formats.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'document_conversion' for inline document conversion tool configurations.","default":"document_conversion"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the document conversion tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to convert.","type":"string","example":"art_abc123"},"output_format":{"description":"Output format for the converted document.","type":"string","enum":["markdown","structured_document"],"example":"markdown"},"description":{"description":"Optional description for the converted artifact.","type":"string","example":"PDF converted to markdown"}},"additionalProperties":false,"title":"DocumentConversionToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]}}},"oneOf":[{"title":"InlineDynamicVectaraToolConfiguration","description":"An inline configuration for built-in Vectara tools that have implementations within the platform but do not have a dedicated configuration type schema. Use the List Tools endpoint to discover available tools and obtain the `tool_id` required for this configuration.\n","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'dynamic_vectara' for generic Vectara tool configurations.","default":"dynamic_vectara"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for tool calls. The key specifies the location in the tool arguments to overide, and the value specifies what to override with. The LLM will not be able to change the parameters, nor know those values exist within the tool.\n\nThe values can also be dynamic references to context values using $ref with dot notation path syntax:\n- Static value: \"fixed_value\" or 123\n- Dynamic reference: `{\"$ref\": \"session.metadata.field_name\"}`\n\nReferences are resolved at runtime from context:\n- session.metadata.* - Access session metadata fields\n- agent.metadata.* - Access agent metadata fields\n\nExample:\n `{\"query\": {\"$ref\": \".session.metadata.query\"}}`\n\nIf you want to have a real value `\"$ref\"` use `\"$$ref\"`, that is you can escape the first $ by using $$.","type":"object","additionalProperties":true,"example":{"custom_param":"value","limit":10}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineMcpToolConfiguration","description":"An MCP tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'mcp' for inline MCP tool configurations.","default":"mcp"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for tool calls. The key specifies the location in the tool arguments to overide, and the value specifies what to override with. The LLM will not be able to change the parameters, nor know those values exist within the tool.\n\nThe values can also be dynamic references to context values using $ref with dot notation path syntax:\n- Static value: \"fixed_value\" or 123\n- Dynamic reference: `{\"$ref\": \"session.metadata.field_name\"}`\n\nReferences are resolved at runtime from context:\n- session.metadata.* - Access session metadata fields\n- agent.metadata.* - Access agent metadata fields\n\nExample:\n `{\"query\": {\"$ref\": \".session.metadata.query\"}}`\n\nIf you want to have a real value `\"$ref\"` use `\"$$ref\"`, that is you can escape the first $ by using $$.","type":"object","additionalProperties":true,"example":{"custom_param":"value","limit":10}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineCorporaSearchToolConfiguration","description":"A corpora search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'corpora_search' for inline corpora search tool configurations.","default":"corpora_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the corpus search call such as the query. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query string, which is the question the user is asking. If not provided, will be filled in by the agent.","type":"string","maxLength":5000,"example":"Am I allowed to bring pets to work?"}},"additionalProperties":false,"title":"CorporaSearchToolParameters"},"query_configuration":{"description":"User-configurable settings for the corpus search that are not exposed to the LLM. Supports dynamic references for runtime resolution from session context.","title":"AgentCorporaSearchQueryConfiguration","type":"object","properties":{"search":{"title":"AgentSearchCorporaParameters","description":"Agent-specific search parameters that support eager references.","type":"object","properties":{"corpora":{"description":"The corpora to search, with support for eager references.","type":"array","items":{"title":"AgentKeyedSearchCorpus","description":"Agent-specific keyed search corpus that supports eager references for corpus_key and metadata_filter.","type":"object","properties":{"corpus_key":{"description":"The corpus to search. Can be either:\n- A static string: \"my-corpus\"\n- An EagerReference object: {\"$ref\": \"session.metadata.corpus\"}\n\nWhen an EagerReference is provided, the $ref path is resolved from the session context\nat the start of each turn, before LLM processing begins.\n","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"custom_dimensions":{"description":"The custom dimensions as additional weights.","type":"object","additionalProperties":{"type":"number","format":"double","nullable":false},"title":"CustomDimensions"},"metadata_filter":{"description":"The filter to narrow search results. Can be either:\n- A static string: \"doc.department = 'engineering'\"\n- An EagerReference object: {\"$ref\": \"session.metadata.filters.user\"}\n\nWhen an EagerReference is provided, the $ref path is resolved from the session context\nat the start of each turn, before LLM processing begins.\n","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"lexical_interpolation":{"description":"How much to weigh lexical scores compared to the embedding score.","type":"number","format":"float","minimum":0,"maximum":1},"semantics":{"description":"Indicates whether to consider a query against this corpus as a query or a response.","type":"string","enum":["default","query","response"],"default":"default","title":"SearchSemantics"},"query":{"description":"Query override for this specific corpus.","type":"string","maxLength":5000}},"required":["corpus_key"]},"minItems":1},"offset":{"description":"Number of results to skip for pagination.","type":"integer","format":"int32","minimum":0,"default":0},"limit":{"description":"Maximum number of results to return.","type":"integer","format":"int32","minimum":1,"default":10},"context_configuration":{"type":"object","description":"Configuration on the presentation of each document part in the result set. You can only use characters_before/after or sentences_before/after, but not both. If you specify both in the query, sentences_before/after takes precedence","properties":{"characters_before":{"description":"The number of characters that are shown before the matching document part. This is useful to show the context of the document part in the wider document. Ignored if `sentences_before` is set. Vectara will capture the full sentence that contains the captured characters, to not lose the meaning caused by a truncated word or sentence.","type":"integer","format":"int32"},"characters_after":{"description":"The number of characters that are shown after the matching document part. This is useful to show the context of the document part in the wider document. Ignored if `sentences_after` is set. Vectara will capture the full sentence that contains the captured characters, to not lose the meaning caused by a truncated word or sentence.","type":"integer","format":"int32"},"sentences_before":{"description":"The number of sentences that are shown before the matching document part. This is useful to show the context of the document part in the wider document.","type":"integer","format":"int32","default":0,"minimum":0,"example":2},"sentences_after":{"description":"The number of sentences that are shown after the matching document part. This is useful to show the context of the document part in the wider document.","type":"integer","format":"int32","default":0,"minimum":0,"example":2},"start_tag":{"description":"The tag that wraps the document part at the start. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the context before ends and the document part begins.","type":"string","example":""},"end_tag":{"description":"The tag that wraps the document part at the end. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the document part ends and the context after begins.","type":"string","example":""}},"example":{"sentences_before":2,"sentences_after":2,"start_tag":"","end_tag":""},"title":"ContextConfiguration"},"reranker":{"type":"object","description":"Rerank results of the search. Rerankers are very powerful tools to improve the order of search results. By default the search will use the most powerful reranker available to the customer's plan. To disable reranking, set the reranker `type` to `\"none\"`.","discriminator":{"propertyName":"type","mapping":{"customer_reranker":{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},"userfn":{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},"mmr":{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},"chain":{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},"none":{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}}},"oneOf":[{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}],"title":"SearchReranker"}},"required":["corpora"]},"generation":{"description":"The parameters to control generation.","type":"object","properties":{"enabled":{"description":"Whether generation is enabled for this query. This field is ignored if using chat.","type":"boolean","default":true},"generation_preset_name":{"description":"The preset values to use to feed the query results and other context to the model. \n\nA `generation_preset` is an object with a bundle of properties that specifies: \n* The `prompt_template` that is rendered and then sent to the LLM. \n* The LLM used. * `model_parameter`s such as temperature.\n\nAll of these properties except the model can be overridden by setting them in this object. Even when a `prompt_template` is set, the `generation_preset_name` is used to set the model used. See `model_parameters.model` if you want to set the model explicitly.\n\nIf `generation_preset_name` is not set, the Vectara platform will use the default model and prompt.'\n","type":"string","minLength":1,"example":"mockingbird-2.0"},"prompt_name":{"description":"Use `generation_preset_name` instead of `prompt_name`.","type":"string","minLength":1,"example":"mockingbird-2.0","deprecated":true},"max_used_search_results":{"description":"The maximum number of search results to be available to the prompt.","type":"integer","format":"int32","minimum":0,"default":5},"prompt_template":{"description":"Vectara manages both system and user roles and prompts for the generative LLM out of the box by default. However, users can override the `prompt_template` via this variable. The `prompt_template` is in the form of an Apache Velocity template. For more details on how to configure the `prompt_template`, see the [long-form documentation](https://docs.vectara.com/docs/prompts/vectara-prompt-engine).","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n"},"prompt_text":{"description":"This property is deprecated in favor of clearer naming. Use `prompt_template`. This property will be ignored if `prompt_template` is set.","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n","deprecated":true},"max_response_characters":{"description":"Controls the length of the generated output. This is a rough estimate and not a hard limit: the end output can be longer or shorter than this value. This is generally implemented by including the `max_response_characters` in the prompt, and the LLM's instruction following capability dictates how closely the generated output is limited.","type":"integer","format":"int32","example":300,"minimum":0},"response_language":{"description":"Languages that the Vectara platform supports.","type":"string","enum":["auto","eng","deu","fra","zho","kor","ara","rus","tha","nld","ita","por","spa","jpn","pol","tur","vie","ind","ces","ukr","ell","heb","fas","hin","urd","swe","ben","msa","ron"],"default":"auto","title":"Language"},"model_parameters":{"title":"ModelParameters","description":"The parameters for the model. WARNING: This is an experimental feature, and breakable at any point with virtually no notice. It is meant for experimentation to converge on optimal parameters that can then be set in the prompt definitions.","type":"object","properties":{"llm_name":{"description":"The model (e.g., `gpt-4`) to use for summarization. If specified, it will override the model behind `generation_preset_name`.","type":"string","example":"gpt4"},"max_tokens":{"description":"The maximum number of tokens to be returned by the model.","type":"integer","format":"int32","minimum":1},"temperature":{"description":"The sampling temperature to use. Higher values make the output more random, while lower values make it more focused and deterministic.","type":"number","format":"float"},"frequency_penalty":{"description":"Higher values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.","type":"number","format":"float"},"presence_penalty":{"description":"Higher values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.","type":"number","format":"float"}}},"citations":{"description":"Style the generator should use when making citations.","type":"object","properties":{"style":{"description":"The citation style that you want to use in the summary: \n* `numeric` - Citations formatted as simple numerals: \\[1\\], \\[2\\], etc.\n* `none` - Citations removed from text.\n* `html` - Citation formatted as a URL like `text_pattern`.\n* `markdown` - Formatted as `[text_pattern](url_pattern)`.\n","type":"string","enum":["none","numeric","html","markdown"]},"url_pattern":{"description":"The URL pattern if the citation_style is set to `html` or `markdown`. The pattern can access metadata attributes in the document or part. e.g. `https://my.doc/foo/{doc.id}/{part.id}` The default `url_pattern` is an empty string.","type":"string","example":"https://vectara.com/documents/{doc.id}"},"text_pattern":{"description":"The text pattern if the citation_style is set to `html` or `markdown`. This pattern sets the href for HTML or the text within `[]` in markdown, and defaults to N being the index of result if it is not set. The default citation style looks like `[N]()` for markdown. You can use metadata attributes in the `text_pattern`. For example, the pattern `{doc.title}` with citation style `markdown` would result in final citation output like `[Title]()` when the document's metadata includes `{\"title\":\"Title\"}`.","type":"string","example":"{doc.title}"}},"title":"CitationParameters"},"enable_factual_consistency_score":{"description":"Enable returning the factual consistency score with query results.","type":"boolean","default":true}},"title":"GenerationParameters"},"save_history":{"description":"Whether to save the query to history.","type":"boolean"}},"required":["search"]}},"required":["type","query_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineWebSearchToolConfiguration","description":"A web search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'web_search' for inline web search tool configurations.","default":"web_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the web search tool call such as limit etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query to execute.","type":"string","example":"latest AI developments 2024"},"limit":{"description":"Maximum number of results to return.","type":"integer","minimum":1,"maximum":20,"example":10},"provider":{"description":"Search provider to use.","type":"string","enum":["tavily"],"example":"tavily"},"include_domains":{"description":"List of domains to specifically include in search results. When specified, results will ONLY come from these domains. Supports exact domains (e.g., \"github.com\"), subdomains (e.g., \"docs.github.com\"), and wildcard patterns (e.g., \"*.github.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["github.com","docs.github.com","*.stackoverflow.com"]},"exclude_domains":{"description":"List of domains to specifically exclude from search results. Supports exact domains (e.g., \"spam.com\"), subdomains (e.g., \"bad.spam.com\"), and wildcard patterns (e.g., \"*.spam.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["spam.com","unreliable-source.com"]}},"additionalProperties":false,"title":"WebSearchToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineWebGetToolConfiguration","description":"A web get tool configuration defined inline in the agent for fetching content from URLs.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'web_get' for inline web get tool configurations.","default":"web_get"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the web get tool call. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"url":{"description":"The URL to fetch content from.","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"method":{"description":"HTTP method to use.","type":"string","enum":["GET","POST","PUT","DELETE","HEAD"]},"headers":{"description":"HTTP headers to include in the request.","oneOf":[{"type":"object","additionalProperties":{"type":"string"}},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"body":{"description":"Request body for POST/PUT requests.","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"follow_redirects":{"description":"Whether to follow HTTP redirects.","oneOf":[{"type":"boolean"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"timeout_seconds":{"description":"Request timeout in seconds.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"head_lines":{"description":"Number of lines from start to include in response.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"tail_lines":{"description":"Number of lines from end to include in response.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"ssl_verify":{"description":"Whether to verify SSL certificates.","oneOf":[{"type":"boolean"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"max_content_bytes":{"description":"Maximum response size in bytes before truncation.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]}},"additionalProperties":false,"title":"WebGetToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineLambdaToolConfiguration","description":"A lambda tool configuration defined inline in the agent for executing user-defined functions.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'lambda' for inline lambda tool configurations.","default":"lambda"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments that will be passed to the lambda function. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","additionalProperties":true,"example":{"custom_param":"value"}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineStructuredIndexingToolConfiguration","description":"A structured indexing tool configuration defined inline in the agent for indexing into the Vectara platform.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'structured_indexing' for inline structured indexing tool configurations.","default":"structured_indexing"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the structured indexing tool call such as corpus_key etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"corpus_key":{"description":"The key identifying the target corpus for document indexing. If not provided, will be filled in by the agent.","type":"string","example":"my-knowledge-base"},"document_id":{"description":"The unique identifier for the document within the corpus, preferably human readable IDs.","type":"string","example":"annual_report_2024"},"title":{"description":"The title of the document being indexed.","type":"string","example":"2024 Annual ESG Report"},"description":{"description":"A brief description or summary of the document content.","type":"string","example":"Comprehensive environmental, social, and governance report"},"metadata":{"description":"The metadata key-value pairs to associate with the document. If present, this gets merged with existing artifact metadata.","type":"object","additionalProperties":true,"example":{"doc_type":"annual_report","year":2024,"department":"sustainability"}},"document":{"description":"The structured document to index with full hierarchical content.","type":"object","additionalProperties":true,"example":{"id":"annual_report_2024","type":"structured","title":"2024 Annual ESG Report"}}},"additionalProperties":false,"title":"StructuredIndexingToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineSubAgentToolConfiguration","description":"A sub-agent tool configuration defined inline in the agent for invoking specialized sub-agents.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'sub_agent' for inline sub-agent tool configurations.","default":"sub_agent"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the sub-agent tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"message":{"description":"The detailed task instructions for the sub-agent to perform autonomously.","type":"string","example":"Review the code changes in pull request \\#123 for security issues"},"session_tti_minutes":{"description":"Time to idle in minutes before the session expires.","type":"integer","format":"int64","minimum":1,"example":60}},"additionalProperties":false,"title":"SubAgentToolParameters"},"sub_agent_configuration":{"description":"User-configurable settings for the sub-agent tool. These parameters are never exposed to the agent.","type":"object","properties":{"agent_key":{"description":"A unique key that identifies an agent.","type":"string","pattern":"[0-9a-zA-Z_-]+$","minLength":1,"maxLength":50,"example":"customer_support","title":"AgentKey"},"session_mode":{"description":"Controls session behavior for sub-agent invocations:\n- llm_controlled: LLM decides whether to create new or resume existing session\n- persistent: Always reuse the same session (created on first invocation)\n- ephemeral: Always create a new session on each invocation\n","type":"string","enum":["llm_controlled","persistent","ephemeral"],"default":"llm_controlled","example":"llm_controlled","title":"SubAgentSessionMode"},"session_metadata":{"description":"Optional metadata to associate with the sub-agent session. Can contain any key-value pairs.","type":"object","additionalProperties":true,"example":{"source":"parent_agent","task_type":"code_review"}}},"required":["agent_key"],"title":"SubAgentConfiguration"}},"required":["type","sub_agent_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineArtifactReadToolConfiguration","description":"An artifact read tool configuration defined inline in the agent for reading artifacts from the session workspace.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_read' for inline artifact read tool configurations.","default":"artifact_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to read.","type":"string","example":"art_abc123"},"encoding":{"description":"The encoding format for the content.","type":"string","enum":["raw","base64"],"example":"raw"},"start_line":{"description":"Optional starting line number (1-indexed).","type":"integer","format":"int32","example":100},"end_line":{"description":"Optional ending line number (1-indexed, inclusive).","type":"integer","format":"int32","example":200}},"additionalProperties":false,"title":"ArtifactReadToolParameters"},"tool_configuration":{"description":"User-configurable settings for the artifact read tool.","type":"object","properties":{"max_size_bytes":{"description":"Maximum file size in bytes for full reads without line ranges. Defaults to 256KB.","type":"integer","format":"int64","minimum":1,"maximum":10485760,"default":262144},"max_lines":{"description":"Maximum number of lines for range-based reads. Defaults to 200.","type":"integer","format":"int32","minimum":1,"maximum":10000,"default":200}},"title":"ArtifactReadConfiguration"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineArtifactGrepToolConfiguration","description":"An artifact grep tool configuration defined inline in the agent for searching through artifact content.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_grep' for inline artifact grep tool configurations.","default":"artifact_grep"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact grep tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to search.","type":"string","example":"art_abc123"},"pattern":{"description":"The pattern to search for (supports grep regex).","type":"string","example":"error|exception"},"grep_options":{"description":"Optional grep command options.","type":"array","items":{"type":"string"},"example":["-i","-n"]}},"additionalProperties":false,"title":"ArtifactGrepToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineImageReadToolConfiguration","description":"An image read tool configuration defined inline in the agent for loading images into the conversation context.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'image_read' for inline image read tool configurations.","default":"image_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the image read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the image artifact to view.","type":"string","pattern":"^art_[a-z0-9_-]+$","example":"art_photo_a3f2"},"detail":{"description":"Detail level for image processing.","type":"string","enum":["auto","low","high"],"default":"auto","example":"auto"}},"additionalProperties":false,"title":"ImageReadToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineDocumentConversionToolConfiguration","description":"A document conversion tool configuration defined inline in the agent for converting document artifacts to various formats.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'document_conversion' for inline document conversion tool configurations.","default":"document_conversion"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the document conversion tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to convert.","type":"string","example":"art_abc123"},"output_format":{"description":"Output format for the converted document.","type":"string","enum":["markdown","structured_document"],"example":"markdown"},"description":{"description":"Optional description for the converted artifact.","type":"string","example":"PDF converted to markdown"}},"additionalProperties":false,"title":"DocumentConversionToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]}],"example":[{"type":"web_search","argument_override":{"limit":5,"include_domains":["github.com","stackoverflow.com"],"exclude_domains":["spam.com"]}}]},"example":{"customer_search":{"type":"corpora_search","argument_override":{"query":"customer support documentation"}}}},"model":{"title":"AgentModel","description":"Configuration for the model used in this step, including the model name and arbitrary parameters.","type":"object","properties":{"name":{"description":"The name of the model to use for this step.","type":"string","example":"gpt-4"},"parameters":{"description":"Arbitrary model-specific parameters that can be passed to the model.","type":"object","additionalProperties":true,"example":{"temperature":0.7,"max_tokens":1000,"top_p":0.9}},"retry_configuration":{"description":"Optional retry configuration for handling transient failures. When not provided, no retry is performed.","title":"RetryConfiguration","type":"object","properties":{"enabled":{"description":"Whether retry is enabled. Enabled by default to provide resilience against transient failures.","type":"boolean","default":true,"example":true},"max_retries":{"description":"Maximum number of retry attempts after initial failure.","type":"integer","minimum":0,"maximum":10,"default":3,"example":3},"initial_backoff_ms":{"description":"Initial backoff time in milliseconds before first retry.","type":"integer","minimum":100,"maximum":60000,"default":1000,"example":1000},"max_backoff_ms":{"description":"Maximum backoff time in milliseconds between retries.","type":"integer","minimum":1000,"maximum":300000,"default":30000,"example":30000},"backoff_factor":{"description":"Multiplication factor for exponential backoff between retries.","type":"number","format":"double","minimum":1,"maximum":10,"default":2,"example":2}}}},"required":["name"]},"first_step":{"title":"AgentStep","description":"A step in an agent's execution flow that defines how the agent processes and responds to input.","discriminator":{"propertyName":"type","mapping":{"conversational":{"title":"ConversationalAgentStep","description":"A step that receives instructions and responds through dialogue. This is a step that gets instructions and engages in conversation with users based on those instructions. This only type step supported, with no way to go next steps. A conversational step responds to an input following its instructions and uses the agent tools. The first response from the model will terminate processing the input.","type":"object","properties":{"type":{"description":"The type of step, which is always 'conversational' for this step type.","type":"string","default":"conversational","example":"conversational"},"instructions":{"description":"List of instructions that guide the agent's behavior in this step. If no instructions are given, the agent is instructed to be helpful and use tools.","type":"array","items":{"title":"AgentStepInstruction","description":"An instruction that can be used in an agent step, either by reference or defined inline.","discriminator":{"propertyName":"type","mapping":{"reference":{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},"inline":{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Base properties for creating an instruction, without the type discriminator field.","type":"object","properties":{"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["name","template"],"title":"InstructionRequestBase"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}}},"oneOf":[{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Base properties for creating an instruction, without the type discriminator field.","type":"object","properties":{"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["name","template"],"title":"InstructionRequestBase"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}],"example":[{"type":"reference","name":"Customer Support Initial Instruction","version":1},{"type":"inline","name":"Temporary On-the-fly Guideline","description":"A special instruction for this specific step only.","template_type":"velocity","template":"Please prioritize issues tagged with 'urgent' for the next hour."}]}},"output_parser":{"title":"AgentOutputParser","description":"Configuration for how the agent's output should be parsed and formatted.\n\nThe output parser determines how the agent's responses are processed before being returned to the user.\n","discriminator":{"propertyName":"type","mapping":{"default":{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]},"structured":{"title":"StructuredOutputParser","description":"Parses agent output as structured JSON conforming to a specified schema.\nUses the model's native structured outputs capability to guarantee valid JSON\nthat adheres to the provided schema. This is useful when you need the agent's\nfinal response in a specific format for downstream processing.\n\nWhen this parser is configured, the agent emits a StructuredOutputEvent instead\nof AgentOutputEvent. The StructuredOutputEvent contains the validated JSON content\nalong with the schema name for identification.\n\nNote: When using structured outputs, the agent can still use tools normally.\nThe schema constraint only applies to the agent's final text response.\nWhen streaming, the structured output is delivered as a single complete event\nrather than being streamed in chunks.\n","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'structured' for this parser type.","type":"string","default":"structured","example":"structured"},"json_schema":{"description":"Specification wrapper for a named JSON schema.","type":"object","required":["name","schema"],"properties":{"description":{"description":"A description of what the response format is for, used by the model to determine how to respond in the format.","type":"string"},"name":{"description":"A unique name identifier for this schema.","type":"string","pattern":"^[a-zA-Z0-9_-]+$","minLength":1},"strict":{"description":"When true, enforces strict schema adherence. The model will always follow the exact schema structure.\nWhen strict mode is enabled, the schema must follow these rules:\n- `additionalProperties: false` must be set on all object types\n- All properties must be listed in the `required` array\n- Maximum 100 properties total, with max 5 levels of nesting\n- Unsupported keywords: minLength, maxLength, pattern, minimum, maximum, minItems, maxItems\n- Root schema cannot use `anyOf` type\n","type":"boolean","nullable":true},"schema":{"description":"The JSON Schema definition that the model output must conform to.","type":"object","required":["type"],"properties":{"type":{"description":"The JSON type for this schema element.","type":"string","enum":["object","array","string","number","integer","boolean"]},"properties":{"description":"Property definitions when type is 'object'. Each key maps to a nested JsonSchemaDefinition.","type":"object","additionalProperties":{"description":"A JSON Schema definition for specifying data structure. Supports recursive schemas for nested objects.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"}},"required":{"description":"List of required property names when type is 'object'.","type":"array","items":{"type":"string"}},"additionalProperties":{"description":"Whether to allow additional properties beyond those defined.","type":"boolean","default":false},"items":{"description":"Schema for array items when type is 'array'.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"},"enum":{"description":"Allowed values for this schema element.","type":"array"},"description":{"description":"Human-readable description of this schema element.","type":"string"}},"title":"JsonSchemaDefinition"}},"title":"JsonSchemaSpec"}},"required":["type","json_schema"],"x-vectaraParents":["AgentOutputParser"]}}},"oneOf":[{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]},{"title":"StructuredOutputParser","description":"Parses agent output as structured JSON conforming to a specified schema.\nUses the model's native structured outputs capability to guarantee valid JSON\nthat adheres to the provided schema. This is useful when you need the agent's\nfinal response in a specific format for downstream processing.\n\nWhen this parser is configured, the agent emits a StructuredOutputEvent instead\nof AgentOutputEvent. The StructuredOutputEvent contains the validated JSON content\nalong with the schema name for identification.\n\nNote: When using structured outputs, the agent can still use tools normally.\nThe schema constraint only applies to the agent's final text response.\nWhen streaming, the structured output is delivered as a single complete event\nrather than being streamed in chunks.\n","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'structured' for this parser type.","type":"string","default":"structured","example":"structured"},"json_schema":{"description":"Specification wrapper for a named JSON schema.","type":"object","required":["name","schema"],"properties":{"description":{"description":"A description of what the response format is for, used by the model to determine how to respond in the format.","type":"string"},"name":{"description":"A unique name identifier for this schema.","type":"string","pattern":"^[a-zA-Z0-9_-]+$","minLength":1},"strict":{"description":"When true, enforces strict schema adherence. The model will always follow the exact schema structure.\nWhen strict mode is enabled, the schema must follow these rules:\n- `additionalProperties: false` must be set on all object types\n- All properties must be listed in the `required` array\n- Maximum 100 properties total, with max 5 levels of nesting\n- Unsupported keywords: minLength, maxLength, pattern, minimum, maximum, minItems, maxItems\n- Root schema cannot use `anyOf` type\n","type":"boolean","nullable":true},"schema":{"description":"The JSON Schema definition that the model output must conform to.","type":"object","required":["type"],"properties":{"type":{"description":"The JSON type for this schema element.","type":"string","enum":["object","array","string","number","integer","boolean"]},"properties":{"description":"Property definitions when type is 'object'. Each key maps to a nested JsonSchemaDefinition.","type":"object","additionalProperties":{"description":"A JSON Schema definition for specifying data structure. Supports recursive schemas for nested objects.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"}},"required":{"description":"List of required property names when type is 'object'.","type":"array","items":{"type":"string"}},"additionalProperties":{"description":"Whether to allow additional properties beyond those defined.","type":"boolean","default":false},"items":{"description":"Schema for array items when type is 'array'.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"},"enum":{"description":"Allowed values for this schema element.","type":"array"},"description":{"description":"Human-readable description of this schema element.","type":"string"}},"title":"JsonSchemaDefinition"}},"title":"JsonSchemaSpec"}},"required":["type","json_schema"],"x-vectaraParents":["AgentOutputParser"]}]}},"required":["type","instructions","output_parser"],"x-vectaraParents":["AgentStep"]}}},"oneOf":[{"title":"ConversationalAgentStep","description":"A step that receives instructions and responds through dialogue. This is a step that gets instructions and engages in conversation with users based on those instructions. This only type step supported, with no way to go next steps. A conversational step responds to an input following its instructions and uses the agent tools. The first response from the model will terminate processing the input.","type":"object","properties":{"type":{"description":"The type of step, which is always 'conversational' for this step type.","type":"string","default":"conversational","example":"conversational"},"instructions":{"description":"List of instructions that guide the agent's behavior in this step. If no instructions are given, the agent is instructed to be helpful and use tools.","type":"array","items":{"title":"AgentStepInstruction","description":"An instruction that can be used in an agent step, either by reference or defined inline.","discriminator":{"propertyName":"type","mapping":{"reference":{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},"inline":{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Base properties for creating an instruction, without the type discriminator field.","type":"object","properties":{"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["name","template"],"title":"InstructionRequestBase"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}}},"oneOf":[{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Base properties for creating an instruction, without the type discriminator field.","type":"object","properties":{"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["name","template"],"title":"InstructionRequestBase"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}],"example":[{"type":"reference","name":"Customer Support Initial Instruction","version":1},{"type":"inline","name":"Temporary On-the-fly Guideline","description":"A special instruction for this specific step only.","template_type":"velocity","template":"Please prioritize issues tagged with 'urgent' for the next hour."}]}},"output_parser":{"title":"AgentOutputParser","description":"Configuration for how the agent's output should be parsed and formatted.\n\nThe output parser determines how the agent's responses are processed before being returned to the user.\n","discriminator":{"propertyName":"type","mapping":{"default":{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]},"structured":{"title":"StructuredOutputParser","description":"Parses agent output as structured JSON conforming to a specified schema.\nUses the model's native structured outputs capability to guarantee valid JSON\nthat adheres to the provided schema. This is useful when you need the agent's\nfinal response in a specific format for downstream processing.\n\nWhen this parser is configured, the agent emits a StructuredOutputEvent instead\nof AgentOutputEvent. The StructuredOutputEvent contains the validated JSON content\nalong with the schema name for identification.\n\nNote: When using structured outputs, the agent can still use tools normally.\nThe schema constraint only applies to the agent's final text response.\nWhen streaming, the structured output is delivered as a single complete event\nrather than being streamed in chunks.\n","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'structured' for this parser type.","type":"string","default":"structured","example":"structured"},"json_schema":{"description":"Specification wrapper for a named JSON schema.","type":"object","required":["name","schema"],"properties":{"description":{"description":"A description of what the response format is for, used by the model to determine how to respond in the format.","type":"string"},"name":{"description":"A unique name identifier for this schema.","type":"string","pattern":"^[a-zA-Z0-9_-]+$","minLength":1},"strict":{"description":"When true, enforces strict schema adherence. The model will always follow the exact schema structure.\nWhen strict mode is enabled, the schema must follow these rules:\n- `additionalProperties: false` must be set on all object types\n- All properties must be listed in the `required` array\n- Maximum 100 properties total, with max 5 levels of nesting\n- Unsupported keywords: minLength, maxLength, pattern, minimum, maximum, minItems, maxItems\n- Root schema cannot use `anyOf` type\n","type":"boolean","nullable":true},"schema":{"description":"The JSON Schema definition that the model output must conform to.","type":"object","required":["type"],"properties":{"type":{"description":"The JSON type for this schema element.","type":"string","enum":["object","array","string","number","integer","boolean"]},"properties":{"description":"Property definitions when type is 'object'. Each key maps to a nested JsonSchemaDefinition.","type":"object","additionalProperties":{"description":"A JSON Schema definition for specifying data structure. Supports recursive schemas for nested objects.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"}},"required":{"description":"List of required property names when type is 'object'.","type":"array","items":{"type":"string"}},"additionalProperties":{"description":"Whether to allow additional properties beyond those defined.","type":"boolean","default":false},"items":{"description":"Schema for array items when type is 'array'.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"},"enum":{"description":"Allowed values for this schema element.","type":"array"},"description":{"description":"Human-readable description of this schema element.","type":"string"}},"title":"JsonSchemaDefinition"}},"title":"JsonSchemaSpec"}},"required":["type","json_schema"],"x-vectaraParents":["AgentOutputParser"]}}},"oneOf":[{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]},{"title":"StructuredOutputParser","description":"Parses agent output as structured JSON conforming to a specified schema.\nUses the model's native structured outputs capability to guarantee valid JSON\nthat adheres to the provided schema. This is useful when you need the agent's\nfinal response in a specific format for downstream processing.\n\nWhen this parser is configured, the agent emits a StructuredOutputEvent instead\nof AgentOutputEvent. The StructuredOutputEvent contains the validated JSON content\nalong with the schema name for identification.\n\nNote: When using structured outputs, the agent can still use tools normally.\nThe schema constraint only applies to the agent's final text response.\nWhen streaming, the structured output is delivered as a single complete event\nrather than being streamed in chunks.\n","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'structured' for this parser type.","type":"string","default":"structured","example":"structured"},"json_schema":{"description":"Specification wrapper for a named JSON schema.","type":"object","required":["name","schema"],"properties":{"description":{"description":"A description of what the response format is for, used by the model to determine how to respond in the format.","type":"string"},"name":{"description":"A unique name identifier for this schema.","type":"string","pattern":"^[a-zA-Z0-9_-]+$","minLength":1},"strict":{"description":"When true, enforces strict schema adherence. The model will always follow the exact schema structure.\nWhen strict mode is enabled, the schema must follow these rules:\n- `additionalProperties: false` must be set on all object types\n- All properties must be listed in the `required` array\n- Maximum 100 properties total, with max 5 levels of nesting\n- Unsupported keywords: minLength, maxLength, pattern, minimum, maximum, minItems, maxItems\n- Root schema cannot use `anyOf` type\n","type":"boolean","nullable":true},"schema":{"description":"The JSON Schema definition that the model output must conform to.","type":"object","required":["type"],"properties":{"type":{"description":"The JSON type for this schema element.","type":"string","enum":["object","array","string","number","integer","boolean"]},"properties":{"description":"Property definitions when type is 'object'. Each key maps to a nested JsonSchemaDefinition.","type":"object","additionalProperties":{"description":"A JSON Schema definition for specifying data structure. Supports recursive schemas for nested objects.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"}},"required":{"description":"List of required property names when type is 'object'.","type":"array","items":{"type":"string"}},"additionalProperties":{"description":"Whether to allow additional properties beyond those defined.","type":"boolean","default":false},"items":{"description":"Schema for array items when type is 'array'.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"},"enum":{"description":"Allowed values for this schema element.","type":"array"},"description":{"description":"Human-readable description of this schema element.","type":"string"}},"title":"JsonSchemaDefinition"}},"title":"JsonSchemaSpec"}},"required":["type","json_schema"],"x-vectaraParents":["AgentOutputParser"]}]}},"required":["type","instructions","output_parser"],"x-vectaraParents":["AgentStep"]}]},"metadata":{"description":"Arbitrary metadata associated with the agent for customization and configuration.","type":"object","additionalProperties":true,"example":{"department":"customer_service","version":"1.2.0","owner":"support-team"}},"enabled":{"description":"Whether the agent is currently enabled and available for use.","type":"boolean","default":true,"example":true},"created_at":{"description":"Timestamp when the agent was created.","type":"string","format":"date-time","example":"2024-01-15T10:30:00Z"},"updated_at":{"description":"Timestamp when the agent was last updated.","type":"string","format":"date-time","example":"2024-01-16T14:45:00Z"}},"required":["key","name","tool_configurations","model","first_step","enabled"],"title":"Agent"}}}},"400":{"description":"Agent replacement request was malformed or contains invalid references.","content":{"application/json":{"schema":{"description":"Error returned when a request contains invalid parameters or violates schema validation.","type":"object","properties":{"field_errors":{"description":"The errors that relate to specific fields in the request.","type":"object","additionalProperties":{"type":"string"}},"messages":{"type":"array","items":{"title":"message","type":"string"}},"request_id":{"description":"The ID of the request that can be used to help Vectara support debug what went wrong.","type":"string"}},"title":"BadRequestError"}}}},"403":{"description":"Permissions do not allow replacing this agent.","content":{"application/json":{"schema":{"description":"A general error response with an error code and message.","type":"object","properties":{"messages":{"description":"The messages describing why the error occurred.","type":"array","items":{"title":"message","type":"string","example":"Internal server error."}},"request_id":{"description":"The ID of the request that can be used to help Vectara support debug what went wrong.","type":"string"}},"title":"Error"}}}},"404":{"description":"Agent not found.","content":{"application/json":{"schema":{"description":"Error returned when a requested resource does not exist.","type":"object","properties":{"id":{"description":"The ID cannot be found.","type":"string"},"messages":{"type":"array","items":{"title":"message","type":"string"}},"request_id":{"description":"The ID of the request that can be used to help Vectara support debug what went wrong.","type":"string"}},"title":"NotFoundError"}}}}}}
>
diff --git a/www/docs/rest-api/sidebar.ts b/www/docs/rest-api/sidebar.ts
index 1226421cc..c4c378fc6 100644
--- a/www/docs/rest-api/sidebar.ts
+++ b/www/docs/rest-api/sidebar.ts
@@ -438,6 +438,12 @@ const sidebar: SidebarsConfig = {
label: "List the documents in the corpus",
className: "api-method get",
},
+ {
+ type: "doc",
+ id: "rest-api/bulk-delete-corpus-documents",
+ label: "Bulk delete documents from a corpus",
+ className: "api-method delete",
+ },
{
type: "doc",
id: "rest-api/delete-corpus-document",
@@ -630,6 +636,12 @@ const sidebar: SidebarsConfig = {
label: "Delete an LLM",
className: "api-method delete",
},
+ {
+ type: "doc",
+ id: "rest-api/update-llm",
+ label: "Update an LLM",
+ className: "api-method patch",
+ },
],
},
{
diff --git a/www/docs/rest-api/test-instruction.api.mdx b/www/docs/rest-api/test-instruction.api.mdx
index 2ed7e696d..4e59c955f 100644
--- a/www/docs/rest-api/test-instruction.api.mdx
+++ b/www/docs/rest-api/test-instruction.api.mdx
@@ -1,11 +1,11 @@
---
id: test-instruction
title: "Test instruction"
-description: "Test an instruction template using supplied context and available tools. This endpoint evaluates Velocity expressions such as `$tools`, `${session.metadata.field}`, or `${agent.metadata.field}`, and returns the fully rendered template output. Use this operation to validate formatting, logic, or metadata-dependent behavior before deploying instructions to agents."
+description: "Test an instruction template using supplied context and available tools. This endpoint evaluates Velocity expressions such as `\\$tools`, `\\${session.metadata.field}`, or `\\${agent.metadata.field}`, and returns the fully rendered template output. Use this operation to validate formatting, logic, or metadata-dependent behavior before deploying instructions to agents."
sidebar_label: "Test instruction"
hide_title: true
hide_table_of_contents: true
-api: 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
+api: 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
sidebar_class_name: "post api-method"
info_path: docs/rest-api/vectara-rest-api-v-2
custom_edit_url: null
@@ -36,7 +36,7 @@ import Heading from "@theme/Heading";
-Test an instruction template using supplied context and available tools. This endpoint evaluates Velocity expressions such as `$tools`, `${session.metadata.field}`, or `${agent.metadata.field}`, and returns the fully rendered template output. Use this operation to validate formatting, logic, or metadata-dependent behavior before deploying instructions to agents.
+Test an instruction template using supplied context and available tools. This endpoint evaluates Velocity expressions such as `\$tools`, `\${session.metadata.field}`, or `\${agent.metadata.field}`, and returns the fully rendered template output. Use this operation to validate formatting, logic, or metadata-dependent behavior before deploying instructions to agents.
threshold]\n return {\n 'count': len(filtered),\n 'average': sum(filtered) / len(filtered) if filtered else 0,\n 'filtered_data': filtered\n }\n"},"validation_status":{"description":"The validation status of the code.","type":"string","enum":["pending","valid","invalid"],"example":"valid"},"validation_errors":{"description":"List of validation errors if the code is invalid.","type":"array","items":{"type":"string"}},"execution_configuration":{"description":"Execution configuration for the function.","type":"object","properties":{"max_execution_time_seconds":{"description":"Maximum execution time in seconds.","type":"integer","minimum":1,"maximum":300,"default":30,"example":30},"max_memory_mb":{"description":"Maximum memory usage in megabytes.","type":"integer","minimum":10,"maximum":1024,"default":100,"example":100}},"title":"ExecutionConfiguration"}},"required":["language","code"],"title":"FunctionDefinition"}},"required":["type","id","name","description","language","enabled","function_definition"],"x-vectaraParents":["Tool"],"title":"LambdaTool"},"structured_indexing":{"description":"A tool that indexes structured documents into the Vectara platform with full control over document structure, sections, metadata, tables, and images.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `structured_indexing`.","type":"string","default":"structured_indexing","example":"structured_indexing"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"StructuredIndexingTool"},"sub_agent":{"description":"A tool that spawns a specialized sub-agent to handle complex, multi-step tasks autonomously.\nSub-agents maintain separate context from the main agent and can be specialized for specific types of tasks like code review, general research, or output styling.\n","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `sub_agent`.","type":"string","default":"sub_agent","example":"sub_agent"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"SubAgentTool"},"artifact_create":{"description":"A tool that creates artifacts from text or structured data content that can be stored and referenced later.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_create`.","type":"string","default":"artifact_create","example":"artifact_create"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactCreateTool"},"artifact_read":{"description":"A tool that reads artifact content from the agent session workspace with flexible size and range options.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_read`.","type":"string","default":"artifact_read","example":"artifact_read"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactReadTool"},"artifact_grep":{"description":"A tool that searches through an artifact's content using grep with support for all standard grep options.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_grep`.","type":"string","default":"artifact_grep","example":"artifact_grep"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactGrepTool"},"image_read":{"description":"A tool that loads image artifacts into the conversation context for viewing and analysis.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `image_read`.","type":"string","default":"image_read","example":"image_read"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ImageReadTool"},"document_conversion":{"description":"A tool that converts document artifacts (PDF, Word, PowerPoint, etc.) to various formats.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `document_conversion`.","type":"string","default":"document_conversion","example":"document_conversion"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"DocumentConversionTool"}}},"oneOf":[{"description":"An MCP (Model Context Protocol) tool that connects to external MCP servers for extended functionality.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `mcp`.","type":"string","default":"mcp","example":"mcp"},"server_id":{"description":"Unique identifier for a tool server.","type":"string","pattern":"^tsr_.*","example":"tsr_rag_search","title":"ToolServerId"},"annotations":{"description":"Optional hints about tool behaviour/metadata.","type":"object","properties":{"read_only_hint":{"description":"If true, the tool does not modify its environment.","type":"boolean"},"destructive_hint":{"description":"If true, the tool may perform destructive updates.","type":"boolean"},"idempotent_hint":{"description":"If true, repeated calls with same args have no additional effect.","type":"boolean"},"open_world_hint":{"description":"If true, tool interacts with external entities.","type":"boolean"}},"additionalProperties":true,"title":"McpToolAnnotations"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"McpTool"},{"description":"A corpora search tool that searches through Vectara corpora to find relevant information.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `corpora_search`.","type":"string","default":"corpora_search","example":"corpora_search"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"CorporaSearchTool"},{"description":"A web search tool that searches the internet for relevant information.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `web_search`.","type":"string","default":"web_search","example":"web_search"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"WebSearchTool"},{"description":"A user-defined function that can be executed as a tool by agents.\nLambda tools run in a secure, sandboxed environment with resource limits.\nCurrently supports Python 3.12 with a curated set of libraries.\n","type":"object","properties":{"type":{"description":"This should always be `lambda`.","type":"string","default":"lambda","example":"lambda"},"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the function does and how it can be used.","type":"string"},"language":{"description":"The programming language of the lambda function. Currently only Python 3.12 is supported.","type":"string","enum":["python"],"default":"python","example":"python"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the function.","type":"object","additionalProperties":true,"example":{"type":"object","properties":{"data":{"type":"array","description":"Input data to process."},"threshold":{"type":"number","description":"Threshold value for filtering."}}}},"output_schema":{"description":"The schema that defines the expected output structure from the function.","type":"object","additionalProperties":true},"function_definition":{"description":"Definition of a function to be executed as a tool in a sandboxed environment.\n\n**Python Environment:**\n- Python version: 3.12\n- Execution: Sandboxed using gVisor for security isolation\n- **Allowed modules**: `json`, `math`, `datetime`, `collections`, `itertools`, `functools`, `re`, `time`, `typing`\n- Memory limit: 100MB (configurable up to 1GB)\n- Execution timeout: 30 seconds (configurable up to 300 seconds)\n- Network access: Disabled for security\n- File system access: Read-only temporary workspace\n- No custom package installation supported (security constraint)\n\n**Type Annotations:**\n- Use type annotations for automatic input/output schema discovery\n- Supported typing constructs: `List`, `Dict`, `Optional`, `Union`\n- Import from `typing` module when using complex types\n","type":"object","properties":{"language":{"description":"The programming language of the function. Currently only Python 3.12 is supported.","type":"string","enum":["python"],"example":"python"},"code":{"description":"The function code.\n\n**Required**: Must define a `process()` entry point function. Use type annotations on parameters for automatic schema discovery.\n\nParameters are passed as keyword arguments matched to the function signature.\n","type":"string","example":"def process(data: list, threshold: float = 0):\n filtered = [x for x in data if x > threshold]\n return {\n 'count': len(filtered),\n 'average': sum(filtered) / len(filtered) if filtered else 0,\n 'filtered_data': filtered\n }\n"},"validation_status":{"description":"The validation status of the code.","type":"string","enum":["pending","valid","invalid"],"example":"valid"},"validation_errors":{"description":"List of validation errors if the code is invalid.","type":"array","items":{"type":"string"}},"execution_configuration":{"description":"Execution configuration for the function.","type":"object","properties":{"max_execution_time_seconds":{"description":"Maximum execution time in seconds.","type":"integer","minimum":1,"maximum":300,"default":30,"example":30},"max_memory_mb":{"description":"Maximum memory usage in megabytes.","type":"integer","minimum":10,"maximum":1024,"default":100,"example":100}},"title":"ExecutionConfiguration"}},"required":["language","code"],"title":"FunctionDefinition"}},"required":["type","id","name","description","language","enabled","function_definition"],"x-vectaraParents":["Tool"],"title":"LambdaTool"},{"description":"A tool that indexes structured documents into the Vectara platform with full control over document structure, sections, metadata, tables, and images.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `structured_indexing`.","type":"string","default":"structured_indexing","example":"structured_indexing"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"StructuredIndexingTool"},{"description":"A tool that spawns a specialized sub-agent to handle complex, multi-step tasks autonomously.\nSub-agents maintain separate context from the main agent and can be specialized for specific types of tasks like code review, general research, or output styling.\n","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `sub_agent`.","type":"string","default":"sub_agent","example":"sub_agent"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"SubAgentTool"},{"description":"A tool that creates artifacts from text or structured data content that can be stored and referenced later.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_create`.","type":"string","default":"artifact_create","example":"artifact_create"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactCreateTool"},{"description":"A tool that reads artifact content from the agent session workspace with flexible size and range options.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_read`.","type":"string","default":"artifact_read","example":"artifact_read"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactReadTool"},{"description":"A tool that searches through an artifact's content using grep with support for all standard grep options.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_grep`.","type":"string","default":"artifact_grep","example":"artifact_grep"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactGrepTool"},{"description":"A tool that loads image artifacts into the conversation context for viewing and analysis.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `image_read`.","type":"string","default":"image_read","example":"image_read"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ImageReadTool"},{"description":"A tool that converts document artifacts (PDF, Word, PowerPoint, etc.) to various formats.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `document_conversion`.","type":"string","default":"document_conversion","example":"document_conversion"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"DocumentConversionTool"}],"title":"Tool"},"default":[],"example":[]}},"title":"TestInstructionRequest"}}}}}
+ body={{"required":true,"content":{"application/json":{"schema":{"description":"Request to test an instruction with provided context data.","type":"object","properties":{"context":{"description":"Context data to use when rendering the instruction template. This will be merged into `$session.metadata` for template access.\n\nExample: If you provide `{\"currentDate\": \"2024-01-15\"}`, you can access it in the template as `$session.metadata.currentDate`.\n","type":"object","additionalProperties":true,"example":{"currentDate":"2024-01-15","companyName":"Acme Corp"}},"tools":{"description":"List of tools to include in the instruction context for testing.","type":"array","items":{"description":"A tool that can be used by agents to perform specific actions or operations.","x-vectara-base-schema":"#/ToolBase","discriminator":{"propertyName":"type","mapping":{"dynamic_vectara":{"description":"A tool type for built-in Vectara tools that have implementations within the platform but do not have a dedicated tool type schema. Examples include tools like `sub_agent`, `corpora_search`, `web_search`, and similar platform-provided capabilities. Use the List Tools endpoint to discover available tools and obtain the `tool_id` required for configuration.\n","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `dynamic_vectara`.","type":"string","default":"dynamic_vectara","example":"dynamic_vectara"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"DynamicVectaraTool"},"mcp":{"description":"An MCP (Model Context Protocol) tool that connects to external MCP servers for extended functionality.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `mcp`.","type":"string","default":"mcp","example":"mcp"},"server_id":{"description":"Unique identifier for a tool server.","type":"string","pattern":"^tsr_.*","example":"tsr_rag_search","title":"ToolServerId"},"annotations":{"description":"Optional hints about tool behaviour/metadata.","type":"object","properties":{"read_only_hint":{"description":"If true, the tool does not modify its environment.","type":"boolean"},"destructive_hint":{"description":"If true, the tool may perform destructive updates.","type":"boolean"},"idempotent_hint":{"description":"If true, repeated calls with same args have no additional effect.","type":"boolean"},"open_world_hint":{"description":"If true, tool interacts with external entities.","type":"boolean"}},"additionalProperties":true,"title":"McpToolAnnotations"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"McpTool"},"corpora_search":{"description":"A corpora search tool that searches through Vectara corpora to find relevant information.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `corpora_search`.","type":"string","default":"corpora_search","example":"corpora_search"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"CorporaSearchTool"},"web_search":{"description":"A web search tool that searches the internet for relevant information.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `web_search`.","type":"string","default":"web_search","example":"web_search"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"WebSearchTool"},"web_get":{"description":"A web get tool that fetches content from URLs using HTTP requests.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `web_get`.","type":"string","default":"web_get","example":"web_get"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"WebGetTool"},"lambda":{"description":"A user-defined function that can be executed as a tool by agents.\nLambda tools run in a secure, sandboxed environment with resource limits.\nCurrently supports Python 3.12 with a curated set of libraries.\n","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `lambda`.","type":"string","default":"lambda","example":"lambda"},"language":{"description":"The programming language of the lambda function. Currently only Python 3.12 is supported.","type":"string","enum":["python"],"default":"python","example":"python"},"output_schema":{"description":"The schema that defines the expected output structure from the function.","type":"object","additionalProperties":true},"function_definition":{"description":"Definition of a function to be executed as a tool in a sandboxed environment.\n\n**Python Environment:**\n- Python version: 3.12\n- Execution: Sandboxed using gVisor for security isolation\n- **Allowed modules**: `json`, `math`, `datetime`, `collections`, `itertools`, `functools`, `re`, `time`, `typing`\n- Memory limit: 100MB (configurable up to 1GB)\n- Execution timeout: 30 seconds (configurable up to 300 seconds)\n- Network access: Disabled for security\n- File system access: Read-only temporary workspace\n- No custom package installation supported (security constraint)\n\n**Type Annotations:**\n- Use type annotations for automatic input/output schema discovery\n- Supported typing constructs: `List`, `Dict`, `Optional`, `Union`\n- Import from `typing` module when using complex types\n","type":"object","properties":{"language":{"description":"The programming language of the function. Currently only Python 3.12 is supported.","type":"string","enum":["python"],"example":"python"},"code":{"description":"The function code.\n\n**Required**: Must define a `process()` entry point function. Use type annotations on parameters for automatic schema discovery.\n\nParameters are passed as keyword arguments matched to the function signature.\n","type":"string","example":"def process(data: list, threshold: float = 0):\n filtered = [x for x in data if x > threshold]\n return {\n 'count': len(filtered),\n 'average': sum(filtered) / len(filtered) if filtered else 0,\n 'filtered_data': filtered\n }\n"},"validation_status":{"description":"The validation status of the code.","type":"string","enum":["pending","valid","invalid"],"example":"valid"},"validation_errors":{"description":"List of validation errors if the code is invalid.","type":"array","items":{"type":"string"}},"execution_configuration":{"description":"Execution configuration for the function.","type":"object","properties":{"max_execution_time_seconds":{"description":"Maximum execution time in seconds.","type":"integer","minimum":1,"maximum":300,"default":30,"example":30},"max_memory_mb":{"description":"Maximum memory usage in megabytes.","type":"integer","minimum":10,"maximum":1024,"default":100,"example":100}},"title":"ExecutionConfiguration"}},"required":["language","code"],"title":"FunctionDefinition"}},"required":["type","language","function_definition"]}],"x-vectaraParents":["Tool"],"title":"LambdaTool"},"structured_indexing":{"description":"A tool that indexes structured documents into the Vectara platform with full control over document structure, sections, metadata, tables, and images.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `structured_indexing`.","type":"string","default":"structured_indexing","example":"structured_indexing"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"StructuredIndexingTool"},"sub_agent":{"description":"A tool that spawns a specialized sub-agent to handle complex, multi-step tasks autonomously.\nSub-agents maintain separate context from the main agent and can be specialized for specific types of tasks like code review, general research, or output styling.\n","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `sub_agent`.","type":"string","default":"sub_agent","example":"sub_agent"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"SubAgentTool"},"artifact_create":{"description":"A tool that creates artifacts from text or structured data content that can be stored and referenced later.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_create`.","type":"string","default":"artifact_create","example":"artifact_create"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactCreateTool"},"artifact_read":{"description":"A tool that reads artifact content from the agent session workspace with flexible size and range options.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_read`.","type":"string","default":"artifact_read","example":"artifact_read"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactReadTool"},"artifact_grep":{"description":"A tool that searches through an artifact's content using grep with support for all standard grep options.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_grep`.","type":"string","default":"artifact_grep","example":"artifact_grep"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactGrepTool"},"image_read":{"description":"A tool that loads image artifacts into the conversation context for viewing and analysis.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `image_read`.","type":"string","default":"image_read","example":"image_read"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ImageReadTool"},"document_conversion":{"description":"A tool that converts document artifacts (PDF, Word, PowerPoint, etc.) to various formats.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `document_conversion`.","type":"string","default":"document_conversion","example":"document_conversion"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"DocumentConversionTool"}}},"oneOf":[{"description":"A tool type for built-in Vectara tools that have implementations within the platform but do not have a dedicated tool type schema. Examples include tools like `sub_agent`, `corpora_search`, `web_search`, and similar platform-provided capabilities. Use the List Tools endpoint to discover available tools and obtain the `tool_id` required for configuration.\n","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `dynamic_vectara`.","type":"string","default":"dynamic_vectara","example":"dynamic_vectara"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"DynamicVectaraTool"},{"description":"An MCP (Model Context Protocol) tool that connects to external MCP servers for extended functionality.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `mcp`.","type":"string","default":"mcp","example":"mcp"},"server_id":{"description":"Unique identifier for a tool server.","type":"string","pattern":"^tsr_.*","example":"tsr_rag_search","title":"ToolServerId"},"annotations":{"description":"Optional hints about tool behaviour/metadata.","type":"object","properties":{"read_only_hint":{"description":"If true, the tool does not modify its environment.","type":"boolean"},"destructive_hint":{"description":"If true, the tool may perform destructive updates.","type":"boolean"},"idempotent_hint":{"description":"If true, repeated calls with same args have no additional effect.","type":"boolean"},"open_world_hint":{"description":"If true, tool interacts with external entities.","type":"boolean"}},"additionalProperties":true,"title":"McpToolAnnotations"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"McpTool"},{"description":"A corpora search tool that searches through Vectara corpora to find relevant information.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `corpora_search`.","type":"string","default":"corpora_search","example":"corpora_search"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"CorporaSearchTool"},{"description":"A web search tool that searches the internet for relevant information.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `web_search`.","type":"string","default":"web_search","example":"web_search"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"WebSearchTool"},{"description":"A web get tool that fetches content from URLs using HTTP requests.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `web_get`.","type":"string","default":"web_get","example":"web_get"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"WebGetTool"},{"description":"A user-defined function that can be executed as a tool by agents.\nLambda tools run in a secure, sandboxed environment with resource limits.\nCurrently supports Python 3.12 with a curated set of libraries.\n","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `lambda`.","type":"string","default":"lambda","example":"lambda"},"language":{"description":"The programming language of the lambda function. Currently only Python 3.12 is supported.","type":"string","enum":["python"],"default":"python","example":"python"},"output_schema":{"description":"The schema that defines the expected output structure from the function.","type":"object","additionalProperties":true},"function_definition":{"description":"Definition of a function to be executed as a tool in a sandboxed environment.\n\n**Python Environment:**\n- Python version: 3.12\n- Execution: Sandboxed using gVisor for security isolation\n- **Allowed modules**: `json`, `math`, `datetime`, `collections`, `itertools`, `functools`, `re`, `time`, `typing`\n- Memory limit: 100MB (configurable up to 1GB)\n- Execution timeout: 30 seconds (configurable up to 300 seconds)\n- Network access: Disabled for security\n- File system access: Read-only temporary workspace\n- No custom package installation supported (security constraint)\n\n**Type Annotations:**\n- Use type annotations for automatic input/output schema discovery\n- Supported typing constructs: `List`, `Dict`, `Optional`, `Union`\n- Import from `typing` module when using complex types\n","type":"object","properties":{"language":{"description":"The programming language of the function. Currently only Python 3.12 is supported.","type":"string","enum":["python"],"example":"python"},"code":{"description":"The function code.\n\n**Required**: Must define a `process()` entry point function. Use type annotations on parameters for automatic schema discovery.\n\nParameters are passed as keyword arguments matched to the function signature.\n","type":"string","example":"def process(data: list, threshold: float = 0):\n filtered = [x for x in data if x > threshold]\n return {\n 'count': len(filtered),\n 'average': sum(filtered) / len(filtered) if filtered else 0,\n 'filtered_data': filtered\n }\n"},"validation_status":{"description":"The validation status of the code.","type":"string","enum":["pending","valid","invalid"],"example":"valid"},"validation_errors":{"description":"List of validation errors if the code is invalid.","type":"array","items":{"type":"string"}},"execution_configuration":{"description":"Execution configuration for the function.","type":"object","properties":{"max_execution_time_seconds":{"description":"Maximum execution time in seconds.","type":"integer","minimum":1,"maximum":300,"default":30,"example":30},"max_memory_mb":{"description":"Maximum memory usage in megabytes.","type":"integer","minimum":10,"maximum":1024,"default":100,"example":100}},"title":"ExecutionConfiguration"}},"required":["language","code"],"title":"FunctionDefinition"}},"required":["type","language","function_definition"]}],"x-vectaraParents":["Tool"],"title":"LambdaTool"},{"description":"A tool that indexes structured documents into the Vectara platform with full control over document structure, sections, metadata, tables, and images.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `structured_indexing`.","type":"string","default":"structured_indexing","example":"structured_indexing"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"StructuredIndexingTool"},{"description":"A tool that spawns a specialized sub-agent to handle complex, multi-step tasks autonomously.\nSub-agents maintain separate context from the main agent and can be specialized for specific types of tasks like code review, general research, or output styling.\n","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `sub_agent`.","type":"string","default":"sub_agent","example":"sub_agent"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"SubAgentTool"},{"description":"A tool that creates artifacts from text or structured data content that can be stored and referenced later.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_create`.","type":"string","default":"artifact_create","example":"artifact_create"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactCreateTool"},{"description":"A tool that reads artifact content from the agent session workspace with flexible size and range options.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_read`.","type":"string","default":"artifact_read","example":"artifact_read"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactReadTool"},{"description":"A tool that searches through an artifact's content using grep with support for all standard grep options.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_grep`.","type":"string","default":"artifact_grep","example":"artifact_grep"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactGrepTool"},{"description":"A tool that loads image artifacts into the conversation context for viewing and analysis.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `image_read`.","type":"string","default":"image_read","example":"image_read"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ImageReadTool"},{"description":"A tool that converts document artifacts (PDF, Word, PowerPoint, etc.) to various formats.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `document_conversion`.","type":"string","default":"document_conversion","example":"document_conversion"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"DocumentConversionTool"}],"title":"Tool"},"default":[],"example":[]}},"title":"TestInstructionRequest"}}}}}
>
@@ -68,4 +68,4 @@ Test an instruction template using supplied context and available tools. This en
-
+
\ No newline at end of file
diff --git a/www/docs/rest-api/update-agent.api.mdx b/www/docs/rest-api/update-agent.api.mdx
index 98acf0ff2..4ca46d1d2 100644
--- a/www/docs/rest-api/update-agent.api.mdx
+++ b/www/docs/rest-api/update-agent.api.mdx
@@ -5,7 +5,7 @@ description: "The Update Agent API enables you to modify an existing agent confi
sidebar_label: "Update agent"
hide_title: true
hide_table_of_contents: true
-api: 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
+api: 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
sidebar_class_name: "patch api-method"
info_path: docs/rest-api/vectara-rest-api-v-2
custom_edit_url: null
@@ -57,7 +57,7 @@ Use this API to evolve agent capabilities over time, adding new tools as they be
"},"end_tag":{"description":"The tag that wraps the document part at the end. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the document part ends and the context after begins.","type":"string","example":""}},"example":{"sentences_before":2,"sentences_after":2,"start_tag":"","end_tag":""},"title":"ContextConfiguration"},"reranker":{"type":"object","description":"Rerank results of the search. Rerankers are very powerful tools to improve the order of search results. By default the search will use the most powerful reranker available to the customer's plan. To disable reranking, set the reranker `type` to `\"none\"`.","discriminator":{"propertyName":"type","mapping":{"customer_reranker":{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},"userfn":{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},"mmr":{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},"chain":{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},"none":{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}}},"oneOf":[{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}],"title":"SearchReranker"}},"example":{"limit":50},"title":"SearchParameters"}],"required":["corpora"],"title":"SearchCorporaParameters"},"generation":{"description":"The parameters to control generation.","type":"object","properties":{"enabled":{"description":"Whether generation is enabled for this query. This field is ignored if using chat.","type":"boolean","default":true},"generation_preset_name":{"description":"The preset values to use to feed the query results and other context to the model. \n\nA `generation_preset` is an object with a bundle of properties that specifies: \n* The `prompt_template` that is rendered and then sent to the LLM. \n* The LLM used. * `model_parameter`s such as temperature.\n\nAll of these properties except the model can be overridden by setting them in this object. Even when a `prompt_template` is set, the `generation_preset_name` is used to set the model used. See `model_parameters.model` if you want to set the model explicitly.\n\nIf `generation_preset_name` is not set, the Vectara platform will use the default model and prompt.'\n","type":"string","minLength":1,"example":"mockingbird-2.0"},"prompt_name":{"description":"Use `generation_preset_name` instead of `prompt_name`.","type":"string","minLength":1,"example":"mockingbird-2.0","deprecated":true},"max_used_search_results":{"description":"The maximum number of search results to be available to the prompt.","type":"integer","format":"int32","minimum":0,"default":5},"prompt_template":{"description":"Vectara manages both system and user roles and prompts for the generative LLM out of the box by default. However, users can override the `prompt_template` via this variable. The `prompt_template` is in the form of an Apache Velocity template. For more details on how to configure the `prompt_template`, see the [long-form documentation](https://docs.vectara.com/docs/prompts/vectara-prompt-engine).","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n"},"prompt_text":{"description":"This property is deprecated in favor of clearer naming. Use `prompt_template`. This property will be ignored if `prompt_template` is set.","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n","deprecated":true},"max_response_characters":{"description":"Controls the length of the generated output. This is a rough estimate and not a hard limit: the end output can be longer or shorter than this value. This is generally implemented by including the `max_response_characters` in the prompt, and the LLM's instruction following capability dictates how closely the generated output is limited.","type":"integer","format":"int32","example":300,"minimum":0},"response_language":{"description":"Languages that the Vectara platform supports.","type":"string","enum":["auto","eng","deu","fra","zho","kor","ara","rus","tha","nld","ita","por","spa","jpn","pol","tur","vie","ind","ces","ukr","ell","heb","fas","hin","urd","swe","ben","msa","ron"],"default":"auto","title":"Language"},"model_parameters":{"title":"ModelParameters","description":"The parameters for the model. WARNING: This is an experimental feature, and breakable at any point with virtually no notice. It is meant for experimentation to converge on optimal parameters that can then be set in the prompt definitions.","type":"object","properties":{"llm_name":{"description":"The model (e.g., `gpt-4`) to use for summarization. If specified, it will override the model behind `generation_preset_name`.","type":"string","example":"gpt4"},"max_tokens":{"description":"The maximum number of tokens to be returned by the model.","type":"integer","format":"int32","minimum":1},"temperature":{"description":"The sampling temperature to use. Higher values make the output more random, while lower values make it more focused and deterministic.","type":"number","format":"float"},"frequency_penalty":{"description":"Higher values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.","type":"number","format":"float"},"presence_penalty":{"description":"Higher values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.","type":"number","format":"float"}}},"citations":{"description":"Style the generator should use when making citations.","type":"object","properties":{"style":{"description":"The citation style that you want to use in the summary: \n* `numeric` - Citations formatted as simple numerals: \\[1\\], \\[2\\], etc.\n* `none` - Citations removed from text.\n* `html` - Citation formatted as a URL like `text_pattern`.\n* `markdown` - Formatted as `[text_pattern](url_pattern)`.\n","type":"string","enum":["none","numeric","html","markdown"]},"url_pattern":{"description":"The URL pattern if the citation_style is set to `html` or `markdown`. The pattern can access metadata attributes in the document or part. e.g. `https://my.doc/foo/{doc.id}/{part.id}` The default `url_pattern` is an empty string.","type":"string","example":"https://vectara.com/documents/{doc.id}"},"text_pattern":{"description":"The text pattern if the citation_style is set to `html` or `markdown`. This pattern sets the href for HTML or the text within `[]` in markdown, and defaults to N being the index of result if it is not set. The default citation style looks like `[N]()` for markdown. You can use metadata attributes in the `text_pattern`. For example, the pattern `{doc.title}` with citation style `markdown` would result in final citation output like `[Title]()` when the document's metadata includes `{\"title\":\"Title\"}`.","type":"string","example":"{doc.title}"}},"title":"CitationParameters"},"enable_factual_consistency_score":{"description":"Enable returning the factual consistency score with query results.","type":"boolean","default":true}},"title":"GenerationParameters"},"save_history":{"description":"Indicates whether to save the query to query history.","type":"boolean"}},"required":["search"],"title":"CorporaSearchQueryConfiguration"}},"required":["type","query_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},"web_search":{"title":"InlineWebSearchToolConfiguration","description":"A web search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'web_search' for inline web search tool configurations.","default":"web_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the web search tool call such as limit etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query to execute.","type":"string","example":"latest AI developments 2024"},"limit":{"description":"Maximum number of results to return.","type":"integer","minimum":1,"example":10},"provider":{"description":"Search provider to use.","type":"string","enum":["tavily"],"example":"tavily"},"include_domains":{"description":"List of domains to specifically include in search results. When specified, results will ONLY come from these domains. Supports exact domains (e.g., \"github.com\"), subdomains (e.g., \"docs.github.com\"), and wildcard patterns (e.g., \"*.github.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["github.com","docs.github.com","*.stackoverflow.com"]},"exclude_domains":{"description":"List of domains to specifically exclude from search results. Supports exact domains (e.g., \"spam.com\"), subdomains (e.g., \"bad.spam.com\"), and wildcard patterns (e.g., \"*.spam.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["spam.com","unreliable-source.com"]}},"additionalProperties":false,"title":"WebSearchToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"lambda":{"title":"InlineLambdaToolConfiguration","description":"A lambda tool configuration defined inline in the agent for executing user-defined functions.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'lambda' for inline lambda tool configurations.","default":"lambda"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments that will be passed to the lambda function. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","additionalProperties":true,"example":{"custom_param":"value"}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},"structured_indexing":{"title":"InlineStructuredIndexingToolConfiguration","description":"A structured indexing tool configuration defined inline in the agent for indexing into the Vectara platform.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'structured_indexing' for inline structured indexing tool configurations.","default":"structured_indexing"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the structured indexing tool call such as corpus_key etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"corpus_key":{"description":"The key identifying the target corpus for document indexing. If not provided, will be filled in by the LLM.","type":"string","example":"my-knowledge-base"},"document_id":{"description":"The unique identifier for the document within the corpus, preferably human readable IDs.","type":"string","example":"annual_report_2024"},"title":{"description":"The title of the document being indexed.","type":"string","example":"2024 Annual ESG Report"},"description":{"description":"A brief description or summary of the document content.","type":"string","example":"Comprehensive environmental, social, and governance report"},"metadata":{"description":"The metadata key-value pairs to associate with the document. If present, this gets merged with existing artifact metadata.","type":"object","additionalProperties":true,"example":{"doc_type":"annual_report","year":2024,"department":"sustainability"}},"document":{"description":"The structured document to index with full hierarchical content.","type":"object","additionalProperties":true,"example":{"id":"annual_report_2024","type":"structured","title":"2024 Annual ESG Report"}}},"additionalProperties":false,"title":"StructuredIndexingToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"sub_agent":{"title":"InlineSubAgentToolConfiguration","description":"A sub-agent tool configuration defined inline in the agent for invoking specialized sub-agents.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'sub_agent' for inline sub-agent tool configurations.","default":"sub_agent"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the sub-agent tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"message":{"description":"The detailed task instructions for the sub-agent to perform autonomously.","type":"string","example":"Review the code changes in pull request \\#123 for security issues"},"session_tti_minutes":{"description":"Time to idle in minutes before the session expires.","type":"integer","format":"int64","minimum":1,"example":60}},"additionalProperties":false,"title":"SubAgentToolParameters"},"sub_agent_configuration":{"description":"User-configurable settings for the sub-agent tool. These parameters are never exposed to the agent.","type":"object","properties":{"agent_key":{"description":"A unique key that identifies an agent.","type":"string","pattern":"[0-9a-zA-Z_-]+$","minLength":1,"maxLength":50,"example":"customer_support","title":"AgentKey"}},"required":["agent_key"],"title":"SubAgentConfiguration"}},"required":["type","sub_agent_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},"artifact_read":{"title":"InlineArtifactReadToolConfiguration","description":"An artifact read tool configuration defined inline in the agent for reading artifacts from the session workspace.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_read' for inline artifact read tool configurations.","default":"artifact_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to read.","type":"string","example":"art_abc123"},"encoding":{"description":"The encoding format for the content.","type":"string","enum":["raw","base64"],"example":"raw"},"start_line":{"description":"Optional starting line number (1-indexed).","type":"integer","format":"int32","example":100},"end_line":{"description":"Optional ending line number (1-indexed, inclusive).","type":"integer","format":"int32","example":200}},"additionalProperties":false,"title":"ArtifactReadToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"artifact_grep":{"title":"InlineArtifactGrepToolConfiguration","description":"An artifact grep tool configuration defined inline in the agent for searching through artifact content.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_grep' for inline artifact grep tool configurations.","default":"artifact_grep"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact grep tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to search.","type":"string","example":"art_abc123"},"pattern":{"description":"The pattern to search for (supports grep regex).","type":"string","example":"error|exception"},"grep_options":{"description":"Optional grep command options.","type":"array","items":{"type":"string"},"example":["-i","-n"]}},"additionalProperties":false,"title":"ArtifactGrepToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"image_read":{"title":"InlineImageReadToolConfiguration","description":"An image read tool configuration defined inline in the agent for loading images into the conversation context.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'image_read' for inline image read tool configurations.","default":"image_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the image read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the image artifact to view.","type":"string","pattern":"^art_[a-z0-9_-]+$","example":"art_photo_a3f2"},"detail":{"description":"Detail level for image processing.","type":"string","enum":["auto","low","high"],"default":"auto","example":"auto"}},"additionalProperties":false,"title":"ImageReadToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"document_conversion":{"title":"InlineDocumentConversionToolConfiguration","description":"A document conversion tool configuration defined inline in the agent for converting document artifacts to various formats.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'document_conversion' for inline document conversion tool configurations.","default":"document_conversion"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the document conversion tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to convert.","type":"string","example":"art_abc123"},"output_format":{"description":"Output format for the converted document.","type":"string","enum":["markdown","structured_document"],"example":"markdown"},"description":{"description":"Optional description for the converted artifact.","type":"string","example":"PDF converted to markdown"}},"additionalProperties":false,"title":"DocumentConversionToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]}}},"oneOf":[{"title":"InlineMcpToolConfiguration","description":"An MCP tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'mcp' for inline MCP tool configurations.","default":"mcp"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for tool calls. The key specifies the location in the tool arguments to overide, and the value specifies what to override with. The LLM will not be able to change the parameters, nor know those values exist within the tool.\n\nThe values can also be dynamic references to context values using $ref with dot notation path syntax:\n- Static value: \"fixed_value\" or 123\n- Dynamic reference: `{\"$ref\": \"session.metadata.field_name\"}`\n\nReferences are resolved at runtime from context:\n- session.metadata.* - Access session metadata fields\n- agent.metadata.* - Access agent metadata fields\n\nExample:\n `{\"query\": {\"$ref\": \".session.metadata.query\"}}`\n\nIf you want to have a real value `\"$ref\"` use `\"$$ref\"`, that is you can escape the first $ by using $$.","type":"object","additionalProperties":true,"example":{"custom_param":"value","limit":10}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineCorporaSearchToolConfiguration","description":"A corpora search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'corpora_search' for inline corpora search tool configurations.","default":"corpora_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the corpus search call such as the query. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query string, which is the question the user is asking. If not provided, will be filled in by the LLM.","type":"string","maxLength":5000,"example":"Am I allowed to bring pets to work?"}},"additionalProperties":false,"title":"CorporaSearchToolParameters"},"query_configuration":{"description":"User-configurable settings for the corpus search that are not exposed to the LLM.","type":"object","properties":{"search":{"description":"The parameters to search one or more corpora.","allOf":[{"type":"object","properties":{"corpora":{"description":"The corpora that you want to search.","type":"array","items":{"description":"A corpus with its identifying key for use in search operations within a customer account.","allOf":[{"description":"Configuration for search parameters specific to a single corpus within a customer account, including filters and semantics.","type":"object","properties":{"custom_dimensions":{"description":"The custom dimensions as additional weights.","type":"object","additionalProperties":{"type":"number","format":"double","nullable":false},"title":"CustomDimensions"},"metadata_filter":{"description":"The filter string used to narrow the search based on metadata attributes. The query against this corpus will be confined to document parts that match the `metadata_filter`. Only metadata fields set as `filter_attributes` on the corpus can be filtered. Filter syntax is similar to a SQL WHERE clause. See [metadata filters documentation](https://docs.vectara.com/docs/learn/metadata-search-filtering/filter-overview) for more information.","type":"string","maxLength":8000,"example":"doc.title = 'Annual Report'"},"lexical_interpolation":{"description":"How much to weigh lexical scores compared to the embedding score. 0 means lexical search is not used at all, and 1 means only lexical search is used.","type":"number","format":"float","minimum":0,"maximum":1,"example":0.005},"semantics":{"description":"Indicates whether to consider a query against this corpus as a query or a response.","type":"string","enum":["default","query","response"],"default":"default","title":"SearchSemantics"}},"title":"SearchCorpus"},{"type":"object","properties":{"corpus_key":{"description":"A user-provided key for a corpus.","type":"string","example":"my-corpus","pattern":"[a-zA-Z0-9_\\=\\-]+$","maxLength":50,"title":"CorpusKey"},"query":{"description":"Query for a particular corpus that will override the overall query if present.","type":"string","maxLength":5000,"example":"What are some important facts in my-corpus?"}}}],"required":["corpus_key"],"title":"KeyedSearchCorpus"},"minItems":1}}},{"type":"object","description":"Search parameters to retrieve knowledge for the query.","properties":{"offset":{"description":"Specifies how many results into the result to skip. This is useful for pagination.","type":"integer","format":"int32","default":0,"minimum":0},"limit":{"description":"The maximum number of results returned.","type":"integer","format":"int32","minimum":1,"default":10},"context_configuration":{"type":"object","description":"Configuration on the presentation of each document part in the result set. You can only use characters_before/after or sentences_before/after, but not both. If you specify both in the query, sentences_before/after takes precedence","properties":{"characters_before":{"description":"The number of characters that are shown before the matching document part. This is useful to show the context of the document part in the wider document. Ignored if `sentences_before` is set. Vectara will capture the full sentence that contains the captured characters, to not lose the meaning caused by a truncated word or sentence.","type":"integer","format":"int32"},"characters_after":{"description":"The number of characters that are shown after the matching document part. This is useful to show the context of the document part in the wider document. Ignored if `sentences_after` is set. Vectara will capture the full sentence that contains the captured characters, to not lose the meaning caused by a truncated word or sentence.","type":"integer","format":"int32"},"sentences_before":{"description":"The number of sentences that are shown before the matching document part. This is useful to show the context of the document part in the wider document.","type":"integer","format":"int32","default":0,"minimum":0,"example":2},"sentences_after":{"description":"The number of sentences that are shown after the matching document part. This is useful to show the context of the document part in the wider document.","type":"integer","format":"int32","default":0,"minimum":0,"example":2},"start_tag":{"description":"The tag that wraps the document part at the start. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the context before ends and the document part begins.","type":"string","example":""},"end_tag":{"description":"The tag that wraps the document part at the end. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the document part ends and the context after begins.","type":"string","example":""}},"example":{"sentences_before":2,"sentences_after":2,"start_tag":"","end_tag":""},"title":"ContextConfiguration"},"reranker":{"type":"object","description":"Rerank results of the search. Rerankers are very powerful tools to improve the order of search results. By default the search will use the most powerful reranker available to the customer's plan. To disable reranking, set the reranker `type` to `\"none\"`.","discriminator":{"propertyName":"type","mapping":{"customer_reranker":{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},"userfn":{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},"mmr":{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},"chain":{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},"none":{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}}},"oneOf":[{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}],"title":"SearchReranker"}},"example":{"limit":50},"title":"SearchParameters"}],"required":["corpora"],"title":"SearchCorporaParameters"},"generation":{"description":"The parameters to control generation.","type":"object","properties":{"enabled":{"description":"Whether generation is enabled for this query. This field is ignored if using chat.","type":"boolean","default":true},"generation_preset_name":{"description":"The preset values to use to feed the query results and other context to the model. \n\nA `generation_preset` is an object with a bundle of properties that specifies: \n* The `prompt_template` that is rendered and then sent to the LLM. \n* The LLM used. * `model_parameter`s such as temperature.\n\nAll of these properties except the model can be overridden by setting them in this object. Even when a `prompt_template` is set, the `generation_preset_name` is used to set the model used. See `model_parameters.model` if you want to set the model explicitly.\n\nIf `generation_preset_name` is not set, the Vectara platform will use the default model and prompt.'\n","type":"string","minLength":1,"example":"mockingbird-2.0"},"prompt_name":{"description":"Use `generation_preset_name` instead of `prompt_name`.","type":"string","minLength":1,"example":"mockingbird-2.0","deprecated":true},"max_used_search_results":{"description":"The maximum number of search results to be available to the prompt.","type":"integer","format":"int32","minimum":0,"default":5},"prompt_template":{"description":"Vectara manages both system and user roles and prompts for the generative LLM out of the box by default. However, users can override the `prompt_template` via this variable. The `prompt_template` is in the form of an Apache Velocity template. For more details on how to configure the `prompt_template`, see the [long-form documentation](https://docs.vectara.com/docs/prompts/vectara-prompt-engine).","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n"},"prompt_text":{"description":"This property is deprecated in favor of clearer naming. Use `prompt_template`. This property will be ignored if `prompt_template` is set.","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n","deprecated":true},"max_response_characters":{"description":"Controls the length of the generated output. This is a rough estimate and not a hard limit: the end output can be longer or shorter than this value. This is generally implemented by including the `max_response_characters` in the prompt, and the LLM's instruction following capability dictates how closely the generated output is limited.","type":"integer","format":"int32","example":300,"minimum":0},"response_language":{"description":"Languages that the Vectara platform supports.","type":"string","enum":["auto","eng","deu","fra","zho","kor","ara","rus","tha","nld","ita","por","spa","jpn","pol","tur","vie","ind","ces","ukr","ell","heb","fas","hin","urd","swe","ben","msa","ron"],"default":"auto","title":"Language"},"model_parameters":{"title":"ModelParameters","description":"The parameters for the model. WARNING: This is an experimental feature, and breakable at any point with virtually no notice. It is meant for experimentation to converge on optimal parameters that can then be set in the prompt definitions.","type":"object","properties":{"llm_name":{"description":"The model (e.g., `gpt-4`) to use for summarization. If specified, it will override the model behind `generation_preset_name`.","type":"string","example":"gpt4"},"max_tokens":{"description":"The maximum number of tokens to be returned by the model.","type":"integer","format":"int32","minimum":1},"temperature":{"description":"The sampling temperature to use. Higher values make the output more random, while lower values make it more focused and deterministic.","type":"number","format":"float"},"frequency_penalty":{"description":"Higher values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.","type":"number","format":"float"},"presence_penalty":{"description":"Higher values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.","type":"number","format":"float"}}},"citations":{"description":"Style the generator should use when making citations.","type":"object","properties":{"style":{"description":"The citation style that you want to use in the summary: \n* `numeric` - Citations formatted as simple numerals: \\[1\\], \\[2\\], etc.\n* `none` - Citations removed from text.\n* `html` - Citation formatted as a URL like `text_pattern`.\n* `markdown` - Formatted as `[text_pattern](url_pattern)`.\n","type":"string","enum":["none","numeric","html","markdown"]},"url_pattern":{"description":"The URL pattern if the citation_style is set to `html` or `markdown`. The pattern can access metadata attributes in the document or part. e.g. `https://my.doc/foo/{doc.id}/{part.id}` The default `url_pattern` is an empty string.","type":"string","example":"https://vectara.com/documents/{doc.id}"},"text_pattern":{"description":"The text pattern if the citation_style is set to `html` or `markdown`. This pattern sets the href for HTML or the text within `[]` in markdown, and defaults to N being the index of result if it is not set. The default citation style looks like `[N]()` for markdown. You can use metadata attributes in the `text_pattern`. For example, the pattern `{doc.title}` with citation style `markdown` would result in final citation output like `[Title]()` when the document's metadata includes `{\"title\":\"Title\"}`.","type":"string","example":"{doc.title}"}},"title":"CitationParameters"},"enable_factual_consistency_score":{"description":"Enable returning the factual consistency score with query results.","type":"boolean","default":true}},"title":"GenerationParameters"},"save_history":{"description":"Indicates whether to save the query to query history.","type":"boolean"}},"required":["search"],"title":"CorporaSearchQueryConfiguration"}},"required":["type","query_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineWebSearchToolConfiguration","description":"A web search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'web_search' for inline web search tool configurations.","default":"web_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the web search tool call such as limit etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query to execute.","type":"string","example":"latest AI developments 2024"},"limit":{"description":"Maximum number of results to return.","type":"integer","minimum":1,"example":10},"provider":{"description":"Search provider to use.","type":"string","enum":["tavily"],"example":"tavily"},"include_domains":{"description":"List of domains to specifically include in search results. When specified, results will ONLY come from these domains. Supports exact domains (e.g., \"github.com\"), subdomains (e.g., \"docs.github.com\"), and wildcard patterns (e.g., \"*.github.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["github.com","docs.github.com","*.stackoverflow.com"]},"exclude_domains":{"description":"List of domains to specifically exclude from search results. Supports exact domains (e.g., \"spam.com\"), subdomains (e.g., \"bad.spam.com\"), and wildcard patterns (e.g., \"*.spam.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["spam.com","unreliable-source.com"]}},"additionalProperties":false,"title":"WebSearchToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineLambdaToolConfiguration","description":"A lambda tool configuration defined inline in the agent for executing user-defined functions.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'lambda' for inline lambda tool configurations.","default":"lambda"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments that will be passed to the lambda function. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","additionalProperties":true,"example":{"custom_param":"value"}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineStructuredIndexingToolConfiguration","description":"A structured indexing tool configuration defined inline in the agent for indexing into the Vectara platform.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'structured_indexing' for inline structured indexing tool configurations.","default":"structured_indexing"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the structured indexing tool call such as corpus_key etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"corpus_key":{"description":"The key identifying the target corpus for document indexing. If not provided, will be filled in by the LLM.","type":"string","example":"my-knowledge-base"},"document_id":{"description":"The unique identifier for the document within the corpus, preferably human readable IDs.","type":"string","example":"annual_report_2024"},"title":{"description":"The title of the document being indexed.","type":"string","example":"2024 Annual ESG Report"},"description":{"description":"A brief description or summary of the document content.","type":"string","example":"Comprehensive environmental, social, and governance report"},"metadata":{"description":"The metadata key-value pairs to associate with the document. If present, this gets merged with existing artifact metadata.","type":"object","additionalProperties":true,"example":{"doc_type":"annual_report","year":2024,"department":"sustainability"}},"document":{"description":"The structured document to index with full hierarchical content.","type":"object","additionalProperties":true,"example":{"id":"annual_report_2024","type":"structured","title":"2024 Annual ESG Report"}}},"additionalProperties":false,"title":"StructuredIndexingToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineSubAgentToolConfiguration","description":"A sub-agent tool configuration defined inline in the agent for invoking specialized sub-agents.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'sub_agent' for inline sub-agent tool configurations.","default":"sub_agent"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the sub-agent tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"message":{"description":"The detailed task instructions for the sub-agent to perform autonomously.","type":"string","example":"Review the code changes in pull request \\#123 for security issues"},"session_tti_minutes":{"description":"Time to idle in minutes before the session expires.","type":"integer","format":"int64","minimum":1,"example":60}},"additionalProperties":false,"title":"SubAgentToolParameters"},"sub_agent_configuration":{"description":"User-configurable settings for the sub-agent tool. These parameters are never exposed to the agent.","type":"object","properties":{"agent_key":{"description":"A unique key that identifies an agent.","type":"string","pattern":"[0-9a-zA-Z_-]+$","minLength":1,"maxLength":50,"example":"customer_support","title":"AgentKey"}},"required":["agent_key"],"title":"SubAgentConfiguration"}},"required":["type","sub_agent_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineArtifactReadToolConfiguration","description":"An artifact read tool configuration defined inline in the agent for reading artifacts from the session workspace.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_read' for inline artifact read tool configurations.","default":"artifact_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to read.","type":"string","example":"art_abc123"},"encoding":{"description":"The encoding format for the content.","type":"string","enum":["raw","base64"],"example":"raw"},"start_line":{"description":"Optional starting line number (1-indexed).","type":"integer","format":"int32","example":100},"end_line":{"description":"Optional ending line number (1-indexed, inclusive).","type":"integer","format":"int32","example":200}},"additionalProperties":false,"title":"ArtifactReadToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineArtifactGrepToolConfiguration","description":"An artifact grep tool configuration defined inline in the agent for searching through artifact content.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_grep' for inline artifact grep tool configurations.","default":"artifact_grep"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact grep tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to search.","type":"string","example":"art_abc123"},"pattern":{"description":"The pattern to search for (supports grep regex).","type":"string","example":"error|exception"},"grep_options":{"description":"Optional grep command options.","type":"array","items":{"type":"string"},"example":["-i","-n"]}},"additionalProperties":false,"title":"ArtifactGrepToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineImageReadToolConfiguration","description":"An image read tool configuration defined inline in the agent for loading images into the conversation context.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'image_read' for inline image read tool configurations.","default":"image_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the image read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the image artifact to view.","type":"string","pattern":"^art_[a-z0-9_-]+$","example":"art_photo_a3f2"},"detail":{"description":"Detail level for image processing.","type":"string","enum":["auto","low","high"],"default":"auto","example":"auto"}},"additionalProperties":false,"title":"ImageReadToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineDocumentConversionToolConfiguration","description":"A document conversion tool configuration defined inline in the agent for converting document artifacts to various formats.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'document_conversion' for inline document conversion tool configurations.","default":"document_conversion"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the document conversion tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to convert.","type":"string","example":"art_abc123"},"output_format":{"description":"Output format for the converted document.","type":"string","enum":["markdown","structured_document"],"example":"markdown"},"description":{"description":"Optional description for the converted artifact.","type":"string","example":"PDF converted to markdown"}},"additionalProperties":false,"title":"DocumentConversionToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]}],"example":[{"type":"web_search","argument_override":{"limit":5,"include_domains":["github.com","stackoverflow.com"],"exclude_domains":["spam.com"]}}]},"example":{"customer_search":{"type":"corpora_search","argument_override":{"query":"customer support documentation"}}}},"model":{"title":"AgentModel","description":"Configuration for the model used in this step, including the model name and arbitrary parameters.","type":"object","properties":{"name":{"description":"The name of the model to use for this step.","type":"string","example":"gpt-4"},"parameters":{"description":"Arbitrary model-specific parameters that can be passed to the model.","type":"object","additionalProperties":true,"example":{"temperature":0.7,"max_tokens":1000,"top_p":0.9}},"retry_configuration":{"description":"Optional retry configuration for handling transient failures. When not provided, no retry is performed.","title":"RetryConfiguration","type":"object","properties":{"enabled":{"description":"Whether retry is enabled. Enabled by default to provide resilience against transient failures.","type":"boolean","default":true,"example":true},"max_retries":{"description":"Maximum number of retry attempts after initial failure.","type":"integer","minimum":0,"maximum":10,"default":3,"example":3},"initial_backoff_ms":{"description":"Initial backoff time in milliseconds before first retry.","type":"integer","minimum":100,"maximum":60000,"default":1000,"example":1000},"max_backoff_ms":{"description":"Maximum backoff time in milliseconds between retries.","type":"integer","minimum":1000,"maximum":300000,"default":30000,"example":30000},"backoff_factor":{"description":"Multiplication factor for exponential backoff between retries.","type":"number","format":"double","minimum":1,"maximum":10,"default":2,"example":2}}}},"required":["name"]},"first_step":{"title":"AgentStep","description":"A step in an agent's execution flow that defines how the agent processes and responds to input.","discriminator":{"propertyName":"type","mapping":{"conversational":{"title":"ConversationalAgentStep","description":"A step that receives instructions and responds through dialogue. This is a step that gets instructions and engages in conversation with users based on those instructions. This only type step supported, with no way to go next steps. A conversational step responds to an input following its instructions and uses the agent tools. The first response from the model will terminate processing the input.","type":"object","properties":{"type":{"description":"The type of step, which is always 'conversational' for this step type.","type":"string","default":"conversational","example":"conversational"},"instructions":{"description":"List of instructions that guide the agent's behavior in this step. If no instructions are given, the agent is instructed to be helpful and use tools.","type":"array","items":{"title":"AgentStepInstruction","description":"An instruction that can be used in an agent step, either by reference or defined inline.","discriminator":{"propertyName":"type","mapping":{"reference":{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},"inline":{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Request object for creating a new initial instruction.","type":"object","properties":{"type":{"description":"The type of instruction to create.","type":"string","default":"initial","example":"initial"},"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["type","name","template"],"x-vectaraParents":["CreateInstructionRequest"],"title":"CreateInitialInstructionRequest"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}}},"oneOf":[{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Request object for creating a new initial instruction.","type":"object","properties":{"type":{"description":"The type of instruction to create.","type":"string","default":"initial","example":"initial"},"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["type","name","template"],"x-vectaraParents":["CreateInstructionRequest"],"title":"CreateInitialInstructionRequest"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}],"example":[{"type":"reference","name":"Customer Support Initial Instruction","version":1},{"type":"inline","name":"Temporary On-the-fly Guideline","description":"A special instruction for this specific step only.","template_type":"velocity","template":"Please prioritize issues tagged with 'urgent' for the next hour."}]}},"output_parser":{"title":"AgentOutputParser","description":"Configuration for how the agent's output should be parsed and formatted.\n\nThe output parser determines how the agent's responses are processed before being returned to the user.\n","discriminator":{"propertyName":"type","mapping":{"default":{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]}}},"oneOf":[{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]}]}},"required":["type","instructions","output_parser"],"x-vectaraParents":["AgentStep"]}}},"oneOf":[{"title":"ConversationalAgentStep","description":"A step that receives instructions and responds through dialogue. This is a step that gets instructions and engages in conversation with users based on those instructions. This only type step supported, with no way to go next steps. A conversational step responds to an input following its instructions and uses the agent tools. The first response from the model will terminate processing the input.","type":"object","properties":{"type":{"description":"The type of step, which is always 'conversational' for this step type.","type":"string","default":"conversational","example":"conversational"},"instructions":{"description":"List of instructions that guide the agent's behavior in this step. If no instructions are given, the agent is instructed to be helpful and use tools.","type":"array","items":{"title":"AgentStepInstruction","description":"An instruction that can be used in an agent step, either by reference or defined inline.","discriminator":{"propertyName":"type","mapping":{"reference":{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},"inline":{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Request object for creating a new initial instruction.","type":"object","properties":{"type":{"description":"The type of instruction to create.","type":"string","default":"initial","example":"initial"},"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["type","name","template"],"x-vectaraParents":["CreateInstructionRequest"],"title":"CreateInitialInstructionRequest"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}}},"oneOf":[{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Request object for creating a new initial instruction.","type":"object","properties":{"type":{"description":"The type of instruction to create.","type":"string","default":"initial","example":"initial"},"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["type","name","template"],"x-vectaraParents":["CreateInstructionRequest"],"title":"CreateInitialInstructionRequest"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}],"example":[{"type":"reference","name":"Customer Support Initial Instruction","version":1},{"type":"inline","name":"Temporary On-the-fly Guideline","description":"A special instruction for this specific step only.","template_type":"velocity","template":"Please prioritize issues tagged with 'urgent' for the next hour."}]}},"output_parser":{"title":"AgentOutputParser","description":"Configuration for how the agent's output should be parsed and formatted.\n\nThe output parser determines how the agent's responses are processed before being returned to the user.\n","discriminator":{"propertyName":"type","mapping":{"default":{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]}}},"oneOf":[{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]}]}},"required":["type","instructions","output_parser"],"x-vectaraParents":["AgentStep"]}]},"metadata":{"description":"Arbitrary metadata associated with the agent for customization and configuration.","type":"object","additionalProperties":true,"example":{"department":"customer_service","version":"1.1.0","owner":"support-team","last_reviewed":"2024-01-15"}},"enabled":{"description":"Whether the agent is enabled.","type":"boolean","example":true}},"title":"UpdateAgentRequest"}}}}}
+ body={{"required":true,"content":{"application/json":{"schema":{"description":"Request object for updating an existing agent.","type":"object","properties":{"name":{"description":"The human-readable name of an agent.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Agent","title":"AgentName"},"description":{"description":"A detailed description of the agent's purpose and capabilities.","type":"string","example":"An enhanced AI agent specialized in handling customer support inquiries."},"tool_configurations":{"description":"A map of tool configurations available to the agent. The key is the name of the tool configuration and the value is an agent tool configuration.","type":"object","additionalProperties":{"nullable":true,"title":"AgentToolConfiguration","description":"A tool configuration that can be used by an agent, defined inline with a specific configuration type.","discriminator":{"propertyName":"type","mapping":{"dynamic_vectara":{"title":"InlineDynamicVectaraToolConfiguration","description":"An inline configuration for built-in Vectara tools that have implementations within the platform but do not have a dedicated configuration type schema. Use the List Tools endpoint to discover available tools and obtain the `tool_id` required for this configuration.\n","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'dynamic_vectara' for generic Vectara tool configurations.","default":"dynamic_vectara"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for tool calls. The key specifies the location in the tool arguments to overide, and the value specifies what to override with. The LLM will not be able to change the parameters, nor know those values exist within the tool.\n\nThe values can also be dynamic references to context values using $ref with dot notation path syntax:\n- Static value: \"fixed_value\" or 123\n- Dynamic reference: `{\"$ref\": \"session.metadata.field_name\"}`\n\nReferences are resolved at runtime from context:\n- session.metadata.* - Access session metadata fields\n- agent.metadata.* - Access agent metadata fields\n\nExample:\n `{\"query\": {\"$ref\": \".session.metadata.query\"}}`\n\nIf you want to have a real value `\"$ref\"` use `\"$$ref\"`, that is you can escape the first $ by using $$.","type":"object","additionalProperties":true,"example":{"custom_param":"value","limit":10}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},"mcp":{"title":"InlineMcpToolConfiguration","description":"An MCP tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'mcp' for inline MCP tool configurations.","default":"mcp"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for tool calls. The key specifies the location in the tool arguments to overide, and the value specifies what to override with. The LLM will not be able to change the parameters, nor know those values exist within the tool.\n\nThe values can also be dynamic references to context values using $ref with dot notation path syntax:\n- Static value: \"fixed_value\" or 123\n- Dynamic reference: `{\"$ref\": \"session.metadata.field_name\"}`\n\nReferences are resolved at runtime from context:\n- session.metadata.* - Access session metadata fields\n- agent.metadata.* - Access agent metadata fields\n\nExample:\n `{\"query\": {\"$ref\": \".session.metadata.query\"}}`\n\nIf you want to have a real value `\"$ref\"` use `\"$$ref\"`, that is you can escape the first $ by using $$.","type":"object","additionalProperties":true,"example":{"custom_param":"value","limit":10}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},"corpora_search":{"title":"InlineCorporaSearchToolConfiguration","description":"A corpora search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'corpora_search' for inline corpora search tool configurations.","default":"corpora_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the corpus search call such as the query. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query string, which is the question the user is asking. If not provided, will be filled in by the agent.","type":"string","maxLength":5000,"example":"Am I allowed to bring pets to work?"}},"additionalProperties":false,"title":"CorporaSearchToolParameters"},"query_configuration":{"description":"User-configurable settings for the corpus search that are not exposed to the LLM. Supports dynamic references for runtime resolution from session context.","title":"AgentCorporaSearchQueryConfiguration","type":"object","properties":{"search":{"title":"AgentSearchCorporaParameters","description":"Agent-specific search parameters that support eager references.","type":"object","properties":{"corpora":{"description":"The corpora to search, with support for eager references.","type":"array","items":{"title":"AgentKeyedSearchCorpus","description":"Agent-specific keyed search corpus that supports eager references for corpus_key and metadata_filter.","type":"object","properties":{"corpus_key":{"description":"The corpus to search. Can be either:\n- A static string: \"my-corpus\"\n- An EagerReference object: {\"$ref\": \"session.metadata.corpus\"}\n\nWhen an EagerReference is provided, the $ref path is resolved from the session context\nat the start of each turn, before LLM processing begins.\n","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"custom_dimensions":{"description":"The custom dimensions as additional weights.","type":"object","additionalProperties":{"type":"number","format":"double","nullable":false},"title":"CustomDimensions"},"metadata_filter":{"description":"The filter to narrow search results. Can be either:\n- A static string: \"doc.department = 'engineering'\"\n- An EagerReference object: {\"$ref\": \"session.metadata.filters.user\"}\n\nWhen an EagerReference is provided, the $ref path is resolved from the session context\nat the start of each turn, before LLM processing begins.\n","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"lexical_interpolation":{"description":"How much to weigh lexical scores compared to the embedding score.","type":"number","format":"float","minimum":0,"maximum":1},"semantics":{"description":"Indicates whether to consider a query against this corpus as a query or a response.","type":"string","enum":["default","query","response"],"default":"default","title":"SearchSemantics"},"query":{"description":"Query override for this specific corpus.","type":"string","maxLength":5000}},"required":["corpus_key"]},"minItems":1},"offset":{"description":"Number of results to skip for pagination.","type":"integer","format":"int32","minimum":0,"default":0},"limit":{"description":"Maximum number of results to return.","type":"integer","format":"int32","minimum":1,"default":10},"context_configuration":{"type":"object","description":"Configuration on the presentation of each document part in the result set. You can only use characters_before/after or sentences_before/after, but not both. If you specify both in the query, sentences_before/after takes precedence","properties":{"characters_before":{"description":"The number of characters that are shown before the matching document part. This is useful to show the context of the document part in the wider document. Ignored if `sentences_before` is set. Vectara will capture the full sentence that contains the captured characters, to not lose the meaning caused by a truncated word or sentence.","type":"integer","format":"int32"},"characters_after":{"description":"The number of characters that are shown after the matching document part. This is useful to show the context of the document part in the wider document. Ignored if `sentences_after` is set. Vectara will capture the full sentence that contains the captured characters, to not lose the meaning caused by a truncated word or sentence.","type":"integer","format":"int32"},"sentences_before":{"description":"The number of sentences that are shown before the matching document part. This is useful to show the context of the document part in the wider document.","type":"integer","format":"int32","default":0,"minimum":0,"example":2},"sentences_after":{"description":"The number of sentences that are shown after the matching document part. This is useful to show the context of the document part in the wider document.","type":"integer","format":"int32","default":0,"minimum":0,"example":2},"start_tag":{"description":"The tag that wraps the document part at the start. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the context before ends and the document part begins.","type":"string","example":""},"end_tag":{"description":"The tag that wraps the document part at the end. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the document part ends and the context after begins.","type":"string","example":""}},"example":{"sentences_before":2,"sentences_after":2,"start_tag":"","end_tag":""},"title":"ContextConfiguration"},"reranker":{"type":"object","description":"Rerank results of the search. Rerankers are very powerful tools to improve the order of search results. By default the search will use the most powerful reranker available to the customer's plan. To disable reranking, set the reranker `type` to `\"none\"`.","discriminator":{"propertyName":"type","mapping":{"customer_reranker":{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},"userfn":{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},"mmr":{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},"chain":{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},"none":{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}}},"oneOf":[{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}],"title":"SearchReranker"}},"required":["corpora"]},"generation":{"description":"The parameters to control generation.","type":"object","properties":{"enabled":{"description":"Whether generation is enabled for this query. This field is ignored if using chat.","type":"boolean","default":true},"generation_preset_name":{"description":"The preset values to use to feed the query results and other context to the model. \n\nA `generation_preset` is an object with a bundle of properties that specifies: \n* The `prompt_template` that is rendered and then sent to the LLM. \n* The LLM used. * `model_parameter`s such as temperature.\n\nAll of these properties except the model can be overridden by setting them in this object. Even when a `prompt_template` is set, the `generation_preset_name` is used to set the model used. See `model_parameters.model` if you want to set the model explicitly.\n\nIf `generation_preset_name` is not set, the Vectara platform will use the default model and prompt.'\n","type":"string","minLength":1,"example":"mockingbird-2.0"},"prompt_name":{"description":"Use `generation_preset_name` instead of `prompt_name`.","type":"string","minLength":1,"example":"mockingbird-2.0","deprecated":true},"max_used_search_results":{"description":"The maximum number of search results to be available to the prompt.","type":"integer","format":"int32","minimum":0,"default":5},"prompt_template":{"description":"Vectara manages both system and user roles and prompts for the generative LLM out of the box by default. However, users can override the `prompt_template` via this variable. The `prompt_template` is in the form of an Apache Velocity template. For more details on how to configure the `prompt_template`, see the [long-form documentation](https://docs.vectara.com/docs/prompts/vectara-prompt-engine).","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n"},"prompt_text":{"description":"This property is deprecated in favor of clearer naming. Use `prompt_template`. This property will be ignored if `prompt_template` is set.","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n","deprecated":true},"max_response_characters":{"description":"Controls the length of the generated output. This is a rough estimate and not a hard limit: the end output can be longer or shorter than this value. This is generally implemented by including the `max_response_characters` in the prompt, and the LLM's instruction following capability dictates how closely the generated output is limited.","type":"integer","format":"int32","example":300,"minimum":0},"response_language":{"description":"Languages that the Vectara platform supports.","type":"string","enum":["auto","eng","deu","fra","zho","kor","ara","rus","tha","nld","ita","por","spa","jpn","pol","tur","vie","ind","ces","ukr","ell","heb","fas","hin","urd","swe","ben","msa","ron"],"default":"auto","title":"Language"},"model_parameters":{"title":"ModelParameters","description":"The parameters for the model. WARNING: This is an experimental feature, and breakable at any point with virtually no notice. It is meant for experimentation to converge on optimal parameters that can then be set in the prompt definitions.","type":"object","properties":{"llm_name":{"description":"The model (e.g., `gpt-4`) to use for summarization. If specified, it will override the model behind `generation_preset_name`.","type":"string","example":"gpt4"},"max_tokens":{"description":"The maximum number of tokens to be returned by the model.","type":"integer","format":"int32","minimum":1},"temperature":{"description":"The sampling temperature to use. Higher values make the output more random, while lower values make it more focused and deterministic.","type":"number","format":"float"},"frequency_penalty":{"description":"Higher values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.","type":"number","format":"float"},"presence_penalty":{"description":"Higher values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.","type":"number","format":"float"}}},"citations":{"description":"Style the generator should use when making citations.","type":"object","properties":{"style":{"description":"The citation style that you want to use in the summary: \n* `numeric` - Citations formatted as simple numerals: \\[1\\], \\[2\\], etc.\n* `none` - Citations removed from text.\n* `html` - Citation formatted as a URL like `text_pattern`.\n* `markdown` - Formatted as `[text_pattern](url_pattern)`.\n","type":"string","enum":["none","numeric","html","markdown"]},"url_pattern":{"description":"The URL pattern if the citation_style is set to `html` or `markdown`. The pattern can access metadata attributes in the document or part. e.g. `https://my.doc/foo/{doc.id}/{part.id}` The default `url_pattern` is an empty string.","type":"string","example":"https://vectara.com/documents/{doc.id}"},"text_pattern":{"description":"The text pattern if the citation_style is set to `html` or `markdown`. This pattern sets the href for HTML or the text within `[]` in markdown, and defaults to N being the index of result if it is not set. The default citation style looks like `[N]()` for markdown. You can use metadata attributes in the `text_pattern`. For example, the pattern `{doc.title}` with citation style `markdown` would result in final citation output like `[Title]()` when the document's metadata includes `{\"title\":\"Title\"}`.","type":"string","example":"{doc.title}"}},"title":"CitationParameters"},"enable_factual_consistency_score":{"description":"Enable returning the factual consistency score with query results.","type":"boolean","default":true}},"title":"GenerationParameters"},"save_history":{"description":"Whether to save the query to history.","type":"boolean"}},"required":["search"]}},"required":["type","query_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},"web_search":{"title":"InlineWebSearchToolConfiguration","description":"A web search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'web_search' for inline web search tool configurations.","default":"web_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the web search tool call such as limit etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query to execute.","type":"string","example":"latest AI developments 2024"},"limit":{"description":"Maximum number of results to return.","type":"integer","minimum":1,"maximum":20,"example":10},"provider":{"description":"Search provider to use.","type":"string","enum":["tavily"],"example":"tavily"},"include_domains":{"description":"List of domains to specifically include in search results. When specified, results will ONLY come from these domains. Supports exact domains (e.g., \"github.com\"), subdomains (e.g., \"docs.github.com\"), and wildcard patterns (e.g., \"*.github.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["github.com","docs.github.com","*.stackoverflow.com"]},"exclude_domains":{"description":"List of domains to specifically exclude from search results. Supports exact domains (e.g., \"spam.com\"), subdomains (e.g., \"bad.spam.com\"), and wildcard patterns (e.g., \"*.spam.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["spam.com","unreliable-source.com"]}},"additionalProperties":false,"title":"WebSearchToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"web_get":{"title":"InlineWebGetToolConfiguration","description":"A web get tool configuration defined inline in the agent for fetching content from URLs.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'web_get' for inline web get tool configurations.","default":"web_get"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the web get tool call. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"url":{"description":"The URL to fetch content from.","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"method":{"description":"HTTP method to use.","type":"string","enum":["GET","POST","PUT","DELETE","HEAD"]},"headers":{"description":"HTTP headers to include in the request.","oneOf":[{"type":"object","additionalProperties":{"type":"string"}},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"body":{"description":"Request body for POST/PUT requests.","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"follow_redirects":{"description":"Whether to follow HTTP redirects.","oneOf":[{"type":"boolean"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"timeout_seconds":{"description":"Request timeout in seconds.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"head_lines":{"description":"Number of lines from start to include in response.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"tail_lines":{"description":"Number of lines from end to include in response.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"ssl_verify":{"description":"Whether to verify SSL certificates.","oneOf":[{"type":"boolean"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"max_content_bytes":{"description":"Maximum response size in bytes before truncation.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]}},"additionalProperties":false,"title":"WebGetToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"lambda":{"title":"InlineLambdaToolConfiguration","description":"A lambda tool configuration defined inline in the agent for executing user-defined functions.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'lambda' for inline lambda tool configurations.","default":"lambda"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments that will be passed to the lambda function. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","additionalProperties":true,"example":{"custom_param":"value"}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},"structured_indexing":{"title":"InlineStructuredIndexingToolConfiguration","description":"A structured indexing tool configuration defined inline in the agent for indexing into the Vectara platform.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'structured_indexing' for inline structured indexing tool configurations.","default":"structured_indexing"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the structured indexing tool call such as corpus_key etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"corpus_key":{"description":"The key identifying the target corpus for document indexing. If not provided, will be filled in by the agent.","type":"string","example":"my-knowledge-base"},"document_id":{"description":"The unique identifier for the document within the corpus, preferably human readable IDs.","type":"string","example":"annual_report_2024"},"title":{"description":"The title of the document being indexed.","type":"string","example":"2024 Annual ESG Report"},"description":{"description":"A brief description or summary of the document content.","type":"string","example":"Comprehensive environmental, social, and governance report"},"metadata":{"description":"The metadata key-value pairs to associate with the document. If present, this gets merged with existing artifact metadata.","type":"object","additionalProperties":true,"example":{"doc_type":"annual_report","year":2024,"department":"sustainability"}},"document":{"description":"The structured document to index with full hierarchical content.","type":"object","additionalProperties":true,"example":{"id":"annual_report_2024","type":"structured","title":"2024 Annual ESG Report"}}},"additionalProperties":false,"title":"StructuredIndexingToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"sub_agent":{"title":"InlineSubAgentToolConfiguration","description":"A sub-agent tool configuration defined inline in the agent for invoking specialized sub-agents.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'sub_agent' for inline sub-agent tool configurations.","default":"sub_agent"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the sub-agent tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"message":{"description":"The detailed task instructions for the sub-agent to perform autonomously.","type":"string","example":"Review the code changes in pull request \\#123 for security issues"},"session_tti_minutes":{"description":"Time to idle in minutes before the session expires.","type":"integer","format":"int64","minimum":1,"example":60}},"additionalProperties":false,"title":"SubAgentToolParameters"},"sub_agent_configuration":{"description":"User-configurable settings for the sub-agent tool. These parameters are never exposed to the agent.","type":"object","properties":{"agent_key":{"description":"A unique key that identifies an agent.","type":"string","pattern":"[0-9a-zA-Z_-]+$","minLength":1,"maxLength":50,"example":"customer_support","title":"AgentKey"},"session_mode":{"description":"Controls session behavior for sub-agent invocations:\n- llm_controlled: LLM decides whether to create new or resume existing session\n- persistent: Always reuse the same session (created on first invocation)\n- ephemeral: Always create a new session on each invocation\n","type":"string","enum":["llm_controlled","persistent","ephemeral"],"default":"llm_controlled","example":"llm_controlled","title":"SubAgentSessionMode"},"session_metadata":{"description":"Optional metadata to associate with the sub-agent session. Can contain any key-value pairs.","type":"object","additionalProperties":true,"example":{"source":"parent_agent","task_type":"code_review"}}},"required":["agent_key"],"title":"SubAgentConfiguration"}},"required":["type","sub_agent_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},"artifact_read":{"title":"InlineArtifactReadToolConfiguration","description":"An artifact read tool configuration defined inline in the agent for reading artifacts from the session workspace.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_read' for inline artifact read tool configurations.","default":"artifact_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to read.","type":"string","example":"art_abc123"},"encoding":{"description":"The encoding format for the content.","type":"string","enum":["raw","base64"],"example":"raw"},"start_line":{"description":"Optional starting line number (1-indexed).","type":"integer","format":"int32","example":100},"end_line":{"description":"Optional ending line number (1-indexed, inclusive).","type":"integer","format":"int32","example":200}},"additionalProperties":false,"title":"ArtifactReadToolParameters"},"tool_configuration":{"description":"User-configurable settings for the artifact read tool.","type":"object","properties":{"max_size_bytes":{"description":"Maximum file size in bytes for full reads without line ranges. Defaults to 256KB.","type":"integer","format":"int64","minimum":1,"maximum":10485760,"default":262144},"max_lines":{"description":"Maximum number of lines for range-based reads. Defaults to 200.","type":"integer","format":"int32","minimum":1,"maximum":10000,"default":200}},"title":"ArtifactReadConfiguration"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"artifact_grep":{"title":"InlineArtifactGrepToolConfiguration","description":"An artifact grep tool configuration defined inline in the agent for searching through artifact content.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_grep' for inline artifact grep tool configurations.","default":"artifact_grep"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact grep tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to search.","type":"string","example":"art_abc123"},"pattern":{"description":"The pattern to search for (supports grep regex).","type":"string","example":"error|exception"},"grep_options":{"description":"Optional grep command options.","type":"array","items":{"type":"string"},"example":["-i","-n"]}},"additionalProperties":false,"title":"ArtifactGrepToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"image_read":{"title":"InlineImageReadToolConfiguration","description":"An image read tool configuration defined inline in the agent for loading images into the conversation context.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'image_read' for inline image read tool configurations.","default":"image_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the image read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the image artifact to view.","type":"string","pattern":"^art_[a-z0-9_-]+$","example":"art_photo_a3f2"},"detail":{"description":"Detail level for image processing.","type":"string","enum":["auto","low","high"],"default":"auto","example":"auto"}},"additionalProperties":false,"title":"ImageReadToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"document_conversion":{"title":"InlineDocumentConversionToolConfiguration","description":"A document conversion tool configuration defined inline in the agent for converting document artifacts to various formats.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'document_conversion' for inline document conversion tool configurations.","default":"document_conversion"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the document conversion tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to convert.","type":"string","example":"art_abc123"},"output_format":{"description":"Output format for the converted document.","type":"string","enum":["markdown","structured_document"],"example":"markdown"},"description":{"description":"Optional description for the converted artifact.","type":"string","example":"PDF converted to markdown"}},"additionalProperties":false,"title":"DocumentConversionToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]}}},"oneOf":[{"title":"InlineDynamicVectaraToolConfiguration","description":"An inline configuration for built-in Vectara tools that have implementations within the platform but do not have a dedicated configuration type schema. Use the List Tools endpoint to discover available tools and obtain the `tool_id` required for this configuration.\n","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'dynamic_vectara' for generic Vectara tool configurations.","default":"dynamic_vectara"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for tool calls. The key specifies the location in the tool arguments to overide, and the value specifies what to override with. The LLM will not be able to change the parameters, nor know those values exist within the tool.\n\nThe values can also be dynamic references to context values using $ref with dot notation path syntax:\n- Static value: \"fixed_value\" or 123\n- Dynamic reference: `{\"$ref\": \"session.metadata.field_name\"}`\n\nReferences are resolved at runtime from context:\n- session.metadata.* - Access session metadata fields\n- agent.metadata.* - Access agent metadata fields\n\nExample:\n `{\"query\": {\"$ref\": \".session.metadata.query\"}}`\n\nIf you want to have a real value `\"$ref\"` use `\"$$ref\"`, that is you can escape the first $ by using $$.","type":"object","additionalProperties":true,"example":{"custom_param":"value","limit":10}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineMcpToolConfiguration","description":"An MCP tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'mcp' for inline MCP tool configurations.","default":"mcp"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for tool calls. The key specifies the location in the tool arguments to overide, and the value specifies what to override with. The LLM will not be able to change the parameters, nor know those values exist within the tool.\n\nThe values can also be dynamic references to context values using $ref with dot notation path syntax:\n- Static value: \"fixed_value\" or 123\n- Dynamic reference: `{\"$ref\": \"session.metadata.field_name\"}`\n\nReferences are resolved at runtime from context:\n- session.metadata.* - Access session metadata fields\n- agent.metadata.* - Access agent metadata fields\n\nExample:\n `{\"query\": {\"$ref\": \".session.metadata.query\"}}`\n\nIf you want to have a real value `\"$ref\"` use `\"$$ref\"`, that is you can escape the first $ by using $$.","type":"object","additionalProperties":true,"example":{"custom_param":"value","limit":10}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineCorporaSearchToolConfiguration","description":"A corpora search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'corpora_search' for inline corpora search tool configurations.","default":"corpora_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the corpus search call such as the query. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query string, which is the question the user is asking. If not provided, will be filled in by the agent.","type":"string","maxLength":5000,"example":"Am I allowed to bring pets to work?"}},"additionalProperties":false,"title":"CorporaSearchToolParameters"},"query_configuration":{"description":"User-configurable settings for the corpus search that are not exposed to the LLM. Supports dynamic references for runtime resolution from session context.","title":"AgentCorporaSearchQueryConfiguration","type":"object","properties":{"search":{"title":"AgentSearchCorporaParameters","description":"Agent-specific search parameters that support eager references.","type":"object","properties":{"corpora":{"description":"The corpora to search, with support for eager references.","type":"array","items":{"title":"AgentKeyedSearchCorpus","description":"Agent-specific keyed search corpus that supports eager references for corpus_key and metadata_filter.","type":"object","properties":{"corpus_key":{"description":"The corpus to search. Can be either:\n- A static string: \"my-corpus\"\n- An EagerReference object: {\"$ref\": \"session.metadata.corpus\"}\n\nWhen an EagerReference is provided, the $ref path is resolved from the session context\nat the start of each turn, before LLM processing begins.\n","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"custom_dimensions":{"description":"The custom dimensions as additional weights.","type":"object","additionalProperties":{"type":"number","format":"double","nullable":false},"title":"CustomDimensions"},"metadata_filter":{"description":"The filter to narrow search results. Can be either:\n- A static string: \"doc.department = 'engineering'\"\n- An EagerReference object: {\"$ref\": \"session.metadata.filters.user\"}\n\nWhen an EagerReference is provided, the $ref path is resolved from the session context\nat the start of each turn, before LLM processing begins.\n","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"lexical_interpolation":{"description":"How much to weigh lexical scores compared to the embedding score.","type":"number","format":"float","minimum":0,"maximum":1},"semantics":{"description":"Indicates whether to consider a query against this corpus as a query or a response.","type":"string","enum":["default","query","response"],"default":"default","title":"SearchSemantics"},"query":{"description":"Query override for this specific corpus.","type":"string","maxLength":5000}},"required":["corpus_key"]},"minItems":1},"offset":{"description":"Number of results to skip for pagination.","type":"integer","format":"int32","minimum":0,"default":0},"limit":{"description":"Maximum number of results to return.","type":"integer","format":"int32","minimum":1,"default":10},"context_configuration":{"type":"object","description":"Configuration on the presentation of each document part in the result set. You can only use characters_before/after or sentences_before/after, but not both. If you specify both in the query, sentences_before/after takes precedence","properties":{"characters_before":{"description":"The number of characters that are shown before the matching document part. This is useful to show the context of the document part in the wider document. Ignored if `sentences_before` is set. Vectara will capture the full sentence that contains the captured characters, to not lose the meaning caused by a truncated word or sentence.","type":"integer","format":"int32"},"characters_after":{"description":"The number of characters that are shown after the matching document part. This is useful to show the context of the document part in the wider document. Ignored if `sentences_after` is set. Vectara will capture the full sentence that contains the captured characters, to not lose the meaning caused by a truncated word or sentence.","type":"integer","format":"int32"},"sentences_before":{"description":"The number of sentences that are shown before the matching document part. This is useful to show the context of the document part in the wider document.","type":"integer","format":"int32","default":0,"minimum":0,"example":2},"sentences_after":{"description":"The number of sentences that are shown after the matching document part. This is useful to show the context of the document part in the wider document.","type":"integer","format":"int32","default":0,"minimum":0,"example":2},"start_tag":{"description":"The tag that wraps the document part at the start. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the context before ends and the document part begins.","type":"string","example":""},"end_tag":{"description":"The tag that wraps the document part at the end. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the document part ends and the context after begins.","type":"string","example":""}},"example":{"sentences_before":2,"sentences_after":2,"start_tag":"","end_tag":""},"title":"ContextConfiguration"},"reranker":{"type":"object","description":"Rerank results of the search. Rerankers are very powerful tools to improve the order of search results. By default the search will use the most powerful reranker available to the customer's plan. To disable reranking, set the reranker `type` to `\"none\"`.","discriminator":{"propertyName":"type","mapping":{"customer_reranker":{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},"userfn":{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},"mmr":{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},"chain":{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},"none":{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}}},"oneOf":[{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}],"title":"SearchReranker"}},"required":["corpora"]},"generation":{"description":"The parameters to control generation.","type":"object","properties":{"enabled":{"description":"Whether generation is enabled for this query. This field is ignored if using chat.","type":"boolean","default":true},"generation_preset_name":{"description":"The preset values to use to feed the query results and other context to the model. \n\nA `generation_preset` is an object with a bundle of properties that specifies: \n* The `prompt_template` that is rendered and then sent to the LLM. \n* The LLM used. * `model_parameter`s such as temperature.\n\nAll of these properties except the model can be overridden by setting them in this object. Even when a `prompt_template` is set, the `generation_preset_name` is used to set the model used. See `model_parameters.model` if you want to set the model explicitly.\n\nIf `generation_preset_name` is not set, the Vectara platform will use the default model and prompt.'\n","type":"string","minLength":1,"example":"mockingbird-2.0"},"prompt_name":{"description":"Use `generation_preset_name` instead of `prompt_name`.","type":"string","minLength":1,"example":"mockingbird-2.0","deprecated":true},"max_used_search_results":{"description":"The maximum number of search results to be available to the prompt.","type":"integer","format":"int32","minimum":0,"default":5},"prompt_template":{"description":"Vectara manages both system and user roles and prompts for the generative LLM out of the box by default. However, users can override the `prompt_template` via this variable. The `prompt_template` is in the form of an Apache Velocity template. For more details on how to configure the `prompt_template`, see the [long-form documentation](https://docs.vectara.com/docs/prompts/vectara-prompt-engine).","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n"},"prompt_text":{"description":"This property is deprecated in favor of clearer naming. Use `prompt_template`. This property will be ignored if `prompt_template` is set.","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n","deprecated":true},"max_response_characters":{"description":"Controls the length of the generated output. This is a rough estimate and not a hard limit: the end output can be longer or shorter than this value. This is generally implemented by including the `max_response_characters` in the prompt, and the LLM's instruction following capability dictates how closely the generated output is limited.","type":"integer","format":"int32","example":300,"minimum":0},"response_language":{"description":"Languages that the Vectara platform supports.","type":"string","enum":["auto","eng","deu","fra","zho","kor","ara","rus","tha","nld","ita","por","spa","jpn","pol","tur","vie","ind","ces","ukr","ell","heb","fas","hin","urd","swe","ben","msa","ron"],"default":"auto","title":"Language"},"model_parameters":{"title":"ModelParameters","description":"The parameters for the model. WARNING: This is an experimental feature, and breakable at any point with virtually no notice. It is meant for experimentation to converge on optimal parameters that can then be set in the prompt definitions.","type":"object","properties":{"llm_name":{"description":"The model (e.g., `gpt-4`) to use for summarization. If specified, it will override the model behind `generation_preset_name`.","type":"string","example":"gpt4"},"max_tokens":{"description":"The maximum number of tokens to be returned by the model.","type":"integer","format":"int32","minimum":1},"temperature":{"description":"The sampling temperature to use. Higher values make the output more random, while lower values make it more focused and deterministic.","type":"number","format":"float"},"frequency_penalty":{"description":"Higher values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.","type":"number","format":"float"},"presence_penalty":{"description":"Higher values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.","type":"number","format":"float"}}},"citations":{"description":"Style the generator should use when making citations.","type":"object","properties":{"style":{"description":"The citation style that you want to use in the summary: \n* `numeric` - Citations formatted as simple numerals: \\[1\\], \\[2\\], etc.\n* `none` - Citations removed from text.\n* `html` - Citation formatted as a URL like `text_pattern`.\n* `markdown` - Formatted as `[text_pattern](url_pattern)`.\n","type":"string","enum":["none","numeric","html","markdown"]},"url_pattern":{"description":"The URL pattern if the citation_style is set to `html` or `markdown`. The pattern can access metadata attributes in the document or part. e.g. `https://my.doc/foo/{doc.id}/{part.id}` The default `url_pattern` is an empty string.","type":"string","example":"https://vectara.com/documents/{doc.id}"},"text_pattern":{"description":"The text pattern if the citation_style is set to `html` or `markdown`. This pattern sets the href for HTML or the text within `[]` in markdown, and defaults to N being the index of result if it is not set. The default citation style looks like `[N]()` for markdown. You can use metadata attributes in the `text_pattern`. For example, the pattern `{doc.title}` with citation style `markdown` would result in final citation output like `[Title]()` when the document's metadata includes `{\"title\":\"Title\"}`.","type":"string","example":"{doc.title}"}},"title":"CitationParameters"},"enable_factual_consistency_score":{"description":"Enable returning the factual consistency score with query results.","type":"boolean","default":true}},"title":"GenerationParameters"},"save_history":{"description":"Whether to save the query to history.","type":"boolean"}},"required":["search"]}},"required":["type","query_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineWebSearchToolConfiguration","description":"A web search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'web_search' for inline web search tool configurations.","default":"web_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the web search tool call such as limit etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query to execute.","type":"string","example":"latest AI developments 2024"},"limit":{"description":"Maximum number of results to return.","type":"integer","minimum":1,"maximum":20,"example":10},"provider":{"description":"Search provider to use.","type":"string","enum":["tavily"],"example":"tavily"},"include_domains":{"description":"List of domains to specifically include in search results. When specified, results will ONLY come from these domains. Supports exact domains (e.g., \"github.com\"), subdomains (e.g., \"docs.github.com\"), and wildcard patterns (e.g., \"*.github.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["github.com","docs.github.com","*.stackoverflow.com"]},"exclude_domains":{"description":"List of domains to specifically exclude from search results. Supports exact domains (e.g., \"spam.com\"), subdomains (e.g., \"bad.spam.com\"), and wildcard patterns (e.g., \"*.spam.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["spam.com","unreliable-source.com"]}},"additionalProperties":false,"title":"WebSearchToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineWebGetToolConfiguration","description":"A web get tool configuration defined inline in the agent for fetching content from URLs.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'web_get' for inline web get tool configurations.","default":"web_get"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the web get tool call. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"url":{"description":"The URL to fetch content from.","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"method":{"description":"HTTP method to use.","type":"string","enum":["GET","POST","PUT","DELETE","HEAD"]},"headers":{"description":"HTTP headers to include in the request.","oneOf":[{"type":"object","additionalProperties":{"type":"string"}},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"body":{"description":"Request body for POST/PUT requests.","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"follow_redirects":{"description":"Whether to follow HTTP redirects.","oneOf":[{"type":"boolean"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"timeout_seconds":{"description":"Request timeout in seconds.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"head_lines":{"description":"Number of lines from start to include in response.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"tail_lines":{"description":"Number of lines from end to include in response.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"ssl_verify":{"description":"Whether to verify SSL certificates.","oneOf":[{"type":"boolean"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"max_content_bytes":{"description":"Maximum response size in bytes before truncation.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]}},"additionalProperties":false,"title":"WebGetToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineLambdaToolConfiguration","description":"A lambda tool configuration defined inline in the agent for executing user-defined functions.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'lambda' for inline lambda tool configurations.","default":"lambda"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments that will be passed to the lambda function. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","additionalProperties":true,"example":{"custom_param":"value"}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineStructuredIndexingToolConfiguration","description":"A structured indexing tool configuration defined inline in the agent for indexing into the Vectara platform.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'structured_indexing' for inline structured indexing tool configurations.","default":"structured_indexing"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the structured indexing tool call such as corpus_key etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"corpus_key":{"description":"The key identifying the target corpus for document indexing. If not provided, will be filled in by the agent.","type":"string","example":"my-knowledge-base"},"document_id":{"description":"The unique identifier for the document within the corpus, preferably human readable IDs.","type":"string","example":"annual_report_2024"},"title":{"description":"The title of the document being indexed.","type":"string","example":"2024 Annual ESG Report"},"description":{"description":"A brief description or summary of the document content.","type":"string","example":"Comprehensive environmental, social, and governance report"},"metadata":{"description":"The metadata key-value pairs to associate with the document. If present, this gets merged with existing artifact metadata.","type":"object","additionalProperties":true,"example":{"doc_type":"annual_report","year":2024,"department":"sustainability"}},"document":{"description":"The structured document to index with full hierarchical content.","type":"object","additionalProperties":true,"example":{"id":"annual_report_2024","type":"structured","title":"2024 Annual ESG Report"}}},"additionalProperties":false,"title":"StructuredIndexingToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineSubAgentToolConfiguration","description":"A sub-agent tool configuration defined inline in the agent for invoking specialized sub-agents.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'sub_agent' for inline sub-agent tool configurations.","default":"sub_agent"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the sub-agent tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"message":{"description":"The detailed task instructions for the sub-agent to perform autonomously.","type":"string","example":"Review the code changes in pull request \\#123 for security issues"},"session_tti_minutes":{"description":"Time to idle in minutes before the session expires.","type":"integer","format":"int64","minimum":1,"example":60}},"additionalProperties":false,"title":"SubAgentToolParameters"},"sub_agent_configuration":{"description":"User-configurable settings for the sub-agent tool. These parameters are never exposed to the agent.","type":"object","properties":{"agent_key":{"description":"A unique key that identifies an agent.","type":"string","pattern":"[0-9a-zA-Z_-]+$","minLength":1,"maxLength":50,"example":"customer_support","title":"AgentKey"},"session_mode":{"description":"Controls session behavior for sub-agent invocations:\n- llm_controlled: LLM decides whether to create new or resume existing session\n- persistent: Always reuse the same session (created on first invocation)\n- ephemeral: Always create a new session on each invocation\n","type":"string","enum":["llm_controlled","persistent","ephemeral"],"default":"llm_controlled","example":"llm_controlled","title":"SubAgentSessionMode"},"session_metadata":{"description":"Optional metadata to associate with the sub-agent session. Can contain any key-value pairs.","type":"object","additionalProperties":true,"example":{"source":"parent_agent","task_type":"code_review"}}},"required":["agent_key"],"title":"SubAgentConfiguration"}},"required":["type","sub_agent_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineArtifactReadToolConfiguration","description":"An artifact read tool configuration defined inline in the agent for reading artifacts from the session workspace.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_read' for inline artifact read tool configurations.","default":"artifact_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to read.","type":"string","example":"art_abc123"},"encoding":{"description":"The encoding format for the content.","type":"string","enum":["raw","base64"],"example":"raw"},"start_line":{"description":"Optional starting line number (1-indexed).","type":"integer","format":"int32","example":100},"end_line":{"description":"Optional ending line number (1-indexed, inclusive).","type":"integer","format":"int32","example":200}},"additionalProperties":false,"title":"ArtifactReadToolParameters"},"tool_configuration":{"description":"User-configurable settings for the artifact read tool.","type":"object","properties":{"max_size_bytes":{"description":"Maximum file size in bytes for full reads without line ranges. Defaults to 256KB.","type":"integer","format":"int64","minimum":1,"maximum":10485760,"default":262144},"max_lines":{"description":"Maximum number of lines for range-based reads. Defaults to 200.","type":"integer","format":"int32","minimum":1,"maximum":10000,"default":200}},"title":"ArtifactReadConfiguration"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineArtifactGrepToolConfiguration","description":"An artifact grep tool configuration defined inline in the agent for searching through artifact content.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_grep' for inline artifact grep tool configurations.","default":"artifact_grep"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact grep tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to search.","type":"string","example":"art_abc123"},"pattern":{"description":"The pattern to search for (supports grep regex).","type":"string","example":"error|exception"},"grep_options":{"description":"Optional grep command options.","type":"array","items":{"type":"string"},"example":["-i","-n"]}},"additionalProperties":false,"title":"ArtifactGrepToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineImageReadToolConfiguration","description":"An image read tool configuration defined inline in the agent for loading images into the conversation context.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'image_read' for inline image read tool configurations.","default":"image_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the image read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the image artifact to view.","type":"string","pattern":"^art_[a-z0-9_-]+$","example":"art_photo_a3f2"},"detail":{"description":"Detail level for image processing.","type":"string","enum":["auto","low","high"],"default":"auto","example":"auto"}},"additionalProperties":false,"title":"ImageReadToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineDocumentConversionToolConfiguration","description":"A document conversion tool configuration defined inline in the agent for converting document artifacts to various formats.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'document_conversion' for inline document conversion tool configurations.","default":"document_conversion"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the document conversion tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to convert.","type":"string","example":"art_abc123"},"output_format":{"description":"Output format for the converted document.","type":"string","enum":["markdown","structured_document"],"example":"markdown"},"description":{"description":"Optional description for the converted artifact.","type":"string","example":"PDF converted to markdown"}},"additionalProperties":false,"title":"DocumentConversionToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]}],"example":[{"type":"web_search","argument_override":{"limit":5,"include_domains":["github.com","stackoverflow.com"],"exclude_domains":["spam.com"]}}]},"example":{"customer_search":{"type":"corpora_search","argument_override":{"query":"customer support documentation"}}}},"model":{"title":"AgentModel","description":"Configuration for the model used in this step, including the model name and arbitrary parameters.","type":"object","properties":{"name":{"description":"The name of the model to use for this step.","type":"string","example":"gpt-4"},"parameters":{"description":"Arbitrary model-specific parameters that can be passed to the model.","type":"object","additionalProperties":true,"example":{"temperature":0.7,"max_tokens":1000,"top_p":0.9}},"retry_configuration":{"description":"Optional retry configuration for handling transient failures. When not provided, no retry is performed.","title":"RetryConfiguration","type":"object","properties":{"enabled":{"description":"Whether retry is enabled. Enabled by default to provide resilience against transient failures.","type":"boolean","default":true,"example":true},"max_retries":{"description":"Maximum number of retry attempts after initial failure.","type":"integer","minimum":0,"maximum":10,"default":3,"example":3},"initial_backoff_ms":{"description":"Initial backoff time in milliseconds before first retry.","type":"integer","minimum":100,"maximum":60000,"default":1000,"example":1000},"max_backoff_ms":{"description":"Maximum backoff time in milliseconds between retries.","type":"integer","minimum":1000,"maximum":300000,"default":30000,"example":30000},"backoff_factor":{"description":"Multiplication factor for exponential backoff between retries.","type":"number","format":"double","minimum":1,"maximum":10,"default":2,"example":2}}}},"required":["name"]},"first_step":{"title":"AgentStep","description":"A step in an agent's execution flow that defines how the agent processes and responds to input.","discriminator":{"propertyName":"type","mapping":{"conversational":{"title":"ConversationalAgentStep","description":"A step that receives instructions and responds through dialogue. This is a step that gets instructions and engages in conversation with users based on those instructions. This only type step supported, with no way to go next steps. A conversational step responds to an input following its instructions and uses the agent tools. The first response from the model will terminate processing the input.","type":"object","properties":{"type":{"description":"The type of step, which is always 'conversational' for this step type.","type":"string","default":"conversational","example":"conversational"},"instructions":{"description":"List of instructions that guide the agent's behavior in this step. If no instructions are given, the agent is instructed to be helpful and use tools.","type":"array","items":{"title":"AgentStepInstruction","description":"An instruction that can be used in an agent step, either by reference or defined inline.","discriminator":{"propertyName":"type","mapping":{"reference":{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},"inline":{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Base properties for creating an instruction, without the type discriminator field.","type":"object","properties":{"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["name","template"],"title":"InstructionRequestBase"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}}},"oneOf":[{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Base properties for creating an instruction, without the type discriminator field.","type":"object","properties":{"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["name","template"],"title":"InstructionRequestBase"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}],"example":[{"type":"reference","name":"Customer Support Initial Instruction","version":1},{"type":"inline","name":"Temporary On-the-fly Guideline","description":"A special instruction for this specific step only.","template_type":"velocity","template":"Please prioritize issues tagged with 'urgent' for the next hour."}]}},"output_parser":{"title":"AgentOutputParser","description":"Configuration for how the agent's output should be parsed and formatted.\n\nThe output parser determines how the agent's responses are processed before being returned to the user.\n","discriminator":{"propertyName":"type","mapping":{"default":{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]},"structured":{"title":"StructuredOutputParser","description":"Parses agent output as structured JSON conforming to a specified schema.\nUses the model's native structured outputs capability to guarantee valid JSON\nthat adheres to the provided schema. This is useful when you need the agent's\nfinal response in a specific format for downstream processing.\n\nWhen this parser is configured, the agent emits a StructuredOutputEvent instead\nof AgentOutputEvent. The StructuredOutputEvent contains the validated JSON content\nalong with the schema name for identification.\n\nNote: When using structured outputs, the agent can still use tools normally.\nThe schema constraint only applies to the agent's final text response.\nWhen streaming, the structured output is delivered as a single complete event\nrather than being streamed in chunks.\n","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'structured' for this parser type.","type":"string","default":"structured","example":"structured"},"json_schema":{"description":"Specification wrapper for a named JSON schema.","type":"object","required":["name","schema"],"properties":{"description":{"description":"A description of what the response format is for, used by the model to determine how to respond in the format.","type":"string"},"name":{"description":"A unique name identifier for this schema.","type":"string","pattern":"^[a-zA-Z0-9_-]+$","minLength":1},"strict":{"description":"When true, enforces strict schema adherence. The model will always follow the exact schema structure.\nWhen strict mode is enabled, the schema must follow these rules:\n- `additionalProperties: false` must be set on all object types\n- All properties must be listed in the `required` array\n- Maximum 100 properties total, with max 5 levels of nesting\n- Unsupported keywords: minLength, maxLength, pattern, minimum, maximum, minItems, maxItems\n- Root schema cannot use `anyOf` type\n","type":"boolean","nullable":true},"schema":{"description":"The JSON Schema definition that the model output must conform to.","type":"object","required":["type"],"properties":{"type":{"description":"The JSON type for this schema element.","type":"string","enum":["object","array","string","number","integer","boolean"]},"properties":{"description":"Property definitions when type is 'object'. Each key maps to a nested JsonSchemaDefinition.","type":"object","additionalProperties":{"description":"A JSON Schema definition for specifying data structure. Supports recursive schemas for nested objects.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"}},"required":{"description":"List of required property names when type is 'object'.","type":"array","items":{"type":"string"}},"additionalProperties":{"description":"Whether to allow additional properties beyond those defined.","type":"boolean","default":false},"items":{"description":"Schema for array items when type is 'array'.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"},"enum":{"description":"Allowed values for this schema element.","type":"array"},"description":{"description":"Human-readable description of this schema element.","type":"string"}},"title":"JsonSchemaDefinition"}},"title":"JsonSchemaSpec"}},"required":["type","json_schema"],"x-vectaraParents":["AgentOutputParser"]}}},"oneOf":[{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]},{"title":"StructuredOutputParser","description":"Parses agent output as structured JSON conforming to a specified schema.\nUses the model's native structured outputs capability to guarantee valid JSON\nthat adheres to the provided schema. This is useful when you need the agent's\nfinal response in a specific format for downstream processing.\n\nWhen this parser is configured, the agent emits a StructuredOutputEvent instead\nof AgentOutputEvent. The StructuredOutputEvent contains the validated JSON content\nalong with the schema name for identification.\n\nNote: When using structured outputs, the agent can still use tools normally.\nThe schema constraint only applies to the agent's final text response.\nWhen streaming, the structured output is delivered as a single complete event\nrather than being streamed in chunks.\n","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'structured' for this parser type.","type":"string","default":"structured","example":"structured"},"json_schema":{"description":"Specification wrapper for a named JSON schema.","type":"object","required":["name","schema"],"properties":{"description":{"description":"A description of what the response format is for, used by the model to determine how to respond in the format.","type":"string"},"name":{"description":"A unique name identifier for this schema.","type":"string","pattern":"^[a-zA-Z0-9_-]+$","minLength":1},"strict":{"description":"When true, enforces strict schema adherence. The model will always follow the exact schema structure.\nWhen strict mode is enabled, the schema must follow these rules:\n- `additionalProperties: false` must be set on all object types\n- All properties must be listed in the `required` array\n- Maximum 100 properties total, with max 5 levels of nesting\n- Unsupported keywords: minLength, maxLength, pattern, minimum, maximum, minItems, maxItems\n- Root schema cannot use `anyOf` type\n","type":"boolean","nullable":true},"schema":{"description":"The JSON Schema definition that the model output must conform to.","type":"object","required":["type"],"properties":{"type":{"description":"The JSON type for this schema element.","type":"string","enum":["object","array","string","number","integer","boolean"]},"properties":{"description":"Property definitions when type is 'object'. Each key maps to a nested JsonSchemaDefinition.","type":"object","additionalProperties":{"description":"A JSON Schema definition for specifying data structure. Supports recursive schemas for nested objects.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"}},"required":{"description":"List of required property names when type is 'object'.","type":"array","items":{"type":"string"}},"additionalProperties":{"description":"Whether to allow additional properties beyond those defined.","type":"boolean","default":false},"items":{"description":"Schema for array items when type is 'array'.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"},"enum":{"description":"Allowed values for this schema element.","type":"array"},"description":{"description":"Human-readable description of this schema element.","type":"string"}},"title":"JsonSchemaDefinition"}},"title":"JsonSchemaSpec"}},"required":["type","json_schema"],"x-vectaraParents":["AgentOutputParser"]}]}},"required":["type","instructions","output_parser"],"x-vectaraParents":["AgentStep"]}}},"oneOf":[{"title":"ConversationalAgentStep","description":"A step that receives instructions and responds through dialogue. This is a step that gets instructions and engages in conversation with users based on those instructions. This only type step supported, with no way to go next steps. A conversational step responds to an input following its instructions and uses the agent tools. The first response from the model will terminate processing the input.","type":"object","properties":{"type":{"description":"The type of step, which is always 'conversational' for this step type.","type":"string","default":"conversational","example":"conversational"},"instructions":{"description":"List of instructions that guide the agent's behavior in this step. If no instructions are given, the agent is instructed to be helpful and use tools.","type":"array","items":{"title":"AgentStepInstruction","description":"An instruction that can be used in an agent step, either by reference or defined inline.","discriminator":{"propertyName":"type","mapping":{"reference":{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},"inline":{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Base properties for creating an instruction, without the type discriminator field.","type":"object","properties":{"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["name","template"],"title":"InstructionRequestBase"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}}},"oneOf":[{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Base properties for creating an instruction, without the type discriminator field.","type":"object","properties":{"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["name","template"],"title":"InstructionRequestBase"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}],"example":[{"type":"reference","name":"Customer Support Initial Instruction","version":1},{"type":"inline","name":"Temporary On-the-fly Guideline","description":"A special instruction for this specific step only.","template_type":"velocity","template":"Please prioritize issues tagged with 'urgent' for the next hour."}]}},"output_parser":{"title":"AgentOutputParser","description":"Configuration for how the agent's output should be parsed and formatted.\n\nThe output parser determines how the agent's responses are processed before being returned to the user.\n","discriminator":{"propertyName":"type","mapping":{"default":{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]},"structured":{"title":"StructuredOutputParser","description":"Parses agent output as structured JSON conforming to a specified schema.\nUses the model's native structured outputs capability to guarantee valid JSON\nthat adheres to the provided schema. This is useful when you need the agent's\nfinal response in a specific format for downstream processing.\n\nWhen this parser is configured, the agent emits a StructuredOutputEvent instead\nof AgentOutputEvent. The StructuredOutputEvent contains the validated JSON content\nalong with the schema name for identification.\n\nNote: When using structured outputs, the agent can still use tools normally.\nThe schema constraint only applies to the agent's final text response.\nWhen streaming, the structured output is delivered as a single complete event\nrather than being streamed in chunks.\n","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'structured' for this parser type.","type":"string","default":"structured","example":"structured"},"json_schema":{"description":"Specification wrapper for a named JSON schema.","type":"object","required":["name","schema"],"properties":{"description":{"description":"A description of what the response format is for, used by the model to determine how to respond in the format.","type":"string"},"name":{"description":"A unique name identifier for this schema.","type":"string","pattern":"^[a-zA-Z0-9_-]+$","minLength":1},"strict":{"description":"When true, enforces strict schema adherence. The model will always follow the exact schema structure.\nWhen strict mode is enabled, the schema must follow these rules:\n- `additionalProperties: false` must be set on all object types\n- All properties must be listed in the `required` array\n- Maximum 100 properties total, with max 5 levels of nesting\n- Unsupported keywords: minLength, maxLength, pattern, minimum, maximum, minItems, maxItems\n- Root schema cannot use `anyOf` type\n","type":"boolean","nullable":true},"schema":{"description":"The JSON Schema definition that the model output must conform to.","type":"object","required":["type"],"properties":{"type":{"description":"The JSON type for this schema element.","type":"string","enum":["object","array","string","number","integer","boolean"]},"properties":{"description":"Property definitions when type is 'object'. Each key maps to a nested JsonSchemaDefinition.","type":"object","additionalProperties":{"description":"A JSON Schema definition for specifying data structure. Supports recursive schemas for nested objects.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"}},"required":{"description":"List of required property names when type is 'object'.","type":"array","items":{"type":"string"}},"additionalProperties":{"description":"Whether to allow additional properties beyond those defined.","type":"boolean","default":false},"items":{"description":"Schema for array items when type is 'array'.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"},"enum":{"description":"Allowed values for this schema element.","type":"array"},"description":{"description":"Human-readable description of this schema element.","type":"string"}},"title":"JsonSchemaDefinition"}},"title":"JsonSchemaSpec"}},"required":["type","json_schema"],"x-vectaraParents":["AgentOutputParser"]}}},"oneOf":[{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]},{"title":"StructuredOutputParser","description":"Parses agent output as structured JSON conforming to a specified schema.\nUses the model's native structured outputs capability to guarantee valid JSON\nthat adheres to the provided schema. This is useful when you need the agent's\nfinal response in a specific format for downstream processing.\n\nWhen this parser is configured, the agent emits a StructuredOutputEvent instead\nof AgentOutputEvent. The StructuredOutputEvent contains the validated JSON content\nalong with the schema name for identification.\n\nNote: When using structured outputs, the agent can still use tools normally.\nThe schema constraint only applies to the agent's final text response.\nWhen streaming, the structured output is delivered as a single complete event\nrather than being streamed in chunks.\n","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'structured' for this parser type.","type":"string","default":"structured","example":"structured"},"json_schema":{"description":"Specification wrapper for a named JSON schema.","type":"object","required":["name","schema"],"properties":{"description":{"description":"A description of what the response format is for, used by the model to determine how to respond in the format.","type":"string"},"name":{"description":"A unique name identifier for this schema.","type":"string","pattern":"^[a-zA-Z0-9_-]+$","minLength":1},"strict":{"description":"When true, enforces strict schema adherence. The model will always follow the exact schema structure.\nWhen strict mode is enabled, the schema must follow these rules:\n- `additionalProperties: false` must be set on all object types\n- All properties must be listed in the `required` array\n- Maximum 100 properties total, with max 5 levels of nesting\n- Unsupported keywords: minLength, maxLength, pattern, minimum, maximum, minItems, maxItems\n- Root schema cannot use `anyOf` type\n","type":"boolean","nullable":true},"schema":{"description":"The JSON Schema definition that the model output must conform to.","type":"object","required":["type"],"properties":{"type":{"description":"The JSON type for this schema element.","type":"string","enum":["object","array","string","number","integer","boolean"]},"properties":{"description":"Property definitions when type is 'object'. Each key maps to a nested JsonSchemaDefinition.","type":"object","additionalProperties":{"description":"A JSON Schema definition for specifying data structure. Supports recursive schemas for nested objects.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"}},"required":{"description":"List of required property names when type is 'object'.","type":"array","items":{"type":"string"}},"additionalProperties":{"description":"Whether to allow additional properties beyond those defined.","type":"boolean","default":false},"items":{"description":"Schema for array items when type is 'array'.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"},"enum":{"description":"Allowed values for this schema element.","type":"array"},"description":{"description":"Human-readable description of this schema element.","type":"string"}},"title":"JsonSchemaDefinition"}},"title":"JsonSchemaSpec"}},"required":["type","json_schema"],"x-vectaraParents":["AgentOutputParser"]}]}},"required":["type","instructions","output_parser"],"x-vectaraParents":["AgentStep"]}]},"metadata":{"description":"Arbitrary metadata associated with the agent for customization and configuration.","type":"object","additionalProperties":true,"example":{"department":"customer_service","version":"1.1.0","owner":"support-team","last_reviewed":"2024-01-15"}},"enabled":{"description":"Whether the agent is enabled.","type":"boolean","example":true}},"title":"UpdateAgentRequest"}}}}}
>
@@ -65,7 +65,7 @@ Use this API to evolve agent capabilities over time, adding new tools as they be
"},"end_tag":{"description":"The tag that wraps the document part at the end. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the document part ends and the context after begins.","type":"string","example":""}},"example":{"sentences_before":2,"sentences_after":2,"start_tag":"","end_tag":""},"title":"ContextConfiguration"},"reranker":{"type":"object","description":"Rerank results of the search. Rerankers are very powerful tools to improve the order of search results. By default the search will use the most powerful reranker available to the customer's plan. To disable reranking, set the reranker `type` to `\"none\"`.","discriminator":{"propertyName":"type","mapping":{"customer_reranker":{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},"userfn":{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},"mmr":{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},"chain":{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},"none":{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}}},"oneOf":[{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}],"title":"SearchReranker"}},"example":{"limit":50},"title":"SearchParameters"}],"required":["corpora"],"title":"SearchCorporaParameters"},"generation":{"description":"The parameters to control generation.","type":"object","properties":{"enabled":{"description":"Whether generation is enabled for this query. This field is ignored if using chat.","type":"boolean","default":true},"generation_preset_name":{"description":"The preset values to use to feed the query results and other context to the model. \n\nA `generation_preset` is an object with a bundle of properties that specifies: \n* The `prompt_template` that is rendered and then sent to the LLM. \n* The LLM used. * `model_parameter`s such as temperature.\n\nAll of these properties except the model can be overridden by setting them in this object. Even when a `prompt_template` is set, the `generation_preset_name` is used to set the model used. See `model_parameters.model` if you want to set the model explicitly.\n\nIf `generation_preset_name` is not set, the Vectara platform will use the default model and prompt.'\n","type":"string","minLength":1,"example":"mockingbird-2.0"},"prompt_name":{"description":"Use `generation_preset_name` instead of `prompt_name`.","type":"string","minLength":1,"example":"mockingbird-2.0","deprecated":true},"max_used_search_results":{"description":"The maximum number of search results to be available to the prompt.","type":"integer","format":"int32","minimum":0,"default":5},"prompt_template":{"description":"Vectara manages both system and user roles and prompts for the generative LLM out of the box by default. However, users can override the `prompt_template` via this variable. The `prompt_template` is in the form of an Apache Velocity template. For more details on how to configure the `prompt_template`, see the [long-form documentation](https://docs.vectara.com/docs/prompts/vectara-prompt-engine).","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n"},"prompt_text":{"description":"This property is deprecated in favor of clearer naming. Use `prompt_template`. This property will be ignored if `prompt_template` is set.","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n","deprecated":true},"max_response_characters":{"description":"Controls the length of the generated output. This is a rough estimate and not a hard limit: the end output can be longer or shorter than this value. This is generally implemented by including the `max_response_characters` in the prompt, and the LLM's instruction following capability dictates how closely the generated output is limited.","type":"integer","format":"int32","example":300,"minimum":0},"response_language":{"description":"Languages that the Vectara platform supports.","type":"string","enum":["auto","eng","deu","fra","zho","kor","ara","rus","tha","nld","ita","por","spa","jpn","pol","tur","vie","ind","ces","ukr","ell","heb","fas","hin","urd","swe","ben","msa","ron"],"default":"auto","title":"Language"},"model_parameters":{"title":"ModelParameters","description":"The parameters for the model. WARNING: This is an experimental feature, and breakable at any point with virtually no notice. It is meant for experimentation to converge on optimal parameters that can then be set in the prompt definitions.","type":"object","properties":{"llm_name":{"description":"The model (e.g., `gpt-4`) to use for summarization. If specified, it will override the model behind `generation_preset_name`.","type":"string","example":"gpt4"},"max_tokens":{"description":"The maximum number of tokens to be returned by the model.","type":"integer","format":"int32","minimum":1},"temperature":{"description":"The sampling temperature to use. Higher values make the output more random, while lower values make it more focused and deterministic.","type":"number","format":"float"},"frequency_penalty":{"description":"Higher values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.","type":"number","format":"float"},"presence_penalty":{"description":"Higher values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.","type":"number","format":"float"}}},"citations":{"description":"Style the generator should use when making citations.","type":"object","properties":{"style":{"description":"The citation style that you want to use in the summary: \n* `numeric` - Citations formatted as simple numerals: \\[1\\], \\[2\\], etc.\n* `none` - Citations removed from text.\n* `html` - Citation formatted as a URL like `text_pattern`.\n* `markdown` - Formatted as `[text_pattern](url_pattern)`.\n","type":"string","enum":["none","numeric","html","markdown"]},"url_pattern":{"description":"The URL pattern if the citation_style is set to `html` or `markdown`. The pattern can access metadata attributes in the document or part. e.g. `https://my.doc/foo/{doc.id}/{part.id}` The default `url_pattern` is an empty string.","type":"string","example":"https://vectara.com/documents/{doc.id}"},"text_pattern":{"description":"The text pattern if the citation_style is set to `html` or `markdown`. This pattern sets the href for HTML or the text within `[]` in markdown, and defaults to N being the index of result if it is not set. The default citation style looks like `[N]()` for markdown. You can use metadata attributes in the `text_pattern`. For example, the pattern `{doc.title}` with citation style `markdown` would result in final citation output like `[Title]()` when the document's metadata includes `{\"title\":\"Title\"}`.","type":"string","example":"{doc.title}"}},"title":"CitationParameters"},"enable_factual_consistency_score":{"description":"Enable returning the factual consistency score with query results.","type":"boolean","default":true}},"title":"GenerationParameters"},"save_history":{"description":"Indicates whether to save the query to query history.","type":"boolean"}},"required":["search"],"title":"CorporaSearchQueryConfiguration"}},"required":["type","query_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},"web_search":{"title":"InlineWebSearchToolConfiguration","description":"A web search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'web_search' for inline web search tool configurations.","default":"web_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the web search tool call such as limit etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query to execute.","type":"string","example":"latest AI developments 2024"},"limit":{"description":"Maximum number of results to return.","type":"integer","minimum":1,"example":10},"provider":{"description":"Search provider to use.","type":"string","enum":["tavily"],"example":"tavily"},"include_domains":{"description":"List of domains to specifically include in search results. When specified, results will ONLY come from these domains. Supports exact domains (e.g., \"github.com\"), subdomains (e.g., \"docs.github.com\"), and wildcard patterns (e.g., \"*.github.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["github.com","docs.github.com","*.stackoverflow.com"]},"exclude_domains":{"description":"List of domains to specifically exclude from search results. Supports exact domains (e.g., \"spam.com\"), subdomains (e.g., \"bad.spam.com\"), and wildcard patterns (e.g., \"*.spam.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["spam.com","unreliable-source.com"]}},"additionalProperties":false,"title":"WebSearchToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"lambda":{"title":"InlineLambdaToolConfiguration","description":"A lambda tool configuration defined inline in the agent for executing user-defined functions.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'lambda' for inline lambda tool configurations.","default":"lambda"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments that will be passed to the lambda function. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","additionalProperties":true,"example":{"custom_param":"value"}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},"structured_indexing":{"title":"InlineStructuredIndexingToolConfiguration","description":"A structured indexing tool configuration defined inline in the agent for indexing into the Vectara platform.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'structured_indexing' for inline structured indexing tool configurations.","default":"structured_indexing"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the structured indexing tool call such as corpus_key etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"corpus_key":{"description":"The key identifying the target corpus for document indexing. If not provided, will be filled in by the LLM.","type":"string","example":"my-knowledge-base"},"document_id":{"description":"The unique identifier for the document within the corpus, preferably human readable IDs.","type":"string","example":"annual_report_2024"},"title":{"description":"The title of the document being indexed.","type":"string","example":"2024 Annual ESG Report"},"description":{"description":"A brief description or summary of the document content.","type":"string","example":"Comprehensive environmental, social, and governance report"},"metadata":{"description":"The metadata key-value pairs to associate with the document. If present, this gets merged with existing artifact metadata.","type":"object","additionalProperties":true,"example":{"doc_type":"annual_report","year":2024,"department":"sustainability"}},"document":{"description":"The structured document to index with full hierarchical content.","type":"object","additionalProperties":true,"example":{"id":"annual_report_2024","type":"structured","title":"2024 Annual ESG Report"}}},"additionalProperties":false,"title":"StructuredIndexingToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"sub_agent":{"title":"InlineSubAgentToolConfiguration","description":"A sub-agent tool configuration defined inline in the agent for invoking specialized sub-agents.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'sub_agent' for inline sub-agent tool configurations.","default":"sub_agent"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the sub-agent tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"message":{"description":"The detailed task instructions for the sub-agent to perform autonomously.","type":"string","example":"Review the code changes in pull request \\#123 for security issues"},"session_tti_minutes":{"description":"Time to idle in minutes before the session expires.","type":"integer","format":"int64","minimum":1,"example":60}},"additionalProperties":false,"title":"SubAgentToolParameters"},"sub_agent_configuration":{"description":"User-configurable settings for the sub-agent tool. These parameters are never exposed to the agent.","type":"object","properties":{"agent_key":{"description":"A unique key that identifies an agent.","type":"string","pattern":"[0-9a-zA-Z_-]+$","minLength":1,"maxLength":50,"example":"customer_support","title":"AgentKey"}},"required":["agent_key"],"title":"SubAgentConfiguration"}},"required":["type","sub_agent_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},"artifact_read":{"title":"InlineArtifactReadToolConfiguration","description":"An artifact read tool configuration defined inline in the agent for reading artifacts from the session workspace.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_read' for inline artifact read tool configurations.","default":"artifact_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to read.","type":"string","example":"art_abc123"},"encoding":{"description":"The encoding format for the content.","type":"string","enum":["raw","base64"],"example":"raw"},"start_line":{"description":"Optional starting line number (1-indexed).","type":"integer","format":"int32","example":100},"end_line":{"description":"Optional ending line number (1-indexed, inclusive).","type":"integer","format":"int32","example":200}},"additionalProperties":false,"title":"ArtifactReadToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"artifact_grep":{"title":"InlineArtifactGrepToolConfiguration","description":"An artifact grep tool configuration defined inline in the agent for searching through artifact content.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_grep' for inline artifact grep tool configurations.","default":"artifact_grep"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact grep tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to search.","type":"string","example":"art_abc123"},"pattern":{"description":"The pattern to search for (supports grep regex).","type":"string","example":"error|exception"},"grep_options":{"description":"Optional grep command options.","type":"array","items":{"type":"string"},"example":["-i","-n"]}},"additionalProperties":false,"title":"ArtifactGrepToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"image_read":{"title":"InlineImageReadToolConfiguration","description":"An image read tool configuration defined inline in the agent for loading images into the conversation context.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'image_read' for inline image read tool configurations.","default":"image_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the image read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the image artifact to view.","type":"string","pattern":"^art_[a-z0-9_-]+$","example":"art_photo_a3f2"},"detail":{"description":"Detail level for image processing.","type":"string","enum":["auto","low","high"],"default":"auto","example":"auto"}},"additionalProperties":false,"title":"ImageReadToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"document_conversion":{"title":"InlineDocumentConversionToolConfiguration","description":"A document conversion tool configuration defined inline in the agent for converting document artifacts to various formats.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'document_conversion' for inline document conversion tool configurations.","default":"document_conversion"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the document conversion tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to convert.","type":"string","example":"art_abc123"},"output_format":{"description":"Output format for the converted document.","type":"string","enum":["markdown","structured_document"],"example":"markdown"},"description":{"description":"Optional description for the converted artifact.","type":"string","example":"PDF converted to markdown"}},"additionalProperties":false,"title":"DocumentConversionToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]}}},"oneOf":[{"title":"InlineMcpToolConfiguration","description":"An MCP tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'mcp' for inline MCP tool configurations.","default":"mcp"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for tool calls. The key specifies the location in the tool arguments to overide, and the value specifies what to override with. The LLM will not be able to change the parameters, nor know those values exist within the tool.\n\nThe values can also be dynamic references to context values using $ref with dot notation path syntax:\n- Static value: \"fixed_value\" or 123\n- Dynamic reference: `{\"$ref\": \"session.metadata.field_name\"}`\n\nReferences are resolved at runtime from context:\n- session.metadata.* - Access session metadata fields\n- agent.metadata.* - Access agent metadata fields\n\nExample:\n `{\"query\": {\"$ref\": \".session.metadata.query\"}}`\n\nIf you want to have a real value `\"$ref\"` use `\"$$ref\"`, that is you can escape the first $ by using $$.","type":"object","additionalProperties":true,"example":{"custom_param":"value","limit":10}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineCorporaSearchToolConfiguration","description":"A corpora search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'corpora_search' for inline corpora search tool configurations.","default":"corpora_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the corpus search call such as the query. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query string, which is the question the user is asking. If not provided, will be filled in by the LLM.","type":"string","maxLength":5000,"example":"Am I allowed to bring pets to work?"}},"additionalProperties":false,"title":"CorporaSearchToolParameters"},"query_configuration":{"description":"User-configurable settings for the corpus search that are not exposed to the LLM.","type":"object","properties":{"search":{"description":"The parameters to search one or more corpora.","allOf":[{"type":"object","properties":{"corpora":{"description":"The corpora that you want to search.","type":"array","items":{"description":"A corpus with its identifying key for use in search operations within a customer account.","allOf":[{"description":"Configuration for search parameters specific to a single corpus within a customer account, including filters and semantics.","type":"object","properties":{"custom_dimensions":{"description":"The custom dimensions as additional weights.","type":"object","additionalProperties":{"type":"number","format":"double","nullable":false},"title":"CustomDimensions"},"metadata_filter":{"description":"The filter string used to narrow the search based on metadata attributes. The query against this corpus will be confined to document parts that match the `metadata_filter`. Only metadata fields set as `filter_attributes` on the corpus can be filtered. Filter syntax is similar to a SQL WHERE clause. See [metadata filters documentation](https://docs.vectara.com/docs/learn/metadata-search-filtering/filter-overview) for more information.","type":"string","maxLength":8000,"example":"doc.title = 'Annual Report'"},"lexical_interpolation":{"description":"How much to weigh lexical scores compared to the embedding score. 0 means lexical search is not used at all, and 1 means only lexical search is used.","type":"number","format":"float","minimum":0,"maximum":1,"example":0.005},"semantics":{"description":"Indicates whether to consider a query against this corpus as a query or a response.","type":"string","enum":["default","query","response"],"default":"default","title":"SearchSemantics"}},"title":"SearchCorpus"},{"type":"object","properties":{"corpus_key":{"description":"A user-provided key for a corpus.","type":"string","example":"my-corpus","pattern":"[a-zA-Z0-9_\\=\\-]+$","maxLength":50,"title":"CorpusKey"},"query":{"description":"Query for a particular corpus that will override the overall query if present.","type":"string","maxLength":5000,"example":"What are some important facts in my-corpus?"}}}],"required":["corpus_key"],"title":"KeyedSearchCorpus"},"minItems":1}}},{"type":"object","description":"Search parameters to retrieve knowledge for the query.","properties":{"offset":{"description":"Specifies how many results into the result to skip. This is useful for pagination.","type":"integer","format":"int32","default":0,"minimum":0},"limit":{"description":"The maximum number of results returned.","type":"integer","format":"int32","minimum":1,"default":10},"context_configuration":{"type":"object","description":"Configuration on the presentation of each document part in the result set. You can only use characters_before/after or sentences_before/after, but not both. If you specify both in the query, sentences_before/after takes precedence","properties":{"characters_before":{"description":"The number of characters that are shown before the matching document part. This is useful to show the context of the document part in the wider document. Ignored if `sentences_before` is set. Vectara will capture the full sentence that contains the captured characters, to not lose the meaning caused by a truncated word or sentence.","type":"integer","format":"int32"},"characters_after":{"description":"The number of characters that are shown after the matching document part. This is useful to show the context of the document part in the wider document. Ignored if `sentences_after` is set. Vectara will capture the full sentence that contains the captured characters, to not lose the meaning caused by a truncated word or sentence.","type":"integer","format":"int32"},"sentences_before":{"description":"The number of sentences that are shown before the matching document part. This is useful to show the context of the document part in the wider document.","type":"integer","format":"int32","default":0,"minimum":0,"example":2},"sentences_after":{"description":"The number of sentences that are shown after the matching document part. This is useful to show the context of the document part in the wider document.","type":"integer","format":"int32","default":0,"minimum":0,"example":2},"start_tag":{"description":"The tag that wraps the document part at the start. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the context before ends and the document part begins.","type":"string","example":""},"end_tag":{"description":"The tag that wraps the document part at the end. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the document part ends and the context after begins.","type":"string","example":""}},"example":{"sentences_before":2,"sentences_after":2,"start_tag":"","end_tag":""},"title":"ContextConfiguration"},"reranker":{"type":"object","description":"Rerank results of the search. Rerankers are very powerful tools to improve the order of search results. By default the search will use the most powerful reranker available to the customer's plan. To disable reranking, set the reranker `type` to `\"none\"`.","discriminator":{"propertyName":"type","mapping":{"customer_reranker":{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},"userfn":{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},"mmr":{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},"chain":{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},"none":{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}}},"oneOf":[{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}],"title":"SearchReranker"}},"example":{"limit":50},"title":"SearchParameters"}],"required":["corpora"],"title":"SearchCorporaParameters"},"generation":{"description":"The parameters to control generation.","type":"object","properties":{"enabled":{"description":"Whether generation is enabled for this query. This field is ignored if using chat.","type":"boolean","default":true},"generation_preset_name":{"description":"The preset values to use to feed the query results and other context to the model. \n\nA `generation_preset` is an object with a bundle of properties that specifies: \n* The `prompt_template` that is rendered and then sent to the LLM. \n* The LLM used. * `model_parameter`s such as temperature.\n\nAll of these properties except the model can be overridden by setting them in this object. Even when a `prompt_template` is set, the `generation_preset_name` is used to set the model used. See `model_parameters.model` if you want to set the model explicitly.\n\nIf `generation_preset_name` is not set, the Vectara platform will use the default model and prompt.'\n","type":"string","minLength":1,"example":"mockingbird-2.0"},"prompt_name":{"description":"Use `generation_preset_name` instead of `prompt_name`.","type":"string","minLength":1,"example":"mockingbird-2.0","deprecated":true},"max_used_search_results":{"description":"The maximum number of search results to be available to the prompt.","type":"integer","format":"int32","minimum":0,"default":5},"prompt_template":{"description":"Vectara manages both system and user roles and prompts for the generative LLM out of the box by default. However, users can override the `prompt_template` via this variable. The `prompt_template` is in the form of an Apache Velocity template. For more details on how to configure the `prompt_template`, see the [long-form documentation](https://docs.vectara.com/docs/prompts/vectara-prompt-engine).","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n"},"prompt_text":{"description":"This property is deprecated in favor of clearer naming. Use `prompt_template`. This property will be ignored if `prompt_template` is set.","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n","deprecated":true},"max_response_characters":{"description":"Controls the length of the generated output. This is a rough estimate and not a hard limit: the end output can be longer or shorter than this value. This is generally implemented by including the `max_response_characters` in the prompt, and the LLM's instruction following capability dictates how closely the generated output is limited.","type":"integer","format":"int32","example":300,"minimum":0},"response_language":{"description":"Languages that the Vectara platform supports.","type":"string","enum":["auto","eng","deu","fra","zho","kor","ara","rus","tha","nld","ita","por","spa","jpn","pol","tur","vie","ind","ces","ukr","ell","heb","fas","hin","urd","swe","ben","msa","ron"],"default":"auto","title":"Language"},"model_parameters":{"title":"ModelParameters","description":"The parameters for the model. WARNING: This is an experimental feature, and breakable at any point with virtually no notice. It is meant for experimentation to converge on optimal parameters that can then be set in the prompt definitions.","type":"object","properties":{"llm_name":{"description":"The model (e.g., `gpt-4`) to use for summarization. If specified, it will override the model behind `generation_preset_name`.","type":"string","example":"gpt4"},"max_tokens":{"description":"The maximum number of tokens to be returned by the model.","type":"integer","format":"int32","minimum":1},"temperature":{"description":"The sampling temperature to use. Higher values make the output more random, while lower values make it more focused and deterministic.","type":"number","format":"float"},"frequency_penalty":{"description":"Higher values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.","type":"number","format":"float"},"presence_penalty":{"description":"Higher values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.","type":"number","format":"float"}}},"citations":{"description":"Style the generator should use when making citations.","type":"object","properties":{"style":{"description":"The citation style that you want to use in the summary: \n* `numeric` - Citations formatted as simple numerals: \\[1\\], \\[2\\], etc.\n* `none` - Citations removed from text.\n* `html` - Citation formatted as a URL like `text_pattern`.\n* `markdown` - Formatted as `[text_pattern](url_pattern)`.\n","type":"string","enum":["none","numeric","html","markdown"]},"url_pattern":{"description":"The URL pattern if the citation_style is set to `html` or `markdown`. The pattern can access metadata attributes in the document or part. e.g. `https://my.doc/foo/{doc.id}/{part.id}` The default `url_pattern` is an empty string.","type":"string","example":"https://vectara.com/documents/{doc.id}"},"text_pattern":{"description":"The text pattern if the citation_style is set to `html` or `markdown`. This pattern sets the href for HTML or the text within `[]` in markdown, and defaults to N being the index of result if it is not set. The default citation style looks like `[N]()` for markdown. You can use metadata attributes in the `text_pattern`. For example, the pattern `{doc.title}` with citation style `markdown` would result in final citation output like `[Title]()` when the document's metadata includes `{\"title\":\"Title\"}`.","type":"string","example":"{doc.title}"}},"title":"CitationParameters"},"enable_factual_consistency_score":{"description":"Enable returning the factual consistency score with query results.","type":"boolean","default":true}},"title":"GenerationParameters"},"save_history":{"description":"Indicates whether to save the query to query history.","type":"boolean"}},"required":["search"],"title":"CorporaSearchQueryConfiguration"}},"required":["type","query_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineWebSearchToolConfiguration","description":"A web search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'web_search' for inline web search tool configurations.","default":"web_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the web search tool call such as limit etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query to execute.","type":"string","example":"latest AI developments 2024"},"limit":{"description":"Maximum number of results to return.","type":"integer","minimum":1,"example":10},"provider":{"description":"Search provider to use.","type":"string","enum":["tavily"],"example":"tavily"},"include_domains":{"description":"List of domains to specifically include in search results. When specified, results will ONLY come from these domains. Supports exact domains (e.g., \"github.com\"), subdomains (e.g., \"docs.github.com\"), and wildcard patterns (e.g., \"*.github.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["github.com","docs.github.com","*.stackoverflow.com"]},"exclude_domains":{"description":"List of domains to specifically exclude from search results. Supports exact domains (e.g., \"spam.com\"), subdomains (e.g., \"bad.spam.com\"), and wildcard patterns (e.g., \"*.spam.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["spam.com","unreliable-source.com"]}},"additionalProperties":false,"title":"WebSearchToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineLambdaToolConfiguration","description":"A lambda tool configuration defined inline in the agent for executing user-defined functions.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'lambda' for inline lambda tool configurations.","default":"lambda"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments that will be passed to the lambda function. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","additionalProperties":true,"example":{"custom_param":"value"}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineStructuredIndexingToolConfiguration","description":"A structured indexing tool configuration defined inline in the agent for indexing into the Vectara platform.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'structured_indexing' for inline structured indexing tool configurations.","default":"structured_indexing"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the structured indexing tool call such as corpus_key etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"corpus_key":{"description":"The key identifying the target corpus for document indexing. If not provided, will be filled in by the LLM.","type":"string","example":"my-knowledge-base"},"document_id":{"description":"The unique identifier for the document within the corpus, preferably human readable IDs.","type":"string","example":"annual_report_2024"},"title":{"description":"The title of the document being indexed.","type":"string","example":"2024 Annual ESG Report"},"description":{"description":"A brief description or summary of the document content.","type":"string","example":"Comprehensive environmental, social, and governance report"},"metadata":{"description":"The metadata key-value pairs to associate with the document. If present, this gets merged with existing artifact metadata.","type":"object","additionalProperties":true,"example":{"doc_type":"annual_report","year":2024,"department":"sustainability"}},"document":{"description":"The structured document to index with full hierarchical content.","type":"object","additionalProperties":true,"example":{"id":"annual_report_2024","type":"structured","title":"2024 Annual ESG Report"}}},"additionalProperties":false,"title":"StructuredIndexingToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineSubAgentToolConfiguration","description":"A sub-agent tool configuration defined inline in the agent for invoking specialized sub-agents.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'sub_agent' for inline sub-agent tool configurations.","default":"sub_agent"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the sub-agent tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"message":{"description":"The detailed task instructions for the sub-agent to perform autonomously.","type":"string","example":"Review the code changes in pull request \\#123 for security issues"},"session_tti_minutes":{"description":"Time to idle in minutes before the session expires.","type":"integer","format":"int64","minimum":1,"example":60}},"additionalProperties":false,"title":"SubAgentToolParameters"},"sub_agent_configuration":{"description":"User-configurable settings for the sub-agent tool. These parameters are never exposed to the agent.","type":"object","properties":{"agent_key":{"description":"A unique key that identifies an agent.","type":"string","pattern":"[0-9a-zA-Z_-]+$","minLength":1,"maxLength":50,"example":"customer_support","title":"AgentKey"}},"required":["agent_key"],"title":"SubAgentConfiguration"}},"required":["type","sub_agent_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineArtifactReadToolConfiguration","description":"An artifact read tool configuration defined inline in the agent for reading artifacts from the session workspace.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_read' for inline artifact read tool configurations.","default":"artifact_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to read.","type":"string","example":"art_abc123"},"encoding":{"description":"The encoding format for the content.","type":"string","enum":["raw","base64"],"example":"raw"},"start_line":{"description":"Optional starting line number (1-indexed).","type":"integer","format":"int32","example":100},"end_line":{"description":"Optional ending line number (1-indexed, inclusive).","type":"integer","format":"int32","example":200}},"additionalProperties":false,"title":"ArtifactReadToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineArtifactGrepToolConfiguration","description":"An artifact grep tool configuration defined inline in the agent for searching through artifact content.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_grep' for inline artifact grep tool configurations.","default":"artifact_grep"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact grep tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to search.","type":"string","example":"art_abc123"},"pattern":{"description":"The pattern to search for (supports grep regex).","type":"string","example":"error|exception"},"grep_options":{"description":"Optional grep command options.","type":"array","items":{"type":"string"},"example":["-i","-n"]}},"additionalProperties":false,"title":"ArtifactGrepToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineImageReadToolConfiguration","description":"An image read tool configuration defined inline in the agent for loading images into the conversation context.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'image_read' for inline image read tool configurations.","default":"image_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the image read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the image artifact to view.","type":"string","pattern":"^art_[a-z0-9_-]+$","example":"art_photo_a3f2"},"detail":{"description":"Detail level for image processing.","type":"string","enum":["auto","low","high"],"default":"auto","example":"auto"}},"additionalProperties":false,"title":"ImageReadToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineDocumentConversionToolConfiguration","description":"A document conversion tool configuration defined inline in the agent for converting document artifacts to various formats.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'document_conversion' for inline document conversion tool configurations.","default":"document_conversion"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the document conversion tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to convert.","type":"string","example":"art_abc123"},"output_format":{"description":"Output format for the converted document.","type":"string","enum":["markdown","structured_document"],"example":"markdown"},"description":{"description":"Optional description for the converted artifact.","type":"string","example":"PDF converted to markdown"}},"additionalProperties":false,"title":"DocumentConversionToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]}],"example":[{"type":"web_search","argument_override":{"limit":5,"include_domains":["github.com","stackoverflow.com"],"exclude_domains":["spam.com"]}}]},"example":{"customer_search":{"type":"corpora_search","argument_override":{"query":"customer support documentation"}}}},"model":{"title":"AgentModel","description":"Configuration for the model used in this step, including the model name and arbitrary parameters.","type":"object","properties":{"name":{"description":"The name of the model to use for this step.","type":"string","example":"gpt-4"},"parameters":{"description":"Arbitrary model-specific parameters that can be passed to the model.","type":"object","additionalProperties":true,"example":{"temperature":0.7,"max_tokens":1000,"top_p":0.9}},"retry_configuration":{"description":"Optional retry configuration for handling transient failures. When not provided, no retry is performed.","title":"RetryConfiguration","type":"object","properties":{"enabled":{"description":"Whether retry is enabled. Enabled by default to provide resilience against transient failures.","type":"boolean","default":true,"example":true},"max_retries":{"description":"Maximum number of retry attempts after initial failure.","type":"integer","minimum":0,"maximum":10,"default":3,"example":3},"initial_backoff_ms":{"description":"Initial backoff time in milliseconds before first retry.","type":"integer","minimum":100,"maximum":60000,"default":1000,"example":1000},"max_backoff_ms":{"description":"Maximum backoff time in milliseconds between retries.","type":"integer","minimum":1000,"maximum":300000,"default":30000,"example":30000},"backoff_factor":{"description":"Multiplication factor for exponential backoff between retries.","type":"number","format":"double","minimum":1,"maximum":10,"default":2,"example":2}}}},"required":["name"]},"first_step":{"title":"AgentStep","description":"A step in an agent's execution flow that defines how the agent processes and responds to input.","discriminator":{"propertyName":"type","mapping":{"conversational":{"title":"ConversationalAgentStep","description":"A step that receives instructions and responds through dialogue. This is a step that gets instructions and engages in conversation with users based on those instructions. This only type step supported, with no way to go next steps. A conversational step responds to an input following its instructions and uses the agent tools. The first response from the model will terminate processing the input.","type":"object","properties":{"type":{"description":"The type of step, which is always 'conversational' for this step type.","type":"string","default":"conversational","example":"conversational"},"instructions":{"description":"List of instructions that guide the agent's behavior in this step. If no instructions are given, the agent is instructed to be helpful and use tools.","type":"array","items":{"title":"AgentStepInstruction","description":"An instruction that can be used in an agent step, either by reference or defined inline.","discriminator":{"propertyName":"type","mapping":{"reference":{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},"inline":{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Request object for creating a new initial instruction.","type":"object","properties":{"type":{"description":"The type of instruction to create.","type":"string","default":"initial","example":"initial"},"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["type","name","template"],"x-vectaraParents":["CreateInstructionRequest"],"title":"CreateInitialInstructionRequest"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}}},"oneOf":[{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Request object for creating a new initial instruction.","type":"object","properties":{"type":{"description":"The type of instruction to create.","type":"string","default":"initial","example":"initial"},"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["type","name","template"],"x-vectaraParents":["CreateInstructionRequest"],"title":"CreateInitialInstructionRequest"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}],"example":[{"type":"reference","name":"Customer Support Initial Instruction","version":1},{"type":"inline","name":"Temporary On-the-fly Guideline","description":"A special instruction for this specific step only.","template_type":"velocity","template":"Please prioritize issues tagged with 'urgent' for the next hour."}]}},"output_parser":{"title":"AgentOutputParser","description":"Configuration for how the agent's output should be parsed and formatted.\n\nThe output parser determines how the agent's responses are processed before being returned to the user.\n","discriminator":{"propertyName":"type","mapping":{"default":{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]}}},"oneOf":[{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]}]}},"required":["type","instructions","output_parser"],"x-vectaraParents":["AgentStep"]}}},"oneOf":[{"title":"ConversationalAgentStep","description":"A step that receives instructions and responds through dialogue. This is a step that gets instructions and engages in conversation with users based on those instructions. This only type step supported, with no way to go next steps. A conversational step responds to an input following its instructions and uses the agent tools. The first response from the model will terminate processing the input.","type":"object","properties":{"type":{"description":"The type of step, which is always 'conversational' for this step type.","type":"string","default":"conversational","example":"conversational"},"instructions":{"description":"List of instructions that guide the agent's behavior in this step. If no instructions are given, the agent is instructed to be helpful and use tools.","type":"array","items":{"title":"AgentStepInstruction","description":"An instruction that can be used in an agent step, either by reference or defined inline.","discriminator":{"propertyName":"type","mapping":{"reference":{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},"inline":{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Request object for creating a new initial instruction.","type":"object","properties":{"type":{"description":"The type of instruction to create.","type":"string","default":"initial","example":"initial"},"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["type","name","template"],"x-vectaraParents":["CreateInstructionRequest"],"title":"CreateInitialInstructionRequest"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}}},"oneOf":[{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Request object for creating a new initial instruction.","type":"object","properties":{"type":{"description":"The type of instruction to create.","type":"string","default":"initial","example":"initial"},"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["type","name","template"],"x-vectaraParents":["CreateInstructionRequest"],"title":"CreateInitialInstructionRequest"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}],"example":[{"type":"reference","name":"Customer Support Initial Instruction","version":1},{"type":"inline","name":"Temporary On-the-fly Guideline","description":"A special instruction for this specific step only.","template_type":"velocity","template":"Please prioritize issues tagged with 'urgent' for the next hour."}]}},"output_parser":{"title":"AgentOutputParser","description":"Configuration for how the agent's output should be parsed and formatted.\n\nThe output parser determines how the agent's responses are processed before being returned to the user.\n","discriminator":{"propertyName":"type","mapping":{"default":{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]}}},"oneOf":[{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]}]}},"required":["type","instructions","output_parser"],"x-vectaraParents":["AgentStep"]}]},"metadata":{"description":"Arbitrary metadata associated with the agent for customization and configuration.","type":"object","additionalProperties":true,"example":{"department":"customer_service","version":"1.2.0","owner":"support-team"}},"enabled":{"description":"Whether the agent is currently enabled and available for use.","type":"boolean","default":true,"example":true},"created_at":{"description":"Timestamp when the agent was created.","type":"string","format":"date-time","example":"2024-01-15T10:30:00Z"},"updated_at":{"description":"Timestamp when the agent was last updated.","type":"string","format":"date-time","example":"2024-01-16T14:45:00Z"}},"required":["key","name","tool_configurations","model","first_step","enabled"],"title":"Agent"}}}},"400":{"description":"Agent update request was malformed or contains invalid references.","content":{"application/json":{"schema":{"description":"Error returned when a request contains invalid parameters or violates schema validation.","type":"object","properties":{"field_errors":{"description":"The errors that relate to specific fields in the request.","type":"object","additionalProperties":{"type":"string"}},"messages":{"type":"array","items":{"title":"message","type":"string"}},"request_id":{"description":"The ID of the request that can be used to help Vectara support debug what went wrong.","type":"string"}},"title":"BadRequestError"}}}},"403":{"description":"Permissions do not allow updating this agent.","content":{"application/json":{"schema":{"description":"A general error response with an error code and message.","type":"object","properties":{"messages":{"description":"The messages describing why the error occurred.","type":"array","items":{"title":"message","type":"string","example":"Internal server error."}},"request_id":{"description":"The ID of the request that can be used to help Vectara support debug what went wrong.","type":"string"}},"title":"Error"}}}},"404":{"description":"Agent not found.","content":{"application/json":{"schema":{"description":"Error returned when a requested resource does not exist.","type":"object","properties":{"id":{"description":"The ID cannot be found.","type":"string"},"messages":{"type":"array","items":{"title":"message","type":"string"}},"request_id":{"description":"The ID of the request that can be used to help Vectara support debug what went wrong.","type":"string"}},"title":"NotFoundError"}}}}}}
+ responses={{"200":{"description":"The response includes the complete updated agent configuration with the new \n`updated_at` timestamp reflecting when the changes were applied.\n","content":{"application/json":{"schema":{"description":"An AI agent that can use tools to provide intelligent responses and actions.","type":"object","properties":{"key":{"description":"A unique key that identifies an agent.","type":"string","pattern":"[0-9a-zA-Z_-]+$","minLength":1,"maxLength":50,"example":"customer_support","title":"AgentKey"},"name":{"description":"The human-readable name of an agent.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Agent","title":"AgentName"},"description":{"description":"A detailed description of the agent's purpose and capabilities.","type":"string","example":"An AI agent specialized in handling customer support inquiries using company documentation and support tools."},"tool_configurations":{"description":"A map of tool configurations available to the agent. The key is the name of the tool configuration and the value is an agent tool configuration.","type":"object","additionalProperties":{"nullable":true,"title":"AgentToolConfiguration","description":"A tool configuration that can be used by an agent, defined inline with a specific configuration type.","discriminator":{"propertyName":"type","mapping":{"dynamic_vectara":{"title":"InlineDynamicVectaraToolConfiguration","description":"An inline configuration for built-in Vectara tools that have implementations within the platform but do not have a dedicated configuration type schema. Use the List Tools endpoint to discover available tools and obtain the `tool_id` required for this configuration.\n","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'dynamic_vectara' for generic Vectara tool configurations.","default":"dynamic_vectara"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for tool calls. The key specifies the location in the tool arguments to overide, and the value specifies what to override with. The LLM will not be able to change the parameters, nor know those values exist within the tool.\n\nThe values can also be dynamic references to context values using $ref with dot notation path syntax:\n- Static value: \"fixed_value\" or 123\n- Dynamic reference: `{\"$ref\": \"session.metadata.field_name\"}`\n\nReferences are resolved at runtime from context:\n- session.metadata.* - Access session metadata fields\n- agent.metadata.* - Access agent metadata fields\n\nExample:\n `{\"query\": {\"$ref\": \".session.metadata.query\"}}`\n\nIf you want to have a real value `\"$ref\"` use `\"$$ref\"`, that is you can escape the first $ by using $$.","type":"object","additionalProperties":true,"example":{"custom_param":"value","limit":10}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},"mcp":{"title":"InlineMcpToolConfiguration","description":"An MCP tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'mcp' for inline MCP tool configurations.","default":"mcp"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for tool calls. The key specifies the location in the tool arguments to overide, and the value specifies what to override with. The LLM will not be able to change the parameters, nor know those values exist within the tool.\n\nThe values can also be dynamic references to context values using $ref with dot notation path syntax:\n- Static value: \"fixed_value\" or 123\n- Dynamic reference: `{\"$ref\": \"session.metadata.field_name\"}`\n\nReferences are resolved at runtime from context:\n- session.metadata.* - Access session metadata fields\n- agent.metadata.* - Access agent metadata fields\n\nExample:\n `{\"query\": {\"$ref\": \".session.metadata.query\"}}`\n\nIf you want to have a real value `\"$ref\"` use `\"$$ref\"`, that is you can escape the first $ by using $$.","type":"object","additionalProperties":true,"example":{"custom_param":"value","limit":10}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},"corpora_search":{"title":"InlineCorporaSearchToolConfiguration","description":"A corpora search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'corpora_search' for inline corpora search tool configurations.","default":"corpora_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the corpus search call such as the query. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query string, which is the question the user is asking. If not provided, will be filled in by the agent.","type":"string","maxLength":5000,"example":"Am I allowed to bring pets to work?"}},"additionalProperties":false,"title":"CorporaSearchToolParameters"},"query_configuration":{"description":"User-configurable settings for the corpus search that are not exposed to the LLM. Supports dynamic references for runtime resolution from session context.","title":"AgentCorporaSearchQueryConfiguration","type":"object","properties":{"search":{"title":"AgentSearchCorporaParameters","description":"Agent-specific search parameters that support eager references.","type":"object","properties":{"corpora":{"description":"The corpora to search, with support for eager references.","type":"array","items":{"title":"AgentKeyedSearchCorpus","description":"Agent-specific keyed search corpus that supports eager references for corpus_key and metadata_filter.","type":"object","properties":{"corpus_key":{"description":"The corpus to search. Can be either:\n- A static string: \"my-corpus\"\n- An EagerReference object: {\"$ref\": \"session.metadata.corpus\"}\n\nWhen an EagerReference is provided, the $ref path is resolved from the session context\nat the start of each turn, before LLM processing begins.\n","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"custom_dimensions":{"description":"The custom dimensions as additional weights.","type":"object","additionalProperties":{"type":"number","format":"double","nullable":false},"title":"CustomDimensions"},"metadata_filter":{"description":"The filter to narrow search results. Can be either:\n- A static string: \"doc.department = 'engineering'\"\n- An EagerReference object: {\"$ref\": \"session.metadata.filters.user\"}\n\nWhen an EagerReference is provided, the $ref path is resolved from the session context\nat the start of each turn, before LLM processing begins.\n","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"lexical_interpolation":{"description":"How much to weigh lexical scores compared to the embedding score.","type":"number","format":"float","minimum":0,"maximum":1},"semantics":{"description":"Indicates whether to consider a query against this corpus as a query or a response.","type":"string","enum":["default","query","response"],"default":"default","title":"SearchSemantics"},"query":{"description":"Query override for this specific corpus.","type":"string","maxLength":5000}},"required":["corpus_key"]},"minItems":1},"offset":{"description":"Number of results to skip for pagination.","type":"integer","format":"int32","minimum":0,"default":0},"limit":{"description":"Maximum number of results to return.","type":"integer","format":"int32","minimum":1,"default":10},"context_configuration":{"type":"object","description":"Configuration on the presentation of each document part in the result set. You can only use characters_before/after or sentences_before/after, but not both. If you specify both in the query, sentences_before/after takes precedence","properties":{"characters_before":{"description":"The number of characters that are shown before the matching document part. This is useful to show the context of the document part in the wider document. Ignored if `sentences_before` is set. Vectara will capture the full sentence that contains the captured characters, to not lose the meaning caused by a truncated word or sentence.","type":"integer","format":"int32"},"characters_after":{"description":"The number of characters that are shown after the matching document part. This is useful to show the context of the document part in the wider document. Ignored if `sentences_after` is set. Vectara will capture the full sentence that contains the captured characters, to not lose the meaning caused by a truncated word or sentence.","type":"integer","format":"int32"},"sentences_before":{"description":"The number of sentences that are shown before the matching document part. This is useful to show the context of the document part in the wider document.","type":"integer","format":"int32","default":0,"minimum":0,"example":2},"sentences_after":{"description":"The number of sentences that are shown after the matching document part. This is useful to show the context of the document part in the wider document.","type":"integer","format":"int32","default":0,"minimum":0,"example":2},"start_tag":{"description":"The tag that wraps the document part at the start. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the context before ends and the document part begins.","type":"string","example":""},"end_tag":{"description":"The tag that wraps the document part at the end. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the document part ends and the context after begins.","type":"string","example":""}},"example":{"sentences_before":2,"sentences_after":2,"start_tag":"","end_tag":""},"title":"ContextConfiguration"},"reranker":{"type":"object","description":"Rerank results of the search. Rerankers are very powerful tools to improve the order of search results. By default the search will use the most powerful reranker available to the customer's plan. To disable reranking, set the reranker `type` to `\"none\"`.","discriminator":{"propertyName":"type","mapping":{"customer_reranker":{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},"userfn":{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},"mmr":{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},"chain":{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},"none":{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}}},"oneOf":[{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}],"title":"SearchReranker"}},"required":["corpora"]},"generation":{"description":"The parameters to control generation.","type":"object","properties":{"enabled":{"description":"Whether generation is enabled for this query. This field is ignored if using chat.","type":"boolean","default":true},"generation_preset_name":{"description":"The preset values to use to feed the query results and other context to the model. \n\nA `generation_preset` is an object with a bundle of properties that specifies: \n* The `prompt_template` that is rendered and then sent to the LLM. \n* The LLM used. * `model_parameter`s such as temperature.\n\nAll of these properties except the model can be overridden by setting them in this object. Even when a `prompt_template` is set, the `generation_preset_name` is used to set the model used. See `model_parameters.model` if you want to set the model explicitly.\n\nIf `generation_preset_name` is not set, the Vectara platform will use the default model and prompt.'\n","type":"string","minLength":1,"example":"mockingbird-2.0"},"prompt_name":{"description":"Use `generation_preset_name` instead of `prompt_name`.","type":"string","minLength":1,"example":"mockingbird-2.0","deprecated":true},"max_used_search_results":{"description":"The maximum number of search results to be available to the prompt.","type":"integer","format":"int32","minimum":0,"default":5},"prompt_template":{"description":"Vectara manages both system and user roles and prompts for the generative LLM out of the box by default. However, users can override the `prompt_template` via this variable. The `prompt_template` is in the form of an Apache Velocity template. For more details on how to configure the `prompt_template`, see the [long-form documentation](https://docs.vectara.com/docs/prompts/vectara-prompt-engine).","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n"},"prompt_text":{"description":"This property is deprecated in favor of clearer naming. Use `prompt_template`. This property will be ignored if `prompt_template` is set.","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n","deprecated":true},"max_response_characters":{"description":"Controls the length of the generated output. This is a rough estimate and not a hard limit: the end output can be longer or shorter than this value. This is generally implemented by including the `max_response_characters` in the prompt, and the LLM's instruction following capability dictates how closely the generated output is limited.","type":"integer","format":"int32","example":300,"minimum":0},"response_language":{"description":"Languages that the Vectara platform supports.","type":"string","enum":["auto","eng","deu","fra","zho","kor","ara","rus","tha","nld","ita","por","spa","jpn","pol","tur","vie","ind","ces","ukr","ell","heb","fas","hin","urd","swe","ben","msa","ron"],"default":"auto","title":"Language"},"model_parameters":{"title":"ModelParameters","description":"The parameters for the model. WARNING: This is an experimental feature, and breakable at any point with virtually no notice. It is meant for experimentation to converge on optimal parameters that can then be set in the prompt definitions.","type":"object","properties":{"llm_name":{"description":"The model (e.g., `gpt-4`) to use for summarization. If specified, it will override the model behind `generation_preset_name`.","type":"string","example":"gpt4"},"max_tokens":{"description":"The maximum number of tokens to be returned by the model.","type":"integer","format":"int32","minimum":1},"temperature":{"description":"The sampling temperature to use. Higher values make the output more random, while lower values make it more focused and deterministic.","type":"number","format":"float"},"frequency_penalty":{"description":"Higher values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.","type":"number","format":"float"},"presence_penalty":{"description":"Higher values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.","type":"number","format":"float"}}},"citations":{"description":"Style the generator should use when making citations.","type":"object","properties":{"style":{"description":"The citation style that you want to use in the summary: \n* `numeric` - Citations formatted as simple numerals: \\[1\\], \\[2\\], etc.\n* `none` - Citations removed from text.\n* `html` - Citation formatted as a URL like `text_pattern`.\n* `markdown` - Formatted as `[text_pattern](url_pattern)`.\n","type":"string","enum":["none","numeric","html","markdown"]},"url_pattern":{"description":"The URL pattern if the citation_style is set to `html` or `markdown`. The pattern can access metadata attributes in the document or part. e.g. `https://my.doc/foo/{doc.id}/{part.id}` The default `url_pattern` is an empty string.","type":"string","example":"https://vectara.com/documents/{doc.id}"},"text_pattern":{"description":"The text pattern if the citation_style is set to `html` or `markdown`. This pattern sets the href for HTML or the text within `[]` in markdown, and defaults to N being the index of result if it is not set. The default citation style looks like `[N]()` for markdown. You can use metadata attributes in the `text_pattern`. For example, the pattern `{doc.title}` with citation style `markdown` would result in final citation output like `[Title]()` when the document's metadata includes `{\"title\":\"Title\"}`.","type":"string","example":"{doc.title}"}},"title":"CitationParameters"},"enable_factual_consistency_score":{"description":"Enable returning the factual consistency score with query results.","type":"boolean","default":true}},"title":"GenerationParameters"},"save_history":{"description":"Whether to save the query to history.","type":"boolean"}},"required":["search"]}},"required":["type","query_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},"web_search":{"title":"InlineWebSearchToolConfiguration","description":"A web search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'web_search' for inline web search tool configurations.","default":"web_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the web search tool call such as limit etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query to execute.","type":"string","example":"latest AI developments 2024"},"limit":{"description":"Maximum number of results to return.","type":"integer","minimum":1,"maximum":20,"example":10},"provider":{"description":"Search provider to use.","type":"string","enum":["tavily"],"example":"tavily"},"include_domains":{"description":"List of domains to specifically include in search results. When specified, results will ONLY come from these domains. Supports exact domains (e.g., \"github.com\"), subdomains (e.g., \"docs.github.com\"), and wildcard patterns (e.g., \"*.github.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["github.com","docs.github.com","*.stackoverflow.com"]},"exclude_domains":{"description":"List of domains to specifically exclude from search results. Supports exact domains (e.g., \"spam.com\"), subdomains (e.g., \"bad.spam.com\"), and wildcard patterns (e.g., \"*.spam.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["spam.com","unreliable-source.com"]}},"additionalProperties":false,"title":"WebSearchToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"web_get":{"title":"InlineWebGetToolConfiguration","description":"A web get tool configuration defined inline in the agent for fetching content from URLs.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'web_get' for inline web get tool configurations.","default":"web_get"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the web get tool call. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"url":{"description":"The URL to fetch content from.","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"method":{"description":"HTTP method to use.","type":"string","enum":["GET","POST","PUT","DELETE","HEAD"]},"headers":{"description":"HTTP headers to include in the request.","oneOf":[{"type":"object","additionalProperties":{"type":"string"}},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"body":{"description":"Request body for POST/PUT requests.","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"follow_redirects":{"description":"Whether to follow HTTP redirects.","oneOf":[{"type":"boolean"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"timeout_seconds":{"description":"Request timeout in seconds.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"head_lines":{"description":"Number of lines from start to include in response.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"tail_lines":{"description":"Number of lines from end to include in response.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"ssl_verify":{"description":"Whether to verify SSL certificates.","oneOf":[{"type":"boolean"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"max_content_bytes":{"description":"Maximum response size in bytes before truncation.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]}},"additionalProperties":false,"title":"WebGetToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"lambda":{"title":"InlineLambdaToolConfiguration","description":"A lambda tool configuration defined inline in the agent for executing user-defined functions.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'lambda' for inline lambda tool configurations.","default":"lambda"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments that will be passed to the lambda function. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","additionalProperties":true,"example":{"custom_param":"value"}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},"structured_indexing":{"title":"InlineStructuredIndexingToolConfiguration","description":"A structured indexing tool configuration defined inline in the agent for indexing into the Vectara platform.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'structured_indexing' for inline structured indexing tool configurations.","default":"structured_indexing"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the structured indexing tool call such as corpus_key etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"corpus_key":{"description":"The key identifying the target corpus for document indexing. If not provided, will be filled in by the agent.","type":"string","example":"my-knowledge-base"},"document_id":{"description":"The unique identifier for the document within the corpus, preferably human readable IDs.","type":"string","example":"annual_report_2024"},"title":{"description":"The title of the document being indexed.","type":"string","example":"2024 Annual ESG Report"},"description":{"description":"A brief description or summary of the document content.","type":"string","example":"Comprehensive environmental, social, and governance report"},"metadata":{"description":"The metadata key-value pairs to associate with the document. If present, this gets merged with existing artifact metadata.","type":"object","additionalProperties":true,"example":{"doc_type":"annual_report","year":2024,"department":"sustainability"}},"document":{"description":"The structured document to index with full hierarchical content.","type":"object","additionalProperties":true,"example":{"id":"annual_report_2024","type":"structured","title":"2024 Annual ESG Report"}}},"additionalProperties":false,"title":"StructuredIndexingToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"sub_agent":{"title":"InlineSubAgentToolConfiguration","description":"A sub-agent tool configuration defined inline in the agent for invoking specialized sub-agents.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'sub_agent' for inline sub-agent tool configurations.","default":"sub_agent"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the sub-agent tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"message":{"description":"The detailed task instructions for the sub-agent to perform autonomously.","type":"string","example":"Review the code changes in pull request \\#123 for security issues"},"session_tti_minutes":{"description":"Time to idle in minutes before the session expires.","type":"integer","format":"int64","minimum":1,"example":60}},"additionalProperties":false,"title":"SubAgentToolParameters"},"sub_agent_configuration":{"description":"User-configurable settings for the sub-agent tool. These parameters are never exposed to the agent.","type":"object","properties":{"agent_key":{"description":"A unique key that identifies an agent.","type":"string","pattern":"[0-9a-zA-Z_-]+$","minLength":1,"maxLength":50,"example":"customer_support","title":"AgentKey"},"session_mode":{"description":"Controls session behavior for sub-agent invocations:\n- llm_controlled: LLM decides whether to create new or resume existing session\n- persistent: Always reuse the same session (created on first invocation)\n- ephemeral: Always create a new session on each invocation\n","type":"string","enum":["llm_controlled","persistent","ephemeral"],"default":"llm_controlled","example":"llm_controlled","title":"SubAgentSessionMode"},"session_metadata":{"description":"Optional metadata to associate with the sub-agent session. Can contain any key-value pairs.","type":"object","additionalProperties":true,"example":{"source":"parent_agent","task_type":"code_review"}}},"required":["agent_key"],"title":"SubAgentConfiguration"}},"required":["type","sub_agent_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},"artifact_read":{"title":"InlineArtifactReadToolConfiguration","description":"An artifact read tool configuration defined inline in the agent for reading artifacts from the session workspace.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_read' for inline artifact read tool configurations.","default":"artifact_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to read.","type":"string","example":"art_abc123"},"encoding":{"description":"The encoding format for the content.","type":"string","enum":["raw","base64"],"example":"raw"},"start_line":{"description":"Optional starting line number (1-indexed).","type":"integer","format":"int32","example":100},"end_line":{"description":"Optional ending line number (1-indexed, inclusive).","type":"integer","format":"int32","example":200}},"additionalProperties":false,"title":"ArtifactReadToolParameters"},"tool_configuration":{"description":"User-configurable settings for the artifact read tool.","type":"object","properties":{"max_size_bytes":{"description":"Maximum file size in bytes for full reads without line ranges. Defaults to 256KB.","type":"integer","format":"int64","minimum":1,"maximum":10485760,"default":262144},"max_lines":{"description":"Maximum number of lines for range-based reads. Defaults to 200.","type":"integer","format":"int32","minimum":1,"maximum":10000,"default":200}},"title":"ArtifactReadConfiguration"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"artifact_grep":{"title":"InlineArtifactGrepToolConfiguration","description":"An artifact grep tool configuration defined inline in the agent for searching through artifact content.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_grep' for inline artifact grep tool configurations.","default":"artifact_grep"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact grep tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to search.","type":"string","example":"art_abc123"},"pattern":{"description":"The pattern to search for (supports grep regex).","type":"string","example":"error|exception"},"grep_options":{"description":"Optional grep command options.","type":"array","items":{"type":"string"},"example":["-i","-n"]}},"additionalProperties":false,"title":"ArtifactGrepToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"image_read":{"title":"InlineImageReadToolConfiguration","description":"An image read tool configuration defined inline in the agent for loading images into the conversation context.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'image_read' for inline image read tool configurations.","default":"image_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the image read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the image artifact to view.","type":"string","pattern":"^art_[a-z0-9_-]+$","example":"art_photo_a3f2"},"detail":{"description":"Detail level for image processing.","type":"string","enum":["auto","low","high"],"default":"auto","example":"auto"}},"additionalProperties":false,"title":"ImageReadToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},"document_conversion":{"title":"InlineDocumentConversionToolConfiguration","description":"A document conversion tool configuration defined inline in the agent for converting document artifacts to various formats.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'document_conversion' for inline document conversion tool configurations.","default":"document_conversion"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the document conversion tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to convert.","type":"string","example":"art_abc123"},"output_format":{"description":"Output format for the converted document.","type":"string","enum":["markdown","structured_document"],"example":"markdown"},"description":{"description":"Optional description for the converted artifact.","type":"string","example":"PDF converted to markdown"}},"additionalProperties":false,"title":"DocumentConversionToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]}}},"oneOf":[{"title":"InlineDynamicVectaraToolConfiguration","description":"An inline configuration for built-in Vectara tools that have implementations within the platform but do not have a dedicated configuration type schema. Use the List Tools endpoint to discover available tools and obtain the `tool_id` required for this configuration.\n","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'dynamic_vectara' for generic Vectara tool configurations.","default":"dynamic_vectara"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for tool calls. The key specifies the location in the tool arguments to overide, and the value specifies what to override with. The LLM will not be able to change the parameters, nor know those values exist within the tool.\n\nThe values can also be dynamic references to context values using $ref with dot notation path syntax:\n- Static value: \"fixed_value\" or 123\n- Dynamic reference: `{\"$ref\": \"session.metadata.field_name\"}`\n\nReferences are resolved at runtime from context:\n- session.metadata.* - Access session metadata fields\n- agent.metadata.* - Access agent metadata fields\n\nExample:\n `{\"query\": {\"$ref\": \".session.metadata.query\"}}`\n\nIf you want to have a real value `\"$ref\"` use `\"$$ref\"`, that is you can escape the first $ by using $$.","type":"object","additionalProperties":true,"example":{"custom_param":"value","limit":10}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineMcpToolConfiguration","description":"An MCP tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'mcp' for inline MCP tool configurations.","default":"mcp"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for tool calls. The key specifies the location in the tool arguments to overide, and the value specifies what to override with. The LLM will not be able to change the parameters, nor know those values exist within the tool.\n\nThe values can also be dynamic references to context values using $ref with dot notation path syntax:\n- Static value: \"fixed_value\" or 123\n- Dynamic reference: `{\"$ref\": \"session.metadata.field_name\"}`\n\nReferences are resolved at runtime from context:\n- session.metadata.* - Access session metadata fields\n- agent.metadata.* - Access agent metadata fields\n\nExample:\n `{\"query\": {\"$ref\": \".session.metadata.query\"}}`\n\nIf you want to have a real value `\"$ref\"` use `\"$$ref\"`, that is you can escape the first $ by using $$.","type":"object","additionalProperties":true,"example":{"custom_param":"value","limit":10}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineCorporaSearchToolConfiguration","description":"A corpora search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'corpora_search' for inline corpora search tool configurations.","default":"corpora_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the corpus search call such as the query. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query string, which is the question the user is asking. If not provided, will be filled in by the agent.","type":"string","maxLength":5000,"example":"Am I allowed to bring pets to work?"}},"additionalProperties":false,"title":"CorporaSearchToolParameters"},"query_configuration":{"description":"User-configurable settings for the corpus search that are not exposed to the LLM. Supports dynamic references for runtime resolution from session context.","title":"AgentCorporaSearchQueryConfiguration","type":"object","properties":{"search":{"title":"AgentSearchCorporaParameters","description":"Agent-specific search parameters that support eager references.","type":"object","properties":{"corpora":{"description":"The corpora to search, with support for eager references.","type":"array","items":{"title":"AgentKeyedSearchCorpus","description":"Agent-specific keyed search corpus that supports eager references for corpus_key and metadata_filter.","type":"object","properties":{"corpus_key":{"description":"The corpus to search. Can be either:\n- A static string: \"my-corpus\"\n- An EagerReference object: {\"$ref\": \"session.metadata.corpus\"}\n\nWhen an EagerReference is provided, the $ref path is resolved from the session context\nat the start of each turn, before LLM processing begins.\n","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"custom_dimensions":{"description":"The custom dimensions as additional weights.","type":"object","additionalProperties":{"type":"number","format":"double","nullable":false},"title":"CustomDimensions"},"metadata_filter":{"description":"The filter to narrow search results. Can be either:\n- A static string: \"doc.department = 'engineering'\"\n- An EagerReference object: {\"$ref\": \"session.metadata.filters.user\"}\n\nWhen an EagerReference is provided, the $ref path is resolved from the session context\nat the start of each turn, before LLM processing begins.\n","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"lexical_interpolation":{"description":"How much to weigh lexical scores compared to the embedding score.","type":"number","format":"float","minimum":0,"maximum":1},"semantics":{"description":"Indicates whether to consider a query against this corpus as a query or a response.","type":"string","enum":["default","query","response"],"default":"default","title":"SearchSemantics"},"query":{"description":"Query override for this specific corpus.","type":"string","maxLength":5000}},"required":["corpus_key"]},"minItems":1},"offset":{"description":"Number of results to skip for pagination.","type":"integer","format":"int32","minimum":0,"default":0},"limit":{"description":"Maximum number of results to return.","type":"integer","format":"int32","minimum":1,"default":10},"context_configuration":{"type":"object","description":"Configuration on the presentation of each document part in the result set. You can only use characters_before/after or sentences_before/after, but not both. If you specify both in the query, sentences_before/after takes precedence","properties":{"characters_before":{"description":"The number of characters that are shown before the matching document part. This is useful to show the context of the document part in the wider document. Ignored if `sentences_before` is set. Vectara will capture the full sentence that contains the captured characters, to not lose the meaning caused by a truncated word or sentence.","type":"integer","format":"int32"},"characters_after":{"description":"The number of characters that are shown after the matching document part. This is useful to show the context of the document part in the wider document. Ignored if `sentences_after` is set. Vectara will capture the full sentence that contains the captured characters, to not lose the meaning caused by a truncated word or sentence.","type":"integer","format":"int32"},"sentences_before":{"description":"The number of sentences that are shown before the matching document part. This is useful to show the context of the document part in the wider document.","type":"integer","format":"int32","default":0,"minimum":0,"example":2},"sentences_after":{"description":"The number of sentences that are shown after the matching document part. This is useful to show the context of the document part in the wider document.","type":"integer","format":"int32","default":0,"minimum":0,"example":2},"start_tag":{"description":"The tag that wraps the document part at the start. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the context before ends and the document part begins.","type":"string","example":""},"end_tag":{"description":"The tag that wraps the document part at the end. This is often used to provide a start HTML/XML tag or some other delimiter you can use in an application to understand where to provide highlighting in your UI and understand where the document part ends and the context after begins.","type":"string","example":""}},"example":{"sentences_before":2,"sentences_after":2,"start_tag":"","end_tag":""},"title":"ContextConfiguration"},"reranker":{"type":"object","description":"Rerank results of the search. Rerankers are very powerful tools to improve the order of search results. By default the search will use the most powerful reranker available to the customer's plan. To disable reranking, set the reranker `type` to `\"none\"`.","discriminator":{"propertyName":"type","mapping":{"customer_reranker":{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},"userfn":{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},"mmr":{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},"chain":{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},"none":{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}}},"oneOf":[{"description":"Reranker that is specific to the customer.","type":"object","properties":{"type":{"description":"When the type is `customer_reranker`, you can specify the `reranker_name` of a reranker. `reranker_id` is deprecated. The retrieval engine will then rerank results using that reranker.","type":"string","default":"customer_reranker"},"reranker_id":{"description":"The ID of the reranker. The multilingual reranker that may be specified is rnk_272725719. Do not specify the MMR reranker ID here, and instead, use the MMR reranker object type. **Deprecated**: Use `reranker_name` instead.","type":"string","pattern":"rnk_(?!272725718)\\d+","example":"rnk_272725719","deprecated":true},"reranker_name":{"description":"The name of the reranker. Do not specify the MMR reranker name here. Instead, use the MMR reranker object type.","type":"string","example":"Rerank_Multilingual_v1"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"},"include_context":{"type":"boolean","default":true,"description":"If true, the reranker will use text with context (see \"context_configuration\") for scoring."}},"x-vectaraParents":["SearchReranker"],"title":"CustomerSpecificReranker"},{"description":"A reranker that uses user-defined functions to reorder search results.","type":"object","properties":{"type":{"description":"When the type is `userfn`, you can define custom reranking functions using document-level metadata, part-level metadata, or scores generated from the request-level metadata.","type":"string","default":"userfn"},"user_function":{"description":"The user defined function.","type":"string","example":"get('$.score') * get('$.document_metadata.boost')"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"UserFunctionReranker"},{"description":"A reranker that uses Maximal Marginal Relevance to balance relevance and diversity in search results.","type":"object","properties":{"type":{"description":"When the type is `mmr`, you can specify the `diversity_bias`, and the retrieval engine will use the MMR reranker.","type":"string","default":"mmr"},"diversity_bias":{"description":"The diversity bias. Higher values indicate more diversity.","type":"number","format":"float","example":0.3},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. \nWhen a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\n\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1},"cutoff":{"type":"number","description":"Specifies the minimum score threshold for results to be included after the reranking process. When a reranker is applied with a cutoff, it performs the following steps:\n1. Reranks all input results according to its algorithm. 2. Applies the cutoff, removing any results with scores below the specified threshold. 3. Returns the remaining results, sorted by their new scores.\nNote: This cutoff is applied per reranking stage. In a chain of rerankers, each reranker can have its own cutoff, potentially further reducing the number of results at each stage. If both 'limit' and 'cutoff' are specified, the cutoff is applied first, followed by the limit.","format":"float"}},"x-vectaraParents":["SearchReranker"],"title":"MMRReranker"},{"description":"A reranker that applies multiple rerankers in sequence to produce the final search results.","type":"object","properties":{"type":{"description":"When the type is `chain`, you can then chain re-rankers together.","type":"string","default":"chain"},"rerankers":{"type":"array","description":"Specify an array of rerankers to apply to search results consecutively.","items":"circular(SearchReranker)","maxItems":50}},"required":["rerankers"],"x-vectaraParents":["SearchReranker"],"title":"ChainReranker"},{"description":"A placeholder reranker that does not modify the original search results ordering.","type":"object","properties":{"type":{"description":"When the type is `none`, no reranking will be done.","type":"string","default":"none"},"limit":{"type":"integer","description":"Specifies the maximum number of results to be returned after the reranking process. When a reranker is applied, it performs the following steps:\n1. Reranks all input results according to its algorithm.\n2. Sorts the reranked results based on their new scores.\n3. Returns the top N results, where N is the value specified by this limit.\nNote: This limit is applied per reranking stage. In a chain of rerankers, each reranker can have its own limit, potentially reducing the number of results at each stage.","format":"int32","minimum":1}},"x-vectaraParents":["SearchReranker"],"title":"NoneReranker"}],"title":"SearchReranker"}},"required":["corpora"]},"generation":{"description":"The parameters to control generation.","type":"object","properties":{"enabled":{"description":"Whether generation is enabled for this query. This field is ignored if using chat.","type":"boolean","default":true},"generation_preset_name":{"description":"The preset values to use to feed the query results and other context to the model. \n\nA `generation_preset` is an object with a bundle of properties that specifies: \n* The `prompt_template` that is rendered and then sent to the LLM. \n* The LLM used. * `model_parameter`s such as temperature.\n\nAll of these properties except the model can be overridden by setting them in this object. Even when a `prompt_template` is set, the `generation_preset_name` is used to set the model used. See `model_parameters.model` if you want to set the model explicitly.\n\nIf `generation_preset_name` is not set, the Vectara platform will use the default model and prompt.'\n","type":"string","minLength":1,"example":"mockingbird-2.0"},"prompt_name":{"description":"Use `generation_preset_name` instead of `prompt_name`.","type":"string","minLength":1,"example":"mockingbird-2.0","deprecated":true},"max_used_search_results":{"description":"The maximum number of search results to be available to the prompt.","type":"integer","format":"int32","minimum":0,"default":5},"prompt_template":{"description":"Vectara manages both system and user roles and prompts for the generative LLM out of the box by default. However, users can override the `prompt_template` via this variable. The `prompt_template` is in the form of an Apache Velocity template. For more details on how to configure the `prompt_template`, see the [long-form documentation](https://docs.vectara.com/docs/prompts/vectara-prompt-engine).","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n"},"prompt_text":{"description":"This property is deprecated in favor of clearer naming. Use `prompt_template`. This property will be ignored if `prompt_template` is set.","type":"string","example":"[\n {\"role\": \"system\", \"content\": \"You are a helpful search assistant.\"},\n #foreach ($qResult in $vectaraQueryResults)\n {\"role\": \"user\", \"content\": \"Given the $vectaraIdxWord[$foreach.index] search result.\"},\n {\"role\": \"assistant\", \"content\": \"${qResult.getText()}\" },\n #end\n {\"role\": \"user\", \"content\": \"Generate a summary for the query '${vectaraQuery}' based on the above results.\"}\n]\n","deprecated":true},"max_response_characters":{"description":"Controls the length of the generated output. This is a rough estimate and not a hard limit: the end output can be longer or shorter than this value. This is generally implemented by including the `max_response_characters` in the prompt, and the LLM's instruction following capability dictates how closely the generated output is limited.","type":"integer","format":"int32","example":300,"minimum":0},"response_language":{"description":"Languages that the Vectara platform supports.","type":"string","enum":["auto","eng","deu","fra","zho","kor","ara","rus","tha","nld","ita","por","spa","jpn","pol","tur","vie","ind","ces","ukr","ell","heb","fas","hin","urd","swe","ben","msa","ron"],"default":"auto","title":"Language"},"model_parameters":{"title":"ModelParameters","description":"The parameters for the model. WARNING: This is an experimental feature, and breakable at any point with virtually no notice. It is meant for experimentation to converge on optimal parameters that can then be set in the prompt definitions.","type":"object","properties":{"llm_name":{"description":"The model (e.g., `gpt-4`) to use for summarization. If specified, it will override the model behind `generation_preset_name`.","type":"string","example":"gpt4"},"max_tokens":{"description":"The maximum number of tokens to be returned by the model.","type":"integer","format":"int32","minimum":1},"temperature":{"description":"The sampling temperature to use. Higher values make the output more random, while lower values make it more focused and deterministic.","type":"number","format":"float"},"frequency_penalty":{"description":"Higher values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.","type":"number","format":"float"},"presence_penalty":{"description":"Higher values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.","type":"number","format":"float"}}},"citations":{"description":"Style the generator should use when making citations.","type":"object","properties":{"style":{"description":"The citation style that you want to use in the summary: \n* `numeric` - Citations formatted as simple numerals: \\[1\\], \\[2\\], etc.\n* `none` - Citations removed from text.\n* `html` - Citation formatted as a URL like `text_pattern`.\n* `markdown` - Formatted as `[text_pattern](url_pattern)`.\n","type":"string","enum":["none","numeric","html","markdown"]},"url_pattern":{"description":"The URL pattern if the citation_style is set to `html` or `markdown`. The pattern can access metadata attributes in the document or part. e.g. `https://my.doc/foo/{doc.id}/{part.id}` The default `url_pattern` is an empty string.","type":"string","example":"https://vectara.com/documents/{doc.id}"},"text_pattern":{"description":"The text pattern if the citation_style is set to `html` or `markdown`. This pattern sets the href for HTML or the text within `[]` in markdown, and defaults to N being the index of result if it is not set. The default citation style looks like `[N]()` for markdown. You can use metadata attributes in the `text_pattern`. For example, the pattern `{doc.title}` with citation style `markdown` would result in final citation output like `[Title]()` when the document's metadata includes `{\"title\":\"Title\"}`.","type":"string","example":"{doc.title}"}},"title":"CitationParameters"},"enable_factual_consistency_score":{"description":"Enable returning the factual consistency score with query results.","type":"boolean","default":true}},"title":"GenerationParameters"},"save_history":{"description":"Whether to save the query to history.","type":"boolean"}},"required":["search"]}},"required":["type","query_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineWebSearchToolConfiguration","description":"A web search tool configuration defined inline in the agent.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'web_search' for inline web search tool configurations.","default":"web_search"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the web search tool call such as limit etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"query":{"description":"The search query to execute.","type":"string","example":"latest AI developments 2024"},"limit":{"description":"Maximum number of results to return.","type":"integer","minimum":1,"maximum":20,"example":10},"provider":{"description":"Search provider to use.","type":"string","enum":["tavily"],"example":"tavily"},"include_domains":{"description":"List of domains to specifically include in search results. When specified, results will ONLY come from these domains. Supports exact domains (e.g., \"github.com\"), subdomains (e.g., \"docs.github.com\"), and wildcard patterns (e.g., \"*.github.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["github.com","docs.github.com","*.stackoverflow.com"]},"exclude_domains":{"description":"List of domains to specifically exclude from search results. Supports exact domains (e.g., \"spam.com\"), subdomains (e.g., \"bad.spam.com\"), and wildcard patterns (e.g., \"*.spam.com\"). Subpaths are not supported.","type":"array","items":{"type":"string"},"maxItems":50,"example":["spam.com","unreliable-source.com"]}},"additionalProperties":false,"title":"WebSearchToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineWebGetToolConfiguration","description":"A web get tool configuration defined inline in the agent for fetching content from URLs.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'web_get' for inline web get tool configurations.","default":"web_get"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the web get tool call. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"url":{"description":"The URL to fetch content from.","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"method":{"description":"HTTP method to use.","type":"string","enum":["GET","POST","PUT","DELETE","HEAD"]},"headers":{"description":"HTTP headers to include in the request.","oneOf":[{"type":"object","additionalProperties":{"type":"string"}},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"body":{"description":"Request body for POST/PUT requests.","oneOf":[{"type":"string"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"follow_redirects":{"description":"Whether to follow HTTP redirects.","oneOf":[{"type":"boolean"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"timeout_seconds":{"description":"Request timeout in seconds.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"head_lines":{"description":"Number of lines from start to include in response.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"tail_lines":{"description":"Number of lines from end to include in response.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"ssl_verify":{"description":"Whether to verify SSL certificates.","oneOf":[{"type":"boolean"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]},"max_content_bytes":{"description":"Maximum response size in bytes before truncation.","oneOf":[{"type":"integer"},{"title":"EagerReference","description":"A reference to a value resolved from the session context at the start of each turn.\nResolution occurs when a new message is submitted to the agent session, before any\nLLM processing begins. The resolved value remains constant throughout the turn and\nis not re-evaluated during the agent's response or subsequent tool calls within the same turn.\n","type":"object","x-vectaraParents":["AgentKeyedSearchCorpusCorpusKey","AgentKeyedSearchCorpusMetadataFilter"],"properties":{"$ref":{"type":"string","description":"A dot-notation path to the value in the session context.","example":"session.metadata.filters.user_access"}},"required":["$ref"],"additionalProperties":false}]}},"additionalProperties":false,"title":"WebGetToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineLambdaToolConfiguration","description":"A lambda tool configuration defined inline in the agent for executing user-defined functions.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'lambda' for inline lambda tool configurations.","default":"lambda"},"tool_id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments that will be passed to the lambda function. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","additionalProperties":true,"example":{"custom_param":"value"}}},"required":["tool_id","type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineStructuredIndexingToolConfiguration","description":"A structured indexing tool configuration defined inline in the agent for indexing into the Vectara platform.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'structured_indexing' for inline structured indexing tool configurations.","default":"structured_indexing"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Optional hardcoded arguments for the structured indexing tool call such as corpus_key etc. When specified, these values will be used instead of allowing the LLM to fill in those parameters.","type":"object","properties":{"corpus_key":{"description":"The key identifying the target corpus for document indexing. If not provided, will be filled in by the agent.","type":"string","example":"my-knowledge-base"},"document_id":{"description":"The unique identifier for the document within the corpus, preferably human readable IDs.","type":"string","example":"annual_report_2024"},"title":{"description":"The title of the document being indexed.","type":"string","example":"2024 Annual ESG Report"},"description":{"description":"A brief description or summary of the document content.","type":"string","example":"Comprehensive environmental, social, and governance report"},"metadata":{"description":"The metadata key-value pairs to associate with the document. If present, this gets merged with existing artifact metadata.","type":"object","additionalProperties":true,"example":{"doc_type":"annual_report","year":2024,"department":"sustainability"}},"document":{"description":"The structured document to index with full hierarchical content.","type":"object","additionalProperties":true,"example":{"id":"annual_report_2024","type":"structured","title":"2024 Annual ESG Report"}}},"additionalProperties":false,"title":"StructuredIndexingToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineSubAgentToolConfiguration","description":"A sub-agent tool configuration defined inline in the agent for invoking specialized sub-agents.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'sub_agent' for inline sub-agent tool configurations.","default":"sub_agent"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the sub-agent tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"message":{"description":"The detailed task instructions for the sub-agent to perform autonomously.","type":"string","example":"Review the code changes in pull request \\#123 for security issues"},"session_tti_minutes":{"description":"Time to idle in minutes before the session expires.","type":"integer","format":"int64","minimum":1,"example":60}},"additionalProperties":false,"title":"SubAgentToolParameters"},"sub_agent_configuration":{"description":"User-configurable settings for the sub-agent tool. These parameters are never exposed to the agent.","type":"object","properties":{"agent_key":{"description":"A unique key that identifies an agent.","type":"string","pattern":"[0-9a-zA-Z_-]+$","minLength":1,"maxLength":50,"example":"customer_support","title":"AgentKey"},"session_mode":{"description":"Controls session behavior for sub-agent invocations:\n- llm_controlled: LLM decides whether to create new or resume existing session\n- persistent: Always reuse the same session (created on first invocation)\n- ephemeral: Always create a new session on each invocation\n","type":"string","enum":["llm_controlled","persistent","ephemeral"],"default":"llm_controlled","example":"llm_controlled","title":"SubAgentSessionMode"},"session_metadata":{"description":"Optional metadata to associate with the sub-agent session. Can contain any key-value pairs.","type":"object","additionalProperties":true,"example":{"source":"parent_agent","task_type":"code_review"}}},"required":["agent_key"],"title":"SubAgentConfiguration"}},"required":["type","sub_agent_configuration"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineArtifactReadToolConfiguration","description":"An artifact read tool configuration defined inline in the agent for reading artifacts from the session workspace.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_read' for inline artifact read tool configurations.","default":"artifact_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to read.","type":"string","example":"art_abc123"},"encoding":{"description":"The encoding format for the content.","type":"string","enum":["raw","base64"],"example":"raw"},"start_line":{"description":"Optional starting line number (1-indexed).","type":"integer","format":"int32","example":100},"end_line":{"description":"Optional ending line number (1-indexed, inclusive).","type":"integer","format":"int32","example":200}},"additionalProperties":false,"title":"ArtifactReadToolParameters"},"tool_configuration":{"description":"User-configurable settings for the artifact read tool.","type":"object","properties":{"max_size_bytes":{"description":"Maximum file size in bytes for full reads without line ranges. Defaults to 256KB.","type":"integer","format":"int64","minimum":1,"maximum":10485760,"default":262144},"max_lines":{"description":"Maximum number of lines for range-based reads. Defaults to 200.","type":"integer","format":"int32","minimum":1,"maximum":10000,"default":200}},"title":"ArtifactReadConfiguration"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineArtifactGrepToolConfiguration","description":"An artifact grep tool configuration defined inline in the agent for searching through artifact content.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'artifact_grep' for inline artifact grep tool configurations.","default":"artifact_grep"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the artifact grep tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to search.","type":"string","example":"art_abc123"},"pattern":{"description":"The pattern to search for (supports grep regex).","type":"string","example":"error|exception"},"grep_options":{"description":"Optional grep command options.","type":"array","items":{"type":"string"},"example":["-i","-n"]}},"additionalProperties":false,"title":"ArtifactGrepToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineImageReadToolConfiguration","description":"An image read tool configuration defined inline in the agent for loading images into the conversation context.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'image_read' for inline image read tool configurations.","default":"image_read"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the image read tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the image artifact to view.","type":"string","pattern":"^art_[a-z0-9_-]+$","example":"art_photo_a3f2"},"detail":{"description":"Detail level for image processing.","type":"string","enum":["auto","low","high"],"default":"auto","example":"auto"}},"additionalProperties":false,"title":"ImageReadToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]},{"title":"InlineDocumentConversionToolConfiguration","description":"A document conversion tool configuration defined inline in the agent for converting document artifacts to various formats.","type":"object","properties":{"type":{"type":"string","description":"The type of tool configuration, which is always 'document_conversion' for inline document conversion tool configurations.","default":"document_conversion"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"argument_override":{"description":"Configurable parameters for the document conversion tool. If not overridden, they will be required by the LLM to fill in.","type":"object","properties":{"artifact_id":{"description":"The ID of the artifact to convert.","type":"string","example":"art_abc123"},"output_format":{"description":"Output format for the converted document.","type":"string","enum":["markdown","structured_document"],"example":"markdown"},"description":{"description":"Optional description for the converted artifact.","type":"string","example":"PDF converted to markdown"}},"additionalProperties":false,"title":"DocumentConversionToolParameters"}},"required":["type"],"x-vectaraParents":["AgentToolConfiguration"]}],"example":[{"type":"web_search","argument_override":{"limit":5,"include_domains":["github.com","stackoverflow.com"],"exclude_domains":["spam.com"]}}]},"example":{"customer_search":{"type":"corpora_search","argument_override":{"query":"customer support documentation"}}}},"model":{"title":"AgentModel","description":"Configuration for the model used in this step, including the model name and arbitrary parameters.","type":"object","properties":{"name":{"description":"The name of the model to use for this step.","type":"string","example":"gpt-4"},"parameters":{"description":"Arbitrary model-specific parameters that can be passed to the model.","type":"object","additionalProperties":true,"example":{"temperature":0.7,"max_tokens":1000,"top_p":0.9}},"retry_configuration":{"description":"Optional retry configuration for handling transient failures. When not provided, no retry is performed.","title":"RetryConfiguration","type":"object","properties":{"enabled":{"description":"Whether retry is enabled. Enabled by default to provide resilience against transient failures.","type":"boolean","default":true,"example":true},"max_retries":{"description":"Maximum number of retry attempts after initial failure.","type":"integer","minimum":0,"maximum":10,"default":3,"example":3},"initial_backoff_ms":{"description":"Initial backoff time in milliseconds before first retry.","type":"integer","minimum":100,"maximum":60000,"default":1000,"example":1000},"max_backoff_ms":{"description":"Maximum backoff time in milliseconds between retries.","type":"integer","minimum":1000,"maximum":300000,"default":30000,"example":30000},"backoff_factor":{"description":"Multiplication factor for exponential backoff between retries.","type":"number","format":"double","minimum":1,"maximum":10,"default":2,"example":2}}}},"required":["name"]},"first_step":{"title":"AgentStep","description":"A step in an agent's execution flow that defines how the agent processes and responds to input.","discriminator":{"propertyName":"type","mapping":{"conversational":{"title":"ConversationalAgentStep","description":"A step that receives instructions and responds through dialogue. This is a step that gets instructions and engages in conversation with users based on those instructions. This only type step supported, with no way to go next steps. A conversational step responds to an input following its instructions and uses the agent tools. The first response from the model will terminate processing the input.","type":"object","properties":{"type":{"description":"The type of step, which is always 'conversational' for this step type.","type":"string","default":"conversational","example":"conversational"},"instructions":{"description":"List of instructions that guide the agent's behavior in this step. If no instructions are given, the agent is instructed to be helpful and use tools.","type":"array","items":{"title":"AgentStepInstruction","description":"An instruction that can be used in an agent step, either by reference or defined inline.","discriminator":{"propertyName":"type","mapping":{"reference":{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},"inline":{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Base properties for creating an instruction, without the type discriminator field.","type":"object","properties":{"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["name","template"],"title":"InstructionRequestBase"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}}},"oneOf":[{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Base properties for creating an instruction, without the type discriminator field.","type":"object","properties":{"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["name","template"],"title":"InstructionRequestBase"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}],"example":[{"type":"reference","name":"Customer Support Initial Instruction","version":1},{"type":"inline","name":"Temporary On-the-fly Guideline","description":"A special instruction for this specific step only.","template_type":"velocity","template":"Please prioritize issues tagged with 'urgent' for the next hour."}]}},"output_parser":{"title":"AgentOutputParser","description":"Configuration for how the agent's output should be parsed and formatted.\n\nThe output parser determines how the agent's responses are processed before being returned to the user.\n","discriminator":{"propertyName":"type","mapping":{"default":{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]},"structured":{"title":"StructuredOutputParser","description":"Parses agent output as structured JSON conforming to a specified schema.\nUses the model's native structured outputs capability to guarantee valid JSON\nthat adheres to the provided schema. This is useful when you need the agent's\nfinal response in a specific format for downstream processing.\n\nWhen this parser is configured, the agent emits a StructuredOutputEvent instead\nof AgentOutputEvent. The StructuredOutputEvent contains the validated JSON content\nalong with the schema name for identification.\n\nNote: When using structured outputs, the agent can still use tools normally.\nThe schema constraint only applies to the agent's final text response.\nWhen streaming, the structured output is delivered as a single complete event\nrather than being streamed in chunks.\n","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'structured' for this parser type.","type":"string","default":"structured","example":"structured"},"json_schema":{"description":"Specification wrapper for a named JSON schema.","type":"object","required":["name","schema"],"properties":{"description":{"description":"A description of what the response format is for, used by the model to determine how to respond in the format.","type":"string"},"name":{"description":"A unique name identifier for this schema.","type":"string","pattern":"^[a-zA-Z0-9_-]+$","minLength":1},"strict":{"description":"When true, enforces strict schema adherence. The model will always follow the exact schema structure.\nWhen strict mode is enabled, the schema must follow these rules:\n- `additionalProperties: false` must be set on all object types\n- All properties must be listed in the `required` array\n- Maximum 100 properties total, with max 5 levels of nesting\n- Unsupported keywords: minLength, maxLength, pattern, minimum, maximum, minItems, maxItems\n- Root schema cannot use `anyOf` type\n","type":"boolean","nullable":true},"schema":{"description":"The JSON Schema definition that the model output must conform to.","type":"object","required":["type"],"properties":{"type":{"description":"The JSON type for this schema element.","type":"string","enum":["object","array","string","number","integer","boolean"]},"properties":{"description":"Property definitions when type is 'object'. Each key maps to a nested JsonSchemaDefinition.","type":"object","additionalProperties":{"description":"A JSON Schema definition for specifying data structure. Supports recursive schemas for nested objects.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"}},"required":{"description":"List of required property names when type is 'object'.","type":"array","items":{"type":"string"}},"additionalProperties":{"description":"Whether to allow additional properties beyond those defined.","type":"boolean","default":false},"items":{"description":"Schema for array items when type is 'array'.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"},"enum":{"description":"Allowed values for this schema element.","type":"array"},"description":{"description":"Human-readable description of this schema element.","type":"string"}},"title":"JsonSchemaDefinition"}},"title":"JsonSchemaSpec"}},"required":["type","json_schema"],"x-vectaraParents":["AgentOutputParser"]}}},"oneOf":[{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]},{"title":"StructuredOutputParser","description":"Parses agent output as structured JSON conforming to a specified schema.\nUses the model's native structured outputs capability to guarantee valid JSON\nthat adheres to the provided schema. This is useful when you need the agent's\nfinal response in a specific format for downstream processing.\n\nWhen this parser is configured, the agent emits a StructuredOutputEvent instead\nof AgentOutputEvent. The StructuredOutputEvent contains the validated JSON content\nalong with the schema name for identification.\n\nNote: When using structured outputs, the agent can still use tools normally.\nThe schema constraint only applies to the agent's final text response.\nWhen streaming, the structured output is delivered as a single complete event\nrather than being streamed in chunks.\n","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'structured' for this parser type.","type":"string","default":"structured","example":"structured"},"json_schema":{"description":"Specification wrapper for a named JSON schema.","type":"object","required":["name","schema"],"properties":{"description":{"description":"A description of what the response format is for, used by the model to determine how to respond in the format.","type":"string"},"name":{"description":"A unique name identifier for this schema.","type":"string","pattern":"^[a-zA-Z0-9_-]+$","minLength":1},"strict":{"description":"When true, enforces strict schema adherence. The model will always follow the exact schema structure.\nWhen strict mode is enabled, the schema must follow these rules:\n- `additionalProperties: false` must be set on all object types\n- All properties must be listed in the `required` array\n- Maximum 100 properties total, with max 5 levels of nesting\n- Unsupported keywords: minLength, maxLength, pattern, minimum, maximum, minItems, maxItems\n- Root schema cannot use `anyOf` type\n","type":"boolean","nullable":true},"schema":{"description":"The JSON Schema definition that the model output must conform to.","type":"object","required":["type"],"properties":{"type":{"description":"The JSON type for this schema element.","type":"string","enum":["object","array","string","number","integer","boolean"]},"properties":{"description":"Property definitions when type is 'object'. Each key maps to a nested JsonSchemaDefinition.","type":"object","additionalProperties":{"description":"A JSON Schema definition for specifying data structure. Supports recursive schemas for nested objects.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"}},"required":{"description":"List of required property names when type is 'object'.","type":"array","items":{"type":"string"}},"additionalProperties":{"description":"Whether to allow additional properties beyond those defined.","type":"boolean","default":false},"items":{"description":"Schema for array items when type is 'array'.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"},"enum":{"description":"Allowed values for this schema element.","type":"array"},"description":{"description":"Human-readable description of this schema element.","type":"string"}},"title":"JsonSchemaDefinition"}},"title":"JsonSchemaSpec"}},"required":["type","json_schema"],"x-vectaraParents":["AgentOutputParser"]}]}},"required":["type","instructions","output_parser"],"x-vectaraParents":["AgentStep"]}}},"oneOf":[{"title":"ConversationalAgentStep","description":"A step that receives instructions and responds through dialogue. This is a step that gets instructions and engages in conversation with users based on those instructions. This only type step supported, with no way to go next steps. A conversational step responds to an input following its instructions and uses the agent tools. The first response from the model will terminate processing the input.","type":"object","properties":{"type":{"description":"The type of step, which is always 'conversational' for this step type.","type":"string","default":"conversational","example":"conversational"},"instructions":{"description":"List of instructions that guide the agent's behavior in this step. If no instructions are given, the agent is instructed to be helpful and use tools.","type":"array","items":{"title":"AgentStepInstruction","description":"An instruction that can be used in an agent step, either by reference or defined inline.","discriminator":{"propertyName":"type","mapping":{"reference":{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},"inline":{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Base properties for creating an instruction, without the type discriminator field.","type":"object","properties":{"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["name","template"],"title":"InstructionRequestBase"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}}},"oneOf":[{"title":"ReferenceInstruction","description":"An instruction specified by reference.","allOf":[{"description":"A reference to an instruction that can be used by an agent. If version is not specified, the latest version will be used. Note that when the instruction is updated, agents using it will need to be updated to reference the new version explicitly.","type":"object","properties":{"id":{"description":"The unique identifier for an instruction.","type":"string","pattern":"ins_[0-9a-zA-Z_-]+$","example":"ins_customer_support_init","title":"InstructionId"},"version":{"description":"The specific version of the instruction to use. If not specified, the latest version will be used.","type":"integer","minimum":1,"example":1}},"required":["id"],"title":"InstructionReference"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"reference"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]},{"title":"InlineInstruction","description":"An instruction defined inline in the request.","allOf":[{"description":"Base properties for creating an instruction, without the type discriminator field.","type":"object","properties":{"name":{"description":"The human-readable name of an instruction.","type":"string","minLength":1,"maxLength":50,"example":"Customer Support Initial Instruction","title":"InstructionName"},"description":{"description":"A detailed description of what this instruction does.","type":"string","example":"Provides initial context and guidelines for customer support interactions"},"template_type":{"description":"The templating engine used for instructions.","type":"string","enum":["velocity"],"default":"velocity","example":"velocity","title":"TemplateType"},"template":{"description":"The instruction template content using the specified template engine.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.key` - Agent key\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map (includes user-provided context from test/runtime)\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n- `$tools` - List of tool maps, each with `name` and `description` fields\n\nExample: `You are a helpful customer support agent. Agent: $agent.name. Today is $currentDate. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end`\n","type":"string","example":"You are an expert customer support agent for $agent.name. Available tools: #foreach($tool in $tools)${tool.name}#if($foreach.hasNext), #end#end","title":"InstructionTemplate"},"metadata":{"description":"Arbitrary metadata associated with the instruction.","type":"object","additionalProperties":true,"default":{},"example":{"version":"1.0.0","author":"support-team"}},"enabled":{"description":"Whether the instruction should be enabled upon creation.","type":"boolean","default":true,"example":true}},"required":["name","template"],"title":"InstructionRequestBase"},{"type":"object","properties":{"type":{"type":"string","description":"The type of instruction, used for discrimination.","default":"inline"}},"required":["type"]}],"x-vectaraParents":["AgentStepInstruction"]}],"example":[{"type":"reference","name":"Customer Support Initial Instruction","version":1},{"type":"inline","name":"Temporary On-the-fly Guideline","description":"A special instruction for this specific step only.","template_type":"velocity","template":"Please prioritize issues tagged with 'urgent' for the next hour."}]}},"output_parser":{"title":"AgentOutputParser","description":"Configuration for how the agent's output should be parsed and formatted.\n\nThe output parser determines how the agent's responses are processed before being returned to the user.\n","discriminator":{"propertyName":"type","mapping":{"default":{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]},"structured":{"title":"StructuredOutputParser","description":"Parses agent output as structured JSON conforming to a specified schema.\nUses the model's native structured outputs capability to guarantee valid JSON\nthat adheres to the provided schema. This is useful when you need the agent's\nfinal response in a specific format for downstream processing.\n\nWhen this parser is configured, the agent emits a StructuredOutputEvent instead\nof AgentOutputEvent. The StructuredOutputEvent contains the validated JSON content\nalong with the schema name for identification.\n\nNote: When using structured outputs, the agent can still use tools normally.\nThe schema constraint only applies to the agent's final text response.\nWhen streaming, the structured output is delivered as a single complete event\nrather than being streamed in chunks.\n","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'structured' for this parser type.","type":"string","default":"structured","example":"structured"},"json_schema":{"description":"Specification wrapper for a named JSON schema.","type":"object","required":["name","schema"],"properties":{"description":{"description":"A description of what the response format is for, used by the model to determine how to respond in the format.","type":"string"},"name":{"description":"A unique name identifier for this schema.","type":"string","pattern":"^[a-zA-Z0-9_-]+$","minLength":1},"strict":{"description":"When true, enforces strict schema adherence. The model will always follow the exact schema structure.\nWhen strict mode is enabled, the schema must follow these rules:\n- `additionalProperties: false` must be set on all object types\n- All properties must be listed in the `required` array\n- Maximum 100 properties total, with max 5 levels of nesting\n- Unsupported keywords: minLength, maxLength, pattern, minimum, maximum, minItems, maxItems\n- Root schema cannot use `anyOf` type\n","type":"boolean","nullable":true},"schema":{"description":"The JSON Schema definition that the model output must conform to.","type":"object","required":["type"],"properties":{"type":{"description":"The JSON type for this schema element.","type":"string","enum":["object","array","string","number","integer","boolean"]},"properties":{"description":"Property definitions when type is 'object'. Each key maps to a nested JsonSchemaDefinition.","type":"object","additionalProperties":{"description":"A JSON Schema definition for specifying data structure. Supports recursive schemas for nested objects.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"}},"required":{"description":"List of required property names when type is 'object'.","type":"array","items":{"type":"string"}},"additionalProperties":{"description":"Whether to allow additional properties beyond those defined.","type":"boolean","default":false},"items":{"description":"Schema for array items when type is 'array'.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"},"enum":{"description":"Allowed values for this schema element.","type":"array"},"description":{"description":"Human-readable description of this schema element.","type":"string"}},"title":"JsonSchemaDefinition"}},"title":"JsonSchemaSpec"}},"required":["type","json_schema"],"x-vectaraParents":["AgentOutputParser"]}}},"oneOf":[{"title":"DefaultOutputParser","description":"Uses native tool calling capabilities and returns output directly to the user. This parser leverages the underlying model's built-in tool calling functionality and passes responses through without additional processing.","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'default' for this parser type.","type":"string","default":"default","example":"default"}},"required":["type"],"x-vectaraParents":["AgentOutputParser"]},{"title":"StructuredOutputParser","description":"Parses agent output as structured JSON conforming to a specified schema.\nUses the model's native structured outputs capability to guarantee valid JSON\nthat adheres to the provided schema. This is useful when you need the agent's\nfinal response in a specific format for downstream processing.\n\nWhen this parser is configured, the agent emits a StructuredOutputEvent instead\nof AgentOutputEvent. The StructuredOutputEvent contains the validated JSON content\nalong with the schema name for identification.\n\nNote: When using structured outputs, the agent can still use tools normally.\nThe schema constraint only applies to the agent's final text response.\nWhen streaming, the structured output is delivered as a single complete event\nrather than being streamed in chunks.\n","type":"object","properties":{"type":{"description":"The type of output parser, which is always 'structured' for this parser type.","type":"string","default":"structured","example":"structured"},"json_schema":{"description":"Specification wrapper for a named JSON schema.","type":"object","required":["name","schema"],"properties":{"description":{"description":"A description of what the response format is for, used by the model to determine how to respond in the format.","type":"string"},"name":{"description":"A unique name identifier for this schema.","type":"string","pattern":"^[a-zA-Z0-9_-]+$","minLength":1},"strict":{"description":"When true, enforces strict schema adherence. The model will always follow the exact schema structure.\nWhen strict mode is enabled, the schema must follow these rules:\n- `additionalProperties: false` must be set on all object types\n- All properties must be listed in the `required` array\n- Maximum 100 properties total, with max 5 levels of nesting\n- Unsupported keywords: minLength, maxLength, pattern, minimum, maximum, minItems, maxItems\n- Root schema cannot use `anyOf` type\n","type":"boolean","nullable":true},"schema":{"description":"The JSON Schema definition that the model output must conform to.","type":"object","required":["type"],"properties":{"type":{"description":"The JSON type for this schema element.","type":"string","enum":["object","array","string","number","integer","boolean"]},"properties":{"description":"Property definitions when type is 'object'. Each key maps to a nested JsonSchemaDefinition.","type":"object","additionalProperties":{"description":"A JSON Schema definition for specifying data structure. Supports recursive schemas for nested objects.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"}},"required":{"description":"List of required property names when type is 'object'.","type":"array","items":{"type":"string"}},"additionalProperties":{"description":"Whether to allow additional properties beyond those defined.","type":"boolean","default":false},"items":{"description":"Schema for array items when type is 'array'.","type":"object","required":["type"],"properties":"circular()","title":"JsonSchemaDefinition"},"enum":{"description":"Allowed values for this schema element.","type":"array"},"description":{"description":"Human-readable description of this schema element.","type":"string"}},"title":"JsonSchemaDefinition"}},"title":"JsonSchemaSpec"}},"required":["type","json_schema"],"x-vectaraParents":["AgentOutputParser"]}]}},"required":["type","instructions","output_parser"],"x-vectaraParents":["AgentStep"]}]},"metadata":{"description":"Arbitrary metadata associated with the agent for customization and configuration.","type":"object","additionalProperties":true,"example":{"department":"customer_service","version":"1.2.0","owner":"support-team"}},"enabled":{"description":"Whether the agent is currently enabled and available for use.","type":"boolean","default":true,"example":true},"created_at":{"description":"Timestamp when the agent was created.","type":"string","format":"date-time","example":"2024-01-15T10:30:00Z"},"updated_at":{"description":"Timestamp when the agent was last updated.","type":"string","format":"date-time","example":"2024-01-16T14:45:00Z"}},"required":["key","name","tool_configurations","model","first_step","enabled"],"title":"Agent"}}}},"400":{"description":"Agent update request was malformed or contains invalid references.","content":{"application/json":{"schema":{"description":"Error returned when a request contains invalid parameters or violates schema validation.","type":"object","properties":{"field_errors":{"description":"The errors that relate to specific fields in the request.","type":"object","additionalProperties":{"type":"string"}},"messages":{"type":"array","items":{"title":"message","type":"string"}},"request_id":{"description":"The ID of the request that can be used to help Vectara support debug what went wrong.","type":"string"}},"title":"BadRequestError"}}}},"403":{"description":"Permissions do not allow updating this agent.","content":{"application/json":{"schema":{"description":"A general error response with an error code and message.","type":"object","properties":{"messages":{"description":"The messages describing why the error occurred.","type":"array","items":{"title":"message","type":"string","example":"Internal server error."}},"request_id":{"description":"The ID of the request that can be used to help Vectara support debug what went wrong.","type":"string"}},"title":"Error"}}}},"404":{"description":"Agent not found.","content":{"application/json":{"schema":{"description":"Error returned when a requested resource does not exist.","type":"object","properties":{"id":{"description":"The ID cannot be found.","type":"string"},"messages":{"type":"array","items":{"title":"message","type":"string"}},"request_id":{"description":"The ID of the request that can be used to help Vectara support debug what went wrong.","type":"string"}},"title":"NotFoundError"}}}}}}
>
diff --git a/www/docs/rest-api/update-api-key.api.mdx b/www/docs/rest-api/update-api-key.api.mdx
index a68bf20af..5c3df531b 100644
--- a/www/docs/rest-api/update-api-key.api.mdx
+++ b/www/docs/rest-api/update-api-key.api.mdx
@@ -5,7 +5,7 @@ description: "The Update API Key API lets you enable or disable specific API key
sidebar_label: "Update an API key"
hide_title: true
hide_table_of_contents: true
-api: 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
+api: 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
sidebar_class_name: "patch api-method"
info_path: docs/rest-api/vectara-rest-api-v-2
custom_edit_url: null
@@ -65,7 +65,7 @@ This capability is useful for scenarios like maintenance windows, or when your t
diff --git a/www/docs/rest-api/update-app-client.api.mdx b/www/docs/rest-api/update-app-client.api.mdx
index 40e0bdd65..4868ccc67 100644
--- a/www/docs/rest-api/update-app-client.api.mdx
+++ b/www/docs/rest-api/update-app-client.api.mdx
@@ -5,7 +5,7 @@ description: "Update the configuration or settings of an existing application cl
sidebar_label: "Update an App Client"
hide_title: true
hide_table_of_contents: true
-api: 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
+api: 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
sidebar_class_name: "patch api-method"
info_path: docs/rest-api/vectara-rest-api-v-2
custom_edit_url: null
@@ -54,7 +54,7 @@ Update the configuration or settings of an existing application client.
@@ -62,7 +62,7 @@ Update the configuration or settings of an existing application client.
diff --git a/www/docs/rest-api/update-instruction.api.mdx b/www/docs/rest-api/update-instruction.api.mdx
index 9f9da7cba..8a2efd049 100644
--- a/www/docs/rest-api/update-instruction.api.mdx
+++ b/www/docs/rest-api/update-instruction.api.mdx
@@ -1,7 +1,7 @@
---
id: update-instruction
title: "Update instruction"
-description: "Update an existing instruction's template, metadata, and configuration. Updated templates may include Velocity variables such as `$tools` or metadata references. Each update creates a new version, allowing agents to continue using existing versions until explicitly changed."
+description: "Update an existing instruction's template, metadata, and configuration. Updated templates may include Velocity variables such as `\\$tools` or metadata references. Each update creates a new version, allowing agents to continue using existing versions until explicitly changed."
sidebar_label: "Update instruction"
hide_title: true
hide_table_of_contents: true
@@ -81,4 +81,4 @@ Disabling an instruction prevents it from being added to new agents, but agents
-
+
\ No newline at end of file
diff --git a/www/docs/rest-api/update-llm.api.mdx b/www/docs/rest-api/update-llm.api.mdx
new file mode 100644
index 000000000..86dbcc5b3
--- /dev/null
+++ b/www/docs/rest-api/update-llm.api.mdx
@@ -0,0 +1,90 @@
+---
+id: update-llm
+title: "Update an LLM"
+description: "Update an existing LLM's configuration. This endpoint allows partial updates - only provide fields you want to change. Only the name field is immutable."
+sidebar_label: "Update an LLM"
+hide_title: true
+hide_table_of_contents: true
+api: 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
+sidebar_class_name: "patch api-method"
+info_path: docs/rest-api/vectara-rest-api-v-2
+custom_edit_url: null
+---
+
+import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint";
+import ParamsDetails from "@theme/ParamsDetails";
+import RequestSchema from "@theme/RequestSchema";
+import StatusCodes from "@theme/StatusCodes";
+import OperationTabs from "@theme/OperationTabs";
+import TabItem from "@theme/TabItem";
+import Heading from "@theme/Heading";
+
+
+
+
+
+
+
+
+
+
+Update an existing LLM's configuration. This endpoint allows partial updates - only provide fields you want to change. Only the name field is immutable.
+
+The updated LLM will be tested before saving to ensure credentials are valid.
+
+**Updatable fields:**
+- `description` - LLM description
+- `type` - LLM type (openai-compatible, vertex-ai, etc.)
+- `model` - Model identifier
+- `uri` - API endpoint
+- `auth` - Authentication credentials (including service account key_json)
+- `headers` - Additional HTTP headers (for openai-compatible and anthropic types)
+- `enabled` - Whether the LLM is enabled
+- `capabilities` - Model capabilities (image support, context limit, tool calling)
+
+**Immutable fields:**
+- `id` - System-generated identifier
+- `name` - LLM name
+
+Built-in LLMs (system-provided models) cannot be updated.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/www/docs/rest-api/update-tool.api.mdx b/www/docs/rest-api/update-tool.api.mdx
index e9d0f34cb..6fd234dcf 100644
--- a/www/docs/rest-api/update-tool.api.mdx
+++ b/www/docs/rest-api/update-tool.api.mdx
@@ -5,7 +5,7 @@ description: "Update an existing tool’s configuration, including its metadata,
sidebar_label: "Update tool"
hide_title: true
hide_table_of_contents: true
-api: eJztXf9yG7e1fhXMTmdiqyRFyXbactrMlWWn1dw40VhyMq3lS4G7hyQqLLABsKIYjWb6Gn29Psmdc4D9QXFJyVGSsVXkj1jcxQIHwMH5PhwcANeJ4zObjN4np1pLm3zoJVd9WxaFNg6yPi9E/wKWfbcsABMdg7FacYnpMrCpEYUTWiWj5F2RcQeMKwZXwjqhZsxpLf/zr39blmo1FbPScEzbY0KlsswwhXCW5eB4xh3vMVB8IiFj1nFX2h7Thmk3B8MKowswToAdMCoHv+WUP8t1JqYCLJvrBeMzUM6ylCsm1KW+ACYcy0qD6VOtLsFYkmGQ9BLMkn4cZckoKUl8bIOklxTc8BwcGGyY60Rg/ebAMzBJL1E8h2SUvIUfS7Cufypy0KVLbrfH6RzYwfERWwgpWc4vgHE2AesYTKfaOOY0S3VeSHDA3ByY8fkxoeinLSDFemXMQqpVZrE1nMiB6dKh+DadQ86T0XXi+yYRysGMJMyFEnmZJ6O9m16C+QoDWTKacmnhpne/+vTfCCmF/fWqlVP+D6lbXZWCu3lTEdSKscg6JS+V+LEEJjJQDsUwTE9JLlIlp5lXA5ShaTdnSuiQyTpUK9IW58AoKlqO3w/7f+L9nw76/xj3P/z+d0kvgSuODRLeGz4bW+AmnSc3Nx98OWDdS50tMfPbxaZaOVAOX/GikCIlld39p8U6XbekWq1s6M2mSmG4DNiJH9vWP8eB8ebwmHGVseOlm2vFJM8nmU9tsSEygRnnQnGnDZYURuPy29De2By9JOdFge0xuk7ytNgskZ78E1LHpto0ErSNBkpDkia9qqX9J9jStR1o+uF2OadzYZmd61JmjMsFX1o2AXaep8V5K8u68zKY8lK6ZERStzsLf9/0kmCU1gv6YQ5knGr1EbayYK2CJlpL4Cq5WRmK7/1rMraXkDpu+DE3aLvw3bvaFoVGw4ROOBLLv3yTFu33N73Ed9v9NKHVxT3GpdQLbHlvSb2CWT+QM+jdNt6oKZXJHpypM/XDHBQlxQbwRWRo44vSUWJdOvzTa6pl3ADjpdM5dyLlUi6ZgT7qmL4EAxmbGp2zaalSLI7VlphhgzGulHZewMGZ+mU1xDfKHUoSWrmtJ+HRR6lKKH0CNeZpwzJhN2lPqzw0Cze1OtwuyWtHxkoLpj81AlQml5hzIfmSoYWkkVcJ0lXZXKhvQM3cPBnt4bC+qn7tv3jRrndV1CGXaSnRODCCz5tbhneTiK2naIUXc+6aBso02C7hmuIPVKVswXjj9wWYqTa5ZTy75CqFjKVBOlQZFA0VdbNMpMZVA4VRUunigL2zcB/NpAxqFQ+KzyoVX64o7oZWb6qZwRTpTwrWPrnksoQRm0rN3VPW/4plInWjM8UYYwZcaRS7PksM2FK6s2TEKD3bYfs3Z4r08wrSEkUcr4zp9eZ4XSVcHfx1y9RNcucIzPnVuCkWMX4cMH+91Df8CqGd1ek9JxCqokCt4roIASmr//vZcNgatc+GrRZ9NryhhOMccm2W43yyWRKfhJWWz0iOHGZ8snRwlyTDlih7w/3nLVn2hm1h9obDm2YwN+1+uNI/vzB2fEN6vQIfWIJW8N2U+G4E7t8QuCNeR7yOeB3xOuJ1xOt74/VamltoTgLYQivru3V/OOyyq2HwzjlaVGgGqC1TVOBpKeUSm+5nOiEOWiMdXXITQDuXscmyctQ5XZmAyjOUMp76UYnev8pF90s6Ig4UUZUnb3QGkh1i1a4cOzba6VTLp22ZtVKQejHhCn08XNK3Fgy6Eml84QuVIRCGQcalcNRqXMpOQvWSW2i5NJmdcxNaRcpQ/LJYUdoNo1V0YNe7NRcXmbeN8NF4r/4P3VODnTWP1d7+M3j+4ss/9OGPf5r09/azZ33+/MWX/ef7X36593zvD8+Hw2HSKCSq4lGG9ss75O4n4GaE2wyefytzrvoGeIY4zChV26HXmddWrDtgGTgu5H3gjsgSOp3FinbfVejYQV5I7jrq8z1InQq3ZFUSapkZKBoFasaypeK5SIMMzbd2wIjVWXA95pAu1TkIywzqJ2oYd8yUiow0DjyjszKFVqWaDIkoHlxyIalla8EuuRH4xI7OVJ+d/46G8QD7+Zz12QH+ItLSfluRzyZF9YTlvPApLViLxV7AEpOd+J/sApar79t5VYnWc0tLg/b1FXck1qH/ydC27VYQdXTyHfvjl8M9bOKcO/YEBrNBj50l+8P9F/29YX//+enei9Gz4ej5i3+cJU+xQV77YTFiZ8kJeXB9u1WYizYAhxrVsdU0TCvWluks6WQU7fHzqumK00pdPnZKE0qUy5qzosLyulNpImehk73W8BfYa2oAgWHMXQeMiBys43nBFqiDtQgLbln4rsvu+HZHxsQd9LFbsIYBgT66IMmtq+Dr/qXRpGe8Cb4QHwMZJDjIYCoUWCoYrgpIESr9vMk6U6auNBvZem3AeZYJjxLHLVNOzXyLNdASBpnQVaPVqMGtCnxY1SGEGZpffgqTcY+Y448FrIC0d+GWNWu4ZU17pWW1ZU4oU49RrXnAumjfFb6r2FwgW+ETXTov1wTm/FLo0uzWc+s70RqBaqyVXI4xu/XSjqaM1nxuwYzSzk/1l7RcCupSGK1ytC4d3grSFdJGcQn3Lijny5qItb4PI8p2FyQyyAuNxPCucgwU4OdrXErLFsLNmUXLyM3Msjm/BKY0a4YGLiZCuqF+ugA1XmgjszurR5ZQOTAcWRwVW/M41DZaUe52+Wwep40uBV/OQUuFuqn/zQbyT/PvD2sZ+nmvKbThlQJ3MJWQgtkWFJGd8g/IUBldzubse19w/YXTbCpUxgxIuOQKF2e9fQxTxEhcI3GNxDUS10hcI3F9JMR1FU7v4LC3sLcNK7dePQzuD31mfkhWwL+AyRbQX8BkK+CD5zsK/EJdRPiI8BHhI8JHhI8I/8gRvsHNO9C9BbBtOGk9fhiq/wCTVUTfFJl54Ff9fd8160cr62V+bRUHiK1cYvXq2eBMfdOK1UUDiuYDPQJpaaDHLFfZRF9B1nYaeTeIAatLkwKTIheU1WE9Jm0VIRwCgp8N9vb9VxxHrl8hBIfQI8XEcINelE8vuiMykN+egdQ6/LEsRHI1K/msUz+Ikc4Mz3MkGlXKqi5rUR+NIqOvdUWJUdOqrS2d0SoKIwDeJwV94/e4VLoWnrX7PzyK6Pc5od+2WJhtTt+62+9CLSR8rVTcGL5c24xyRNIRN/R8F+MtBjSc5wbsXMuslYcq8wmFrNxuh5A0RA5hFadCOsC2HYQ4EB/O97C2rEICm8bEoL+f35o3vaT6cEwFim6L86p+h6OdtyBSbwBHj39duEfzhp2dYA5eNy9GOzvIzcMLjOsQWo3IYODzOsZnxE7qfEuLpmj2vbDaW2iCXJyGCKt99Bp+u7NzgMGauNtJZ6UEu7MzYucYNnPeY+c5d3P8FzUfFR//TrWU4ANg8KdwYAjc8QfVvvphKHn1mVtiyMs5lvnGx0ARro/Y3nD45iV7UoeFoX0pC2y/vb++fLpSP4re0qUbsWfDetNZ15fPhvV7yuFbcAttLhinoKERexXiIlcaBhN+LSQwu7QO8jrxW+BZnww1zgu14WbJMDdb8JTmat9qlpbW6ZwVPL3wgV3WcelbubHn7EndB6lW1hkulHvqO/0UI/5ayzShyzE+8I5gQLIiuyshsU1kIOZxUpfv+yAUXqbOjtj5N8I67J9XIqV/qwVF/PudElpRlx1hxZ0fVFVXBo3xFtWrm99Xd+U9MPfgWz8fU38lMO1Czu74ztM2l8AkYfS+Dawcx9Gb0lbminF2XgVdPj3HpT2zZIUWyt2KBl3r7XZg6D0CQc/UcZMaI6MLbq03QBewXGiT4ZJmmVNwW85dOqdw11VuZMVMcTSj3ZGl3bGkCBUjJoUlN0qw+yG2lP2FDZ+GuFJv/yFjf2Hvr6hCV2gUCWnElF2xr5rPP9wKRaVf+N8XqS6V+2LEJKgnVY5Pe60E/BIMn8EXI2bLvEnCdlc/wSJriUBaYMN2LtWrMYr3xahO6pOEKNhLLkVG3TX2G4O71aVJFvYPV8pM6rNNP0Fl/gllQVNX/9eKyvpHq/KAMdp0yIPDHotvyeSTYntUMuEACiW1xKvognCQt2ZNNVWOYcGPJiy4ts/BCrZ8CF+HnmkIULdTorfFFdPKvvHKdNGue/o1mjBkCuipuGA2FiqDqxBxuzkAmFLhkkL9Ict0GkylUMFIVqEK6FekaBTyO2AgMuqwM1oytMX1p012PVQvMuq91pECjlzCfheMyPnM93lc/niMzoe4/BGXP+LyR3QA/Vcuf3Tg8R3O8y4EbwNM1/uHrYyc1DkehQxrNlFOxjQst3MIW/CFQl8PbRbiUvxEm5UmfT+ynWZzrjIJ1VS5x/JSOtG3DgrmuL2wNL1TOtellTihO6k+xumaUI4TTcUpoQNiHLg3qPZ2YZJgRXDEBmxpC0Muj2onE3EFgj0qWoqLwPwNXApY9AKASFyNIavljzyqnG1LiW48skiRsETCEglLJCyRsETC8lgISwX5d9GUmhqskJP66QMpSTkhQ1IREW6cmPLUjb263bGnmdKgI9h/ZANTQM6APKDl6UCjEnZRr8R3WKdNGE4GpmCADkHAQWqioyLifsT9iPsR9yPuPyLcv4Wwd6D/bTxuA8vtdw9jAgcht0PKbI0PIERsZwOYouECNdrXzgM/qIMZamIcwgqHhCuBQ8qKn8DTAa5wQT4Y58gFIheIXCBygcgFIhd4hFwAje59mQAhcScPoDe/DAvAsMQ1DjAz0HWe2LajF7iqGcEXtuYEIXzUQBHOwvBxdH68S4kBTCrjJvNJIgeIHCBygMgBIgeIHOARcwDEuvtyAELiTg5Ab34ZDvBXA/VxTBQ7eA8ngNToBKDUrWWBOryxfQdRE16gDcN4AH+gOo4pLpdWRMCPgB8BPwJ+BPwI+I8J8BsovQPtW5jbhpPW44fh/BFm1J7oV5sKxgGmN5j3VgAApXO22Y7QYP6T41df99gP2mQ9dqwXYI5xP1qPgUsHeMg42UFd2mA8ItpHtI9oH9E+on1E+8eE9h2Yegfsd6Hwyq7ojvcPIwKvQo6HdYaeEWy7FS3eIhI5QeQEkRNEThA5QeQEH8cJ4i0i8RaReIvIb3CLyDoxiZeGRJ4aeWrkqZGnRp4aeeodPPWzuTRk3bDHe0IiqEdQj6AeQT2CegT1z+KekHVDHq8HideDPCriEa8HiaD3iYNevB7k49syXg8SrweJ14PE60Hi9SDxepB4PUi8HiReD/Lffj3Itk0z8SKQ6GaI6xtxfSOub0RXT1zfiBeBtC8C2Xq2Vrz8I5KUSFIiSYkkJZKUSFI+b5LyKV7+sfWkj3jVR0T5iPIR5SPKR5SPKH8/lP+srvrYhv7xao+I/RH7I/ZH7I/YH7H/47D/U77aY+tyQ7zKI2J+xPyI+RHzI+ZHzP8ozP+Ur/LYhvnx9o6I8RHjI8ZHjI8YHzH+87q9Y+vqfbynI+J6xPWI6xHXI65HXH9s93Tcap5wssXz4bCj9qhWXpsYCgLWkZblXKIi4WEWhqb2XKh6/20Tr0fIHVz/mDkvCilScgjs4rkN+GyT0r3GLb5hNzVkXtN5LcRama195+RhwHMjkFJ4tW22Dt/NJaYCZLZxMzKOhbD7OMQ6ELo43WxloAxQMtL/IPH9h0DXJuUcLG63bb9d39oc+jSkXUffoExgXeeR8Fizo1cVbagauh2SiahOG0dAFvWO02oFJ4NJOfPsYEEHYxmNx6Z0SVFJ+pJnb30x1Nm1Ij5bF+4YTC4I5pCV0vHsHA8D8cqJlMCjfTA2P1PnDupdJhC0zxZa2RCZwsO+c78vBTEkNPU9dny3+m+91au3gXhMsDqL+dLbVypRpwRi27e239H/bWNzpMKB7P6of1/K4BNUkVXFeL7BQqE6THWpsl/L3kDWnPFW3w8AV6J7XN89NwkNmdLhGdhutfRrjPlxDv1vtfsaq9z07w2C2hSM6tvsoj8zuiz6ft6U0DE9ycr7HNxcZ1UCj1Ck4Q6U9fdKvL9OLmCZjJKrfn2ySp8Xon8By37Y708nPSF2HoOxaIiTD0gUqu+6xKk/CmJ1pm+L13wQxEQA9gnw7BY81sTPPufJKNm93N+lfHev8Z+xyG6S6iIPX6fSyGSUzJ0r7Gh3lxdiEJjAQGjKujq4h1IfFOJ/YXlQYubvqW7f4Y99+tVKfIKjwitZlaDhS5we3D4vy6cLRw+hbgS1QJIp9YLySqVAAmKA5rhcem3VF6DerVajdPNWPXZ9kbuUEuuf6oKE83rSrlQzKOghUUHMGHhG508EDbmqep60EG1BQJ6XOlu+XjuMLFyoUs0yAvnH057bw60aB29fn5yyg+MjdrneStU7i9PMS4HAwZzh9aUbdFJGOEkEdYB48wIm/Qmno3AaC4anQv5dlzQi6WoJdJLoKdOl8QVwx8679QK16s/YAKAyOsjnq3OGYx5lrh75E3h06SSdnxnYS+XNseWkOibCmwlh6eu3FdWrTpHwcysDiGViprzVmND52aWg600wwVQTePMm3gPbaVrKZgJBM+8+iRkmcNVpYjin29m53N/ZGdA0t12x85A1bnydCzA4ORUpl+3zLnwMCp4kZlL0QJH7YlnMgZqYsa/pgjlSiR473w3Hke+O8I/Sji9guVufwHHu95zW198m+4PhgJxAYHL73RRvvREptFS96pVU57sSZlzuUtK+nvatT7xLpk7qGSnb6njPdGoH7SxEPquyxPtZspybi0FBcM+lO4Ur1yhqQjY24+biIbmPpZjN3bYyiJynhMCQc4ElTAGyCU8v/qeVOw3FQluXc0LmMFTf+ekGmr/bo+m6AfcqGZIyxGGigFrL//zr33b1gJ4eEyqVJZ5KRHf5NIecVO4Af8KR31BM3oMGwAfsXUUww5l4dCsQeivR4xW2Q+OQFOpSXwD6wLLShKPL6uXPFhjiKuhuIbmg45io/a+D9X+fkAGp4G4UEADndHNtHSa4vka78M7Imxt8/GMJBg39BwQZ75HyftZwaFwymnJpYUszPqkOAXtKQ61c80m23Ig4lD2GbaxPZYzVsoV7SS8gZFWhmw83vcpEf5y4ldVaCIkXKF2gOZ0gWYHpFKmI02E/u4MVLhPMWZij0ZG7/kg+9FKgJ0yXbmOlvPABMPqn/mC/dv3Inf7b1yEXUooHV6T/hrK5XR+f9tBL3T9d4UvrxLr54iBNoXBb07b5z/HB6eHfkl4y0dmSZkp0gl1i+CLp0f9JfUIgICagZ+3j+BKfKf73/0qvOyQ=
+api: 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
sidebar_class_name: "patch api-method"
info_path: docs/rest-api/vectara-rest-api-v-2
custom_edit_url: null
@@ -62,7 +62,7 @@ Update an existing tool’s configuration, including its metadata, enabled statu
threshold]\n return {\n 'count': len(filtered),\n 'average': sum(filtered) / len(filtered) if filtered else 0,\n 'filtered_data': filtered\n }\n"},"validation_status":{"description":"The validation status of the code.","type":"string","enum":["pending","valid","invalid"],"example":"valid"},"validation_errors":{"description":"List of validation errors if the code is invalid.","type":"array","items":{"type":"string"}},"execution_configuration":{"description":"Execution configuration for the function.","type":"object","properties":{"max_execution_time_seconds":{"description":"Maximum execution time in seconds.","type":"integer","minimum":1,"maximum":300,"default":30,"example":30},"max_memory_mb":{"description":"Maximum memory usage in megabytes.","type":"integer","minimum":10,"maximum":1024,"default":100,"example":100}},"title":"ExecutionConfiguration"}},"required":["language","code"],"title":"FunctionDefinition"}},"required":["type","id","name","description","language","enabled","function_definition"],"x-vectaraParents":["Tool"],"title":"LambdaTool"},"structured_indexing":{"description":"A tool that indexes structured documents into the Vectara platform with full control over document structure, sections, metadata, tables, and images.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `structured_indexing`.","type":"string","default":"structured_indexing","example":"structured_indexing"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"StructuredIndexingTool"},"sub_agent":{"description":"A tool that spawns a specialized sub-agent to handle complex, multi-step tasks autonomously.\nSub-agents maintain separate context from the main agent and can be specialized for specific types of tasks like code review, general research, or output styling.\n","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `sub_agent`.","type":"string","default":"sub_agent","example":"sub_agent"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"SubAgentTool"},"artifact_create":{"description":"A tool that creates artifacts from text or structured data content that can be stored and referenced later.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_create`.","type":"string","default":"artifact_create","example":"artifact_create"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactCreateTool"},"artifact_read":{"description":"A tool that reads artifact content from the agent session workspace with flexible size and range options.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_read`.","type":"string","default":"artifact_read","example":"artifact_read"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactReadTool"},"artifact_grep":{"description":"A tool that searches through an artifact's content using grep with support for all standard grep options.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_grep`.","type":"string","default":"artifact_grep","example":"artifact_grep"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactGrepTool"},"image_read":{"description":"A tool that loads image artifacts into the conversation context for viewing and analysis.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `image_read`.","type":"string","default":"image_read","example":"image_read"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ImageReadTool"},"document_conversion":{"description":"A tool that converts document artifacts (PDF, Word, PowerPoint, etc.) to various formats.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `document_conversion`.","type":"string","default":"document_conversion","example":"document_conversion"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"DocumentConversionTool"}}},"oneOf":[{"description":"An MCP (Model Context Protocol) tool that connects to external MCP servers for extended functionality.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `mcp`.","type":"string","default":"mcp","example":"mcp"},"server_id":{"description":"Unique identifier for a tool server.","type":"string","pattern":"^tsr_.*","example":"tsr_rag_search","title":"ToolServerId"},"annotations":{"description":"Optional hints about tool behaviour/metadata.","type":"object","properties":{"read_only_hint":{"description":"If true, the tool does not modify its environment.","type":"boolean"},"destructive_hint":{"description":"If true, the tool may perform destructive updates.","type":"boolean"},"idempotent_hint":{"description":"If true, repeated calls with same args have no additional effect.","type":"boolean"},"open_world_hint":{"description":"If true, tool interacts with external entities.","type":"boolean"}},"additionalProperties":true,"title":"McpToolAnnotations"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"McpTool"},{"description":"A corpora search tool that searches through Vectara corpora to find relevant information.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `corpora_search`.","type":"string","default":"corpora_search","example":"corpora_search"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"CorporaSearchTool"},{"description":"A web search tool that searches the internet for relevant information.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `web_search`.","type":"string","default":"web_search","example":"web_search"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"WebSearchTool"},{"description":"A user-defined function that can be executed as a tool by agents.\nLambda tools run in a secure, sandboxed environment with resource limits.\nCurrently supports Python 3.12 with a curated set of libraries.\n","type":"object","properties":{"type":{"description":"This should always be `lambda`.","type":"string","default":"lambda","example":"lambda"},"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the function does and how it can be used.","type":"string"},"language":{"description":"The programming language of the lambda function. Currently only Python 3.12 is supported.","type":"string","enum":["python"],"default":"python","example":"python"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the function.","type":"object","additionalProperties":true,"example":{"type":"object","properties":{"data":{"type":"array","description":"Input data to process."},"threshold":{"type":"number","description":"Threshold value for filtering."}}}},"output_schema":{"description":"The schema that defines the expected output structure from the function.","type":"object","additionalProperties":true},"function_definition":{"description":"Definition of a function to be executed as a tool in a sandboxed environment.\n\n**Python Environment:**\n- Python version: 3.12\n- Execution: Sandboxed using gVisor for security isolation\n- **Allowed modules**: `json`, `math`, `datetime`, `collections`, `itertools`, `functools`, `re`, `time`, `typing`\n- Memory limit: 100MB (configurable up to 1GB)\n- Execution timeout: 30 seconds (configurable up to 300 seconds)\n- Network access: Disabled for security\n- File system access: Read-only temporary workspace\n- No custom package installation supported (security constraint)\n\n**Type Annotations:**\n- Use type annotations for automatic input/output schema discovery\n- Supported typing constructs: `List`, `Dict`, `Optional`, `Union`\n- Import from `typing` module when using complex types\n","type":"object","properties":{"language":{"description":"The programming language of the function. Currently only Python 3.12 is supported.","type":"string","enum":["python"],"example":"python"},"code":{"description":"The function code.\n\n**Required**: Must define a `process()` entry point function. Use type annotations on parameters for automatic schema discovery.\n\nParameters are passed as keyword arguments matched to the function signature.\n","type":"string","example":"def process(data: list, threshold: float = 0):\n filtered = [x for x in data if x > threshold]\n return {\n 'count': len(filtered),\n 'average': sum(filtered) / len(filtered) if filtered else 0,\n 'filtered_data': filtered\n }\n"},"validation_status":{"description":"The validation status of the code.","type":"string","enum":["pending","valid","invalid"],"example":"valid"},"validation_errors":{"description":"List of validation errors if the code is invalid.","type":"array","items":{"type":"string"}},"execution_configuration":{"description":"Execution configuration for the function.","type":"object","properties":{"max_execution_time_seconds":{"description":"Maximum execution time in seconds.","type":"integer","minimum":1,"maximum":300,"default":30,"example":30},"max_memory_mb":{"description":"Maximum memory usage in megabytes.","type":"integer","minimum":10,"maximum":1024,"default":100,"example":100}},"title":"ExecutionConfiguration"}},"required":["language","code"],"title":"FunctionDefinition"}},"required":["type","id","name","description","language","enabled","function_definition"],"x-vectaraParents":["Tool"],"title":"LambdaTool"},{"description":"A tool that indexes structured documents into the Vectara platform with full control over document structure, sections, metadata, tables, and images.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `structured_indexing`.","type":"string","default":"structured_indexing","example":"structured_indexing"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"StructuredIndexingTool"},{"description":"A tool that spawns a specialized sub-agent to handle complex, multi-step tasks autonomously.\nSub-agents maintain separate context from the main agent and can be specialized for specific types of tasks like code review, general research, or output styling.\n","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `sub_agent`.","type":"string","default":"sub_agent","example":"sub_agent"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"SubAgentTool"},{"description":"A tool that creates artifacts from text or structured data content that can be stored and referenced later.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_create`.","type":"string","default":"artifact_create","example":"artifact_create"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactCreateTool"},{"description":"A tool that reads artifact content from the agent session workspace with flexible size and range options.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_read`.","type":"string","default":"artifact_read","example":"artifact_read"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactReadTool"},{"description":"A tool that searches through an artifact's content using grep with support for all standard grep options.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_grep`.","type":"string","default":"artifact_grep","example":"artifact_grep"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactGrepTool"},{"description":"A tool that loads image artifacts into the conversation context for viewing and analysis.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `image_read`.","type":"string","default":"image_read","example":"image_read"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ImageReadTool"},{"description":"A tool that converts document artifacts (PDF, Word, PowerPoint, etc.) to various formats.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `document_conversion`.","type":"string","default":"document_conversion","example":"document_conversion"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"DocumentConversionTool"}],"title":"Tool"}}}},"400":{"description":"Tool update request was malformed or contains invalid references.","content":{"application/json":{"schema":{"description":"Error returned when a request contains invalid parameters or violates schema validation.","type":"object","properties":{"field_errors":{"description":"The errors that relate to specific fields in the request.","type":"object","additionalProperties":{"type":"string"}},"messages":{"type":"array","items":{"title":"message","type":"string"}},"request_id":{"description":"The ID of the request that can be used to help Vectara support debug what went wrong.","type":"string"}},"title":"BadRequestError"}}}},"403":{"description":"Permissions do not allow updating this tool.","content":{"application/json":{"schema":{"description":"A general error response with an error code and message.","type":"object","properties":{"messages":{"description":"The messages describing why the error occurred.","type":"array","items":{"title":"message","type":"string","example":"Internal server error."}},"request_id":{"description":"The ID of the request that can be used to help Vectara support debug what went wrong.","type":"string"}},"title":"Error"}}}},"404":{"description":"Tool not found.","content":{"application/json":{"schema":{"description":"Error returned when a requested resource does not exist.","type":"object","properties":{"id":{"description":"The ID cannot be found.","type":"string"},"messages":{"type":"array","items":{"title":"message","type":"string"}},"request_id":{"description":"The ID of the request that can be used to help Vectara support debug what went wrong.","type":"string"}},"title":"NotFoundError"}}}}}}
+ responses={{"200":{"description":"The tool has been updated successfully.","content":{"application/json":{"schema":{"description":"A tool that can be used by agents to perform specific actions or operations.","x-vectara-base-schema":"#/ToolBase","discriminator":{"propertyName":"type","mapping":{"dynamic_vectara":{"description":"A tool type for built-in Vectara tools that have implementations within the platform but do not have a dedicated tool type schema. Examples include tools like `sub_agent`, `corpora_search`, `web_search`, and similar platform-provided capabilities. Use the List Tools endpoint to discover available tools and obtain the `tool_id` required for configuration.\n","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `dynamic_vectara`.","type":"string","default":"dynamic_vectara","example":"dynamic_vectara"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"DynamicVectaraTool"},"mcp":{"description":"An MCP (Model Context Protocol) tool that connects to external MCP servers for extended functionality.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `mcp`.","type":"string","default":"mcp","example":"mcp"},"server_id":{"description":"Unique identifier for a tool server.","type":"string","pattern":"^tsr_.*","example":"tsr_rag_search","title":"ToolServerId"},"annotations":{"description":"Optional hints about tool behaviour/metadata.","type":"object","properties":{"read_only_hint":{"description":"If true, the tool does not modify its environment.","type":"boolean"},"destructive_hint":{"description":"If true, the tool may perform destructive updates.","type":"boolean"},"idempotent_hint":{"description":"If true, repeated calls with same args have no additional effect.","type":"boolean"},"open_world_hint":{"description":"If true, tool interacts with external entities.","type":"boolean"}},"additionalProperties":true,"title":"McpToolAnnotations"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"McpTool"},"corpora_search":{"description":"A corpora search tool that searches through Vectara corpora to find relevant information.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `corpora_search`.","type":"string","default":"corpora_search","example":"corpora_search"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"CorporaSearchTool"},"web_search":{"description":"A web search tool that searches the internet for relevant information.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `web_search`.","type":"string","default":"web_search","example":"web_search"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"WebSearchTool"},"web_get":{"description":"A web get tool that fetches content from URLs using HTTP requests.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `web_get`.","type":"string","default":"web_get","example":"web_get"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"WebGetTool"},"lambda":{"description":"A user-defined function that can be executed as a tool by agents.\nLambda tools run in a secure, sandboxed environment with resource limits.\nCurrently supports Python 3.12 with a curated set of libraries.\n","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `lambda`.","type":"string","default":"lambda","example":"lambda"},"language":{"description":"The programming language of the lambda function. Currently only Python 3.12 is supported.","type":"string","enum":["python"],"default":"python","example":"python"},"output_schema":{"description":"The schema that defines the expected output structure from the function.","type":"object","additionalProperties":true},"function_definition":{"description":"Definition of a function to be executed as a tool in a sandboxed environment.\n\n**Python Environment:**\n- Python version: 3.12\n- Execution: Sandboxed using gVisor for security isolation\n- **Allowed modules**: `json`, `math`, `datetime`, `collections`, `itertools`, `functools`, `re`, `time`, `typing`\n- Memory limit: 100MB (configurable up to 1GB)\n- Execution timeout: 30 seconds (configurable up to 300 seconds)\n- Network access: Disabled for security\n- File system access: Read-only temporary workspace\n- No custom package installation supported (security constraint)\n\n**Type Annotations:**\n- Use type annotations for automatic input/output schema discovery\n- Supported typing constructs: `List`, `Dict`, `Optional`, `Union`\n- Import from `typing` module when using complex types\n","type":"object","properties":{"language":{"description":"The programming language of the function. Currently only Python 3.12 is supported.","type":"string","enum":["python"],"example":"python"},"code":{"description":"The function code.\n\n**Required**: Must define a `process()` entry point function. Use type annotations on parameters for automatic schema discovery.\n\nParameters are passed as keyword arguments matched to the function signature.\n","type":"string","example":"def process(data: list, threshold: float = 0):\n filtered = [x for x in data if x > threshold]\n return {\n 'count': len(filtered),\n 'average': sum(filtered) / len(filtered) if filtered else 0,\n 'filtered_data': filtered\n }\n"},"validation_status":{"description":"The validation status of the code.","type":"string","enum":["pending","valid","invalid"],"example":"valid"},"validation_errors":{"description":"List of validation errors if the code is invalid.","type":"array","items":{"type":"string"}},"execution_configuration":{"description":"Execution configuration for the function.","type":"object","properties":{"max_execution_time_seconds":{"description":"Maximum execution time in seconds.","type":"integer","minimum":1,"maximum":300,"default":30,"example":30},"max_memory_mb":{"description":"Maximum memory usage in megabytes.","type":"integer","minimum":10,"maximum":1024,"default":100,"example":100}},"title":"ExecutionConfiguration"}},"required":["language","code"],"title":"FunctionDefinition"}},"required":["type","language","function_definition"]}],"x-vectaraParents":["Tool"],"title":"LambdaTool"},"structured_indexing":{"description":"A tool that indexes structured documents into the Vectara platform with full control over document structure, sections, metadata, tables, and images.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `structured_indexing`.","type":"string","default":"structured_indexing","example":"structured_indexing"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"StructuredIndexingTool"},"sub_agent":{"description":"A tool that spawns a specialized sub-agent to handle complex, multi-step tasks autonomously.\nSub-agents maintain separate context from the main agent and can be specialized for specific types of tasks like code review, general research, or output styling.\n","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `sub_agent`.","type":"string","default":"sub_agent","example":"sub_agent"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"SubAgentTool"},"artifact_create":{"description":"A tool that creates artifacts from text or structured data content that can be stored and referenced later.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_create`.","type":"string","default":"artifact_create","example":"artifact_create"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactCreateTool"},"artifact_read":{"description":"A tool that reads artifact content from the agent session workspace with flexible size and range options.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_read`.","type":"string","default":"artifact_read","example":"artifact_read"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactReadTool"},"artifact_grep":{"description":"A tool that searches through an artifact's content using grep with support for all standard grep options.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_grep`.","type":"string","default":"artifact_grep","example":"artifact_grep"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactGrepTool"},"image_read":{"description":"A tool that loads image artifacts into the conversation context for viewing and analysis.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `image_read`.","type":"string","default":"image_read","example":"image_read"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ImageReadTool"},"document_conversion":{"description":"A tool that converts document artifacts (PDF, Word, PowerPoint, etc.) to various formats.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `document_conversion`.","type":"string","default":"document_conversion","example":"document_conversion"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"DocumentConversionTool"}}},"oneOf":[{"description":"A tool type for built-in Vectara tools that have implementations within the platform but do not have a dedicated tool type schema. Examples include tools like `sub_agent`, `corpora_search`, `web_search`, and similar platform-provided capabilities. Use the List Tools endpoint to discover available tools and obtain the `tool_id` required for configuration.\n","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `dynamic_vectara`.","type":"string","default":"dynamic_vectara","example":"dynamic_vectara"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"DynamicVectaraTool"},{"description":"An MCP (Model Context Protocol) tool that connects to external MCP servers for extended functionality.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `mcp`.","type":"string","default":"mcp","example":"mcp"},"server_id":{"description":"Unique identifier for a tool server.","type":"string","pattern":"^tsr_.*","example":"tsr_rag_search","title":"ToolServerId"},"annotations":{"description":"Optional hints about tool behaviour/metadata.","type":"object","properties":{"read_only_hint":{"description":"If true, the tool does not modify its environment.","type":"boolean"},"destructive_hint":{"description":"If true, the tool may perform destructive updates.","type":"boolean"},"idempotent_hint":{"description":"If true, repeated calls with same args have no additional effect.","type":"boolean"},"open_world_hint":{"description":"If true, tool interacts with external entities.","type":"boolean"}},"additionalProperties":true,"title":"McpToolAnnotations"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"McpTool"},{"description":"A corpora search tool that searches through Vectara corpora to find relevant information.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `corpora_search`.","type":"string","default":"corpora_search","example":"corpora_search"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"CorporaSearchTool"},{"description":"A web search tool that searches the internet for relevant information.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `web_search`.","type":"string","default":"web_search","example":"web_search"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"WebSearchTool"},{"description":"A web get tool that fetches content from URLs using HTTP requests.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `web_get`.","type":"string","default":"web_get","example":"web_get"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"WebGetTool"},{"description":"A user-defined function that can be executed as a tool by agents.\nLambda tools run in a secure, sandboxed environment with resource limits.\nCurrently supports Python 3.12 with a curated set of libraries.\n","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `lambda`.","type":"string","default":"lambda","example":"lambda"},"language":{"description":"The programming language of the lambda function. Currently only Python 3.12 is supported.","type":"string","enum":["python"],"default":"python","example":"python"},"output_schema":{"description":"The schema that defines the expected output structure from the function.","type":"object","additionalProperties":true},"function_definition":{"description":"Definition of a function to be executed as a tool in a sandboxed environment.\n\n**Python Environment:**\n- Python version: 3.12\n- Execution: Sandboxed using gVisor for security isolation\n- **Allowed modules**: `json`, `math`, `datetime`, `collections`, `itertools`, `functools`, `re`, `time`, `typing`\n- Memory limit: 100MB (configurable up to 1GB)\n- Execution timeout: 30 seconds (configurable up to 300 seconds)\n- Network access: Disabled for security\n- File system access: Read-only temporary workspace\n- No custom package installation supported (security constraint)\n\n**Type Annotations:**\n- Use type annotations for automatic input/output schema discovery\n- Supported typing constructs: `List`, `Dict`, `Optional`, `Union`\n- Import from `typing` module when using complex types\n","type":"object","properties":{"language":{"description":"The programming language of the function. Currently only Python 3.12 is supported.","type":"string","enum":["python"],"example":"python"},"code":{"description":"The function code.\n\n**Required**: Must define a `process()` entry point function. Use type annotations on parameters for automatic schema discovery.\n\nParameters are passed as keyword arguments matched to the function signature.\n","type":"string","example":"def process(data: list, threshold: float = 0):\n filtered = [x for x in data if x > threshold]\n return {\n 'count': len(filtered),\n 'average': sum(filtered) / len(filtered) if filtered else 0,\n 'filtered_data': filtered\n }\n"},"validation_status":{"description":"The validation status of the code.","type":"string","enum":["pending","valid","invalid"],"example":"valid"},"validation_errors":{"description":"List of validation errors if the code is invalid.","type":"array","items":{"type":"string"}},"execution_configuration":{"description":"Execution configuration for the function.","type":"object","properties":{"max_execution_time_seconds":{"description":"Maximum execution time in seconds.","type":"integer","minimum":1,"maximum":300,"default":30,"example":30},"max_memory_mb":{"description":"Maximum memory usage in megabytes.","type":"integer","minimum":10,"maximum":1024,"default":100,"example":100}},"title":"ExecutionConfiguration"}},"required":["language","code"],"title":"FunctionDefinition"}},"required":["type","language","function_definition"]}],"x-vectaraParents":["Tool"],"title":"LambdaTool"},{"description":"A tool that indexes structured documents into the Vectara platform with full control over document structure, sections, metadata, tables, and images.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `structured_indexing`.","type":"string","default":"structured_indexing","example":"structured_indexing"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"StructuredIndexingTool"},{"description":"A tool that spawns a specialized sub-agent to handle complex, multi-step tasks autonomously.\nSub-agents maintain separate context from the main agent and can be specialized for specific types of tasks like code review, general research, or output styling.\n","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `sub_agent`.","type":"string","default":"sub_agent","example":"sub_agent"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"SubAgentTool"},{"description":"A tool that creates artifacts from text or structured data content that can be stored and referenced later.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_create`.","type":"string","default":"artifact_create","example":"artifact_create"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactCreateTool"},{"description":"A tool that reads artifact content from the agent session workspace with flexible size and range options.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_read`.","type":"string","default":"artifact_read","example":"artifact_read"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactReadTool"},{"description":"A tool that searches through an artifact's content using grep with support for all standard grep options.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `artifact_grep`.","type":"string","default":"artifact_grep","example":"artifact_grep"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ArtifactGrepTool"},{"description":"A tool that loads image artifacts into the conversation context for viewing and analysis.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `image_read`.","type":"string","default":"image_read","example":"image_read"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"ImageReadTool"},{"description":"A tool that converts document artifacts (PDF, Word, PowerPoint, etc.) to various formats.","allOf":[{"description":"Base properties shared by all tool types.","type":"object","properties":{"id":{"description":"Unique identifier for a tool.","type":"string","pattern":"^tol_.*","example":"tol_123e4567-e89b-12d3-a456-426614174000","title":"ToolId"},"name":{"description":"Unique identifier for the tool.","type":"string"},"title":{"description":"Human-readable title of the tool.","type":"string"},"description":{"description":"A detailed description of what the tool does and how it can be used.","type":"string"},"description_template":{"description":"Velocity template for generating dynamic tool descriptions. When set, this template is rendered at runtime to produce the tool description.\n\nAvailable Velocity variables:\n- `$agent.name` - Agent name\n- `$agent.metadata` - Agent metadata map\n- `$session.key` - Session key\n- `$session.metadata` - Session metadata map\n- `$currentDate` - Current date/time in ISO 8601 format (e.g., \"2025-10-24T15:30:45Z\")\n\nExample: \"Search tool configured for agent $agent.name on $currentDate\"\n","type":"string","title":"ToolDescriptionTemplate"},"enabled":{"description":"Whether the tool is currently enabled and available for use.","type":"boolean","default":true},"created_at":{"description":"Timestamp when the tool was created.","type":"string","format":"date-time"},"updated_at":{"description":"Timestamp when the tool was last updated.","type":"string","format":"date-time"},"input_schema":{"description":"The schema that defines the expected input structure for the tool.","type":"object","additionalProperties":true}},"required":["id","name","description","enabled","input_schema"],"title":"ToolBase"},{"type":"object","properties":{"type":{"description":"This should always be `document_conversion`.","type":"string","default":"document_conversion","example":"document_conversion"}},"required":["type"]}],"x-vectaraParents":["Tool"],"title":"DocumentConversionTool"}],"title":"Tool"}}}},"400":{"description":"Tool update request was malformed or contains invalid references.","content":{"application/json":{"schema":{"description":"Error returned when a request contains invalid parameters or violates schema validation.","type":"object","properties":{"field_errors":{"description":"The errors that relate to specific fields in the request.","type":"object","additionalProperties":{"type":"string"}},"messages":{"type":"array","items":{"title":"message","type":"string"}},"request_id":{"description":"The ID of the request that can be used to help Vectara support debug what went wrong.","type":"string"}},"title":"BadRequestError"}}}},"403":{"description":"Permissions do not allow updating this tool.","content":{"application/json":{"schema":{"description":"A general error response with an error code and message.","type":"object","properties":{"messages":{"description":"The messages describing why the error occurred.","type":"array","items":{"title":"message","type":"string","example":"Internal server error."}},"request_id":{"description":"The ID of the request that can be used to help Vectara support debug what went wrong.","type":"string"}},"title":"Error"}}}},"404":{"description":"Tool not found.","content":{"application/json":{"schema":{"description":"Error returned when a requested resource does not exist.","type":"object","properties":{"id":{"description":"The ID cannot be found.","type":"string"},"messages":{"type":"array","items":{"title":"message","type":"string"}},"request_id":{"description":"The ID of the request that can be used to help Vectara support debug what went wrong.","type":"string"}},"title":"NotFoundError"}}}}}}
>
diff --git a/www/docs/rest-api/update-user.api.mdx b/www/docs/rest-api/update-user.api.mdx
index 8505182ba..fd48fb901 100644
--- a/www/docs/rest-api/update-user.api.mdx
+++ b/www/docs/rest-api/update-user.api.mdx
@@ -5,7 +5,7 @@ description: "Update details about a user such as role names."
sidebar_label: "Update a user"
hide_title: true
hide_table_of_contents: true
-api: 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
+api: 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
sidebar_class_name: "patch api-method"
info_path: docs/rest-api/vectara-rest-api-v-2
custom_edit_url: null
@@ -54,7 +54,7 @@ Update details about a user such as role names.
@@ -62,7 +62,7 @@ Update details about a user such as role names.
diff --git a/www/sidebars.ts b/www/sidebars.ts
index 90dddf361..030d8291f 100644
--- a/www/sidebars.ts
+++ b/www/sidebars.ts
@@ -646,6 +646,12 @@ const sidebars: SidebarsConfig = {
label: "Delete a document",
className: "api-method delete",
},
+ {
+ type: "doc",
+ id: "rest-api/bulk-delete-corpus-documents",
+ label: "Bulk delete documents",
+ className: "api-method delete",
+ },
{
type: "doc",
id: "rest-api/get-corpus-document",
diff --git a/www/static/vectara-oas-v2.yaml b/www/static/vectara-oas-v2.yaml
index 0b63c833e..92ac96242 100644
--- a/www/static/vectara-oas-v2.yaml
+++ b/www/static/vectara-oas-v2.yaml
@@ -29,6 +29,9 @@ tags:
- name: Agent Sessions
description: Manage agent sessions and interact with agents through conversational
events.
+- name: Guardrails
+ description: List predefined guardrails for validating tool calls, agent outputs,
+ and agent actions.
- name: Instructions
description: Create and manage instructions that guide agent behavior.
- name: Tools
@@ -1699,6 +1702,87 @@ paths:
cursor: $request.page_key
next_cursor: $response.metadata.page_key
results: $response.documents
+ delete:
+ tags:
+ - Documents
+ summary: Bulk delete documents from a corpus
+ x-supported-api-key-type:
+ - IndexService
+ - Personal
+ description: 'Initiates an asynchronous bulk delete operation for documents
+ in a corpus.
+
+ This operation accepts a metadata filter, a list of specific document IDs,
+ or both.
+
+
+ **Important**: This is a best-effort operation.
+
+ See the response schema documentation for details on the behavior differences
+ between `metadata_filter` and `document_ids` parameters.
+
+
+ The operation runs as a background workflow.
+
+ Use the returned `job_id` to track progress via the Jobs API.
+
+ '
+ operationId: bulkDeleteCorpusDocuments
+ parameters:
+ - $ref: '#/components/parameters/RequestTimeout'
+ - $ref: '#/components/parameters/RequestTimeoutMillis'
+ - in: path
+ name: corpus_key
+ description: The unique key identifying the corpus containing documents to
+ delete.
+ required: true
+ schema:
+ $ref: '#/components/schemas/CorpusKey'
+ - name: metadata_filter
+ in: query
+ description: 'Filter documents by metadata. Uses the same expression as a
+ query metadata filter.
+
+ Example: `doc.status = ''archived'' AND doc.year < 2020`
+
+ '
+ required: false
+ schema:
+ type: string
+ - name: document_ids
+ in: query
+ description: Comma-separated list of document IDs to delete. Maximum 10,000
+ IDs per request.
+ required: false
+ schema:
+ type: string
+ responses:
+ '202':
+ description: Bulk delete operation accepted and queued.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/BulkDeleteDocumentsResponse'
+ '400':
+ description: Invalid request.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/BadRequestError'
+ '403':
+ description: Permissions do not allow bulk deleting documents.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '404':
+ description: Corpus not found.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/NotFoundError'
+ x-fern-sdk-group-name: documents
+ x-fern-sdk-method-name: bulk_delete
/v2/corpora/{corpus_key}/documents/{document_id}:
delete:
tags:
@@ -3485,7 +3569,7 @@ paths:
- Connect external LLMs using OpenAI-compatible API format\n- Configure multiple\
\ LLM providers for different use cases\n- Override Vectara's built-in LLMs\
\ with your own models\n- Use custom models for RAG, chat, and document summarization\n\
- \n**Example providers:**\n\n### OpenAI\n\n**Type:** `openai-compatible`\n\n\
+ \n**Example providers:**\n\n### OpenAI\n\n**Type:** `openai-compatible`\n\
**Models:** GPT-4o, GPT-5\n**Auth:** Bearer token\n\n```json\n{\n \"type\"\
: \"openai-compatible\",\n \"name\": \"my-gpt5\",\n \"model\": \"gpt-5\"\
,\n \"uri\": \"https://api.openai.com/v1/chat/completions\",\n \"auth\"\
@@ -3496,26 +3580,27 @@ paths:
: \"openai-responses\",\n \"name\": \"my-o1\",\n \"model\": \"o1-preview\"\
,\n \"uri\": \"https://api.openai.com/v1/chat/completions\",\n \"auth\"\
: {\n \"type\": \"bearer\",\n \"token\": \"sk-...\"\n }\n}\n```\n\n\
- ### Anthropic Claude\n**Type:** `openai-compatible`\n**Models:** claude-4-opus,\
+ ### Anthropic Claude\n\n**Type:** `openai-compatible`\n**Models:** claude-4-opus,\
\ claude-4-5-haiku, claude-4-5-sonnet\n**Auth:** Bearer token with header\n\
- ```json\n{\n \"type\": \"openai-compatible\",\n \"name\": \"my-claude\"\
+ \n```json\n{\n \"type\": \"openai-compatible\",\n \"name\": \"my-claude\"\
,\n \"model\": \"claude-sonnet-4-5-20250929\",\n \"uri\": \"https://api.anthropic.com/v1/messages\"\
,\n \"auth\": {\n \"type\": \"bearer\",\n \"token\": \"sk-ant-...\"\
\n },\n \"headers\": {\n \"anthropic-version\": \"2023-06-01\"\n }\n\
- }\n\n\n### Azure OpenAI\n**Type:** `openai-compatible`\n**Models:** GPT-3.5,\
- \ GPT-4 (Azure-deployed versions)\n**Auth:** Custom header (api-key)\n```json\n\
+ }\n```\n\n### Azure OpenAI\n\n**Type:** `openai-compatible`\n**Models:** GPT-3.5,\
+ \ GPT-4 (Azure-deployed versions)\n**Auth:** Custom header (api-key)\n\n```json\n\
{\n \"type\": \"openai-compatible\",\n \"name\": \"my-azure-gpt4\",\n \"\
model\": \"gpt-4\",\n \"uri\": \"https://YOUR-RESOURCE.openai.azure.com/openai/deployments/YOUR-DEPLOYMENT/chat/completions?api-version=2024-02-15-preview\"\
,\n \"auth\": {\n \"type\": \"header\",\n \"header\": \"api-key\",\n\
- \ \"value\": \"your-azure-key\"\n }\n}\n\n### Google Vertex AI (Gemini)\n\
- **Type:** `vertex-ai`\n**Models:** gemini-2.5-pro, gemini-2.5-flash\n**Auth:**\
- \ Service account or API key\n```json\n{\n \"type\": \"vertex-ai\",\n \"\
- name\": \"my-gemini\",\n \"model\": \"gemini-1.5-pro\",\n \"uri\": \"https://us-central1-aiplatform.googleapis.com/v1/projects/YOUR-PROJECT/locations/us-central1/publishers/google/models/gemini-1.5-pro:generateContent\"\
+ \ \"value\": \"your-azure-key\"\n }\n}\n```\n\n### Google Vertex AI (Gemini)\n\
+ \n**Type:** `vertex-ai`\n**Models:** gemini-2.5-pro, gemini-2.5-flash\n**Auth:**\
+ \ Service account or API key\n\n```json\n{\n \"type\": \"vertex-ai\",\n \
+ \ \"name\": \"my-gemini\",\n \"model\": \"gemini-1.5-pro\",\n \"uri\": \"\
+ https://us-central1-aiplatform.googleapis.com/v1/projects/YOUR-PROJECT/locations/us-central1/publishers/google/models/gemini-1.5-pro:generateContent\"\
,\n \"auth\": {\n \"type\": \"service_account\",\n \"key_json\": \"\
{...service account JSON...}\"\n }\n}\n```\n\n### Custom OpenAI-Compatible\n\
- **Type:** `openai-compatible`\n**Models:** Any self-hosted or custom LLM,\
- \ such as OpenRouter.\n**Auth:** Bearer or custom header\n```json\n{\n \"\
- type\": \"openai-compatible\",\n \"name\": \"my-custom-llm\",\n \"model\"\
+ \n**Type:** `openai-compatible`\n**Models:** Any self-hosted or custom LLM,\
+ \ such as OpenRouter.\n**Auth:** Bearer or custom header\n\n```json\n{\n \
+ \ \"type\": \"openai-compatible\",\n \"name\": \"my-custom-llm\",\n \"model\"\
: \"llama-3-70b\",\n \"uri\": \"https://my-llm-endpoint.com/v1/chat/completions\"\
,\n \"auth\": {\n \"type\": \"bearer\",\n \"token\": \"custom-token\"\
\n }\n}\n```\n"
@@ -3710,6 +3795,94 @@ paths:
$ref: '#/components/schemas/NotFoundError'
x-fern-sdk-group-name: llms
x-fern-sdk-method-name: delete
+ patch:
+ tags:
+ - Large Language Models
+ summary: Update an LLM
+ x-supported-api-key-type:
+ - IndexService
+ - Personal
+ description: 'Update an existing LLM''s configuration. This endpoint allows
+ partial updates - only provide fields you want to change. Only the name field
+ is immutable.
+
+
+ The updated LLM will be tested before saving to ensure credentials are valid.
+
+
+ **Updatable fields:**
+
+ - `description` - LLM description
+
+ - `type` - LLM type (openai-compatible, vertex-ai, etc.)
+
+ - `model` - Model identifier
+
+ - `uri` - API endpoint
+
+ - `auth` - Authentication credentials (including service account key_json)
+
+ - `headers` - Additional HTTP headers (for openai-compatible and anthropic
+ types)
+
+ - `enabled` - Whether the LLM is enabled
+
+ - `capabilities` - Model capabilities (image support, context limit, tool
+ calling)
+
+
+ **Immutable fields:**
+
+ - `id` - System-generated identifier
+
+ - `name` - LLM name
+
+
+ Built-in LLMs (system-provided models) cannot be updated.
+
+ '
+ operationId: updateLLM
+ parameters:
+ - $ref: '#/components/parameters/RequestTimeout'
+ - $ref: '#/components/parameters/RequestTimeoutMillis'
+ - name: llm_id
+ in: path
+ description: The ID of the LLM to update.
+ required: true
+ schema:
+ type: string
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/UpdateLLMRequest'
+ responses:
+ '200':
+ description: The LLM has been updated
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/LLM'
+ '400':
+ description: Invalid request body or connection test failed
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/BadRequestError'
+ '403':
+ description: Permissions do not allow updating this LLM or LLM is built-in
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Error'
+ '404':
+ description: LLM not found
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/NotFoundError'
+ x-fern-sdk-group-name: llms
+ x-fern-sdk-method-name: update
/v2/llms/chat/completions:
post:
tags:
@@ -4164,7 +4337,7 @@ paths:
x-fern-pagination:
cursor: $request.page_key
next_cursor: $response.metadata.page_key
- results: $response.hallucinationCorrectionModels
+ results: $response.hallucination_correctors
parameters:
- $ref: '#/components/parameters/RequestTimeout'
- $ref: '#/components/parameters/RequestTimeoutMillis'
@@ -6654,7 +6827,7 @@ paths:
\ or apply access controls. Instructions and tools can also reference metadata\
\ using `${\\session.metadata.field}` or `$\\ref` syntax.\n\nA session also\
\ serves as the workspace for artifacts, enabling file uploads and multi-step\
- \ workflows. For more information, see [Working with artifacts in sessions](https://docs.vectara.com/docs/agents/sessions#working-with-artifacts-in-sessions).\n\
+ \ workflows. For more information, see [Working with artifacts in sessions](https://docs.vectara.com/docs/agent-os/sessions#working-with-artifacts-in-sessions).\n\
\n## Example request\n\n```json\n\\$ curl -X POST https://api.vectara.io/v2/agents/support-agent/sessions\
\ \\\n-H \"Authorization: Bearer YOUR_API_KEY\" \\\n-H \"Content-Type: application/json\"\
\ \\\n-d '{\n \"key\": \"user_12345_session\",\n \"name\": \"Customer Support\
@@ -7026,8 +7199,10 @@ paths:
tool_output: '#/components/schemas/ToolOutputEvent'
thinking: '#/components/schemas/ThinkingEvent'
agent_output: '#/components/schemas/AgentOutputEvent'
+ structured_output: '#/components/schemas/StructuredOutputEvent'
context_limit_exceeded: '#/components/schemas/ContextLimitExceededEvent'
image_read: '#/components/schemas/ImageReadEvent'
+ guardrail_check: '#/components/schemas/GuardrailCheckEvent'
oneOf:
- $ref: '#/components/schemas/InputMessageEvent'
- $ref: '#/components/schemas/ArtifactUploadEvent'
@@ -7035,6 +7210,7 @@ paths:
- $ref: '#/components/schemas/ToolOutputEvent'
- $ref: '#/components/schemas/ThinkingEvent'
- $ref: '#/components/schemas/AgentOutputEvent'
+ - $ref: '#/components/schemas/StructuredOutputEvent'
- $ref: '#/components/schemas/ContextLimitExceededEvent'
- $ref: '#/components/schemas/ImageReadEvent'
properties:
@@ -7056,8 +7232,10 @@ paths:
- tool_output
- thinking
- agent_output
+ - structured_output
- context_limit_exceeded
- image_read
+ - guardrail_check
example: input_message
created_at:
description: Timestamp when the event was created.
@@ -7082,6 +7260,7 @@ paths:
streaming_thinking_end: '#/components/schemas/StreamingThinkingEnd'
tool_input: '#/components/schemas/ToolInputEvent'
tool_output: '#/components/schemas/ToolOutputEvent'
+ structured_output: '#/components/schemas/StructuredOutputEvent'
context_limit_exceeded: '#/components/schemas/ContextLimitExceededEvent'
image_read: '#/components/schemas/ImageReadEvent'
error: '#/components/schemas/StreamError'
@@ -7093,6 +7272,7 @@ paths:
- $ref: '#/components/schemas/StreamingThinkingEnd'
- $ref: '#/components/schemas/ToolInputEvent'
- $ref: '#/components/schemas/ToolOutputEvent'
+ - $ref: '#/components/schemas/StructuredOutputEvent'
- $ref: '#/components/schemas/ContextLimitExceededEvent'
- $ref: '#/components/schemas/ImageReadEvent'
- $ref: '#/components/schemas/StreamError'
@@ -8641,6 +8821,64 @@ components:
metadata: null
section_type: social
priority: medium
+ BulkDeleteDocumentsResponse:
+ description: 'Response containing the job ID for tracking the bulk delete operation.
+
+
+ **Important: Best-Effort Operation**
+
+
+ This is a best-effort deletion operation. The behavior differs based on which
+ parameter you use:
+
+
+ **Using `document_ids` (Recommended for precision)**
+
+ - Deletes only the exact documents specified by ID
+
+ - Most reliable option - documents are deleted from the primary storage directly
+
+ - Use this when you know exactly which documents to delete
+
+
+ **Using `metadata_filter` (Subject to indexing lag)**
+
+ - Filters are applied against the search index, not the primary document store
+
+ - Documents that have been recently indexed may not yet appear in search results
+ due to indexing pipeline lag
+
+ - This means recently added documents matching your filter may be missed
+
+ - A timestamp cutoff is captured at operation start; only documents created/updated
+ before this time are deleted
+
+ - Due to distributed system timing, documents added very close to the operation
+ start may still be deleted if timestamps are not perfectly synchronized
+
+
+ For mission-critical deletions where completeness is required, use `document_ids`
+ or run the filter-based deletion multiple times after indexing has caught
+ up.
+
+ '
+ type: object
+ properties:
+ job_id:
+ description: Job ID to track the bulk delete operation progress via the
+ Jobs API.
+ type: string
+ pattern: job_.+$
+ example: job_bulk_del_123456
+ cutoff_timestamp:
+ description: ISO 8601 timestamp captured at workflow launch. Only documents
+ created or updated before this timestamp will be deleted.
+ type: string
+ format: date-time
+ example: '2025-12-18T15:30:00Z'
+ required:
+ - job_id
+ - cutoff_timestamp
UpdateDocumentRequest:
description: Schema for updating the document. For PUT requests, the request
body metadata replaces the existing metadata. For PATCH requests, the request
@@ -9960,6 +10198,12 @@ components:
type: string
format: date-time
example: '2025-06-01T12:00:00Z'
+ agent_key:
+ description: The agent key if this query was made through an agent.
+ type: string
+ session_key:
+ description: The session key if this query was made through an agent session.
+ type: string
spans:
description: Parts of the query pipeline. Each span explains what happened
during that stage of the query pipeline.
@@ -10007,6 +10251,12 @@ components:
type: number
format: float
example: 0.98
+ agent_key:
+ description: The agent key if this query was made through an agent.
+ type: string
+ session_key:
+ description: The session key if this query was made through an agent session.
+ type: string
ListQueryHistoriesResponse:
description: An array of query histories.
type: object
@@ -10023,6 +10273,27 @@ components:
description: A query parameter required when requesting the next page
of results.
type: string
+ LLMCapabilities:
+ description: Capabilities of a Large Language Model.
+ type: object
+ properties:
+ image_support:
+ description: Whether the model supports image inputs.
+ type: boolean
+ context_limit:
+ description: Maximum context window size in tokens.
+ type: integer
+ format: int32
+ tool_calling:
+ description: Whether the model supports tool/function calling.
+ type: boolean
+ structured_outputs:
+ description: Whether the model supports structured output generation.
+ type: boolean
+ requires_role_alternation:
+ description: Whether the model requires strict role alternation in conversations.
+ When true, consecutive messages of the same role will be grouped together.
+ type: boolean
Prompt:
description: A prompt that can be used with a LLM. A prompt is the template
that is used to render the text sent to the LLM. It also contains various
@@ -10072,6 +10343,8 @@ components:
description: If this is the default LLM, it is used in queries when the
generator is not specified.
type: boolean
+ capabilities:
+ $ref: '#/components/schemas/LLMCapabilities'
prompts:
description: List of prompts that the model can use. This is deprecated;
see `/v2/generation_presets` instead.
@@ -10192,6 +10465,8 @@ components:
additionalProperties: true
example:
max_tokens: 512
+ capabilities:
+ $ref: '#/components/schemas/LLMCapabilities'
required:
- name
- uri
@@ -10321,6 +10596,8 @@ components:
the test call.
type: object
additionalProperties: true
+ capabilities:
+ $ref: '#/components/schemas/LLMCapabilities'
required:
- type
- name
@@ -10505,6 +10782,8 @@ components:
the test call.
type: object
additionalProperties: true
+ capabilities:
+ $ref: '#/components/schemas/LLMCapabilities'
required:
- type
- name
@@ -10530,66 +10809,335 @@ components:
- $ref: '#/components/schemas/CreateAnthropicLLMRequest'
required:
- type
- ChatCompletionRequestMessage:
- description: A message in the chat completion request, representing part of
- the conversation.
+ OpenAILLMUpdateBase:
+ description: Common updatable fields for OpenAI-compatible and Responses API
+ LLM requests.
type: object
- required:
- - role
- - content
properties:
- role:
+ model:
+ description: The model identifier to use for this LLM.
type: string
- description: The role of the author of this message. Common values include
- 'system', 'user', 'assistant', 'function', and 'tool'.
- content:
- description: The contents of the message. Follows the exact format of the
- content field in the OpenAI Chat Completions API (https://platform.openai.com/docs/api-reference/chat/create).
- Can be a string for text-only messages, or an array of content parts for
- multimodal messages with text and images.
- name:
+ minLength: 1
+ uri:
+ description: The API endpoint for this LLM.
type: string
- description: The name of the author of this message, used to connect messages
- in a conversation.
- CreateChatCompletionRequest:
- description: The request object for creating a chat completion with an OpenAI-compatible
- interface. This object is compatible with OpenAI's chat completion schema
- and supports customizable parameters for response generation.
- type: object
- required:
- - messages
- - model
- properties:
- model:
+ format: uri
+ description:
+ description: Description of the LLM.
type: string
- description: The ID of the model to use. This field is required.
- messages:
- type: array
- description: An ordered array of messages that represent the full context
- of the conversation to date. Each message includes a `role` and `content`.
- minItems: 1
- items:
- $ref: '#/components/schemas/ChatCompletionRequestMessage'
- stream:
+ maxLength: 1000
+ nullable: false
+ auth:
+ $ref: '#/components/schemas/RemoteAuth'
+ headers:
+ description: Additional HTTP headers to include with requests to the LLM
+ API.
+ type: object
+ additionalProperties:
+ type: string
+ enabled:
+ description: Whether the LLM is enabled.
type: boolean
- description: Optional. When set to `true`, the API streams partial message
- deltas as they become available, similar to ChatGPT's streaming mode.
- default: false
- additionalProperties: true
- ChatCompletionResponseMessage:
- description: A message in the chat completion response from the assistant.
+ test_model_parameters:
+ description: Any additional parameters that are required for the LLM during
+ the test call.
+ type: object
+ additionalProperties: true
+ example:
+ max_tokens: 512
+ capabilities:
+ $ref: '#/components/schemas/LLMCapabilities'
+ UpdateOpenAILLMRequest:
+ description: Request to update an OpenAI-compatible Large Language Model connection.
+ All fields are optional.
+ type: object
+ allOf:
+ - $ref: '#/components/schemas/OpenAILLMUpdateBase'
+ - type: object
+ properties:
+ type:
+ description: Must be "openai-compatible" for OpenAI and OpenAI-compatible
+ APIs
+ type: string
+ default: openai-compatible
+ x-vectaraParents:
+ - UpdateLLMRequest
+ UpdateOpenAIResponsesLLMRequest:
+ description: Request to update an OpenAI Responses API Large Language Model
+ connection. All fields are optional.
+ type: object
+ allOf:
+ - $ref: '#/components/schemas/OpenAILLMUpdateBase'
+ - type: object
+ properties:
+ type:
+ description: Must be "openai-responses" for OpenAI Responses API
+ type: string
+ default: openai-responses
+ x-vectaraParents:
+ - UpdateLLMRequest
+ UpdateVertexAILLMRequest:
+ description: Request to update a Vertex AI Large Language Model connection.
+ All fields are optional.
type: object
- required:
- - role
properties:
- role:
+ type:
+ description: Must be "vertex-ai" for Google Cloud Vertex AI Gemini models
type: string
- description: The role of the author of this message, typically 'assistant'
- for responses.
- additionalProperties: true
- ChatCompletionResponseChoice:
- description: A single chat completion choice returned in the response
- type: object
+ default: vertex-ai
+ model:
+ description: The model identifier to use for this LLM.
+ type: string
+ minLength: 1
+ uri:
+ description: The API endpoint for this LLM.
+ type: string
+ format: uri
+ description:
+ description: Description of the LLM.
+ type: string
+ nullable: false
+ auth:
+ $ref: '#/components/schemas/VertexAiAuth'
+ enabled:
+ description: Whether the LLM is enabled.
+ type: boolean
+ test_model_parameters:
+ description: Any additional parameters that are required for the LLM during
+ the test call.
+ type: object
+ additionalProperties: true
+ capabilities:
+ $ref: '#/components/schemas/LLMCapabilities'
+ x-vectaraParents:
+ - UpdateLLMRequest
+ UpdateAnthropicLLMRequest:
+ description: Request to update an Anthropic Large Language Model connection.
+ All fields are optional.
+ type: object
+ properties:
+ type:
+ description: Must be "anthropic" for Anthropic Claude models
+ type: string
+ default: anthropic
+ model:
+ description: The model identifier to use for this LLM.
+ type: string
+ minLength: 1
+ uri:
+ description: The API endpoint for this LLM.
+ type: string
+ format: uri
+ description:
+ description: Description of the LLM.
+ type: string
+ nullable: false
+ auth:
+ $ref: '#/components/schemas/AnthropicAuth'
+ headers:
+ description: Optional additional headers to send with the request
+ type: object
+ additionalProperties:
+ type: string
+ enabled:
+ description: Whether the LLM is enabled.
+ type: boolean
+ test_model_parameters:
+ description: Any additional parameters that are required for the LLM during
+ the test call.
+ type: object
+ additionalProperties: true
+ capabilities:
+ $ref: '#/components/schemas/LLMCapabilities'
+ x-vectaraParents:
+ - UpdateLLMRequest
+ UpdateLLMRequest:
+ description: Request to update a Large Language Model connection. All fields
+ are optional - only provide fields you want to change. Only the name field
+ is immutable.
+ type: object
+ discriminator:
+ propertyName: type
+ mapping:
+ openai-compatible: '#/components/schemas/UpdateOpenAILLMRequest'
+ openai-responses: '#/components/schemas/UpdateOpenAIResponsesLLMRequest'
+ vertex-ai: '#/components/schemas/UpdateVertexAILLMRequest'
+ anthropic: '#/components/schemas/UpdateAnthropicLLMRequest'
+ oneOf:
+ - $ref: '#/components/schemas/UpdateOpenAILLMRequest'
+ - $ref: '#/components/schemas/UpdateOpenAIResponsesLLMRequest'
+ - $ref: '#/components/schemas/UpdateVertexAILLMRequest'
+ - $ref: '#/components/schemas/UpdateAnthropicLLMRequest'
+ ChatCompletionRequestMessage:
+ description: A message in the chat completion request, representing part of
+ the conversation.
+ type: object
+ required:
+ - role
+ - content
+ properties:
+ role:
+ type: string
+ description: The role of the author of this message. Common values include
+ 'system', 'user', 'assistant', 'function', and 'tool'.
+ content:
+ description: The contents of the message. Follows the exact format of the
+ content field in the OpenAI Chat Completions API (https://platform.openai.com/docs/api-reference/chat/create).
+ Can be a string for text-only messages, or an array of content parts for
+ multimodal messages with text and images.
+ name:
+ type: string
+ description: The name of the author of this message, used to connect messages
+ in a conversation.
+ JsonSchemaDefinition:
+ description: A JSON Schema definition for specifying data structure. Supports
+ recursive schemas for nested objects.
+ type: object
+ required:
+ - type
+ properties:
+ type:
+ description: The JSON type for this schema element.
+ type: string
+ enum:
+ - object
+ - array
+ - string
+ - number
+ - integer
+ - boolean
+ properties:
+ description: Property definitions when type is 'object'. Each key maps to
+ a nested JsonSchemaDefinition.
+ type: object
+ additionalProperties:
+ $ref: '#/components/schemas/JsonSchemaDefinition'
+ required:
+ description: List of required property names when type is 'object'.
+ type: array
+ items:
+ type: string
+ additionalProperties:
+ description: Whether to allow additional properties beyond those defined.
+ type: boolean
+ default: false
+ items:
+ description: Schema for array items when type is 'array'.
+ $ref: '#/components/schemas/JsonSchemaDefinition'
+ enum:
+ description: Allowed values for this schema element.
+ type: array
+ description:
+ description: Human-readable description of this schema element.
+ type: string
+ JsonSchemaSpec:
+ description: Specification wrapper for a named JSON schema.
+ type: object
+ required:
+ - name
+ - schema
+ properties:
+ description:
+ description: A description of what the response format is for, used by the
+ model to determine how to respond in the format.
+ type: string
+ name:
+ description: A unique name identifier for this schema.
+ type: string
+ pattern: ^[a-zA-Z0-9_-]+$
+ minLength: 1
+ strict:
+ description: 'When true, enforces strict schema adherence. The model will
+ always follow the exact schema structure.
+
+ When strict mode is enabled, the schema must follow these rules:
+
+ - `additionalProperties: false` must be set on all object types
+
+ - All properties must be listed in the `required` array
+
+ - Maximum 100 properties total, with max 5 levels of nesting
+
+ - Unsupported keywords: minLength, maxLength, pattern, minimum, maximum,
+ minItems, maxItems
+
+ - Root schema cannot use `anyOf` type
+
+ '
+ type: boolean
+ nullable: true
+ schema:
+ description: The JSON Schema definition that the model output must conform
+ to.
+ $ref: '#/components/schemas/JsonSchemaDefinition'
+ ResponseFormat:
+ description: 'Specifies the format the model must output.
+
+ - `text`: Plain text responses (default).
+
+ - `json_object`: Ensures the response is valid JSON.
+
+ - `json_schema`: Ensures the response conforms to the provided JSON schema.
+
+ '
+ type: object
+ required:
+ - type
+ properties:
+ type:
+ description: The format type. Use 'json_schema' for structured outputs,
+ 'json_object' for basic JSON mode, or 'text' for plain text.
+ type: string
+ default: text
+ enum:
+ - json_schema
+ - json_object
+ - text
+ json_schema:
+ description: The JSON schema specification. Required when type is 'json_schema'.
+ $ref: '#/components/schemas/JsonSchemaSpec'
+ CreateChatCompletionRequest:
+ description: The request object for creating a chat completion with an OpenAI-compatible
+ interface. This object is compatible with OpenAI's chat completion schema
+ and supports customizable parameters for response generation.
+ type: object
+ required:
+ - messages
+ - model
+ properties:
+ model:
+ type: string
+ description: The ID of the model to use. This field is required.
+ messages:
+ type: array
+ description: An ordered array of messages that represent the full context
+ of the conversation to date. Each message includes a `role` and `content`.
+ minItems: 1
+ items:
+ $ref: '#/components/schemas/ChatCompletionRequestMessage'
+ stream:
+ type: boolean
+ description: Optional. When set to `true`, the API streams partial message
+ deltas as they become available, similar to ChatGPT's streaming mode.
+ default: false
+ response_format:
+ description: Specifies the output format for the model response.
+ $ref: '#/components/schemas/ResponseFormat'
+ additionalProperties: true
+ ChatCompletionResponseMessage:
+ description: A message in the chat completion response from the assistant.
+ type: object
+ required:
+ - role
+ properties:
+ role:
+ type: string
+ description: The role of the author of this message, typically 'assistant'
+ for responses.
+ additionalProperties: true
+ ChatCompletionResponseChoice:
+ description: A single chat completion choice returned in the response
+ type: object
required:
- index
- message
@@ -11087,6 +11635,7 @@ components:
enum:
- rebuild_vector_index
- replace_filter_attributes
+ - bulk_delete_documents
- unknown
corpus_keys:
description: The corpora that this job belongs to. It may not belong to
@@ -11136,6 +11685,7 @@ components:
- agent_administrator
- agent_viewer
- agent_developer
+ - agent_user
CorpusRole:
description: Corpus-specific role assignment.
type: object
@@ -11368,8 +11918,26 @@ components:
enabled:
description: If this API key is enabled.
type: boolean
+ api_roles:
+ description: Customer-level roles for this API key.
+ type: array
+ items:
+ $ref: '#/components/schemas/ApiRole'
api_key_role:
+ deprecated: true
+ description: 'Deprecated: Use api_roles instead. Legacy role of the API
+ key.'
$ref: '#/components/schemas/ApiKeyRole'
+ corpus_roles:
+ description: Corpus-specific role assignments for this API key.
+ type: array
+ items:
+ $ref: '#/components/schemas/CorpusRole'
+ agent_roles:
+ description: Agent-specific role assignments for this API key.
+ type: array
+ items:
+ $ref: '#/components/schemas/AgentRole'
api_policy:
$ref: '#/components/schemas/ApiPolicy'
ListApiKeysResponse:
@@ -11390,18 +11958,35 @@ components:
name:
description: The human-readable name of the API key.
type: string
+ api_roles:
+ description: Customer-level roles for this API key.
+ type: array
+ items:
+ $ref: '#/components/schemas/ApiRole'
api_key_role:
+ deprecated: true
+ description: 'Deprecated: Use api_roles instead. Legacy role of the API
+ key.'
$ref: '#/components/schemas/ApiKeyRole'
corpus_keys:
- description: Corpora this API key has roles on if it is not a Personal API
- key. This property should be null or missing if this `api_key_role` is
- `personal`.
+ deprecated: true
+ description: 'Deprecated: Use corpus_roles instead. Corpora this API key
+ has roles on.'
type: array
items:
$ref: '#/components/schemas/CorpusKey'
+ corpus_roles:
+ description: Corpus-specific role assignments for this API key.
+ type: array
+ items:
+ $ref: '#/components/schemas/CorpusRole'
+ agent_roles:
+ description: Agent-specific role assignments for this API key.
+ type: array
+ items:
+ $ref: '#/components/schemas/AgentRole'
required:
- name
- - api_key_role
UpdateApiKeyRequest:
description: Request to update an existing API key's properties or permissions.
type: object
@@ -11436,6 +12021,16 @@ components:
type: array
items:
$ref: '#/components/schemas/ApiRole'
+ corpus_roles:
+ description: Corpus-specific role assignments for this App Client.
+ type: array
+ items:
+ $ref: '#/components/schemas/CorpusRole'
+ agent_roles:
+ description: Agent-specific role assignments for this App Client.
+ type: array
+ items:
+ $ref: '#/components/schemas/AgentRole'
api_policy:
$ref: '#/components/schemas/ApiPolicy'
ListAppClientsResponse:
@@ -11469,6 +12064,16 @@ components:
type: array
items:
$ref: '#/components/schemas/ApiRole'
+ corpus_roles:
+ description: Corpus-specific role assignments for this App Client.
+ type: array
+ items:
+ $ref: '#/components/schemas/CorpusRole'
+ agent_roles:
+ description: Agent-specific role assignments for this App Client.
+ type: array
+ items:
+ $ref: '#/components/schemas/AgentRole'
required:
- name
- type
@@ -11498,6 +12103,18 @@ components:
type: array
items:
$ref: '#/components/schemas/ApiRole'
+ corpus_roles:
+ description: The new corpus role assignments. These will replace the current
+ corpus roles.
+ type: array
+ items:
+ $ref: '#/components/schemas/CorpusRole'
+ agent_roles:
+ description: The new agent role assignments. These will replace the current
+ agent roles.
+ type: array
+ items:
+ $ref: '#/components/schemas/AgentRole'
ToolServerId:
description: Unique identifier for a tool server.
type: string
@@ -11739,6 +12356,27 @@ components:
- description
- enabled
- input_schema
+ DynamicVectaraTool:
+ description: 'A tool type for built-in Vectara tools that have implementations
+ within the platform but do not have a dedicated tool type schema. Examples
+ include tools like `sub_agent`, `corpora_search`, `web_search`, and similar
+ platform-provided capabilities. Use the List Tools endpoint to discover available
+ tools and obtain the `tool_id` required for configuration.
+
+ '
+ allOf:
+ - $ref: '#/components/schemas/ToolBase'
+ - type: object
+ properties:
+ type:
+ description: This should always be `dynamic_vectara`.
+ type: string
+ default: dynamic_vectara
+ example: dynamic_vectara
+ required:
+ - type
+ x-vectaraParents:
+ - Tool
McpToolAnnotations:
description: Optional hints about tool behaviour/metadata.
type: object
@@ -11809,6 +12447,21 @@ components:
- type
x-vectaraParents:
- Tool
+ WebGetTool:
+ description: A web get tool that fetches content from URLs using HTTP requests.
+ allOf:
+ - $ref: '#/components/schemas/ToolBase'
+ - type: object
+ properties:
+ type:
+ description: This should always be `web_get`.
+ type: string
+ default: web_get
+ example: web_get
+ required:
+ - type
+ x-vectaraParents:
+ - Tool
ExecutionConfiguration:
description: Execution configuration for the function.
type: object
@@ -11899,87 +12552,47 @@ components:
type: array
items:
type: string
- execution_configuration:
- $ref: '#/components/schemas/ExecutionConfiguration'
- required:
- - language
- - code
- LambdaTool:
- description: 'A user-defined function that can be executed as a tool by agents.
-
- Lambda tools run in a secure, sandboxed environment with resource limits.
-
- Currently supports Python 3.12 with a curated set of libraries.
-
- '
- type: object
- properties:
- type:
- description: This should always be `lambda`.
- type: string
- default: lambda
- example: lambda
- id:
- $ref: '#/components/schemas/ToolId'
- name:
- description: Unique identifier for the tool.
- type: string
- title:
- description: Human-readable title of the tool.
- type: string
- description:
- description: A detailed description of what the function does and how it
- can be used.
- type: string
- language:
- description: The programming language of the lambda function. Currently
- only Python 3.12 is supported.
- type: string
- enum:
- - python
- default: python
- example: python
- enabled:
- description: Whether the tool is currently enabled and available for use.
- type: boolean
- default: true
- created_at:
- description: Timestamp when the tool was created.
- type: string
- format: date-time
- updated_at:
- description: Timestamp when the tool was last updated.
- type: string
- format: date-time
- input_schema:
- description: The schema that defines the expected input structure for the
- function.
- type: object
- additionalProperties: true
- example:
- type: object
- properties:
- data:
- type: array
- description: Input data to process.
- threshold:
- type: number
- description: Threshold value for filtering.
- output_schema:
- description: The schema that defines the expected output structure from
- the function.
- type: object
- additionalProperties: true
- function_definition:
- $ref: '#/components/schemas/FunctionDefinition'
+ execution_configuration:
+ $ref: '#/components/schemas/ExecutionConfiguration'
required:
- - type
- - id
- - name
- - description
- language
- - enabled
- - function_definition
+ - code
+ LambdaTool:
+ description: 'A user-defined function that can be executed as a tool by agents.
+
+ Lambda tools run in a secure, sandboxed environment with resource limits.
+
+ Currently supports Python 3.12 with a curated set of libraries.
+
+ '
+ allOf:
+ - $ref: '#/components/schemas/ToolBase'
+ - type: object
+ properties:
+ type:
+ description: This should always be `lambda`.
+ type: string
+ default: lambda
+ example: lambda
+ language:
+ description: The programming language of the lambda function. Currently
+ only Python 3.12 is supported.
+ type: string
+ enum:
+ - python
+ default: python
+ example: python
+ output_schema:
+ description: The schema that defines the expected output structure from
+ the function.
+ type: object
+ additionalProperties: true
+ function_definition:
+ $ref: '#/components/schemas/FunctionDefinition'
+ required:
+ - type
+ - language
+ - function_definition
x-vectaraParents:
- Tool
StructuredIndexingTool:
@@ -12104,12 +12717,15 @@ components:
Tool:
description: A tool that can be used by agents to perform specific actions or
operations.
+ x-vectara-base-schema: '#/ToolBase'
discriminator:
propertyName: type
mapping:
+ dynamic_vectara: '#/components/schemas/DynamicVectaraTool'
mcp: '#/components/schemas/McpTool'
corpora_search: '#/components/schemas/CorporaSearchTool'
web_search: '#/components/schemas/WebSearchTool'
+ web_get: '#/components/schemas/WebGetTool'
lambda: '#/components/schemas/LambdaTool'
structured_indexing: '#/components/schemas/StructuredIndexingTool'
sub_agent: '#/components/schemas/SubAgentTool'
@@ -12119,9 +12735,11 @@ components:
image_read: '#/components/schemas/ImageReadTool'
document_conversion: '#/components/schemas/DocumentConversionTool'
oneOf:
+ - $ref: '#/components/schemas/DynamicVectaraTool'
- $ref: '#/components/schemas/McpTool'
- $ref: '#/components/schemas/CorporaSearchTool'
- $ref: '#/components/schemas/WebSearchTool'
+ - $ref: '#/components/schemas/WebGetTool'
- $ref: '#/components/schemas/LambdaTool'
- $ref: '#/components/schemas/StructuredIndexingTool'
- $ref: '#/components/schemas/SubAgentTool'
@@ -12717,15 +13335,11 @@ components:
required:
- instructions
- metadata
- CreateInitialInstructionRequest:
- description: Request object for creating a new initial instruction.
+ InstructionRequestBase:
+ description: Base properties for creating an instruction, without the type discriminator
+ field.
type: object
properties:
- type:
- description: The type of instruction to create.
- type: string
- default: initial
- example: initial
name:
$ref: '#/components/schemas/InstructionName'
description:
@@ -12750,9 +13364,21 @@ components:
default: true
example: true
required:
- - type
- name
- template
+ CreateInitialInstructionRequest:
+ description: Request object for creating a new initial instruction.
+ allOf:
+ - $ref: '#/components/schemas/InstructionRequestBase'
+ - type: object
+ properties:
+ type:
+ description: The type of instruction to create.
+ type: string
+ default: initial
+ example: initial
+ required:
+ - type
x-vectaraParents:
- CreateInstructionRequest
CreateInstructionRequest:
@@ -12858,6 +13484,48 @@ components:
minLength: 1
maxLength: 50
example: Customer Support Agent
+ InlineDynamicVectaraToolConfiguration:
+ title: InlineDynamicVectaraToolConfiguration
+ description: 'An inline configuration for built-in Vectara tools that have implementations
+ within the platform but do not have a dedicated configuration type schema.
+ Use the List Tools endpoint to discover available tools and obtain the `tool_id`
+ required for this configuration.
+
+ '
+ type: object
+ properties:
+ type:
+ type: string
+ description: The type of tool configuration, which is always 'dynamic_vectara'
+ for generic Vectara tool configurations.
+ default: dynamic_vectara
+ tool_id:
+ $ref: '#/components/schemas/ToolId'
+ description_template:
+ $ref: '#/components/schemas/ToolDescriptionTemplate'
+ argument_override:
+ description: "Optional hardcoded arguments for tool calls. The key specifies\
+ \ the location in the tool arguments to overide, and the value specifies\
+ \ what to override with. The LLM will not be able to change the parameters,\
+ \ nor know those values exist within the tool.\n\nThe values can also\
+ \ be dynamic references to context values using $ref with dot notation\
+ \ path syntax:\n- Static value: \"fixed_value\" or 123\n- Dynamic reference:\
+ \ `{\"$ref\": \"session.metadata.field_name\"}`\n\nReferences are resolved\
+ \ at runtime from context:\n- session.metadata.* - Access session metadata\
+ \ fields\n- agent.metadata.* - Access agent metadata fields\n\nExample:\n\
+ \ `{\"query\": {\"$ref\": \".session.metadata.query\"}}`\n\nIf you want\
+ \ to have a real value `\"$ref\"` use `\"$$ref\"`, that is you can escape\
+ \ the first $ by using $$."
+ type: object
+ additionalProperties: true
+ example:
+ custom_param: value
+ limit: 10
+ required:
+ - tool_id
+ - type
+ x-vectaraParents:
+ - AgentToolConfiguration
InlineMcpToolConfiguration:
title: InlineMcpToolConfiguration
description: An MCP tool configuration defined inline in the agent.
@@ -12902,22 +13570,136 @@ components:
properties:
query:
description: The search query string, which is the question the user is
- asking. If not provided, will be filled in by the LLM.
+ asking. If not provided, will be filled in by the agent.
type: string
maxLength: 5000
example: Am I allowed to bring pets to work?
additionalProperties: false
- CorporaSearchQueryConfiguration:
- description: User-configurable settings for corpora search that are not exposed
- to the LLM.
+ EagerReference:
+ title: EagerReference
+ description: 'A reference to a value resolved from the session context at the
+ start of each turn.
+
+ Resolution occurs when a new message is submitted to the agent session, before
+ any
+
+ LLM processing begins. The resolved value remains constant throughout the
+ turn and
+
+ is not re-evaluated during the agent''s response or subsequent tool calls
+ within the same turn.
+
+ '
+ type: object
+ x-vectaraParents:
+ - AgentKeyedSearchCorpusCorpusKey
+ - AgentKeyedSearchCorpusMetadataFilter
+ properties:
+ $ref:
+ type: string
+ description: A dot-notation path to the value in the session context.
+ example: session.metadata.filters.user_access
+ required:
+ - $ref
+ additionalProperties: false
+ AgentKeyedSearchCorpus:
+ title: AgentKeyedSearchCorpus
+ description: Agent-specific keyed search corpus that supports eager references
+ for corpus_key and metadata_filter.
+ type: object
+ properties:
+ corpus_key:
+ description: 'The corpus to search. Can be either:
+
+ - A static string: "my-corpus"
+
+ - An EagerReference object: {"$ref": "session.metadata.corpus"}
+
+
+ When an EagerReference is provided, the $ref path is resolved from the
+ session context
+
+ at the start of each turn, before LLM processing begins.
+
+ '
+ oneOf:
+ - type: string
+ - $ref: '#/components/schemas/EagerReference'
+ custom_dimensions:
+ $ref: '#/components/schemas/CustomDimensions'
+ metadata_filter:
+ description: 'The filter to narrow search results. Can be either:
+
+ - A static string: "doc.department = ''engineering''"
+
+ - An EagerReference object: {"$ref": "session.metadata.filters.user"}
+
+
+ When an EagerReference is provided, the $ref path is resolved from the
+ session context
+
+ at the start of each turn, before LLM processing begins.
+
+ '
+ oneOf:
+ - type: string
+ - $ref: '#/components/schemas/EagerReference'
+ lexical_interpolation:
+ description: How much to weigh lexical scores compared to the embedding
+ score.
+ type: number
+ format: float
+ minimum: 0
+ maximum: 1
+ semantics:
+ $ref: '#/components/schemas/SearchSemantics'
+ query:
+ description: Query override for this specific corpus.
+ type: string
+ maxLength: 5000
+ required:
+ - corpus_key
+ AgentSearchCorporaParameters:
+ title: AgentSearchCorporaParameters
+ description: Agent-specific search parameters that support eager references.
+ type: object
+ properties:
+ corpora:
+ description: The corpora to search, with support for eager references.
+ type: array
+ items:
+ $ref: '#/components/schemas/AgentKeyedSearchCorpus'
+ minItems: 1
+ offset:
+ description: Number of results to skip for pagination.
+ type: integer
+ format: int32
+ minimum: 0
+ default: 0
+ limit:
+ description: Maximum number of results to return.
+ type: integer
+ format: int32
+ minimum: 1
+ default: 10
+ context_configuration:
+ $ref: '#/components/schemas/ContextConfiguration'
+ reranker:
+ $ref: '#/components/schemas/SearchReranker'
+ required:
+ - corpora
+ AgentCorporaSearchQueryConfiguration:
+ title: AgentCorporaSearchQueryConfiguration
+ description: Agent-specific query configuration that supports eager references.
+ Use this in agent tool configurations when turn-start resolution is needed.
type: object
properties:
search:
- $ref: '#/components/schemas/SearchCorporaParameters'
+ $ref: '#/components/schemas/AgentSearchCorporaParameters'
generation:
$ref: '#/components/schemas/GenerationParameters'
save_history:
- description: Indicates whether to save the query to query history.
+ description: Whether to save the query to history.
type: boolean
required:
- search
@@ -12940,8 +13722,9 @@ components:
$ref: '#/components/schemas/CorporaSearchToolParameters'
query_configuration:
description: User-configurable settings for the corpus search that are not
- exposed to the LLM.
- $ref: '#/components/schemas/CorporaSearchQueryConfiguration'
+ exposed to the LLM. Supports dynamic references for runtime resolution
+ from session context.
+ $ref: '#/components/schemas/AgentCorporaSearchQueryConfiguration'
required:
- type
- query_configuration
@@ -12949,7 +13732,7 @@ components:
- AgentToolConfiguration
WebSearchToolParameters:
description: Configurable parameters for the web search tool. If not provided,
- will be filled in by the LLM.
+ will be filled in by the agent.
type: object
properties:
query:
@@ -12960,6 +13743,7 @@ components:
description: Maximum number of results to return.
type: integer
minimum: 1
+ maximum: 20
example: 10
provider:
description: Search provider to use.
@@ -13013,6 +13797,90 @@ components:
- type
x-vectaraParents:
- AgentToolConfiguration
+ WebGetToolParameters:
+ description: Configurable parameters for the web get tool. If not provided,
+ will be filled in by the agent.
+ type: object
+ properties:
+ url:
+ description: The URL to fetch content from.
+ oneOf:
+ - type: string
+ - $ref: '#/components/schemas/EagerReference'
+ method:
+ description: HTTP method to use.
+ type: string
+ enum:
+ - GET
+ - POST
+ - PUT
+ - DELETE
+ - HEAD
+ headers:
+ description: HTTP headers to include in the request.
+ oneOf:
+ - type: object
+ additionalProperties:
+ type: string
+ - $ref: '#/components/schemas/EagerReference'
+ body:
+ description: Request body for POST/PUT requests.
+ oneOf:
+ - type: string
+ - $ref: '#/components/schemas/EagerReference'
+ follow_redirects:
+ description: Whether to follow HTTP redirects.
+ oneOf:
+ - type: boolean
+ - $ref: '#/components/schemas/EagerReference'
+ timeout_seconds:
+ description: Request timeout in seconds.
+ oneOf:
+ - type: integer
+ - $ref: '#/components/schemas/EagerReference'
+ head_lines:
+ description: Number of lines from start to include in response.
+ oneOf:
+ - type: integer
+ - $ref: '#/components/schemas/EagerReference'
+ tail_lines:
+ description: Number of lines from end to include in response.
+ oneOf:
+ - type: integer
+ - $ref: '#/components/schemas/EagerReference'
+ ssl_verify:
+ description: Whether to verify SSL certificates.
+ oneOf:
+ - type: boolean
+ - $ref: '#/components/schemas/EagerReference'
+ max_content_bytes:
+ description: Maximum response size in bytes before truncation.
+ oneOf:
+ - type: integer
+ - $ref: '#/components/schemas/EagerReference'
+ additionalProperties: false
+ InlineWebGetToolConfiguration:
+ title: InlineWebGetToolConfiguration
+ description: A web get tool configuration defined inline in the agent for fetching
+ content from URLs.
+ type: object
+ properties:
+ type:
+ type: string
+ description: The type of tool configuration, which is always 'web_get' for
+ inline web get tool configurations.
+ default: web_get
+ description_template:
+ $ref: '#/components/schemas/ToolDescriptionTemplate'
+ argument_override:
+ description: Optional hardcoded arguments for the web get tool call. When
+ specified, these values will be used instead of allowing the LLM to fill
+ in those parameters.
+ $ref: '#/components/schemas/WebGetToolParameters'
+ required:
+ - type
+ x-vectaraParents:
+ - AgentToolConfiguration
InlineLambdaToolConfiguration:
title: InlineLambdaToolConfiguration
description: A lambda tool configuration defined inline in the agent for executing
@@ -13048,7 +13916,7 @@ components:
properties:
corpus_key:
description: The key identifying the target corpus for document indexing.
- If not provided, will be filled in by the LLM.
+ If not provided, will be filled in by the agent.
type: string
example: my-knowledge-base
document_id:
@@ -13121,6 +13989,23 @@ components:
minimum: 1
example: 60
additionalProperties: false
+ SubAgentSessionMode:
+ description: 'Controls session behavior for sub-agent invocations:
+
+ - llm_controlled: LLM decides whether to create new or resume existing session
+
+ - persistent: Always reuse the same session (created on first invocation)
+
+ - ephemeral: Always create a new session on each invocation
+
+ '
+ type: string
+ enum:
+ - llm_controlled
+ - persistent
+ - ephemeral
+ default: llm_controlled
+ example: llm_controlled
SubAgentConfiguration:
description: User-configurable settings for the sub-agent tool. These parameters
are never exposed to the agent.
@@ -13128,6 +14013,16 @@ components:
properties:
agent_key:
$ref: '#/components/schemas/AgentKey'
+ session_mode:
+ $ref: '#/components/schemas/SubAgentSessionMode'
+ session_metadata:
+ description: Optional metadata to associate with the sub-agent session.
+ Can contain any key-value pairs.
+ type: object
+ additionalProperties: true
+ example:
+ source: parent_agent
+ task_type: code_review
required:
- agent_key
InlineSubAgentToolConfiguration:
@@ -13179,6 +14074,26 @@ components:
format: int32
example: 200
additionalProperties: false
+ ArtifactReadConfiguration:
+ description: User-configurable settings for the artifact read tool.
+ type: object
+ properties:
+ max_size_bytes:
+ description: Maximum file size in bytes for full reads without line ranges.
+ Defaults to 256KB.
+ type: integer
+ format: int64
+ minimum: 1
+ maximum: 10485760
+ default: 262144
+ max_lines:
+ description: Maximum number of lines for range-based reads. Defaults to
+ 200.
+ type: integer
+ format: int32
+ minimum: 1
+ maximum: 10000
+ default: 200
InlineArtifactReadToolConfiguration:
title: InlineArtifactReadToolConfiguration
description: An artifact read tool configuration defined inline in the agent
@@ -13194,6 +14109,8 @@ components:
$ref: '#/components/schemas/ToolDescriptionTemplate'
argument_override:
$ref: '#/components/schemas/ArtifactReadToolParameters'
+ tool_configuration:
+ $ref: '#/components/schemas/ArtifactReadConfiguration'
required:
- type
x-vectaraParents:
@@ -13325,9 +14242,11 @@ components:
discriminator:
propertyName: type
mapping:
+ dynamic_vectara: '#/components/schemas/InlineDynamicVectaraToolConfiguration'
mcp: '#/components/schemas/InlineMcpToolConfiguration'
corpora_search: '#/components/schemas/InlineCorporaSearchToolConfiguration'
web_search: '#/components/schemas/InlineWebSearchToolConfiguration'
+ web_get: '#/components/schemas/InlineWebGetToolConfiguration'
lambda: '#/components/schemas/InlineLambdaToolConfiguration'
structured_indexing: '#/components/schemas/InlineStructuredIndexingToolConfiguration'
sub_agent: '#/components/schemas/InlineSubAgentToolConfiguration'
@@ -13336,9 +14255,11 @@ components:
image_read: '#/components/schemas/InlineImageReadToolConfiguration'
document_conversion: '#/components/schemas/InlineDocumentConversionToolConfiguration'
oneOf:
+ - $ref: '#/components/schemas/InlineDynamicVectaraToolConfiguration'
- $ref: '#/components/schemas/InlineMcpToolConfiguration'
- $ref: '#/components/schemas/InlineCorporaSearchToolConfiguration'
- $ref: '#/components/schemas/InlineWebSearchToolConfiguration'
+ - $ref: '#/components/schemas/InlineWebGetToolConfiguration'
- $ref: '#/components/schemas/InlineLambdaToolConfiguration'
- $ref: '#/components/schemas/InlineStructuredIndexingToolConfiguration'
- $ref: '#/components/schemas/InlineSubAgentToolConfiguration'
@@ -13457,7 +14378,7 @@ components:
title: InlineInstruction
description: An instruction defined inline in the request.
allOf:
- - $ref: '#/components/schemas/CreateInitialInstructionRequest'
+ - $ref: '#/components/schemas/InstructionRequestBase'
- type: object
properties:
type:
@@ -13506,6 +14427,51 @@ components:
- type
x-vectaraParents:
- AgentOutputParser
+ StructuredOutputParser:
+ title: StructuredOutputParser
+ description: 'Parses agent output as structured JSON conforming to a specified
+ schema.
+
+ Uses the model''s native structured outputs capability to guarantee valid
+ JSON
+
+ that adheres to the provided schema. This is useful when you need the agent''s
+
+ final response in a specific format for downstream processing.
+
+
+ When this parser is configured, the agent emits a StructuredOutputEvent instead
+
+ of AgentOutputEvent. The StructuredOutputEvent contains the validated JSON
+ content
+
+ along with the schema name for identification.
+
+
+ Note: When using structured outputs, the agent can still use tools normally.
+
+ The schema constraint only applies to the agent''s final text response.
+
+ When streaming, the structured output is delivered as a single complete event
+
+ rather than being streamed in chunks.
+
+ '
+ type: object
+ properties:
+ type:
+ description: The type of output parser, which is always 'structured' for
+ this parser type.
+ type: string
+ default: structured
+ example: structured
+ json_schema:
+ $ref: '#/components/schemas/JsonSchemaSpec'
+ required:
+ - type
+ - json_schema
+ x-vectaraParents:
+ - AgentOutputParser
AgentOutputParser:
title: AgentOutputParser
description: 'Configuration for how the agent''s output should be parsed and
@@ -13520,8 +14486,10 @@ components:
propertyName: type
mapping:
default: '#/components/schemas/DefaultOutputParser'
+ structured: '#/components/schemas/StructuredOutputParser'
oneOf:
- $ref: '#/components/schemas/DefaultOutputParser'
+ - $ref: '#/components/schemas/StructuredOutputParser'
ConversationalAgentStep:
title: ConversationalAgentStep
description: A step that receives instructions and responds through dialogue.
@@ -14289,6 +15257,70 @@ components:
x-vectaraParents:
- AgentEvent
- AgentStreamedResponse
+ StructuredOutputEvent:
+ title: StructuredOutputEvent
+ description: 'An event representing a complete agent response with structured
+ JSON content conforming to a schema.
+
+
+ This event is published instead of AgentOutputEvent when the agent''s output_parser
+ is configured
+
+ with type "structured". It contains the LLM''s final response parsed as validated
+ JSON that
+
+ conforms to the schema specified in the StructuredOutputParser configuration.
+
+
+ When streaming is enabled, this event appears as a single complete event (not
+ streamed in chunks)
+
+ after any tool interactions are complete. The content field contains the parsed
+ JSON,
+
+ and schema_name identifies which schema the content was validated against.
+
+ '
+ type: object
+ properties:
+ id:
+ description: The unique identifier for the event.
+ type: string
+ pattern: aev_[0-9a-zA-Z_-]+$
+ example: aev_structured_001
+ session_key:
+ $ref: '#/components/schemas/AgentSessionKey'
+ description: The key of the session this event belongs to.
+ type:
+ description: The type of event.
+ type: string
+ default: structured_output
+ example: structured_output
+ schema_name:
+ description: The name of the JSON schema that the content conforms to.
+ type: string
+ example: order_response
+ content:
+ description: The structured JSON content conforming to the output schema.
+ example:
+ result: success
+ data:
+ id: 123
+ created_at:
+ description: Timestamp when the event was created.
+ type: string
+ format: date-time
+ example: '2024-01-15T10:35:00Z'
+ required:
+ - id
+ - session_key
+ - type
+ - schema_name
+ - content
+ - created_at
+ x-vectaraParents:
+ - AgentEvent
+ - AgentStreamedResponse
ContextLimitExceededEvent:
title: ContextLimitExceededEvent
description: An event indicating the current request exceeded the LLM's context
@@ -14393,8 +15425,10 @@ components:
tool_output: '#/components/schemas/ToolOutputEvent'
thinking: '#/components/schemas/ThinkingEvent'
agent_output: '#/components/schemas/AgentOutputEvent'
+ structured_output: '#/components/schemas/StructuredOutputEvent'
context_limit_exceeded: '#/components/schemas/ContextLimitExceededEvent'
image_read: '#/components/schemas/ImageReadEvent'
+ guardrail_check: '#/components/schemas/GuardrailCheckEvent'
oneOf:
- $ref: '#/components/schemas/InputMessageEvent'
- $ref: '#/components/schemas/ArtifactUploadEvent'
@@ -14402,6 +15436,7 @@ components:
- $ref: '#/components/schemas/ToolOutputEvent'
- $ref: '#/components/schemas/ThinkingEvent'
- $ref: '#/components/schemas/AgentOutputEvent'
+ - $ref: '#/components/schemas/StructuredOutputEvent'
- $ref: '#/components/schemas/ContextLimitExceededEvent'
- $ref: '#/components/schemas/ImageReadEvent'
properties:
@@ -14423,8 +15458,10 @@ components:
- tool_output
- thinking
- agent_output
+ - structured_output
- context_limit_exceeded
- image_read
+ - guardrail_check
example: input_message
created_at:
description: Timestamp when the event was created.
@@ -14596,6 +15633,7 @@ components:
streaming_thinking_end: '#/components/schemas/StreamingThinkingEnd'
tool_input: '#/components/schemas/ToolInputEvent'
tool_output: '#/components/schemas/ToolOutputEvent'
+ structured_output: '#/components/schemas/StructuredOutputEvent'
context_limit_exceeded: '#/components/schemas/ContextLimitExceededEvent'
image_read: '#/components/schemas/ImageReadEvent'
error: '#/components/schemas/StreamError'
@@ -14607,6 +15645,7 @@ components:
- $ref: '#/components/schemas/StreamingThinkingEnd'
- $ref: '#/components/schemas/ToolInputEvent'
- $ref: '#/components/schemas/ToolOutputEvent'
+ - $ref: '#/components/schemas/StructuredOutputEvent'
- $ref: '#/components/schemas/ContextLimitExceededEvent'
- $ref: '#/components/schemas/ImageReadEvent'
- $ref: '#/components/schemas/StreamError'